Visual Form Builder - Version 2.8.1

Version Description

Download this release

Release Info

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

Code changes from version 2.8 to 2.8.1

Files changed (63) hide show
  1. css/visual-form-builder-admin.css +53 -40
  2. css/visual-form-builder-admin.min.css +1 -1
  3. css/visual-form-builder.css +38 -38
  4. css/visual-form-builder.min.css +1 -1
  5. includes/admin-field-options.php +1 -1
  6. includes/admin-new-form.php +3 -3
  7. includes/class-export.php +51 -25
  8. includes/email.php +27 -14
  9. includes/form-output.php +13 -3
  10. js/i18n/datepicker/datepicker-cs_CS.js +36 -0
  11. js/i18n/datepicker/datepicker-de_DE.js +36 -0
  12. js/i18n/datepicker/datepicker-el_GR.js +36 -0
  13. js/i18n/datepicker/datepicker-en_AU.js +36 -0
  14. js/i18n/datepicker/datepicker-en_GB.js +36 -0
  15. js/i18n/datepicker/datepicker-en_US.js +35 -0
  16. js/i18n/datepicker/datepicker-es_ES.js +36 -0
  17. js/i18n/datepicker/datepicker-fr_FR.js +38 -0
  18. js/i18n/datepicker/datepicker-he_IL.js +36 -0
  19. js/i18n/datepicker/datepicker-hu_HU.js +36 -0
  20. js/i18n/datepicker/datepicker-id_ID.js +36 -0
  21. js/i18n/datepicker/datepicker-it_IT.js +36 -0
  22. js/i18n/datepicker/datepicker-ja_JP.js +36 -0
  23. js/i18n/datepicker/datepicker-ko_KR.js +36 -0
  24. js/i18n/datepicker/datepicker-nl_NL.js +36 -0
  25. js/i18n/datepicker/datepicker-pl_PL.js +36 -0
  26. js/i18n/datepicker/datepicker-pt_BR.js +36 -0
  27. js/i18n/datepicker/datepicker-pt_PT.js +35 -0
  28. js/i18n/datepicker/datepicker-ro_RO.js +39 -0
  29. js/i18n/datepicker/datepicker-ru_RU.js +36 -0
  30. js/i18n/datepicker/datepicker-sv_SE.js +36 -0
  31. js/i18n/datepicker/datepicker-tr_TR.js +36 -0
  32. js/i18n/datepicker/datepicker-zh_CN.js +36 -0
  33. js/i18n/datepicker/datepicker-zh_TW.js +36 -0
  34. js/i18n/validate/messages-cs_CS.js +38 -0
  35. js/i18n/validate/messages-de_DE.js +38 -0
  36. js/i18n/validate/messages-el_GR.js +38 -0
  37. js/i18n/validate/messages-en_AU.js +38 -0
  38. js/i18n/validate/messages-en_GB.js +38 -0
  39. js/i18n/validate/messages-en_US.js +38 -0
  40. js/i18n/validate/messages-es_ES.js +38 -0
  41. js/i18n/validate/messages-fr_FR.js +38 -0
  42. js/i18n/validate/messages-he_IL.js +38 -0
  43. js/i18n/validate/messages-hu_HU.js +38 -0
  44. js/i18n/validate/messages-id_ID.js +38 -0
  45. js/i18n/validate/messages-it_IT.js +38 -0
  46. js/i18n/validate/messages-ja_JP.js +38 -0
  47. js/i18n/validate/messages-ko_KR.js +38 -0
  48. js/i18n/validate/messages-nl_NL.js +38 -0
  49. js/i18n/validate/messages-pl_PL.js +38 -0
  50. js/i18n/validate/messages-pt_BR.js +39 -0
  51. js/i18n/validate/messages-pt_PT.js +39 -0
  52. js/i18n/validate/messages-ro_RO.js +38 -0
  53. js/i18n/validate/messages-ru_RU.js +38 -0
  54. js/i18n/validate/messages-sv_SE.js +38 -0
  55. js/i18n/validate/messages-tr_TR.js +38 -0
  56. js/i18n/validate/messages-zh_CN.js +38 -0
  57. js/i18n/validate/messages-zh_TW.js +39 -0
  58. js/vfb-admin.js +5 -5
  59. js/vfb-admin.min.js +1 -1
  60. js/vfb-validation.js +1 -1
  61. js/vfb-validation.min.js +1 -1
  62. readme.txt +24 -2
  63. visual-form-builder.php +521 -375
css/visual-form-builder-admin.css CHANGED
@@ -602,6 +602,14 @@ strong .vfb-meta-entries-total span {
602
  height: 100%;
603
  }
604
 
 
 
 
 
 
 
 
 
605
  /* !Form Editor Columns - One Column */
606
  @media only screen and (max-width: 799px) {
607
  #vfb-form-builder-frame .vfb-postbox-container {
@@ -689,7 +697,7 @@ strong .vfb-meta-entries-total span {
689
  .options-other-show .widefat,
690
  .options-other-hide .widefat {
691
  margin: 0 6px 7px 0;
692
- width: 325px;
693
  }
694
 
695
  .rtl .option .widefat,
@@ -759,7 +767,7 @@ strong .vfb-meta-entries-total span {
759
  /* Form Settings add/delete emails */
760
  .addEmail,
761
  .deleteEmail {
762
- top: 21px;
763
  }
764
  .addEmail {
765
  right: 55px;
@@ -813,12 +821,6 @@ strong .vfb-meta-entries-total span {
813
  cursor: pointer;
814
  }
815
 
816
- .ui-state-disabled .menu-item-handle{
817
- background: #dfdfdf;
818
- box-shadow: none;
819
- cursor:default;
820
- }
821
-
822
  .option {
823
  float: left;
824
  width: 97%;
@@ -1055,11 +1057,22 @@ ul#vfb-menu-to-edit ul{
1055
  display: none;
1056
  }
1057
 
1058
- .ui-state-disabled{
 
 
 
1059
  opacity: 100;
1060
  filter: alpha(Opacity=100);
 
1061
  }
1062
 
 
 
 
 
 
 
 
1063
  .vfb-details{
1064
  margin-bottom:10px;
1065
  padding:0 10px;
@@ -1404,12 +1417,12 @@ ul.vfb-fields-col-2{
1404
 
1405
  /* !Help tooltip popups */
1406
  .vfb-tooltip{
1407
- position:relative;
1408
- float:right;
1409
- margin-right:2px;
1410
- width:16px;
1411
- height:16px;
1412
- cursor:pointer;
1413
  }
1414
 
1415
  .rtl .vfb-tooltip {
@@ -1418,37 +1431,37 @@ ul.vfb-fields-col-2{
1418
  margin-left: 2px;
1419
  }
1420
 
1421
- .tooltip {
1422
- position:absolute;
1423
- top:-40px;
1424
- z-index:200;
1425
- display:none;
1426
- padding:5px 20px;
1427
- width:250px;
1428
- border:2px solid #333;
1429
- border-radius:5px;
1430
  background: #222;
1431
- box-shadow:0 0 7px black;
1432
- color:white;
1433
- text-indent:0;
1434
- font-style:normal;
1435
  }
1436
 
1437
- .tooltip h3,
1438
- .vfb-tooltip .tooltip h3{
1439
- margin:5px 0;
1440
- padding:0 0 6px 0;
1441
- border-bottom:1px solid white;
1442
- font-weight:normal;
1443
- font-size:13px;
1444
- font-family: sans-serif;
1445
  color: white;
 
 
 
1446
  }
1447
 
1448
- .tooltip p{
1449
- margin-top:10px;
1450
- font-size:12px;
1451
  color: white;
 
1452
  }
1453
 
1454
  /* !Bulk Add Options */
@@ -1619,7 +1632,7 @@ ul.vfb-fields-col-2{
1619
 
1620
  .addEmail,
1621
  .deleteEmail {
1622
- top: 22px;
1623
  }
1624
 
1625
  /* Field Item arrows */
602
  height: 100%;
603
  }
604
 
605
+ #vfb_form_media_button_tip input {
606
+ width: 100%;
607
+ border: 0;
608
+ padding: 6px;
609
+ font-family: Consolas, Monaco, monospace;
610
+ font-size: 12px;
611
+ }
612
+
613
  /* !Form Editor Columns - One Column */
614
  @media only screen and (max-width: 799px) {
615
  #vfb-form-builder-frame .vfb-postbox-container {
697
  .options-other-show .widefat,
698
  .options-other-hide .widefat {
699
  margin: 0 6px 7px 0;
700
+ width: 320px;
701
  }
702
 
703
  .rtl .option .widefat,
767
  /* Form Settings add/delete emails */
768
  .addEmail,
769
  .deleteEmail {
770
+ top: 28px;
771
  }
772
  .addEmail {
773
  right: 55px;
821
  cursor: pointer;
822
  }
823
 
 
 
 
 
 
 
824
  .option {
825
  float: left;
826
  width: 97%;
1057
  display: none;
1058
  }
1059
 
1060
+ .ui-state-disabled,
1061
+ .ui-state-disabled dl,
1062
+ .ui-state-disabled dt,
1063
+ .form-item.ui-state-disabled {
1064
  opacity: 100;
1065
  filter: alpha(Opacity=100);
1066
+ background-image: none;
1067
  }
1068
 
1069
+ .ui-state-disabled .vfb-menu-item-handle,
1070
+ .ui-state-disabled .menu-item-handle {
1071
+ background: #dfdfdf;
1072
+ box-shadow: none;
1073
+ cursor: default;
1074
+ }
1075
+
1076
  .vfb-details{
1077
  margin-bottom:10px;
1078
  padding:0 10px;
1417
 
1418
  /* !Help tooltip popups */
1419
  .vfb-tooltip{
1420
+ position: relative;
1421
+ float: right;
1422
+ margin-right: 2px;
1423
+ width: 16px;
1424
+ height: 16px;
1425
+ cursor: pointer;
1426
  }
1427
 
1428
  .rtl .vfb-tooltip {
1431
  margin-left: 2px;
1432
  }
1433
 
1434
+ .vfb-tooltip-popup {
1435
+ position: absolute;
1436
+ top: -40px;
1437
+ z-index: 200;
1438
+ display: none;
1439
+ padding: 5px 20px;
1440
+ width: 250px;
1441
+ border: 2px solid #333;
1442
+ border-radius: 5px;
1443
  background: #222;
1444
+ box-shadow: 0 0 7px black;
1445
+ color: white;
1446
+ text-indent: 0;
1447
+ font-style: normal;
1448
  }
1449
 
1450
+ .vfb-tooltip-popup h3,
1451
+ .vfb-tooltip .vfb-tooltip-popup h3{
1452
+ margin: 5px 0;
1453
+ padding: 0 0 6px 0;
1454
+ border-bottom: 1px solid white;
 
 
 
1455
  color: white;
1456
+ font-weight: normal;
1457
+ font-size: 13px;
1458
+ font-family: sans-serif;
1459
  }
1460
 
1461
+ .vfb-tooltip-popup p{
1462
+ margin-top:1 0px;
 
1463
  color: white;
1464
+ font-size: 12px;
1465
  }
1466
 
1467
  /* !Bulk Add Options */
1632
 
1633
  .addEmail,
1634
  .deleteEmail {
1635
+ top: 28px;
1636
  }
1637
 
1638
  /* Field Item arrows */
css/visual-form-builder-admin.min.css CHANGED
@@ -1 +1 @@
1
- .vfb-pro-call-to-action{padding:5px 0;text-align:center}.vfb-btn{display:inline-block;*display:inline;*zoom:1;padding:15px 10px;margin-bottom:0;line-height:20px;text-align:center;vertical-align:middle;cursor:pointer;color:#333;font-size:21px;font-weight:500;text-shadow:0 1px 1px rgba(255,255,255,0.75);background-color:#f5f5f5;background-repeat:repeat-x;border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);*background-color:#e6e6e6;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);border:1px solid #ccc;*border:0;border-bottom-color:#b3b3b3;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;*margin-left:.3em;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);text-decoration:none}.vfb-btn:hover,.vfb-btn:focus{color:#333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.vfb-btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.vfb-btn.active,.vfb-btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05)}.vfb-btn-primary.active{color:rgba(255,255,255,0.75)}.vfb-btn-primary{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#006dcc;background-image:-moz-linear-gradient(top,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0044cc',GradientType=0);border-color:#04c #0044cc #002a80;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);*background-color:#04c;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false)}.vfb-btn-primary:hover,.vfb-btn-primary:focus,.vfb-btn-primary:active,.vfb-btn-primary.active,.vfb-btn-primary.disabled,.vfb-btn-primary[disabled]{color:#fff;background-color:#04c;*background-color:#003bb3}.vfb-btn-primary:active,.vfb-btn-primary.active{background-color:#039 \9}.vfb-btn-inverse{background-color:#363636;background-repeat:repeat-x;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.vfb-btn-inverse:hover,.vfb-btn-inverse:focus,.vfb-btn-inverse:active,.vfb-btn-inverse.active,.vfb-btn-inverse.disabled,.vfb-btn-inverse[disabled]{background-color:#222;color:#fff}.vfb-pro-call-to-action .cta-sign-up{color:#fff;display:block;font-size:24px;font-weight:bold;text-align:center;text-decoration:none;text-shadow:1px 1px 1px #2b658c;width:100%;line-height:22px}.vfb-pro-call-to-action .cta-price{color:#ace7ff;display:block;font-size:12px;font-weight:normal;line-height:20px;text-align:center;text-decoration:none;width:100%;line-height:20px}.vfb-pro-upgrade{display:inline;float:left;padding:10px;margin-bottom:20px;background-color:#d3e7ee;border:1px solid #21759b;border-radius:5px}.rtl .vfb-pro-upgrade{float:right}.vfb-pro-upgrade h2,.wrap .vfb-pro-upgrade h2{font-size:23px;font-weight:500;padding:5px 0;text-align:center}.vfb-pro-upgrade h2 a{text-decoration:none}.vfb-pro-upgrade ul{list-style:outside;margin-left:10px}.rtl .vfb-pro-upgrade ul{margin-left:0;margin-right:10px}#vfb-form-builder-frame{display:block;margin:0 -8px 0 290px}.rtl #vfb-form-builder-frame{margin:0 290px 0 -8px}#vfb-form-builder-frame:after,#form-editor-header .vfb-major-publishing-actions:after,#form-editor-footer .vfb-major-publishing-actions:after,#vfb-form-builder-frame .menu-item-settings:after,#vfb-form-list:after,.option:after{display:block;visibility:hidden;clear:both;height:0;content:"."}#vfb-form-builder-sidebar{clear:both;width:281px}#vfb-form-builder-management{position:relative;margin-right:10px}.rtl #vfb-form-builder-management{margin-right:0;margin-left:10px}#vfb-form-builder-management .form-edit{margin-bottom:20px;border:1px solid #dfdfdf;border-radius:3px}.admin-color-classic #vfb-form-builder-management .form-edit{border-color:#d0dfe9}#form-editor-header,#form-editor-footer{padding:0 10px;background-color:#f1f1f1}#form-editor-footer{border-top:1px solid #dfdfdf}.admin-color-classic #form-editor-header,.admin-color-classic #form-editor-footer{background-color:#f5fafd}.admin-color-class #form-editor-footer{border-top-color:#d0dfe9}.vfb-major-publishing-actions{clear:both;padding:3px 0 5px}.vfb-major-publishing-actions .publishing-action{float:right;margin:5px 0 1px;text-align:right;line-height:23px}#form-editor-header .publishing-action{margin-top:12px}.sub-navigation{float:none;margin:8px 0 5px;padding:0;list-style:none;white-space:nowrap;font-size:12px}.sub-navigation li{display:inline;margin:0;padding:0}.sub-navigation a{padding:.2em;text-decoration:none;line-height:2}.sub-navigation a.current{border:medium none;background:0;color:black;font-weight:bold}.sub-navigation a:hover{color:#d54e21}#vfb-sidebar,#vfb-main{float:left;margin:10px 0;width:280px}.rtl #vfb-sidebar,.rtl #vfb-main{float:right}#vfb-main{width:auto}#vfb-main.vfb-order-type-list{width:100%}#vfb-main p a,#vfb-main h3 a{text-decoration:none}#vfb-main .submitdelete{color:#bc0b0b;text-decoration:none}#vfb-main .submitdelete:hover{color:red}#vfb-sidebar{margin-left:-300px}.rtl #vfb-sidebar{margin-left:0;margin-right:-300px}#vfb-form-list{display:block;margin-left:300px}.rtl #vfb-form-list{margin-left:0;margin-right:300px}.vfb-box{position:relative;float:left;padding:0 10px;border:1px solid #dfdfdf;border-radius:3px 3px 3px 3px;background-color:#f5f5f5;background:-moz-linear-gradient(top,#fff 0,#f5f5f5 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#fff),color-stop(100%,#f5f5f5));background:-webkit-linear-gradient(top,#fff 0,#f5f5f5 100%);background:-o-linear-gradient(top,#fff 0,#f5f5f5 100%);background:-ms-linear-gradient(top,#fff 0,#f5f5f5 100%);background:linear-gradient(to bottom,#fff 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff',endColorstr='#f5f5f5',GradientType=0);box-shadow:0 1px 0 #fff inset;line-height:1.4em}.vfb-form-alpha-list{width:70%;float:left;padding-right:20px}.rtl .vfb-form-alpha-list{float:right;padding-right:0;padding-left:20px}.vfb-form-alpha-list hr{display:block;margin:1em 0;padding:0;height:1px;border:0;border-top:1px solid #ccc}.vfb-form-alpha-group .letter,.wrap h2.letter{float:left;padding:0;color:#666;font-size:14px;line-height:17px}.vfb-form-alpha-form{display:block;margin:10px 0;padding-left:150px;width:auto}.vfb-form-alpha-form h3{float:left;margin:0;width:50%;word-wrap:break-word;font-size:17px}.vfb-form-alpha-form .vfb-publishing-actions,.vfb-form-alpha-form .vfb-form-meta{float:left;width:20%;text-align:center}.vfb-form-alpha-form .vfb-form-meta{width:30%}.vfb-form-alpha-form .vfb-publishing-actions p,.vfb-form-alpha-form .vfb-form-meta p{margin:0}.vfb-form-alpha-form .vfb-form-meta,.vfb-form-alpha-form .paypal{float:left;margin:0;text-align:left}.rtl .vfb-form-alpha-form .vfb-form-meta,.rtl .vfb-form-alpha-form .paypal{float:right;text-align:right}.vfb-sortable-placeholder{display:block;height:35px;width:400px;margin:8px;border:1px dashed #bbb;background-color:#f5f5f5}#vfb-main .vfb-sortable-placeholder{float:left;margin:8px;height:200px;width:210px}.rtl #vfb-main .vfb-sortable-placeholder{float:right}#vfb-menu-to-edit .mjs-nestedSortable-error{border-color:red;background-color:#fbe3e4;color:#8a1f11}.vfb-meta-entries-total span,.vfb-meta-entries-total-today span{font-size:11px;font-weight:bold;height:1.4em;line-height:1.4em;min-width:.7em;padding:0 6px;display:inline-block;border-radius:5px;background-color:#bbb;color:white;text-align:center}.vfb-meta-entries-total:hover span,.vfb-meta-entries-total-today:hover span{background-color:#d54e21}.fixed .column-entries,.fixed .column-form_id{width:8em}strong .vfb-meta-entries-total span{background-color:#21759b}.entries-count-wrapper{font-family:sans-serif;min-width:22px;padding-bottom:1px}#new-form{margin:8px 0;padding-top:10px;width:75px;height:105px;text-align:center}#new-form a{display:block;width:auto;text-decoration:none}#post-body{padding:10px;background:white}.vfb-postbox-container{float:left;margin:0 8px;width:100%}.rtl .vfb-postbox-container{float:right}#vfb-postbox-container-1 .postbox{min-width:281px}#vfb-postbox-container-2{min-width:485px}#vfb-form-builder-frame.columns-1{margin-left:-8px}.rtl #vfb-form-builder-frame.columns-1{margin-left:0;margin-right:-8px}#vfb-form-builder-frame.columns-1 #vfb-postbox-container-1{float:none}#vfb-form-builder-frame.columns-1 #vfb-postbox-container-2{width:99%}#vfb-form-builder-frame.columns-2 #vfb-postbox-container-3{display:none}#vfb-form-builder-frame.columns-2 #vfb-postbox-container-1,#vfb-form-builder-frame.columns-3 #vfb-postbox-container-1{margin-left:-290px;width:281px}.rtl #vfb-form-builder-frame.columns-2 #vfb-postbox-container-1,.rtl #vfb-form-builder-frame.columns-3 #vfb-postbox-container-1{margin-left:0;margin-right:-290px}#vfb-form-builder-frame.columns-3 #vfb-form-builder-management{margin-right:0}#vfb-form-builder-frame.columns-3 #vfb-postbox-container-2{width:30%}#vfb-form-builder-frame.columns-3 #vfb-postbox-container-3{display:inline;margin-right:0;width:46.5%}.rtl #vfb-form-builder-frame.columns-3 #vfb-postbox-container-3{margin-right:0;margin-left:0}#vfb-form-meta-preview iframe{width:100%;height:100%}@media only screen and (max-width:799px){#vfb-form-builder-frame .vfb-postbox-container{width:100%}.columns-prefs .columns-prefs-3{display:none}}@media only screen and (min-width:800px) and (max-width:1200px){#vfb-form-builder-frame .vfb-postbox-container{width:49.5%}#vfb-form-builder-frame.columns-3 #vfb-postbox-container-2,#vfb-form-builder-frame.columns-3 #vfb-postbox-container-3{width:50.5%}#vfb-form-builder-frame.columns-1 .vfb-postbox-container{width:100%}}@media only screen and (min-width:1600px){#vfb-form-builder-frame.columns-3 #vfb-postbox-container-3{width:58%}}.item-edit{position:absolute;top:3px;right:-20px;display:block;overflow:hidden;width:30px;height:40px;background:url('../images/arrows.png?d=20130703') no-repeat scroll 8px 10px transparent;text-indent:-999em}.admin-color-classic .item-edit{background:url('../images/arrows-vs.png?d=20130703') no-repeat scroll 8px 10px transparent}.rtl .item-edit{right:auto;left:-20px}.item-edit:hover{background:url('../images/arrows-dark.png?d=20130703') no-repeat scroll 8px 10px transparent}.admin-color-classic .item-edit:hover{background:url('../images/arrows-dark-vs.png?d=20130703') no-repeat scroll 8px 10px transparent}.item-edit.opened{background:url('../images/arrows.png?d=20130703') no-repeat scroll 8px -25px transparent}.admin-color-classic .item-edit.opened{background:url('../images/arrows-vs.png?d=20130703') no-repeat scroll 8px -25px transparent}.item-edit.opened:hover{background:url('../images/arrows-dark.png?d=20130703') no-repeat scroll 8px -25px transparent}.admin-color-classic .item-edit.opened:hover{background:url('../images/arrows-dark-vs.png?d=20130703') no-repeat scroll 8px -25px transparent}.option .widefat,.options-other-show .widefat,.options-other-hide .widefat{margin:0 6px 7px 0;width:325px}.rtl .option .widefat,.rtl .options-other-show .widefat,.rtl .options-other-hide .widefat{margin:0 0 7px 6px}#form-settings .description-thin{margin:12px 10px 12px 0}.rtl #form-settings .description-thin{margin:12px 0 12px 10px}.description-thin,.description-wide{float:left;margin-right:10px}.rtl .description-thin,.rtl .description-wide{float:right;margin-right:0;margin-left:10px}.description-thin{width:190px;height:40px}.description-wide{width:390px}.vfb-interface-icon{position:absolute;top:4px;right:4px;display:inline-block;width:16px;height:16px;background-color:transparent;background-image:url('../images/vfb-interface-icons.png?d=20130713');background-repeat:no-repeat;text-indent:-9999px}.vfb-interface-settings{background-position:-32px 0}.vfb-interface-duplicate{background-position:0 0}.vfb-interface-trash{background-position:-64px 0}.vfb-interface-conditional{background-position:-224px 0}.vfb-interface-sort{background-position:-128px 0}.vfb-interface-plus{background-position:-160px 0}.vfb-interface-minus{background-position:-192px 0}.vfb-interface-bulk-add{background-position:-96px 0}.vfb-interface-plus,.vfb-interface-minus{top:0}.addEmail,.deleteEmail{top:21px}.addEmail{right:55px}.rtl .addEmail{right:auto;left:55px}.deleteEmail{right:30px}.rtl .deleteEmail{right:auto;left:30px}.deleteOption,.vfb-interface-sort,.addCondition,.deleteCondition{top:3px}.deleteOption,.addCondition{right:25px}.rtl .deleteOption,.rtl .addCondition{right:auto;left:25px}.vfb-interface-sort,.deleteCondition{right:0}.rtl .vfb-interface-sort,.rtl .deleteCondition{right:auto;left:0}.vfb-interface-sort:hover{cursor:pointer}.ui-state-disabled .menu-item-handle{background:#dfdfdf;box-shadow:none;cursor:default}.option{float:left;width:97%;position:relative}.rtl .option{float:right}#vfb-poststuff{display:block;margin-right:300px}.rtl #vfb-poststuff{margin-right:0;margin-left:300px}#vfb-entries-body-content{float:left;width:100%}.rtl #vfb-entries-body-content{float:right}.metabox-holder #vfb-entries-body-content h3{font-weight:bold;font-family:sans-serif}#entry-edit #side-info-column{margin-right:-300px}.rtl #entry-edit #side-info-column{margin-right:0;margin-left:-300px}label.error{display:block;color:red}#visual-form-builder-update input.error,#visual-form-builder-update textarea.error,#visual-form-builder-update select.error{border:1px solid red}#vfb-menu-to-edit .menu-item-settings{width:402px}.vfb-menu-item-handle{background:white;border:1px solid #dfdfdf;border-radius:3px;height:auto;line-height:35px;overflow:hidden;padding:10px 15px;position:relative;text-shadow:0 1px 0 #fff;width:382px;word-wrap:break-word;cursor:move}.vfb-menu-item-handle:hover{border-color:#999}.admin-color-classic .vfb-menu-item-handle{background:#f5fafd;box-shadow:0 1px 0 #fff inset;border-color:#d0dfe9}.rtl .vfb-menu-item-handle{padding-left:0;padding-right:10px}.vfb-menu-item-type-fieldset,.vfb-menu-item-type-verification,#form-element-fieldset{background:#e3e3e3;box-shadow:0 1px 0 #e3e3e3 inset}.admin-color-classic .vfb-menu-item-type-fieldset,.admin-color-classic .vfb-menu-item-type-verification,.admin-color-classic #form-element-fieldset{background:#e2f3ff;box-shadow:0 1px 0 #fff inset}.vfb-menu-item-handle .item-title{min-height:20px;display:block;font-size:12px;font-weight:bold;line-height:20px;margin-right:13em}.rtl .vfb-menu-item-handle .item-title{margin-right:0;margin-left:13em}.vfb-menu-item-active .vfb-menu-item-handle{border-bottom-left-radius:0;border-bottom-right-radius:0}.sender-labels{width:80px}.is-field-required{color:#bc1212}#form-details-nav{padding-top:10px;font-size:1.0em}#form-details-nav a,.charts-nav a{padding:5px 10px;text-decoration:none;font-weight:bold}#form-details-nav a.current,.charts-nav a.current{height:40px;border-color:#dfdfdf;border-radius:5px;background-color:#777;background-image:-ms-linear-gradient(bottom,#6d6d6d,#808080);background-image:-moz-linear-gradient(bottom,#6d6d6d,#808080);background-image:-o-linear-gradient(bottom,#6d6d6d,#808080);background-image:-webkit-gradient(linear,left bottom,left top,from(#6d6d6d),to(#808080));background-image:-webkit-linear-gradient(bottom,#6d6d6d,#808080);background-image:linear-gradient(bottom,#6d6d6d,#808080);color:white;text-shadow:0 -1px 0 #333}.form-details,#form-success-message-text,#form-success-message-page,#form-success-message-redirect{display:none}.form-details-current,.active{display:block}#confirmation-message textarea,#notification textarea{width:100%;height:10em;font-family:Consolas,Monaco,monospace}#form-success-message-page,#form-success-message-redirect{margin-top:10px;width:100%}.post-body-plain ol li{list-style:decimal}#vfb-upgrade-column{display:inline;float:left;width:auto}.rtl #vfb-upgrade-column{float:right}ul#promote-vfb{margin-left:20px;list-style:disc}.rtl ul#promote-vfb{margin-left:auto;margin-right:20px}#promote-vfb li{text-align:left}.rtl #promote-vfb li{text-align:right}.menu .ui-nestedSortable-error{background-color:#fbe3e4;border-color:red;color:#8a1f11}ul#vfb-menu-to-edit ul{margin:0 0 0 25px;padding:0;width:98%;list-style-type:none}#vfb-menu-to-edit{margin-top:0;padding:1em 0}#vfb-fieldset-first-warning{display:none}.ui-state-disabled{opacity:100;filter:alpha(Opacity=100)}.vfb-details{margin-bottom:10px;padding:0 10px;border:1px solid #ccc;border-radius:3px}.vfb-details.section{width:97.55%;background-color:#efefef}.vfb-details .postbox{min-height:60px}#poststuff .vfb-details h2{margin-top:0}#poststuff h3.section-heading{padding-left:0}#form-items .tabs-panel{overflow:visible;padding:.5em 0 .5em 4px;min-height:325px;height:auto}.rtl #form-items .tabs-panel{padding:.5em 4px .5em 0}ul.vfb-fields-col-1,ul.vfb-fields-col-2{float:left;width:50%;list-style:none}.rtl ul.vfb-fields-col-1,.rtl ul.vfb-fields-col-2{float:right}#vfb-form-builder-frame.columns-1 #vfb-postbox-container-1 #form-items .tabs-panel{height:auto}.vfb-draggable-form-items{position:relative;position:relative;display:block;margin-right:8px;padding:4px 0 4px 34px;border:1px solid #bbb;border-radius:3px;color:#464646;text-align:left;text-decoration:none;font-size:12px}.rtl .vfb-draggable-form-items{margin-right:0;margin-left:8px;padding:4px 34px 4px 10px}.vfb-draggable-form-items:hover{border-color:#aaa}.vfb-draggable-form-items b{position:absolute;left:8px;display:inline-block;width:16px;height:16px;background-color:transparent;background-image:url('../images/vfb-form-items.png?d=20130712');background-repeat:no-repeat;line-height:16px}.rtl .vfb-draggable-form-items b{left:auto;right:8px}#form-element-address b{background-position:-128px 0}#form-element-autocomplete b{background-position:-384px 0}#form-element-checkbox b{background-position:-672px 0}#form-element-color b{background-position:0 0}#form-element-currency b{background-position:-64px 0}#form-element-datepicker b{background-position:-224px 0}#form-element-digits b{background-position:-832px 0}#form-element-email b{background-position:-160px 0}#form-element-file b{background-position:-512px 0}#form-element-hidden b{background-position:-544px 0}#form-element-html b{background-position:-800px 0}#form-element-instructions b{background-position:-256px 0}#form-element-ip b{background-position:-448px 0}#form-element-max b{background-position:-576px 0}#form-element-min b{background-position:-608px 0}#form-element-name b{background-position:-320px 0}#form-element-pagebreak b{background-position:-768px 0}#form-element-password b{background-position:-352px 0}#form-element-phone b{background-position:-96px 0}#form-element-radio b{background-position:-704px 0}#form-element-range b{background-position:-640px 0}#form-element-select b{background-position:-416px 0}#form-element-text b{background-position:-736px 0}#form-element-textarea b{background-position:-32px 0}#form-element-time b{background-position:-192px 0}#form-element-username b{background-position:-288px 0}#form-element-url b{background-position:-480px 0}.static-vars-inactive{display:none}.static-vars-active{display:block}.vfb-button{position:relative;display:inline-block;overflow:visible;margin:0;padding:.5em 2.5em .5em 1em;outline:0;border:1px solid #d4d4d4;border-radius:.2em;background-color:#f5f5f5;color:#333;text-decoration:none;white-space:nowrap;font:12px/normal sans-serif;cursor:pointer;zoom:1;-webkit-background-clip:padding;-moz-background-clip:padding;-o-background-clip:padding-box;*display:inline}.vfb-button:hover,.vfb-button:active,.vfb-button.current{border-color:#929292;border-bottom-color:#929292;background-color:#eee;background-image:-webkit-gradient(linear,0 0,0 100%,from(#eee),to(#ccc));background-image:-moz-linear-gradient(#eee,#ccc);background-image:-o-linear-gradient(#eee,#ccc);background-image:linear-gradient(#eee,#ccc);color:#000}.vfb-button.current{font-weight:bold}.vfb-button::-moz-focus-inner{padding:0;border:0}.vfb-button.vfb-settings:hover,.vfb-button.vfb-settings:focus,.vfb-button.vfb-settings:active{color:#3072b3}.vfb-button.vfb-delete:hover,.vfb-button.vfb-delete:focus,.vfb-button.vfb-delete:active{color:#900}.vfb-button.vfb-duplicate:hover,.vfb-button.vfb-duplicate:focus,.vfb-button.vfb-duplicate:active{color:#008e0d}.vfb-button-group{display:inline-block;margin:10px 0;list-style:none}.rtl .vfb-button-group{margin-left:-2px}.vfb-button-group .vfb-button{float:left;margin-right:5px}.rtl .vfb-button-group .vfb-button{float:right;margin-right:0;margin-left:5px}.vfb-button-group .button-primary{margin-top:2px}.vfb-item-actions{margin-right:10px;margin-bottom:10px;text-align:center}.rtl .vfb-item-actions{margin-right:0;margin-left:10px}.vfb-item-actions .vfb-delete{float:left}.rtl .vfb-item-actions .vfb-delete{float:right}.vfb-item-actions .vfb-conditional-fields{float:right}.rtl .vfb-item-actions .vfb-conditional-fields{float:left}.vfb-item-actions .vfb-delete,.vfb-item-actions .vfb-duplicate,.vfb-item-actions .vfb-conditional-fields{margin-top:10px}#form-settings{display:none;width:100%;max-width:460px;margin-bottom:15px;border-bottom:1px solid #d6d6d6}#form-settings.current{display:block}.form-details{padding:20px;background:#fff;background:rgba(255,255,255,0.5);border-left:1px solid #d6d6d6;border-right:1px solid #d6d6d6}.form-details.on{display:block}.settings-links{position:relative;z-index:1;display:block;padding:5px 15px;height:25px;background:#f5f5f5;border-top:1px solid #ccc;border-left:1px solid #ccc;border-right:1px solid #ccc;color:#333;text-decoration:none;text-transform:uppercase;text-shadow:0 1px 0 #fff;font-weight:normal;font-size:15px;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;line-height:25px;cursor:pointer}.settings-links .vfb-large-arrow{position:absolute;top:16px;right:25px;width:5px;height:0;z-index:1}.settings-links .vfb-large-arrow:after{content:'';width:0;height:0;border-color:#ccc transparent;border-style:solid;border-width:6px 6px 0;position:absolute;z-index:1}.rtl .settings-links .vfb-large-arrow{right:auto;left:13px}.settings-links.on{border-bottom:1px solid #808080}.settings-links:hover,.settings-links.on{background:#808080;color:#fff;text-shadow:0 -1px 0 #333}.settings-links:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.vfb-tooltip{position:relative;float:right;margin-right:2px;width:16px;height:16px;cursor:pointer}.rtl .vfb-tooltip{float:left;margin-right:0;margin-left:2px}.tooltip{position:absolute;top:-40px;z-index:200;display:none;padding:5px 20px;width:250px;border:2px solid #333;border-radius:5px;background:#222;box-shadow:0 0 7px black;color:white;text-indent:0;font-style:normal}.tooltip h3,.vfb-tooltip .tooltip h3{margin:5px 0;padding:0 0 6px 0;border-bottom:1px solid white;font-weight:normal;font-size:13px;font-family:sans-serif;color:white}.tooltip p{margin-top:10px;font-size:12px;color:white}.vfb-add-options-group{display:inline-block;margin:10px 0;list-style:none;text-align:center;width:95%}.vfb-add-options-group .vfb-interface-plus{top:4px}.vfb-export-label{width:10em;float:left}.rtl .vfb-export-label{float:right}#vfb-export-entries-fields{height:275px;width:300px;overflow:auto;display:block;border:1px solid #e8e8e8;border-radius:3px;margin-left:10em;padding:5px;background:white}#vfb-export-select-all,#vfb-export-unselect-all{width:150px;display:inline-block;text-align:left}#vfb-export-unselect-all{text-align:right;margin-left:5px}@media print{body *{float:none}html,.wrap,#wpbody-content,#vfb-poststuff{background:none!important;padding:0;margin:0;height:auto}#wpadminbar,#adminmenuwrap,#adminmenushadow,#adminmenuback,.screen-reader-shortcut,#screen-meta,#screen-meta-links,#wpfooter,#icon-options-general,.wrap h2,.view-entry,#major-publishing-actions,.clear{display:none}#wpcontent,body #wpcontent{margin-left:0;width:auto;height:auto}#entry-edit h3 span{font-size:23px;font-weight:normal}#vfb-poststuff{page-break-after:auto}#vfb-entries-body-content{width:100%;height:auto;margin:0 0 50px 0;padding:0}#side-info-column{width:100%;height:auto;float:none}#side-info-column .postbox .inside{margin:0;padding:0}#minor-publishing,.misc-pub-section,#submitdiv,#submitdiv h3{background:none!important;border:0;margin:0}#submitdiv h3 span{font-family:sans-serif;font-size:16px}.inner-sidebar #side-sortables,.columns-2 .inner-sidebar #side-sortables{margin:0;padding:0;width:auto}table{page-break-inside:auto}tr textarea{overflow:visible}}@media print,(-o-min-device-pixel-ratio:5/4),(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.vfb-interface-icon{top:5px;background-image:url('../images/vfb-interface-icons-2x.png?d=20130712');background-size:cover}.vfb-draggable-form-items b{background-image:url('../images/vfb-form-items-2x.png?d=20130712');background-size:cover}.vfb-add-options-group .vfb-interface-plus{top:5px}.addEmail,.deleteEmail{top:22px}.item-edit{background-image:url('../images/arrows-2x.png?d=20130611');background-size:15px 123px}.admin-color-classic .item-edit{background-image:url('../images/arrows-vs-2x.png?d=20130611');background-size:15px 123px}.item-edit:hover{background-image:url('../images/arrows-dark-2x.png?d=20130611');background-size:15px 123px}.admin-color-classic .item-edit:hover{background-image:url('../images/arrows-dark-vs-2x.png?d=20130611');background-size:15px 123px}.item-edit.opened{background-image:url('../images/arrows-2x.png?d=20130611');background-size:15px 123px}.admin-color-classic .item-edit.opened{background-image:url('../images/arrows-vs-2x.png?d=20130611');background-size:15px 123px}.item-edit.opened:hover{background-image:url('../images/arrows-dark-2x.png?d=20130611');background-size:15px 123px}.admin-color-classic .item-edit.opened:hover{background-image:url('../images/arrows-dark-vs-2x.png?d=20130611');background-size:15px 123px}.button-icon.vfb-small-arrow{background-image:url('../images/arrows-2x.png?d=20130611');background-size:15px 123px}.admin-color-classic .button-icon.vfb-small-arrow{background-image:url('../images/arrows-vs-2x.png?d=20130611');background-size:15px 123px}.current .button-icon.vfb-small-arrow{background-image:url('../images/arrows-2x.png?d=20130611');background-size:15px 123px}.admin-color-classic .current .button-icon.vfb-small-arrow{background-image:url('../images/arrows-vs.png?d=20130611');background-size:15px 123px}}
1
+ .vfb-pro-call-to-action{padding:5px 0;text-align:center}.vfb-btn{display:inline-block;*display:inline;*zoom:1;padding:15px 10px;margin-bottom:0;line-height:20px;text-align:center;vertical-align:middle;cursor:pointer;color:#333;font-size:21px;font-weight:500;text-shadow:0 1px 1px rgba(255,255,255,0.75);background-color:#f5f5f5;background-repeat:repeat-x;border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);*background-color:#e6e6e6;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);border:1px solid #ccc;*border:0;border-bottom-color:#b3b3b3;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;*margin-left:.3em;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05);text-decoration:none}.vfb-btn:hover,.vfb-btn:focus{color:#333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.vfb-btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.vfb-btn.active,.vfb-btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05)}.vfb-btn-primary.active{color:rgba(255,255,255,0.75)}.vfb-btn-primary{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#006dcc;background-image:-moz-linear-gradient(top,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0044cc',GradientType=0);border-color:#04c #0044cc #002a80;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);*background-color:#04c;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false)}.vfb-btn-primary:hover,.vfb-btn-primary:focus,.vfb-btn-primary:active,.vfb-btn-primary.active,.vfb-btn-primary.disabled,.vfb-btn-primary[disabled]{color:#fff;background-color:#04c;*background-color:#003bb3}.vfb-btn-primary:active,.vfb-btn-primary.active{background-color:#039 \9}.vfb-btn-inverse{background-color:#363636;background-repeat:repeat-x;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.vfb-btn-inverse:hover,.vfb-btn-inverse:focus,.vfb-btn-inverse:active,.vfb-btn-inverse.active,.vfb-btn-inverse.disabled,.vfb-btn-inverse[disabled]{background-color:#222;color:#fff}.vfb-pro-call-to-action .cta-sign-up{color:#fff;display:block;font-size:24px;font-weight:bold;text-align:center;text-decoration:none;text-shadow:1px 1px 1px #2b658c;width:100%;line-height:22px}.vfb-pro-call-to-action .cta-price{color:#ace7ff;display:block;font-size:12px;font-weight:normal;line-height:20px;text-align:center;text-decoration:none;width:100%;line-height:20px}.vfb-pro-upgrade{display:inline;float:left;padding:10px;margin-bottom:20px;background-color:#d3e7ee;border:1px solid #21759b;border-radius:5px}.rtl .vfb-pro-upgrade{float:right}.vfb-pro-upgrade h2,.wrap .vfb-pro-upgrade h2{font-size:23px;font-weight:500;padding:5px 0;text-align:center}.vfb-pro-upgrade h2 a{text-decoration:none}.vfb-pro-upgrade ul{list-style:outside;margin-left:10px}.rtl .vfb-pro-upgrade ul{margin-left:0;margin-right:10px}#vfb-form-builder-frame{display:block;margin:0 -8px 0 290px}.rtl #vfb-form-builder-frame{margin:0 290px 0 -8px}#vfb-form-builder-frame:after,#form-editor-header .vfb-major-publishing-actions:after,#form-editor-footer .vfb-major-publishing-actions:after,#vfb-form-builder-frame .menu-item-settings:after,#vfb-form-list:after,.option:after{display:block;visibility:hidden;clear:both;height:0;content:"."}#vfb-form-builder-sidebar{clear:both;width:281px}#vfb-form-builder-management{position:relative;margin-right:10px}.rtl #vfb-form-builder-management{margin-right:0;margin-left:10px}#vfb-form-builder-management .form-edit{margin-bottom:20px;border:1px solid #dfdfdf;border-radius:3px}.admin-color-classic #vfb-form-builder-management .form-edit{border-color:#d0dfe9}#form-editor-header,#form-editor-footer{padding:0 10px;background-color:#f1f1f1}#form-editor-footer{border-top:1px solid #dfdfdf}.admin-color-classic #form-editor-header,.admin-color-classic #form-editor-footer{background-color:#f5fafd}.admin-color-class #form-editor-footer{border-top-color:#d0dfe9}.vfb-major-publishing-actions{clear:both;padding:3px 0 5px}.vfb-major-publishing-actions .publishing-action{float:right;margin:5px 0 1px;text-align:right;line-height:23px}#form-editor-header .publishing-action{margin-top:12px}.sub-navigation{float:none;margin:8px 0 5px;padding:0;list-style:none;white-space:nowrap;font-size:12px}.sub-navigation li{display:inline;margin:0;padding:0}.sub-navigation a{padding:.2em;text-decoration:none;line-height:2}.sub-navigation a.current{border:medium none;background:0;color:black;font-weight:bold}.sub-navigation a:hover{color:#d54e21}#vfb-sidebar,#vfb-main{float:left;margin:10px 0;width:280px}.rtl #vfb-sidebar,.rtl #vfb-main{float:right}#vfb-main{width:auto}#vfb-main.vfb-order-type-list{width:100%}#vfb-main p a,#vfb-main h3 a{text-decoration:none}#vfb-main .submitdelete{color:#bc0b0b;text-decoration:none}#vfb-main .submitdelete:hover{color:red}#vfb-sidebar{margin-left:-300px}.rtl #vfb-sidebar{margin-left:0;margin-right:-300px}#vfb-form-list{display:block;margin-left:300px}.rtl #vfb-form-list{margin-left:0;margin-right:300px}.vfb-box{position:relative;float:left;padding:0 10px;border:1px solid #dfdfdf;border-radius:3px 3px 3px 3px;background-color:#f5f5f5;background:-moz-linear-gradient(top,#fff 0,#f5f5f5 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#fff),color-stop(100%,#f5f5f5));background:-webkit-linear-gradient(top,#fff 0,#f5f5f5 100%);background:-o-linear-gradient(top,#fff 0,#f5f5f5 100%);background:-ms-linear-gradient(top,#fff 0,#f5f5f5 100%);background:linear-gradient(to bottom,#fff 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff',endColorstr='#f5f5f5',GradientType=0);box-shadow:0 1px 0 #fff inset;line-height:1.4em}.vfb-form-alpha-list{width:70%;float:left;padding-right:20px}.rtl .vfb-form-alpha-list{float:right;padding-right:0;padding-left:20px}.vfb-form-alpha-list hr{display:block;margin:1em 0;padding:0;height:1px;border:0;border-top:1px solid #ccc}.vfb-form-alpha-group .letter,.wrap h2.letter{float:left;padding:0;color:#666;font-size:14px;line-height:17px}.vfb-form-alpha-form{display:block;margin:10px 0;padding-left:150px;width:auto}.vfb-form-alpha-form h3{float:left;margin:0;width:50%;word-wrap:break-word;font-size:17px}.vfb-form-alpha-form .vfb-publishing-actions,.vfb-form-alpha-form .vfb-form-meta{float:left;width:20%;text-align:center}.vfb-form-alpha-form .vfb-form-meta{width:30%}.vfb-form-alpha-form .vfb-publishing-actions p,.vfb-form-alpha-form .vfb-form-meta p{margin:0}.vfb-form-alpha-form .vfb-form-meta,.vfb-form-alpha-form .paypal{float:left;margin:0;text-align:left}.rtl .vfb-form-alpha-form .vfb-form-meta,.rtl .vfb-form-alpha-form .paypal{float:right;text-align:right}.vfb-sortable-placeholder{display:block;height:35px;width:400px;margin:8px;border:1px dashed #bbb;background-color:#f5f5f5}#vfb-main .vfb-sortable-placeholder{float:left;margin:8px;height:200px;width:210px}.rtl #vfb-main .vfb-sortable-placeholder{float:right}#vfb-menu-to-edit .mjs-nestedSortable-error{border-color:red;background-color:#fbe3e4;color:#8a1f11}.vfb-meta-entries-total span,.vfb-meta-entries-total-today span{font-size:11px;font-weight:bold;height:1.4em;line-height:1.4em;min-width:.7em;padding:0 6px;display:inline-block;border-radius:5px;background-color:#bbb;color:white;text-align:center}.vfb-meta-entries-total:hover span,.vfb-meta-entries-total-today:hover span{background-color:#d54e21}.fixed .column-entries,.fixed .column-form_id{width:8em}strong .vfb-meta-entries-total span{background-color:#21759b}.entries-count-wrapper{font-family:sans-serif;min-width:22px;padding-bottom:1px}#new-form{margin:8px 0;padding-top:10px;width:75px;height:105px;text-align:center}#new-form a{display:block;width:auto;text-decoration:none}#post-body{padding:10px;background:white}.vfb-postbox-container{float:left;margin:0 8px;width:100%}.rtl .vfb-postbox-container{float:right}#vfb-postbox-container-1 .postbox{min-width:281px}#vfb-postbox-container-2{min-width:485px}#vfb-form-builder-frame.columns-1{margin-left:-8px}.rtl #vfb-form-builder-frame.columns-1{margin-left:0;margin-right:-8px}#vfb-form-builder-frame.columns-1 #vfb-postbox-container-1{float:none}#vfb-form-builder-frame.columns-1 #vfb-postbox-container-2{width:99%}#vfb-form-builder-frame.columns-2 #vfb-postbox-container-3{display:none}#vfb-form-builder-frame.columns-2 #vfb-postbox-container-1,#vfb-form-builder-frame.columns-3 #vfb-postbox-container-1{margin-left:-290px;width:281px}.rtl #vfb-form-builder-frame.columns-2 #vfb-postbox-container-1,.rtl #vfb-form-builder-frame.columns-3 #vfb-postbox-container-1{margin-left:0;margin-right:-290px}#vfb-form-builder-frame.columns-3 #vfb-form-builder-management{margin-right:0}#vfb-form-builder-frame.columns-3 #vfb-postbox-container-2{width:30%}#vfb-form-builder-frame.columns-3 #vfb-postbox-container-3{display:inline;margin-right:0;width:46.5%}.rtl #vfb-form-builder-frame.columns-3 #vfb-postbox-container-3{margin-right:0;margin-left:0}#vfb-form-meta-preview iframe{width:100%;height:100%}#vfb_form_media_button_tip input{width:100%;border:0;padding:6px;font-family:Consolas,Monaco,monospace;font-size:12px}@media only screen and (max-width:799px){#vfb-form-builder-frame .vfb-postbox-container{width:100%}.columns-prefs .columns-prefs-3{display:none}}@media only screen and (min-width:800px) and (max-width:1200px){#vfb-form-builder-frame .vfb-postbox-container{width:49.5%}#vfb-form-builder-frame.columns-3 #vfb-postbox-container-2,#vfb-form-builder-frame.columns-3 #vfb-postbox-container-3{width:50.5%}#vfb-form-builder-frame.columns-1 .vfb-postbox-container{width:100%}}@media only screen and (min-width:1600px){#vfb-form-builder-frame.columns-3 #vfb-postbox-container-3{width:58%}}.item-edit{position:absolute;top:3px;right:-20px;display:block;overflow:hidden;width:30px;height:40px;background:url('../images/arrows.png?d=20130703') no-repeat scroll 8px 10px transparent;text-indent:-999em}.admin-color-classic .item-edit{background:url('../images/arrows-vs.png?d=20130703') no-repeat scroll 8px 10px transparent}.rtl .item-edit{right:auto;left:-20px}.item-edit:hover{background:url('../images/arrows-dark.png?d=20130703') no-repeat scroll 8px 10px transparent}.admin-color-classic .item-edit:hover{background:url('../images/arrows-dark-vs.png?d=20130703') no-repeat scroll 8px 10px transparent}.item-edit.opened{background:url('../images/arrows.png?d=20130703') no-repeat scroll 8px -25px transparent}.admin-color-classic .item-edit.opened{background:url('../images/arrows-vs.png?d=20130703') no-repeat scroll 8px -25px transparent}.item-edit.opened:hover{background:url('../images/arrows-dark.png?d=20130703') no-repeat scroll 8px -25px transparent}.admin-color-classic .item-edit.opened:hover{background:url('../images/arrows-dark-vs.png?d=20130703') no-repeat scroll 8px -25px transparent}.option .widefat,.options-other-show .widefat,.options-other-hide .widefat{margin:0 6px 7px 0;width:320px}.rtl .option .widefat,.rtl .options-other-show .widefat,.rtl .options-other-hide .widefat{margin:0 0 7px 6px}#form-settings .description-thin{margin:12px 10px 12px 0}.rtl #form-settings .description-thin{margin:12px 0 12px 10px}.description-thin,.description-wide{float:left;margin-right:10px}.rtl .description-thin,.rtl .description-wide{float:right;margin-right:0;margin-left:10px}.description-thin{width:190px;height:40px}.description-wide{width:390px}.vfb-interface-icon{position:absolute;top:4px;right:4px;display:inline-block;width:16px;height:16px;background-color:transparent;background-image:url('../images/vfb-interface-icons.png?d=20130713');background-repeat:no-repeat;text-indent:-9999px}.vfb-interface-settings{background-position:-32px 0}.vfb-interface-duplicate{background-position:0 0}.vfb-interface-trash{background-position:-64px 0}.vfb-interface-conditional{background-position:-224px 0}.vfb-interface-sort{background-position:-128px 0}.vfb-interface-plus{background-position:-160px 0}.vfb-interface-minus{background-position:-192px 0}.vfb-interface-bulk-add{background-position:-96px 0}.vfb-interface-plus,.vfb-interface-minus{top:0}.addEmail,.deleteEmail{top:28px}.addEmail{right:55px}.rtl .addEmail{right:auto;left:55px}.deleteEmail{right:30px}.rtl .deleteEmail{right:auto;left:30px}.deleteOption,.vfb-interface-sort,.addCondition,.deleteCondition{top:3px}.deleteOption,.addCondition{right:25px}.rtl .deleteOption,.rtl .addCondition{right:auto;left:25px}.vfb-interface-sort,.deleteCondition{right:0}.rtl .vfb-interface-sort,.rtl .deleteCondition{right:auto;left:0}.vfb-interface-sort:hover{cursor:pointer}.option{float:left;width:97%;position:relative}.rtl .option{float:right}#vfb-poststuff{display:block;margin-right:300px}.rtl #vfb-poststuff{margin-right:0;margin-left:300px}#vfb-entries-body-content{float:left;width:100%}.rtl #vfb-entries-body-content{float:right}.metabox-holder #vfb-entries-body-content h3{font-weight:bold;font-family:sans-serif}#entry-edit #side-info-column{margin-right:-300px}.rtl #entry-edit #side-info-column{margin-right:0;margin-left:-300px}label.error{display:block;color:red}#visual-form-builder-update input.error,#visual-form-builder-update textarea.error,#visual-form-builder-update select.error{border:1px solid red}#vfb-menu-to-edit .menu-item-settings{width:402px}.vfb-menu-item-handle{background:white;border:1px solid #dfdfdf;border-radius:3px;height:auto;line-height:35px;overflow:hidden;padding:10px 15px;position:relative;text-shadow:0 1px 0 #fff;width:382px;word-wrap:break-word;cursor:move}.vfb-menu-item-handle:hover{border-color:#999}.admin-color-classic .vfb-menu-item-handle{background:#f5fafd;box-shadow:0 1px 0 #fff inset;border-color:#d0dfe9}.rtl .vfb-menu-item-handle{padding-left:0;padding-right:10px}.vfb-menu-item-type-fieldset,.vfb-menu-item-type-verification,#form-element-fieldset{background:#e3e3e3;box-shadow:0 1px 0 #e3e3e3 inset}.admin-color-classic .vfb-menu-item-type-fieldset,.admin-color-classic .vfb-menu-item-type-verification,.admin-color-classic #form-element-fieldset{background:#e2f3ff;box-shadow:0 1px 0 #fff inset}.vfb-menu-item-handle .item-title{min-height:20px;display:block;font-size:12px;font-weight:bold;line-height:20px;margin-right:13em}.rtl .vfb-menu-item-handle .item-title{margin-right:0;margin-left:13em}.vfb-menu-item-active .vfb-menu-item-handle{border-bottom-left-radius:0;border-bottom-right-radius:0}.sender-labels{width:80px}.is-field-required{color:#bc1212}#form-details-nav{padding-top:10px;font-size:1.0em}#form-details-nav a,.charts-nav a{padding:5px 10px;text-decoration:none;font-weight:bold}#form-details-nav a.current,.charts-nav a.current{height:40px;border-color:#dfdfdf;border-radius:5px;background-color:#777;background-image:-ms-linear-gradient(bottom,#6d6d6d,#808080);background-image:-moz-linear-gradient(bottom,#6d6d6d,#808080);background-image:-o-linear-gradient(bottom,#6d6d6d,#808080);background-image:-webkit-gradient(linear,left bottom,left top,from(#6d6d6d),to(#808080));background-image:-webkit-linear-gradient(bottom,#6d6d6d,#808080);background-image:linear-gradient(bottom,#6d6d6d,#808080);color:white;text-shadow:0 -1px 0 #333}.form-details,#form-success-message-text,#form-success-message-page,#form-success-message-redirect{display:none}.form-details-current,.active{display:block}#confirmation-message textarea,#notification textarea{width:100%;height:10em;font-family:Consolas,Monaco,monospace}#form-success-message-page,#form-success-message-redirect{margin-top:10px;width:100%}.post-body-plain ol li{list-style:decimal}#vfb-upgrade-column{display:inline;float:left;width:auto}.rtl #vfb-upgrade-column{float:right}ul#promote-vfb{margin-left:20px;list-style:disc}.rtl ul#promote-vfb{margin-left:auto;margin-right:20px}#promote-vfb li{text-align:left}.rtl #promote-vfb li{text-align:right}.menu .ui-nestedSortable-error{background-color:#fbe3e4;border-color:red;color:#8a1f11}ul#vfb-menu-to-edit ul{margin:0 0 0 25px;padding:0;width:98%;list-style-type:none}#vfb-menu-to-edit{margin-top:0;padding:1em 0}#vfb-fieldset-first-warning{display:none}.ui-state-disabled,.ui-state-disabled dl,.ui-state-disabled dt,.form-item.ui-state-disabled{opacity:100;filter:alpha(Opacity=100);background-image:none}.ui-state-disabled .vfb-menu-item-handle,.ui-state-disabled .menu-item-handle{background:#dfdfdf;box-shadow:none;cursor:default}.vfb-details{margin-bottom:10px;padding:0 10px;border:1px solid #ccc;border-radius:3px}.vfb-details.section{width:97.55%;background-color:#efefef}.vfb-details .postbox{min-height:60px}#poststuff .vfb-details h2{margin-top:0}#poststuff h3.section-heading{padding-left:0}#form-items .tabs-panel{overflow:visible;padding:.5em 0 .5em 4px;min-height:325px;height:auto}.rtl #form-items .tabs-panel{padding:.5em 4px .5em 0}ul.vfb-fields-col-1,ul.vfb-fields-col-2{float:left;width:50%;list-style:none}.rtl ul.vfb-fields-col-1,.rtl ul.vfb-fields-col-2{float:right}#vfb-form-builder-frame.columns-1 #vfb-postbox-container-1 #form-items .tabs-panel{height:auto}.vfb-draggable-form-items{position:relative;position:relative;display:block;margin-right:8px;padding:4px 0 4px 34px;border:1px solid #bbb;border-radius:3px;color:#464646;text-align:left;text-decoration:none;font-size:12px}.rtl .vfb-draggable-form-items{margin-right:0;margin-left:8px;padding:4px 34px 4px 10px}.vfb-draggable-form-items:hover{border-color:#aaa}.vfb-draggable-form-items b{position:absolute;left:8px;display:inline-block;width:16px;height:16px;background-color:transparent;background-image:url('../images/vfb-form-items.png?d=20130712');background-repeat:no-repeat;line-height:16px}.rtl .vfb-draggable-form-items b{left:auto;right:8px}#form-element-address b{background-position:-128px 0}#form-element-autocomplete b{background-position:-384px 0}#form-element-checkbox b{background-position:-672px 0}#form-element-color b{background-position:0 0}#form-element-currency b{background-position:-64px 0}#form-element-datepicker b{background-position:-224px 0}#form-element-digits b{background-position:-832px 0}#form-element-email b{background-position:-160px 0}#form-element-file b{background-position:-512px 0}#form-element-hidden b{background-position:-544px 0}#form-element-html b{background-position:-800px 0}#form-element-instructions b{background-position:-256px 0}#form-element-ip b{background-position:-448px 0}#form-element-max b{background-position:-576px 0}#form-element-min b{background-position:-608px 0}#form-element-name b{background-position:-320px 0}#form-element-pagebreak b{background-position:-768px 0}#form-element-password b{background-position:-352px 0}#form-element-phone b{background-position:-96px 0}#form-element-radio b{background-position:-704px 0}#form-element-range b{background-position:-640px 0}#form-element-select b{background-position:-416px 0}#form-element-text b{background-position:-736px 0}#form-element-textarea b{background-position:-32px 0}#form-element-time b{background-position:-192px 0}#form-element-username b{background-position:-288px 0}#form-element-url b{background-position:-480px 0}.static-vars-inactive{display:none}.static-vars-active{display:block}.vfb-button{position:relative;display:inline-block;overflow:visible;margin:0;padding:.5em 2.5em .5em 1em;outline:0;border:1px solid #d4d4d4;border-radius:.2em;background-color:#f5f5f5;color:#333;text-decoration:none;white-space:nowrap;font:12px/normal sans-serif;cursor:pointer;zoom:1;-webkit-background-clip:padding;-moz-background-clip:padding;-o-background-clip:padding-box;*display:inline}.vfb-button:hover,.vfb-button:active,.vfb-button.current{border-color:#929292;border-bottom-color:#929292;background-color:#eee;background-image:-webkit-gradient(linear,0 0,0 100%,from(#eee),to(#ccc));background-image:-moz-linear-gradient(#eee,#ccc);background-image:-o-linear-gradient(#eee,#ccc);background-image:linear-gradient(#eee,#ccc);color:#000}.vfb-button.current{font-weight:bold}.vfb-button::-moz-focus-inner{padding:0;border:0}.vfb-button.vfb-settings:hover,.vfb-button.vfb-settings:focus,.vfb-button.vfb-settings:active{color:#3072b3}.vfb-button.vfb-delete:hover,.vfb-button.vfb-delete:focus,.vfb-button.vfb-delete:active{color:#900}.vfb-button.vfb-duplicate:hover,.vfb-button.vfb-duplicate:focus,.vfb-button.vfb-duplicate:active{color:#008e0d}.vfb-button-group{display:inline-block;margin:10px 0;list-style:none}.rtl .vfb-button-group{margin-left:-2px}.vfb-button-group .vfb-button{float:left;margin-right:5px}.rtl .vfb-button-group .vfb-button{float:right;margin-right:0;margin-left:5px}.vfb-button-group .button-primary{margin-top:2px}.vfb-item-actions{margin-right:10px;margin-bottom:10px;text-align:center}.rtl .vfb-item-actions{margin-right:0;margin-left:10px}.vfb-item-actions .vfb-delete{float:left}.rtl .vfb-item-actions .vfb-delete{float:right}.vfb-item-actions .vfb-conditional-fields{float:right}.rtl .vfb-item-actions .vfb-conditional-fields{float:left}.vfb-item-actions .vfb-delete,.vfb-item-actions .vfb-duplicate,.vfb-item-actions .vfb-conditional-fields{margin-top:10px}#form-settings{display:none;width:100%;max-width:460px;margin-bottom:15px;border-bottom:1px solid #d6d6d6}#form-settings.current{display:block}.form-details{padding:20px;background:#fff;background:rgba(255,255,255,0.5);border-left:1px solid #d6d6d6;border-right:1px solid #d6d6d6}.form-details.on{display:block}.settings-links{position:relative;z-index:1;display:block;padding:5px 15px;height:25px;background:#f5f5f5;border-top:1px solid #ccc;border-left:1px solid #ccc;border-right:1px solid #ccc;color:#333;text-decoration:none;text-transform:uppercase;text-shadow:0 1px 0 #fff;font-weight:normal;font-size:15px;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;line-height:25px;cursor:pointer}.settings-links .vfb-large-arrow{position:absolute;top:16px;right:25px;width:5px;height:0;z-index:1}.settings-links .vfb-large-arrow:after{content:'';width:0;height:0;border-color:#ccc transparent;border-style:solid;border-width:6px 6px 0;position:absolute;z-index:1}.rtl .settings-links .vfb-large-arrow{right:auto;left:13px}.settings-links.on{border-bottom:1px solid #808080}.settings-links:hover,.settings-links.on{background:#808080;color:#fff;text-shadow:0 -1px 0 #333}.settings-links:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.vfb-tooltip{position:relative;float:right;margin-right:2px;width:16px;height:16px;cursor:pointer}.rtl .vfb-tooltip{float:left;margin-right:0;margin-left:2px}.vfb-tooltip-popup{position:absolute;top:-40px;z-index:200;display:none;padding:5px 20px;width:250px;border:2px solid #333;border-radius:5px;background:#222;box-shadow:0 0 7px black;color:white;text-indent:0;font-style:normal}.vfb-tooltip-popup h3,.vfb-tooltip .vfb-tooltip-popup h3{margin:5px 0;padding:0 0 6px 0;border-bottom:1px solid white;color:white;font-weight:normal;font-size:13px;font-family:sans-serif}.vfb-tooltip-popup p{margin-top:1 0;color:white;font-size:12px}.vfb-add-options-group{display:inline-block;margin:10px 0;list-style:none;text-align:center;width:95%}.vfb-add-options-group .vfb-interface-plus{top:4px}.vfb-export-label{width:10em;float:left}.rtl .vfb-export-label{float:right}#vfb-export-entries-fields{height:275px;width:300px;overflow:auto;display:block;border:1px solid #e8e8e8;border-radius:3px;margin-left:10em;padding:5px;background:white}#vfb-export-select-all,#vfb-export-unselect-all{width:150px;display:inline-block;text-align:left}#vfb-export-unselect-all{text-align:right;margin-left:5px}@media print{body *{float:none}html,.wrap,#wpbody-content,#vfb-poststuff{background:none!important;padding:0;margin:0;height:auto}#wpadminbar,#adminmenuwrap,#adminmenushadow,#adminmenuback,.screen-reader-shortcut,#screen-meta,#screen-meta-links,#wpfooter,#icon-options-general,.wrap h2,.view-entry,#major-publishing-actions,.clear{display:none}#wpcontent,body #wpcontent{margin-left:0;width:auto;height:auto}#entry-edit h3 span{font-size:23px;font-weight:normal}#vfb-poststuff{page-break-after:auto}#vfb-entries-body-content{width:100%;height:auto;margin:0 0 50px 0;padding:0}#side-info-column{width:100%;height:auto;float:none}#side-info-column .postbox .inside{margin:0;padding:0}#minor-publishing,.misc-pub-section,#submitdiv,#submitdiv h3{background:none!important;border:0;margin:0}#submitdiv h3 span{font-family:sans-serif;font-size:16px}.inner-sidebar #side-sortables,.columns-2 .inner-sidebar #side-sortables{margin:0;padding:0;width:auto}table{page-break-inside:auto}tr textarea{overflow:visible}}@media print,(-o-min-device-pixel-ratio:5/4),(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.vfb-interface-icon{top:5px;background-image:url('../images/vfb-interface-icons-2x.png?d=20130712');background-size:cover}.vfb-draggable-form-items b{background-image:url('../images/vfb-form-items-2x.png?d=20130712');background-size:cover}.vfb-add-options-group .vfb-interface-plus{top:5px}.addEmail,.deleteEmail{top:28px}.item-edit{background-image:url('../images/arrows-2x.png?d=20130611');background-size:15px 123px}.admin-color-classic .item-edit{background-image:url('../images/arrows-vs-2x.png?d=20130611');background-size:15px 123px}.item-edit:hover{background-image:url('../images/arrows-dark-2x.png?d=20130611');background-size:15px 123px}.admin-color-classic .item-edit:hover{background-image:url('../images/arrows-dark-vs-2x.png?d=20130611');background-size:15px 123px}.item-edit.opened{background-image:url('../images/arrows-2x.png?d=20130611');background-size:15px 123px}.admin-color-classic .item-edit.opened{background-image:url('../images/arrows-vs-2x.png?d=20130611');background-size:15px 123px}.item-edit.opened:hover{background-image:url('../images/arrows-dark-2x.png?d=20130611');background-size:15px 123px}.admin-color-classic .item-edit.opened:hover{background-image:url('../images/arrows-dark-vs-2x.png?d=20130611');background-size:15px 123px}.button-icon.vfb-small-arrow{background-image:url('../images/arrows-2x.png?d=20130611');background-size:15px 123px}.admin-color-classic .button-icon.vfb-small-arrow{background-image:url('../images/arrows-vs-2x.png?d=20130611');background-size:15px 123px}.current .button-icon.vfb-small-arrow{background-image:url('../images/arrows-2x.png?d=20130611');background-size:15px 123px}.admin-color-classic .current .button-icon.vfb-small-arrow{background-image:url('../images/arrows-vs.png?d=20130611');background-size:15px 123px}}
css/visual-form-builder.css CHANGED
@@ -10,12 +10,12 @@ form.visual-form-builder{
10
  }
11
 
12
  form.visual-form-builder li{
13
- margin: 0;
14
- width:auto !important;
15
- background: none;
16
- list-style: none;
17
- list-style-type: none;
18
- list-style-image: none;
19
  clear: both;
20
  }
21
 
@@ -51,22 +51,22 @@ form.visual-form-builder li{
51
  .entry-content .visual-form-builder ol,
52
  .comment-content .visual-form-builder ol,
53
  .mu_register .visual-form-builder ol {
54
- margin:0 14px;
55
- padding:0;
56
- background: none;
57
- list-style: none;
58
- list-style-type: none;
59
- list-style-image: none;
60
- font-size:13px;
61
  line-height: inherit;
62
  }
63
 
64
  .visual-form-builder ul li {
65
- margin: 0;
66
- background: none;
67
- list-style: none;
68
- list-style-type: none;
69
- list-style-image: none;
70
  }
71
 
72
  .visual-form-builder ul li:before {
@@ -78,13 +78,13 @@ form.visual-form-builder li{
78
  .comment-content .visual-form-builder li,
79
  .mu_register .visual-form-builder li {
80
  clear: both;
81
- margin: 0;
82
- padding: 6px 1% 9px;
83
  width: 64%;
84
- background: none;
85
- list-style: none;
86
- list-style-type: none;
87
- list-style-image: none;
88
  }
89
 
90
  .visual-form-builder li:before,
@@ -130,7 +130,7 @@ span.vfb-full select{
130
  .visual-form-builder span.vfb-left input,
131
  .visual-form-builder span.vfb-left input[type="text"],
132
  .visual-form-builder span.vfb-left select{
133
- width:100%;
134
  }
135
 
136
  /* !Time Field */
@@ -170,8 +170,8 @@ span.vfb-full select{
170
  }
171
 
172
  .visual-form-builder .vfb-legend h3 {
173
- margin:0;
174
- padding:0;
175
  font-size:20px;
176
  line-height: 2.0em;
177
  }
@@ -244,12 +244,12 @@ textarea.vfb-textarea {
244
  background: none repeat scroll 0 0 #FAFAFA;
245
 
246
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
247
- -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
248
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
249
  -webkit-transition: border linear .2s, box-shadow linear .2s;
250
- -moz-transition: border linear .2s, box-shadow linear .2s;
251
- -o-transition: border linear .2s, box-shadow linear .2s;
252
- transition: border linear .2s, box-shadow linear .2s;
253
  }
254
 
255
  input.vfb-text:focus,
@@ -264,8 +264,8 @@ textarea.vfb-textarea {
264
  border-color: rgba(82, 168, 236, 0.8);
265
 
266
  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);
267
- -moz-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);
268
- box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);
269
  }
270
 
271
  input.vfb-text.vfb-error:focus,
@@ -277,8 +277,8 @@ textarea.vfb-textarea {
277
  border-color: rgba(238,83,83,0.8);
278
 
279
  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(238,83,83,.6);
280
- -moz-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(238,83,83,.6);
281
- box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(238,83,83,.6);
282
  }
283
 
284
  input.vfb-text,
@@ -507,8 +507,8 @@ p#form_success,
507
  }
508
 
509
  .visual-form-builder .vfb-section-div h4 {
510
- margin: 0;
511
- padding: 0;
512
  border-bottom:1px solid #BABABA;
513
  font-size:16px;
514
  line-height: inherit;
10
  }
11
 
12
  form.visual-form-builder li{
13
+ margin: 0 !important;
14
+ width: auto !important;
15
+ background: none !important;
16
+ list-style: none !important;
17
+ list-style-type: none !important;
18
+ list-style-image: none !important;
19
  clear: both;
20
  }
21
 
51
  .entry-content .visual-form-builder ol,
52
  .comment-content .visual-form-builder ol,
53
  .mu_register .visual-form-builder ol {
54
+ margin: 0 14px !important;
55
+ padding: 0 !important;
56
+ background: none !important;
57
+ list-style: none !important;
58
+ list-style-type: none !important;
59
+ list-style-image: none !important;
60
+ font-size: 13px;
61
  line-height: inherit;
62
  }
63
 
64
  .visual-form-builder ul li {
65
+ margin: 0 !important;
66
+ background: none !important;
67
+ list-style: none !important;
68
+ list-style-type: none !important;
69
+ list-style-image: none !important;
70
  }
71
 
72
  .visual-form-builder ul li:before {
78
  .comment-content .visual-form-builder li,
79
  .mu_register .visual-form-builder li {
80
  clear: both;
81
+ margin: 0 !important;
82
+ padding: 6px 1% 9px !important;
83
  width: 64%;
84
+ background: none !important;
85
+ list-style: none !important;
86
+ list-style-type: none !important;
87
+ list-style-image: none !important;
88
  }
89
 
90
  .visual-form-builder li:before,
130
  .visual-form-builder span.vfb-left input,
131
  .visual-form-builder span.vfb-left input[type="text"],
132
  .visual-form-builder span.vfb-left select{
133
+ width:100% !important;
134
  }
135
 
136
  /* !Time Field */
170
  }
171
 
172
  .visual-form-builder .vfb-legend h3 {
173
+ margin: 0 !important;
174
+ padding: 0 !important;
175
  font-size:20px;
176
  line-height: 2.0em;
177
  }
244
  background: none repeat scroll 0 0 #FAFAFA;
245
 
246
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
247
+ -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
248
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
249
  -webkit-transition: border linear .2s, box-shadow linear .2s;
250
+ -moz-transition: border linear .2s, box-shadow linear .2s;
251
+ -o-transition: border linear .2s, box-shadow linear .2s;
252
+ transition: border linear .2s, box-shadow linear .2s;
253
  }
254
 
255
  input.vfb-text:focus,
264
  border-color: rgba(82, 168, 236, 0.8);
265
 
266
  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);
267
+ -moz-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);
268
+ box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);
269
  }
270
 
271
  input.vfb-text.vfb-error:focus,
277
  border-color: rgba(238,83,83,0.8);
278
 
279
  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(238,83,83,.6);
280
+ -moz-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(238,83,83,.6);
281
+ box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(238,83,83,.6);
282
  }
283
 
284
  input.vfb-text,
507
  }
508
 
509
  .visual-form-builder .vfb-section-div h4 {
510
+ margin: 0 !important;
511
+ padding: 0 !important;
512
  border-bottom:1px solid #BABABA;
513
  font-size:16px;
514
  line-height: inherit;
css/visual-form-builder.min.css CHANGED
@@ -1 +1 @@
1
- form.visual-form-builder{position:relative;margin:20px 0;background:0;list-style:none;list-style-type:none;list-style-image:none;text-shadow:none;font-family:inherit}form.visual-form-builder li{margin:0;width:auto!important;background:0;list-style:none;list-style-type:none;list-style-image:none;clear:both}form.visual-form-builder li:before{content:none}form.visual-form-builder ul:after,form.visual-form-builder li:after,form.visual-form-builder li div:after{clear:both;content:'.';display:block;height:0;visibility:hidden}.visual-form-builder br{display:none}form.visual-form-builder .vfb-item-instructions br{display:inline}.visual-form-builder ul,.entry-content .visual-form-builder ul,.comment-content .visual-form-builder ul,.mu_register .visual-form-builder ul,.visual-form-builder ol,.entry-content .visual-form-builder ol,.comment-content .visual-form-builder ol,.mu_register .visual-form-builder ol{margin:0 14px;padding:0;background:0;list-style:none;list-style-type:none;list-style-image:none;font-size:13px;line-height:inherit}.visual-form-builder ul li{margin:0;background:0;list-style:none;list-style-type:none;list-style-image:none}.visual-form-builder ul li:before{content:none}.visual-form-builder li,.entry-content .visual-form-builder li,.comment-content .visual-form-builder li,.mu_register .visual-form-builder li{clear:both;margin:0;padding:6px 1% 9px;width:64%;background:0;list-style:none;list-style-type:none;list-style-image:none}.visual-form-builder li:before,.entry-content .visual-form-builder li:before,.comment-content .visual-form-builder li:before,.mu_register .visual-form-builder li:before{content:none}.vfb-span,.visual-form-builder li div span.vfb-span,.visual-form-builder [class*="vfb-span"],span.vfb-full input,span.vfb-full input[type="text"].vfb-medium,span.vfb-full select{display:block;float:left;margin:0;width:100%}.visual-form-builder span.vfb-left{float:left;width:48%}.visual-form-builder span.vfb-right{float:right;width:48%}.visual-form-builder span.vfb-span ul li{list-style:disc}.visual-form-builder span.vfb-span ol li{list-style:decimal}.visual-form-builder span.vfb-right input,.visual-form-builder span.vfb-right input[type="text"],.visual-form-builder span.vfb-right select,.visual-form-builder span.vfb-left input,.visual-form-builder span.vfb-left input[type="text"],.visual-form-builder span.vfb-left select{width:100%}.visual-form-builder span.vfb-time{float:left;margin:0 .3em 0 0}.rtl .visual-form-builder span.vfb-time{float:right;margin:0 0 0 .3em}.visual-form-builder li div label,.visual-form-builder li span label{margin:0;font-size:90%}.visual-form-builder fieldset{clear:both;margin:15px 0;padding:0;border:1px solid #d3d3d3;border-radius:3px;background-color:#eee}.visual-form-builder .vfb-legend{margin:5px 14px;padding:0 6px;border-bottom:1px solid #ccc;color:#900;font-size:inherit}.visual-form-builder .vfb-legend h3{margin:0;padding:0;font-size:20px;line-height:2.0em}.visual-form-builder label,label.vfb-desc{display:block;margin:0;padding:0 0 3px 0;color:#000}label.vfb-desc{font-weight:bold}.visual-form-builder.left-label .vfb-desc,.visual-form-builder.right-label .vfb-desc{float:left;margin:0 15px 0 0;width:20%}.visual-form-builder.right-label .vfb-desc{padding-top:2px;text-align:right}.visual-form-builder li div{margin:0;padding:0}.visual-form-builder.left-label li div,.visual-form-builder.right-label li div{float:left;width:65%}.visual-form-builder label.vfb-choice{margin:-16px 0 0 23px;padding:0 0 5px;width:88%;font-size:100%;line-height:150%}.rtl .visual-form-builder label.vfb-choice{margin:-16px 23px 0 0}.visual-form-builder label .vfb-required-asterisk{margin:0;padding:0;color:#bc1212;vertical-align:baseline;font-weight:bold}input.vfb-text,input[type="text"].vfb-text,input[type="tel"].vfb-text,input[type="email"].vfb-text,input[type="url"].vfb-text,textarea.vfb-textarea{padding:3px 0;border:1px solid #ddd;border-radius:3px;background:none repeat scroll 0 0 #fafafa;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}input.vfb-text:focus,input[type="text"].vfb-text:focus,input[type="tel"].vfb-text:focus,input[type="email"].vfb-text:focus,input[type="url"].vfb-text:focus,textarea.vfb-textarea:focus{outline:0;outline:thin dotted \9;border-color:rgba(82,168,236,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6)}input.vfb-text.vfb-error:focus,input[type="text"].vfb-text.vfb-error:focus,input[type="tel"].vfb-text.vfb-error:focus,input[type="email"].vfb-text.vfb-error:focus,input[type="url"].vfb-text.vfb-error:focus,textarea.vfb-textarea.vfb-error:focus{border-color:rgba(238,83,83,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(238,83,83,.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(238,83,83,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(238,83,83,.6)}input.vfb-text,input[type="text"].vfb-text,input[type="tel"].vfb-text,input[type="email"].vfb-text,input[type="url"].vfb-text,textarea.vfb-textarea,select.vfb-select{margin:0 0 5px 0;height:auto;color:#373737;font-size:100%;font-family:inherit;line-height:normal}select.vfb-select{padding:1px 0 0}input.vfb-small,input[type="text"].vfb-small,input[type="tel"].vfb-small,input[type="email"].vfb-small,input[type="url"].vfb-small,select.vfb-small{width:25%}input.vfb-medium,input[type="text"].vfb-medium,input[type="tel"].vfb-medium,input[type="email"].vfb-medium,input[type="url"].vfb-medium,select.vfb-medium{width:50%}input.vfb-large,input[type="text"].vfb-large,input[type="tel"].vfb-large,input[type="email"].vfb-large,input[type="url"].vfb-large,select.vfb-large,textarea.vfb-textarea{width:100%}input[type="file"].vfb-small,input[type="file"].vfb-medium,input[type="file"].vfb-large{height:auto;line-height:normal}textarea.vfb-medium{height:5.5em}textarea.vfb-medium{height:10em}textarea.vfb-large{height:20em}.vfb-submit,input[type="submit"].vfb-submit{font-size:1.1em}input.vfb-checkbox,input[type="checkbox"].vfb-checkbox,input.vfb-radio,input[type="radio"].vfb-radio{display:block;margin:4px 0 0;width:13px;height:13px;font-size:1.1em}input.vfb-other,input[type="text"].vfb-other{margin:0 0 8px 25px}.visual-form-builder li.vfb-two-column div span,.visual-form-builder li.vfb-three-column div span,.visual-form-builder li.vfb-auto-column div span{margin:0 5px 0 0;width:48%}.visual-form-builder li.vfb-three-column div span{width:30%}.visual-form-builder li.vfb-auto-column div span{width:auto}.visual-form-builder li.vfb-left-half,.visual-form-builder li.vfb-left-third,.visual-form-builder li.vfb-left-two-thirds{float:left;clear:left}.visual-form-builder li.vfb-right-half,.visual-form-builder li.vfb-right-third,.visual-form-builder li.vfb-right-two-thirds{float:right;clear:none}.visual-form-builder li.vfb-middle-third{float:left;clear:none;margin-left:2%}.visual-form-builder li.vfb-left-half,.visual-form-builder li.vfb-right-half{width:47%!important}.visual-form-builder li.vfb-left-third,.visual-form-builder li.vfb-middle-third,.visual-form-builder li.vfb-right-third{width:30%!important}.visual-form-builder li.vfb-left-two-thirds,.visual-form-builder li.vfb-right-two-thirds{width:64%!important}li.vfb-left-half .vfb-small,li.vfb-left-half .vfb-medium,li.vfb-left-half .vfb-large,li.vfb-right-half .vfb-small,li.vfb-right-half .vfb-medium,li.vfb-right-half .vfb-large,li.vfb-left-third .vfb-small,li.vfb-left-third .vfb-medium,li.vfb-left-third .vfb-large,li.vfb-middle-third .vfb-small,li.vfb-middle-third .vfb-medium,li.vfb-middle-third .vfb-large,li.vfb-right-third .vfb-small,li.vfb-right-third .vfb-medium,li.vfb-right-third .vfb-large,.visual-form-builder li.vfb-left-two-thirds .vfb-small,.visual-form-builder li.vfb-left-two-thirds .vfb-medium,.visual-form-builder li.vfb-left-two-thirds .vfb-large,.visual-form-builder li.vfb-right-two-thirds .vfb-small,.visual-form-builder li.vfb-right-two-thirds .vfb-medium,.visual-form-builder li.vfb-right-two-thirds .vfb-large{width:100%}label.vfb-error{color:red;font-weight:bold;font-size:90%}input.vfb-error,input.vfb-text.vfb-error,input[type="text"].vfb-text.vfb-error,input[type="tel"].vfb-text.vfb-error,input[type="email"].vfb-text.vfb-error,input[type="url"].vfb-text.vfb-error,select.vfb-error,textarea.vfb-error,textarea.vfb-textarea.vfb-error,{border:1px solid red}p#form_success,.vfb-form-success{color:green;font-weight:bold}#ui-datepicker-div{display:none;font-size:12px}.vfb-item-instructions{border-radius:3px;background-color:#e3e3e3}.vfb-item-instructions ul,.vfb-item-instructions ul li{padding-bottom:0;list-style:disc}.vfb-item-instructions ol,.vfb-item-instructions ol li{padding-bottom:0;list-style:decimal}.vfb-section-div{float:left;margin:10px 0;padding:10px;width:97%;border-radius:3px;background-color:#d4d4d4}.visual-form-builder .vfb-section-div h4{margin:0;padding:0;border-bottom:1px solid #bababa;font-size:16px;line-height:inherit}.vfb-clear{display:block;visibility:hidden;clear:both;overflow:hidden;width:0;height:0}.vfb-conditional-hide{display:none}
1
+ form.visual-form-builder{position:relative;margin:20px 0;background:0;list-style:none;list-style-type:none;list-style-image:none;text-shadow:none;font-family:inherit}form.visual-form-builder li{margin:0!important;width:auto!important;background:none!important;list-style:none!important;list-style-type:none!important;list-style-image:none!important;clear:both}form.visual-form-builder li:before{content:none}form.visual-form-builder ul:after,form.visual-form-builder li:after,form.visual-form-builder li div:after{clear:both;content:'.';display:block;height:0;visibility:hidden}.visual-form-builder br{display:none}form.visual-form-builder .vfb-item-instructions br{display:inline}.visual-form-builder ul,.entry-content .visual-form-builder ul,.comment-content .visual-form-builder ul,.mu_register .visual-form-builder ul,.visual-form-builder ol,.entry-content .visual-form-builder ol,.comment-content .visual-form-builder ol,.mu_register .visual-form-builder ol{margin:0 14px!important;padding:0!important;background:none!important;list-style:none!important;list-style-type:none!important;list-style-image:none!important;font-size:13px;line-height:inherit}.visual-form-builder ul li{margin:0!important;background:none!important;list-style:none!important;list-style-type:none!important;list-style-image:none!important}.visual-form-builder ul li:before{content:none}.visual-form-builder li,.entry-content .visual-form-builder li,.comment-content .visual-form-builder li,.mu_register .visual-form-builder li{clear:both;margin:0!important;padding:6px 1% 9px!important;width:64%;background:none!important;list-style:none!important;list-style-type:none!important;list-style-image:none!important}.visual-form-builder li:before,.entry-content .visual-form-builder li:before,.comment-content .visual-form-builder li:before,.mu_register .visual-form-builder li:before{content:none}.vfb-span,.visual-form-builder li div span.vfb-span,.visual-form-builder [class*="vfb-span"],span.vfb-full input,span.vfb-full input[type="text"].vfb-medium,span.vfb-full select{display:block;float:left;margin:0;width:100%}.visual-form-builder span.vfb-left{float:left;width:48%}.visual-form-builder span.vfb-right{float:right;width:48%}.visual-form-builder span.vfb-span ul li{list-style:disc}.visual-form-builder span.vfb-span ol li{list-style:decimal}.visual-form-builder span.vfb-right input,.visual-form-builder span.vfb-right input[type="text"],.visual-form-builder span.vfb-right select,.visual-form-builder span.vfb-left input,.visual-form-builder span.vfb-left input[type="text"],.visual-form-builder span.vfb-left select{width:100%!important}.visual-form-builder span.vfb-time{float:left;margin:0 .3em 0 0}.rtl .visual-form-builder span.vfb-time{float:right;margin:0 0 0 .3em}.visual-form-builder li div label,.visual-form-builder li span label{margin:0;font-size:90%}.visual-form-builder fieldset{clear:both;margin:15px 0;padding:0;border:1px solid #d3d3d3;border-radius:3px;background-color:#eee}.visual-form-builder .vfb-legend{margin:5px 14px;padding:0 6px;border-bottom:1px solid #ccc;color:#900;font-size:inherit}.visual-form-builder .vfb-legend h3{margin:0!important;padding:0!important;font-size:20px;line-height:2.0em}.visual-form-builder label,label.vfb-desc{display:block;margin:0;padding:0 0 3px 0;color:#000}label.vfb-desc{font-weight:bold}.visual-form-builder.left-label .vfb-desc,.visual-form-builder.right-label .vfb-desc{float:left;margin:0 15px 0 0;width:20%}.visual-form-builder.right-label .vfb-desc{padding-top:2px;text-align:right}.visual-form-builder li div{margin:0;padding:0}.visual-form-builder.left-label li div,.visual-form-builder.right-label li div{float:left;width:65%}.visual-form-builder label.vfb-choice{margin:-16px 0 0 23px;padding:0 0 5px;width:88%;font-size:100%;line-height:150%}.rtl .visual-form-builder label.vfb-choice{margin:-16px 23px 0 0}.visual-form-builder label .vfb-required-asterisk{margin:0;padding:0;color:#bc1212;vertical-align:baseline;font-weight:bold}input.vfb-text,input[type="text"].vfb-text,input[type="tel"].vfb-text,input[type="email"].vfb-text,input[type="url"].vfb-text,textarea.vfb-textarea{padding:3px 0;border:1px solid #ddd;border-radius:3px;background:none repeat scroll 0 0 #fafafa;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}input.vfb-text:focus,input[type="text"].vfb-text:focus,input[type="tel"].vfb-text:focus,input[type="email"].vfb-text:focus,input[type="url"].vfb-text:focus,textarea.vfb-textarea:focus{outline:0;outline:thin dotted \9;border-color:rgba(82,168,236,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(82,168,236,.6)}input.vfb-text.vfb-error:focus,input[type="text"].vfb-text.vfb-error:focus,input[type="tel"].vfb-text.vfb-error:focus,input[type="email"].vfb-text.vfb-error:focus,input[type="url"].vfb-text.vfb-error:focus,textarea.vfb-textarea.vfb-error:focus{border-color:rgba(238,83,83,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(238,83,83,.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(238,83,83,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(238,83,83,.6)}input.vfb-text,input[type="text"].vfb-text,input[type="tel"].vfb-text,input[type="email"].vfb-text,input[type="url"].vfb-text,textarea.vfb-textarea,select.vfb-select{margin:0 0 5px 0;height:auto;color:#373737;font-size:100%;font-family:inherit;line-height:normal}select.vfb-select{padding:1px 0 0}input.vfb-small,input[type="text"].vfb-small,input[type="tel"].vfb-small,input[type="email"].vfb-small,input[type="url"].vfb-small,select.vfb-small{width:25%}input.vfb-medium,input[type="text"].vfb-medium,input[type="tel"].vfb-medium,input[type="email"].vfb-medium,input[type="url"].vfb-medium,select.vfb-medium{width:50%}input.vfb-large,input[type="text"].vfb-large,input[type="tel"].vfb-large,input[type="email"].vfb-large,input[type="url"].vfb-large,select.vfb-large,textarea.vfb-textarea{width:100%}input[type="file"].vfb-small,input[type="file"].vfb-medium,input[type="file"].vfb-large{height:auto;line-height:normal}textarea.vfb-medium{height:5.5em}textarea.vfb-medium{height:10em}textarea.vfb-large{height:20em}.vfb-submit,input[type="submit"].vfb-submit{font-size:1.1em}input.vfb-checkbox,input[type="checkbox"].vfb-checkbox,input.vfb-radio,input[type="radio"].vfb-radio{display:block;margin:4px 0 0;width:13px;height:13px;font-size:1.1em}input.vfb-other,input[type="text"].vfb-other{margin:0 0 8px 25px}.visual-form-builder li.vfb-two-column div span,.visual-form-builder li.vfb-three-column div span,.visual-form-builder li.vfb-auto-column div span{margin:0 5px 0 0;width:48%}.visual-form-builder li.vfb-three-column div span{width:30%}.visual-form-builder li.vfb-auto-column div span{width:auto}.visual-form-builder li.vfb-left-half,.visual-form-builder li.vfb-left-third,.visual-form-builder li.vfb-left-two-thirds{float:left;clear:left}.visual-form-builder li.vfb-right-half,.visual-form-builder li.vfb-right-third,.visual-form-builder li.vfb-right-two-thirds{float:right;clear:none}.visual-form-builder li.vfb-middle-third{float:left;clear:none;margin-left:2%}.visual-form-builder li.vfb-left-half,.visual-form-builder li.vfb-right-half{width:47%!important}.visual-form-builder li.vfb-left-third,.visual-form-builder li.vfb-middle-third,.visual-form-builder li.vfb-right-third{width:30%!important}.visual-form-builder li.vfb-left-two-thirds,.visual-form-builder li.vfb-right-two-thirds{width:64%!important}li.vfb-left-half .vfb-small,li.vfb-left-half .vfb-medium,li.vfb-left-half .vfb-large,li.vfb-right-half .vfb-small,li.vfb-right-half .vfb-medium,li.vfb-right-half .vfb-large,li.vfb-left-third .vfb-small,li.vfb-left-third .vfb-medium,li.vfb-left-third .vfb-large,li.vfb-middle-third .vfb-small,li.vfb-middle-third .vfb-medium,li.vfb-middle-third .vfb-large,li.vfb-right-third .vfb-small,li.vfb-right-third .vfb-medium,li.vfb-right-third .vfb-large,.visual-form-builder li.vfb-left-two-thirds .vfb-small,.visual-form-builder li.vfb-left-two-thirds .vfb-medium,.visual-form-builder li.vfb-left-two-thirds .vfb-large,.visual-form-builder li.vfb-right-two-thirds .vfb-small,.visual-form-builder li.vfb-right-two-thirds .vfb-medium,.visual-form-builder li.vfb-right-two-thirds .vfb-large{width:100%}label.vfb-error{color:red;font-weight:bold;font-size:90%}input.vfb-error,input.vfb-text.vfb-error,input[type="text"].vfb-text.vfb-error,input[type="tel"].vfb-text.vfb-error,input[type="email"].vfb-text.vfb-error,input[type="url"].vfb-text.vfb-error,select.vfb-error,textarea.vfb-error,textarea.vfb-textarea.vfb-error,{border:1px solid red}p#form_success,.vfb-form-success{color:green;font-weight:bold}#ui-datepicker-div{display:none;font-size:12px}.vfb-item-instructions{border-radius:3px;background-color:#e3e3e3}.vfb-item-instructions ul,.vfb-item-instructions ul li{padding-bottom:0;list-style:disc}.vfb-item-instructions ol,.vfb-item-instructions ol li{padding-bottom:0;list-style:decimal}.vfb-section-div{float:left;margin:10px 0;padding:10px;width:97%;border-radius:3px;background-color:#d4d4d4}.visual-form-builder .vfb-section-div h4{margin:0!important;padding:0!important;border-bottom:1px solid #bababa;font-size:16px;line-height:inherit}.vfb-clear{display:block;visibility:hidden;clear:both;overflow:hidden;width:0;height:0}.vfb-conditional-hide{display:none}
includes/admin-field-options.php CHANGED
@@ -10,7 +10,7 @@ $parent = $last = 0;
10
  ob_start();
11
 
12
  // Loop through each field and display
13
- foreach ( $fields as $field ) :
14
  // If we are at the root level
15
  if ( !$field->field_parent && $depth > 1 ) {
16
  // If we've been down a level, close out the list
10
  ob_start();
11
 
12
  // Loop through each field and display
13
+ foreach ( $fields as &$field ) :
14
  // If we are at the root level
15
  if ( !$field->field_parent && $depth > 1 ) {
16
  // If we've been down a level, close out the list
includes/admin-new-form.php CHANGED
@@ -23,7 +23,7 @@
23
  <th scope="row"><label for="form-email-sender-name"><?php _e( 'Your Name or Company' , 'visual-form-builder'); ?></label></th>
24
  <td>
25
  <input type="text" value="" placeholder="" class="regular-text required" id="form-email-sender-name" name="form_email_from_name" />
26
- <p class="description"><?php _e( 'Required. This is who your emails will come from.' , 'visual-form-builder'); ?></p>
27
  </td>
28
  </tr>
29
  <!-- Reply-to Email -->
@@ -40,7 +40,7 @@
40
  <th scope="row"><label for="form-email-subject"><?php _e( 'E-mail Subject' , 'visual-form-builder'); ?></label></th>
41
  <td>
42
  <input type="text" value="" placeholder="" class="regular-text" id="form-email-subject" name="form_email_subject" />
43
- <p class="description"><?php _e( 'Optional (for now) - you can change this later' , 'visual-form-builder'); ?></p>
44
  </td>
45
  </tr>
46
  <!-- E-mail To -->
@@ -48,7 +48,7 @@
48
  <th scope="row"><label for="form-email-to"><?php _e( 'E-mail To' , 'visual-form-builder'); ?></label></th>
49
  <td>
50
  <input type="text" value="" placeholder="" class="regular-text" id="form-email-to" name="form_email_to[]" />
51
- <p class="description"><?php _e( 'Optional (for now) - you can change this later' , 'visual-form-builder'); ?></p>
52
  </td>
53
  </tr>
54
 
23
  <th scope="row"><label for="form-email-sender-name"><?php _e( 'Your Name or Company' , 'visual-form-builder'); ?></label></th>
24
  <td>
25
  <input type="text" value="" placeholder="" class="regular-text required" id="form-email-sender-name" name="form_email_from_name" />
26
+ <p class="description"><?php _e( 'Required. This option sets the "From" display name of the email that is sent.' , 'visual-form-builder'); ?></p>
27
  </td>
28
  </tr>
29
  <!-- Reply-to Email -->
40
  <th scope="row"><label for="form-email-subject"><?php _e( 'E-mail Subject' , 'visual-form-builder'); ?></label></th>
41
  <td>
42
  <input type="text" value="" placeholder="" class="regular-text" id="form-email-subject" name="form_email_subject" />
43
+ <p class="description"><?php _e( 'This sets the subject of the email that is sent.' , 'visual-form-builder'); ?></p>
44
  </td>
45
  </tr>
46
  <!-- E-mail To -->
48
  <th scope="row"><label for="form-email-to"><?php _e( 'E-mail To' , 'visual-form-builder'); ?></label></th>
49
  <td>
50
  <input type="text" value="" placeholder="" class="regular-text" id="form-email-to" name="form_email_to[]" />
51
+ <p class="description"><?php _e( 'Who to send the submitted data to. You can add more after creating the form.' , 'visual-form-builder'); ?></p>
52
  </td>
53
  </tr>
54
 
includes/class-export.php CHANGED
@@ -70,7 +70,7 @@ class VisualFormBuilder_Export {
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 );
@@ -285,26 +285,49 @@ class VisualFormBuilder_Export {
285
  // Unserialize value only if it was serialized
286
  $fields = maybe_unserialize( $value );
287
 
288
- // Loop through our submitted data
289
- foreach ( $fields as $field_key => $field_value ) :
290
- // Cast each array as an object
291
- $obj = (object) $field_value;
292
-
293
- switch ( $obj->type ) {
294
- case 'fieldset' :
295
- case 'section' :
296
- case 'instructions' :
297
- case 'page-break' :
298
- case 'verification' :
299
- case 'secret' :
300
- case 'submit' :
301
- break;
302
-
303
- default :
304
- $output[ $row ][ stripslashes( $obj->name ) . "{{{$obj->id}}}" ] = $obj->value;
305
- break;
306
- } //end $obj switch
307
- endforeach; // end $fields loop
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
308
  break;
309
  } //end $key switch
310
  endforeach; // end $entry loop
@@ -489,14 +512,17 @@ class VisualFormBuilder_Export {
489
  if ( isset( $_REQUEST['count'] ) )
490
  $limit = ( $_REQUEST['count'] < 1000 ) ? absint( $_REQUEST['count'] ) : 1000;
491
  elseif ( isset( $_REQUEST['offset'] ) ) {
492
- $offset = absint( $_REQUEST['offset'] );
 
 
 
493
  $offset_num = $offset * 1000;
494
 
495
- if ( $offset >= 1 )
496
- $offset = "OFFSET $offset";
497
  }
498
 
499
- $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 );
500
 
501
  // Get columns
502
  $columns = $export->get_cols( $entries );
70
  $limit = $entries_count > 1000 ? 1000 : $entries_count;
71
 
72
  // Safe to get entries now
73
+ $entries = $wpdb->get_results( $wpdb->prepare( "SELECT 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 );
285
  // Unserialize value only if it was serialized
286
  $fields = maybe_unserialize( $value );
287
 
288
+ // Make sure there are no errors with unserializing before proceeding
289
+ if ( is_array( $fields ) ) {
290
+ // Loop through our submitted data
291
+ foreach ( $fields as $field_key => $field_value ) :
292
+ // Cast each array as an object
293
+ $obj = (object) $field_value;
294
+
295
+ // Decode the values so HTML tags can be stripped
296
+ $val = wp_specialchars_decode( $obj->value, ENT_QUOTES );
297
+
298
+ switch ( $obj->type ) {
299
+ case 'fieldset' :
300
+ case 'section' :
301
+ case 'instructions' :
302
+ case 'page-break' :
303
+ case 'verification' :
304
+ case 'secret' :
305
+ case 'submit' :
306
+ break;
307
+
308
+ case 'address' :
309
+
310
+ $val = str_replace( array( '<p>', '</p>', '<br>' ), array( '', "\n", "\n" ), $val );
311
+
312
+ $output[ $row ][ stripslashes( $obj->name ) . "{{{$obj->id}}}" ] = $val;
313
+
314
+ break;
315
+
316
+ case 'html' :
317
+
318
+ $output[ $row ][ stripslashes( $obj->name ) . "{{{$obj->id}}}" ] = $val;
319
+
320
+ break;
321
+
322
+ default :
323
+
324
+ $val = wp_strip_all_tags( $val );
325
+ $output[ $row ][ stripslashes( $obj->name ) . "{{{$obj->id}}}" ] = $val;
326
+
327
+ break;
328
+ } //end $obj switch
329
+ endforeach; // end $fields loop
330
+ }
331
  break;
332
  } //end $key switch
333
  endforeach; // end $entry loop
512
  if ( isset( $_REQUEST['count'] ) )
513
  $limit = ( $_REQUEST['count'] < 1000 ) ? absint( $_REQUEST['count'] ) : 1000;
514
  elseif ( isset( $_REQUEST['offset'] ) ) {
515
+ // Reset offset/page to a zero index
516
+ $offset = absint( $_REQUEST['offset'] ) - 1;
517
+
518
+ // Calculate the offset
519
  $offset_num = $offset * 1000;
520
 
521
+ // If page is 2 or greater, set the offset (page 2 is equal to offset 1 because of zero index)
522
+ $offset = $offset >= 1 ? "OFFSET $offset_num" : '';
523
  }
524
 
525
+ $entries = $wpdb->get_results( "SELECT data FROM {$this->entries_table_name} WHERE form_id = $form_id AND entry_approved = 1 LIMIT $limit $offset", ARRAY_A );
526
 
527
  // Get columns
528
  $columns = $export->get_cols( $entries );
includes/email.php CHANGED
@@ -123,7 +123,7 @@ foreach ( $fields as $field ) :
123
  if ( $field->field_type == 'file-upload' ) :
124
  $value = ( isset( $_FILES[ 'vfb-' . $field->field_id ] ) ) ? $_FILES[ 'vfb-' . $field->field_id ] : '';
125
 
126
- if ( $value['size'] > 0 ) :
127
  // 25MB is the max size allowed
128
  $size = apply_filters( 'vfb_max_file_size', $settings_max_upload );
129
  $max_attach_size = $size * 1048576;
@@ -150,7 +150,7 @@ foreach ( $fields as $field ) :
150
  $wp_upload_dir = wp_upload_dir();
151
 
152
  $media_upload = array(
153
- 'guid' => $wp_upload_dir['baseurl'] . _wp_relative_upload_path( $uploaded_file['file'] ),
154
  'post_mime_type' => $wp_filetype['type'],
155
  'post_title' => preg_replace( '/\.[^.]+$/', '', basename( $uploaded_file['file'] ) ),
156
  'post_content' => '',
@@ -222,17 +222,24 @@ foreach ( $fields as $field ) :
222
  else
223
  $value = html_entity_decode( stripslashes( esc_html( $value ) ), ENT_QUOTES, 'UTF-8' );
224
 
225
- // Setup spam catcher RegEx
226
- $exploits = '/(content-type|bcc:|cc:|document.cookie|onclick|onload|javascript|alert)/i';
227
- $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';
228
- $spamwords = '/(viagra|phentermine|tramadol|adipex|advai|alprazolam|ambien|ambian|amoxicillin|antivert|blackjack|backgammon|holdem|poker|carisoprodol|ciara|ciprofloxacin|debt|dating|porn)/i';
 
 
 
 
 
 
 
229
 
230
  // Add up points for each spam hit
231
- if ( preg_match( $exploits, $value ) )
232
  $points += 2;
233
- elseif ( preg_match( $profanity, $value ) )
234
  $points += 1;
235
- elseif ( preg_match( $spamwords, $value ) )
236
  $points += 1;
237
 
238
  //Sanitize input
@@ -359,8 +366,11 @@ $settings_sender_header = isset( $vfb_settings['sender-mail-header'] ) ? $vfb_se
359
  // Allow Sender email to be filtered
360
  $from_email = apply_filters( 'vfb_sender_mail_header', $settings_sender_header, $form_id );
361
 
362
- $reply_to = "\"$from_name\" <$header_from>";
363
- $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";
 
 
 
364
 
365
  $form_subject = wp_specialchars_decode( $form_settings->form_subject, ENT_QUOTES );
366
  $notify_subject = wp_specialchars_decode( $form_settings->form_notification_subject, ENT_QUOTES );
@@ -380,9 +390,12 @@ if ( $form_settings->form_notification_setting !== '' ) :
380
 
381
  // Reset headers for notification email
382
  $reply_name = function_exists( 'mb_encode_mimeheader' ) ? mb_encode_mimeheader( stripslashes( $form_settings->form_notification_email_name ) ) : stripslashes( $form_settings->form_notification_email_name );
383
- $reply_email = $form_settings->form_notification_email_from;
384
- $reply_to = "\"$reply_name\" <$reply_email>";
385
- $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";
 
 
 
386
 
387
  // Send the mail
388
  wp_mail( $copy_email, $notify_subject, $auto_response_email, $headers, $attachments );
123
  if ( $field->field_type == 'file-upload' ) :
124
  $value = ( isset( $_FILES[ 'vfb-' . $field->field_id ] ) ) ? $_FILES[ 'vfb-' . $field->field_id ] : '';
125
 
126
+ if ( is_array( $value) && $value['size'] > 0 ) :
127
  // 25MB is the max size allowed
128
  $size = apply_filters( 'vfb_max_file_size', $settings_max_upload );
129
  $max_attach_size = $size * 1048576;
150
  $wp_upload_dir = wp_upload_dir();
151
 
152
  $media_upload = array(
153
+ 'guid' => $wp_upload_dir['url'] . '/' . basename( $uploaded_file['file'] ),
154
  'post_mime_type' => $wp_filetype['type'],
155
  'post_title' => preg_replace( '/\.[^.]+$/', '', basename( $uploaded_file['file'] ) ),
156
  'post_content' => '',
222
  else
223
  $value = html_entity_decode( stripslashes( esc_html( $value ) ), ENT_QUOTES, 'UTF-8' );
224
 
225
+ // Spam Words - Exploits
226
+ $exploits = array( 'content-type', 'bcc:', 'cc:', 'document.cookie', 'onclick', 'onload', 'javascript', 'alert' );
227
+ $exploits = apply_filters( 'vfb_spam_words_exploits', $exploits, $form_id );
228
+
229
+ // Spam Words - Exploits
230
+ $profanity = array( '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' );
231
+ $profanity = apply_filters( 'vfb_spam_words_profanity', $profanity, $form_id );
232
+
233
+ // Spam Words - Misc
234
+ $spamwords = array( 'viagra', 'phentermine', 'tramadol', 'adipex', 'advai', 'alprazolam', 'ambien', 'ambian', 'amoxicillin', 'antivert', 'blackjack', 'backgammon', 'holdem', 'poker', 'carisoprodol', 'ciara', 'ciprofloxacin', 'debt', 'dating', 'porn' );
235
+ $spamwords = apply_filters( 'vfb_spam_words_misc', $spamwords, $form_id );
236
 
237
  // Add up points for each spam hit
238
+ if ( preg_match( '/(' . implode( '|', $exploits ) . ')/i', $value ) )
239
  $points += 2;
240
+ elseif ( preg_match( '/(' . implode( '|', $profanity ) . ')/i', $value ) )
241
  $points += 1;
242
+ elseif ( preg_match( '/(' . implode( '|', $spamwords ) . ')/i', $value ) )
243
  $points += 1;
244
 
245
  //Sanitize input
366
  // Allow Sender email to be filtered
367
  $from_email = apply_filters( 'vfb_sender_mail_header', $settings_sender_header, $form_id );
368
 
369
+ $reply_to = "\"$from_name\" <$header_from>";
370
+ $headers[] = "Sender: $from_email";
371
+ $headers[] = "From: $reply_to";
372
+ $headers[] = "Reply-To: $reply_to";
373
+ $headers[] = "Content-Type: $header_content_type; charset=\"" . get_option('blog_charset') . "\"";
374
 
375
  $form_subject = wp_specialchars_decode( $form_settings->form_subject, ENT_QUOTES );
376
  $notify_subject = wp_specialchars_decode( $form_settings->form_notification_subject, ENT_QUOTES );
390
 
391
  // Reset headers for notification email
392
  $reply_name = function_exists( 'mb_encode_mimeheader' ) ? mb_encode_mimeheader( stripslashes( $form_settings->form_notification_email_name ) ) : stripslashes( $form_settings->form_notification_email_name );
393
+ $reply_email = $form_settings->form_notification_email_from;
394
+ $reply_to = "\"$reply_name\" <$reply_email>";
395
+ $headers[] = "Sender: $from_email";
396
+ $headers[] = "From: $reply_to";
397
+ $headers[] = "Reply-To: $reply_to";
398
+ $headers[] = "Content-Type: $header_content_type; charset=\"" . get_option('blog_charset') . "\"";
399
 
400
  // Send the mail
401
  wp_mail( $copy_email, $notify_subject, $auto_response_email, $headers, $attachments );
includes/form-output.php CHANGED
@@ -361,11 +361,11 @@ foreach ( $fields as $field ) :
361
 
362
  $address_parts = array(
363
  'address' => array(
364
- 'label' => __( 'Address', 'visual-form-builder' ),
365
  'layout' => 'full'
366
  ),
367
  'address-2' => array(
368
- 'label' => __( 'Address Line 2', 'visual-form-builder' ),
369
  'layout' => 'full'
370
  ),
371
  'city' => array(
@@ -436,11 +436,19 @@ foreach ( $fields as $field ) :
436
 
437
  endforeach;
438
 
439
- $output .= "<div>$address</div>";
 
 
 
 
440
 
441
  break;
442
 
443
  case 'date' :
 
 
 
 
444
  $options = maybe_unserialize( $field->field_options );
445
  $dateFormat = ( $options ) ? $options['dateFormat'] : '';
446
 
@@ -517,6 +525,8 @@ foreach ( $fields as $field ) :
517
  break;
518
 
519
  case 'html' :
 
 
520
 
521
  $form_item = sprintf(
522
  '<textarea name="vfb-%1$d" id="%2$s" class="vfb-textarea ckeditor %4$s %5$s %6$s">%3$s</textarea>',
361
 
362
  $address_parts = array(
363
  'address' => array(
364
+ 'label' => __( 'Street Address', 'visual-form-builder' ),
365
  'layout' => 'full'
366
  ),
367
  'address-2' => array(
368
+ 'label' => __( 'Apt, Suite, Bldg. (optional)', 'visual-form-builder' ),
369
  'layout' => 'full'
370
  ),
371
  'city' => array(
436
 
437
  endforeach;
438
 
439
+ $output .= '<div>';
440
+
441
+ $output .= !empty( $description ) ? "<span class='vfb-span'><label>$description</label></span>$address" : $address;
442
+
443
+ $output .= '</div>';
444
 
445
  break;
446
 
447
  case 'date' :
448
+ // Load jQuery UI datepicker library
449
+ wp_enqueue_script( 'jquery-ui-datepicker' );
450
+ wp_enqueue_script( 'vfb-datepicker-i18n' );
451
+
452
  $options = maybe_unserialize( $field->field_options );
453
  $dateFormat = ( $options ) ? $options['dateFormat'] : '';
454
 
525
  break;
526
 
527
  case 'html' :
528
+ //Load CKEditor library
529
+ wp_enqueue_script( 'vfb-ckeditor' );
530
 
531
  $form_item = sprintf(
532
  '<textarea name="vfb-%1$d" id="%2$s" class="vfb-textarea ckeditor %4$s %5$s %6$s">%3$s</textarea>',
js/i18n/datepicker/datepicker-cs_CS.js ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Czech initialisation for the jQuery UI date picker plugin. */
2
+ /* Written by Tomas Muller (tomas@tomas-muller.net). */
3
+ (function( factory ) {
4
+ if ( typeof define === "function" && define.amd ) {
5
+
6
+ // AMD. Register as an anonymous module.
7
+ define([ "../datepicker" ], factory );
8
+ } else {
9
+
10
+ // Browser globals
11
+ factory( jQuery.datepicker );
12
+ }
13
+ }(function( datepicker ) {
14
+ datepicker.regional['cs'] = {
15
+ closeText: 'Zavřít',
16
+ prevText: '&#x3C;Dříve',
17
+ nextText: 'Později&#x3E;',
18
+ currentText: 'Nyní',
19
+ monthNames: ['leden','únor','březen','duben','květen','červen',
20
+ 'červenec','srpen','září','říjen','listopad','prosinec'],
21
+ monthNamesShort: ['led','úno','bře','dub','kvě','čer',
22
+ 'čvc','srp','zář','říj','lis','pro'],
23
+ dayNames: ['neděle', 'pondělí', 'úterý', 'středa', 'čtvrtek', 'pátek', 'sobota'],
24
+ dayNamesShort: ['ne', 'po', 'út', 'st', 'čt', 'pá', 'so'],
25
+ dayNamesMin: ['ne','po','út','st','čt','pá','so'],
26
+ weekHeader: 'Týd',
27
+ dateFormat: 'dd.mm.yy',
28
+ firstDay: 1,
29
+ isRTL: false,
30
+ showMonthAfterYear: false,
31
+ yearSuffix: ''};
32
+ datepicker.setDefaults(datepicker.regional['cs']);
33
+
34
+ return datepicker.regional['cs'];
35
+
36
+ }));
js/i18n/datepicker/datepicker-de_DE.js ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* German initialisation for the jQuery UI date picker plugin. */
2
+ /* Written by Milian Wolff (mail@milianw.de). */
3
+ (function( factory ) {
4
+ if ( typeof define === "function" && define.amd ) {
5
+
6
+ // AMD. Register as an anonymous module.
7
+ define([ "../datepicker" ], factory );
8
+ } else {
9
+
10
+ // Browser globals
11
+ factory( jQuery.datepicker );
12
+ }
13
+ }(function( datepicker ) {
14
+ datepicker.regional['de'] = {
15
+ closeText: 'Schließen',
16
+ prevText: '&#x3C;Zurück',
17
+ nextText: 'Vor&#x3E;',
18
+ currentText: 'Heute',
19
+ monthNames: ['Januar','Februar','März','April','Mai','Juni',
20
+ 'Juli','August','September','Oktober','November','Dezember'],
21
+ monthNamesShort: ['Jan','Feb','Mär','Apr','Mai','Jun',
22
+ 'Jul','Aug','Sep','Okt','Nov','Dez'],
23
+ dayNames: ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'],
24
+ dayNamesShort: ['So','Mo','Di','Mi','Do','Fr','Sa'],
25
+ dayNamesMin: ['So','Mo','Di','Mi','Do','Fr','Sa'],
26
+ weekHeader: 'KW',
27
+ dateFormat: 'dd.mm.yy',
28
+ firstDay: 1,
29
+ isRTL: false,
30
+ showMonthAfterYear: false,
31
+ yearSuffix: ''};
32
+ datepicker.setDefaults(datepicker.regional['de']);
33
+
34
+ return datepicker.regional['de'];
35
+
36
+ }));
js/i18n/datepicker/datepicker-el_GR.js ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Greek (el) initialisation for the jQuery UI date picker plugin. */
2
+ /* Written by Alex Cicovic (http://www.alexcicovic.com) */
3
+ (function( factory ) {
4
+ if ( typeof define === "function" && define.amd ) {
5
+
6
+ // AMD. Register as an anonymous module.
7
+ define([ "../datepicker" ], factory );
8
+ } else {
9
+
10
+ // Browser globals
11
+ factory( jQuery.datepicker );
12
+ }
13
+ }(function( datepicker ) {
14
+ datepicker.regional['el'] = {
15
+ closeText: 'Κλείσιμο',
16
+ prevText: 'Προηγούμενος',
17
+ nextText: 'Επόμενος',
18
+ currentText: 'Τρέχων Μήνας',
19
+ monthNames: ['Ιανουάριος','Φεβρουάριος','Μάρτιος','Απρίλιος','Μάιος','Ιούνιος',
20
+ 'Ιούλιος','Αύγουστος','Σεπτέμβριος','Οκτώβριος','Νοέμβριος','Δεκέμβριος'],
21
+ monthNamesShort: ['Ιαν','Φεβ','Μαρ','Απρ','Μαι','Ιουν',
22
+ 'Ιουλ','Αυγ','Σεπ','Οκτ','Νοε','Δεκ'],
23
+ dayNames: ['Κυριακή','Δευτέρα','Τρίτη','Τετάρτη','Πέμπτη','Παρασκευή','Σάββατο'],
24
+ dayNamesShort: ['Κυρ','Δευ','Τρι','Τετ','Πεμ','Παρ','Σαβ'],
25
+ dayNamesMin: ['Κυ','Δε','Τρ','Τε','Πε','Πα','Σα'],
26
+ weekHeader: 'Εβδ',
27
+ dateFormat: 'dd/mm/yy',
28
+ firstDay: 1,
29
+ isRTL: false,
30
+ showMonthAfterYear: false,
31
+ yearSuffix: ''};
32
+ datepicker.setDefaults(datepicker.regional['el']);
33
+
34
+ return datepicker.regional['el'];
35
+
36
+ }));
js/i18n/datepicker/datepicker-en_AU.js ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* English/Australia initialisation for the jQuery UI date picker plugin. */
2
+ /* Based on the en-GB initialisation. */
3
+ (function( factory ) {
4
+ if ( typeof define === "function" && define.amd ) {
5
+
6
+ // AMD. Register as an anonymous module.
7
+ define([ "../datepicker" ], factory );
8
+ } else {
9
+
10
+ // Browser globals
11
+ factory( jQuery.datepicker );
12
+ }
13
+ }(function( datepicker ) {
14
+ datepicker.regional['en-AU'] = {
15
+ closeText: 'Done',
16
+ prevText: 'Prev',
17
+ nextText: 'Next',
18
+ currentText: 'Today',
19
+ monthNames: ['January','February','March','April','May','June',
20
+ 'July','August','September','October','November','December'],
21
+ monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
22
+ 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
23
+ dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
24
+ dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
25
+ dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'],
26
+ weekHeader: 'Wk',
27
+ dateFormat: 'dd/mm/yy',
28
+ firstDay: 1,
29
+ isRTL: false,
30
+ showMonthAfterYear: false,
31
+ yearSuffix: ''};
32
+ datepicker.setDefaults(datepicker.regional['en-AU']);
33
+
34
+ return datepicker.regional['en-AU'];
35
+
36
+ }));
js/i18n/datepicker/datepicker-en_GB.js ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* English/UK initialisation for the jQuery UI date picker plugin. */
2
+ /* Written by Stuart. */
3
+ (function( factory ) {
4
+ if ( typeof define === "function" && define.amd ) {
5
+
6
+ // AMD. Register as an anonymous module.
7
+ define([ "../datepicker" ], factory );
8
+ } else {
9
+
10
+ // Browser globals
11
+ factory( jQuery.datepicker );
12
+ }
13
+ }(function( datepicker ) {
14
+ datepicker.regional['en-GB'] = {
15
+ closeText: 'Done',
16
+ prevText: 'Prev',
17
+ nextText: 'Next',
18
+ currentText: 'Today',
19
+ monthNames: ['January','February','March','April','May','June',
20
+ 'July','August','September','October','November','December'],
21
+ monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
22
+ 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
23
+ dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
24
+ dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
25
+ dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'],
26
+ weekHeader: 'Wk',
27
+ dateFormat: 'dd/mm/yy',
28
+ firstDay: 1,
29
+ isRTL: false,
30
+ showMonthAfterYear: false,
31
+ yearSuffix: ''};
32
+ datepicker.setDefaults(datepicker.regional['en-GB']);
33
+
34
+ return datepicker.regional['en-GB'];
35
+
36
+ }));
js/i18n/datepicker/datepicker-en_US.js ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* English initialisation for the jQuery UI date picker plugin. */
2
+ (function( factory ) {
3
+ if ( typeof define === "function" && define.amd ) {
4
+
5
+ // AMD. Register as an anonymous module.
6
+ define([ "../datepicker" ], factory );
7
+ } else {
8
+
9
+ // Browser globals
10
+ factory( jQuery.datepicker );
11
+ }
12
+ }(function( datepicker ) {
13
+ datepicker.regional['en-US'] = {
14
+ closeText: 'Done',
15
+ prevText: 'Prev',
16
+ nextText: 'Next',
17
+ currentText: 'Today',
18
+ monthNames: ['January','February','March','April','May','June',
19
+ 'July','August','September','October','November','December'],
20
+ monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
21
+ 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
22
+ dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
23
+ dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
24
+ dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'],
25
+ weekHeader: 'Wk',
26
+ dateFormat: 'mm/dd/yy',
27
+ firstDay: 1,
28
+ isRTL: false,
29
+ showMonthAfterYear: false,
30
+ yearSuffix: ''};
31
+ datepicker.setDefaults(datepicker.regional['en-US']);
32
+
33
+ return datepicker.regional['en-US'];
34
+
35
+ }));
js/i18n/datepicker/datepicker-es_ES.js ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Inicialización en español para la extensión 'UI date picker' para jQuery. */
2
+ /* Traducido por Vester (xvester@gmail.com). */
3
+ (function( factory ) {
4
+ if ( typeof define === "function" && define.amd ) {
5
+
6
+ // AMD. Register as an anonymous module.
7
+ define([ "../datepicker" ], factory );
8
+ } else {
9
+
10
+ // Browser globals
11
+ factory( jQuery.datepicker );
12
+ }
13
+ }(function( datepicker ) {
14
+ datepicker.regional['es'] = {
15
+ closeText: 'Cerrar',
16
+ prevText: '&#x3C;Ant',
17
+ nextText: 'Sig&#x3E;',
18
+ currentText: 'Hoy',
19
+ monthNames: ['enero','febrero','marzo','abril','mayo','junio',
20
+ 'julio','agosto','septiembre','octubre','noviembre','diciembre'],
21
+ monthNamesShort: ['ene','feb','mar','abr','may','jun',
22
+ 'jul','ago','sep','oct','nov','dic'],
23
+ dayNames: ['domingo','lunes','martes','miércoles','jueves','viernes','sábado'],
24
+ dayNamesShort: ['dom','lun','mar','mié','jue','vie','sáb'],
25
+ dayNamesMin: ['D','L','M','X','J','V','S'],
26
+ weekHeader: 'Sm',
27
+ dateFormat: 'dd/mm/yy',
28
+ firstDay: 1,
29
+ isRTL: false,
30
+ showMonthAfterYear: false,
31
+ yearSuffix: ''};
32
+ datepicker.setDefaults(datepicker.regional['es']);
33
+
34
+ return datepicker.regional['es'];
35
+
36
+ }));
js/i18n/datepicker/datepicker-fr_FR.js ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* French initialisation for the jQuery UI date picker plugin. */
2
+ /* Written by Keith Wood (kbwood{at}iinet.com.au),
3
+ Stéphane Nahmani (sholby@sholby.net),
4
+ Stéphane Raimbault <stephane.raimbault@gmail.com> */
5
+ (function( factory ) {
6
+ if ( typeof define === "function" && define.amd ) {
7
+
8
+ // AMD. Register as an anonymous module.
9
+ define([ "../datepicker" ], factory );
10
+ } else {
11
+
12
+ // Browser globals
13
+ factory( jQuery.datepicker );
14
+ }
15
+ }(function( datepicker ) {
16
+ datepicker.regional['fr'] = {
17
+ closeText: 'Fermer',
18
+ prevText: 'Précédent',
19
+ nextText: 'Suivant',
20
+ currentText: 'Aujourd\'hui',
21
+ monthNames: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin',
22
+ 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'],
23
+ monthNamesShort: ['janv.', 'févr.', 'mars', 'avril', 'mai', 'juin',
24
+ 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'],
25
+ dayNames: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi'],
26
+ dayNamesShort: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'],
27
+ dayNamesMin: ['D','L','M','M','J','V','S'],
28
+ weekHeader: 'Sem.',
29
+ dateFormat: 'dd/mm/yy',
30
+ firstDay: 1,
31
+ isRTL: false,
32
+ showMonthAfterYear: false,
33
+ yearSuffix: ''};
34
+ datepicker.setDefaults(datepicker.regional['fr']);
35
+
36
+ return datepicker.regional['fr'];
37
+
38
+ }));
js/i18n/datepicker/datepicker-he_IL.js ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Hebrew initialisation for the UI Datepicker extension. */
2
+ /* Written by Amir Hardon (ahardon at gmail dot com). */
3
+ (function( factory ) {
4
+ if ( typeof define === "function" && define.amd ) {
5
+
6
+ // AMD. Register as an anonymous module.
7
+ define([ "../datepicker" ], factory );
8
+ } else {
9
+
10
+ // Browser globals
11
+ factory( jQuery.datepicker );
12
+ }
13
+ }(function( datepicker ) {
14
+ datepicker.regional['he'] = {
15
+ closeText: 'סגור',
16
+ prevText: '&#x3C;הקודם',
17
+ nextText: 'הבא&#x3E;',
18
+ currentText: 'היום',
19
+ monthNames: ['ינואר','פברואר','מרץ','אפריל','מאי','יוני',
20
+ 'יולי','אוגוסט','ספטמבר','אוקטובר','נובמבר','דצמבר'],
21
+ monthNamesShort: ['ינו','פבר','מרץ','אפר','מאי','יוני',
22
+ 'יולי','אוג','ספט','אוק','נוב','דצמ'],
23
+ dayNames: ['ראשון','שני','שלישי','רביעי','חמישי','שישי','שבת'],
24
+ dayNamesShort: ['א\'','ב\'','ג\'','ד\'','ה\'','ו\'','שבת'],
25
+ dayNamesMin: ['א\'','ב\'','ג\'','ד\'','ה\'','ו\'','שבת'],
26
+ weekHeader: 'Wk',
27
+ dateFormat: 'dd/mm/yy',
28
+ firstDay: 0,
29
+ isRTL: true,
30
+ showMonthAfterYear: false,
31
+ yearSuffix: ''};
32
+ datepicker.setDefaults(datepicker.regional['he']);
33
+
34
+ return datepicker.regional['he'];
35
+
36
+ }));
js/i18n/datepicker/datepicker-hu_HU.js ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Hungarian initialisation for the jQuery UI date picker plugin. */
2
+ (function( factory ) {
3
+ if ( typeof define === "function" && define.amd ) {
4
+
5
+ // AMD. Register as an anonymous module.
6
+ define([ "query.ui.datepicker"
7
+ ], factory );
8
+ } else {
9
+
10
+ // Browser globals
11
+ factory( jQuery.datepicker );
12
+ }
13
+ }(function( datepicker ) {
14
+ datepicker.regional['hu'] = {
15
+ closeText: 'bezár',
16
+ prevText: 'vissza',
17
+ nextText: 'előre',
18
+ currentText: 'ma',
19
+ monthNames: ['Január', 'Február', 'Március', 'Április', 'Május', 'Június',
20
+ 'Július', 'Augusztus', 'Szeptember', 'Október', 'November', 'December'],
21
+ monthNamesShort: ['Jan', 'Feb', 'Már', 'Ápr', 'Máj', 'Jún',
22
+ 'Júl', 'Aug', 'Szep', 'Okt', 'Nov', 'Dec'],
23
+ dayNames: ['Vasárnap', 'Hétfő', 'Kedd', 'Szerda', 'Csütörtök', 'Péntek', 'Szombat'],
24
+ dayNamesShort: ['Vas', 'Hét', 'Ked', 'Sze', 'Csü', 'Pén', 'Szo'],
25
+ dayNamesMin: ['V', 'H', 'K', 'Sze', 'Cs', 'P', 'Szo'],
26
+ weekHeader: 'Hét',
27
+ dateFormat: 'yy.mm.dd.',
28
+ firstDay: 1,
29
+ isRTL: false,
30
+ showMonthAfterYear: true,
31
+ yearSuffix: ''};
32
+ datepicker.setDefaults(datepicker.regional['hu']);
33
+
34
+ return datepicker.regional['hu'];
35
+
36
+ }));
js/i18n/datepicker/datepicker-id_ID.js ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Indonesian initialisation for the jQuery UI date picker plugin. */
2
+ /* Written by Deden Fathurahman (dedenf@gmail.com). */
3
+ (function( factory ) {
4
+ if ( typeof define === "function" && define.amd ) {
5
+
6
+ // AMD. Register as an anonymous module.
7
+ define([ "../datepicker" ], factory );
8
+ } else {
9
+
10
+ // Browser globals
11
+ factory( jQuery.datepicker );
12
+ }
13
+ }(function( datepicker ) {
14
+ datepicker.regional['id'] = {
15
+ closeText: 'Tutup',
16
+ prevText: '&#x3C;mundur',
17
+ nextText: 'maju&#x3E;',
18
+ currentText: 'hari ini',
19
+ monthNames: ['Januari','Februari','Maret','April','Mei','Juni',
20
+ 'Juli','Agustus','September','Oktober','Nopember','Desember'],
21
+ monthNamesShort: ['Jan','Feb','Mar','Apr','Mei','Jun',
22
+ 'Jul','Agus','Sep','Okt','Nop','Des'],
23
+ dayNames: ['Minggu','Senin','Selasa','Rabu','Kamis','Jumat','Sabtu'],
24
+ dayNamesShort: ['Min','Sen','Sel','Rab','kam','Jum','Sab'],
25
+ dayNamesMin: ['Mg','Sn','Sl','Rb','Km','jm','Sb'],
26
+ weekHeader: 'Mg',
27
+ dateFormat: 'dd/mm/yy',
28
+ firstDay: 0,
29
+ isRTL: false,
30
+ showMonthAfterYear: false,
31
+ yearSuffix: ''};
32
+ datepicker.setDefaults(datepicker.regional['id']);
33
+
34
+ return datepicker.regional['id'];
35
+
36
+ }));
js/i18n/datepicker/datepicker-it_IT.js ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Italian initialisation for the jQuery UI date picker plugin. */
2
+ /* Written by Antonello Pasella (antonello.pasella@gmail.com). */
3
+ (function( factory ) {
4
+ if ( typeof define === "function" && define.amd ) {
5
+
6
+ // AMD. Register as an anonymous module.
7
+ define([ "../datepicker" ], factory );
8
+ } else {
9
+
10
+ // Browser globals
11
+ factory( jQuery.datepicker );
12
+ }
13
+ }(function( datepicker ) {
14
+ datepicker.regional['it'] = {
15
+ closeText: 'Chiudi',
16
+ prevText: '&#x3C;Prec',
17
+ nextText: 'Succ&#x3E;',
18
+ currentText: 'Oggi',
19
+ monthNames: ['Gennaio','Febbraio','Marzo','Aprile','Maggio','Giugno',
20
+ 'Luglio','Agosto','Settembre','Ottobre','Novembre','Dicembre'],
21
+ monthNamesShort: ['Gen','Feb','Mar','Apr','Mag','Giu',
22
+ 'Lug','Ago','Set','Ott','Nov','Dic'],
23
+ dayNames: ['Domenica','Lunedì','Martedì','Mercoledì','Giovedì','Venerdì','Sabato'],
24
+ dayNamesShort: ['Dom','Lun','Mar','Mer','Gio','Ven','Sab'],
25
+ dayNamesMin: ['Do','Lu','Ma','Me','Gi','Ve','Sa'],
26
+ weekHeader: 'Sm',
27
+ dateFormat: 'dd/mm/yy',
28
+ firstDay: 1,
29
+ isRTL: false,
30
+ showMonthAfterYear: false,
31
+ yearSuffix: ''};
32
+ datepicker.setDefaults(datepicker.regional['it']);
33
+
34
+ return datepicker.regional['it'];
35
+
36
+ }));
js/i18n/datepicker/datepicker-ja_JP.js ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Japanese initialisation for the jQuery UI date picker plugin. */
2
+ /* Written by Kentaro SATO (kentaro@ranvis.com). */
3
+ (function( factory ) {
4
+ if ( typeof define === "function" && define.amd ) {
5
+
6
+ // AMD. Register as an anonymous module.
7
+ define([ "../datepicker" ], factory );
8
+ } else {
9
+
10
+ // Browser globals
11
+ factory( jQuery.datepicker );
12
+ }
13
+ }(function( datepicker ) {
14
+ datepicker.regional['ja'] = {
15
+ closeText: '閉じる',
16
+ prevText: '&#x3C;前',
17
+ nextText: '次&#x3E;',
18
+ currentText: '今日',
19
+ monthNames: ['1月','2月','3月','4月','5月','6月',
20
+ '7月','8月','9月','10月','11月','12月'],
21
+ monthNamesShort: ['1月','2月','3月','4月','5月','6月',
22
+ '7月','8月','9月','10月','11月','12月'],
23
+ dayNames: ['日曜日','月曜日','火曜日','水曜日','木曜日','金曜日','土曜日'],
24
+ dayNamesShort: ['日','月','火','水','木','金','土'],
25
+ dayNamesMin: ['日','月','火','水','木','金','土'],
26
+ weekHeader: '週',
27
+ dateFormat: 'yy/mm/dd',
28
+ firstDay: 0,
29
+ isRTL: false,
30
+ showMonthAfterYear: true,
31
+ yearSuffix: '年'};
32
+ datepicker.setDefaults(datepicker.regional['ja']);
33
+
34
+ return datepicker.regional['ja'];
35
+
36
+ }));
js/i18n/datepicker/datepicker-ko_KR.js ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Korean initialisation for the jQuery calendar extension. */
2
+ /* Written by DaeKwon Kang (ncrash.dk@gmail.com), Edited by Genie. */
3
+ (function( factory ) {
4
+ if ( typeof define === "function" && define.amd ) {
5
+
6
+ // AMD. Register as an anonymous module.
7
+ define([ "../datepicker" ], factory );
8
+ } else {
9
+
10
+ // Browser globals
11
+ factory( jQuery.datepicker );
12
+ }
13
+ }(function( datepicker ) {
14
+ datepicker.regional['ko'] = {
15
+ closeText: '닫기',
16
+ prevText: '이전달',
17
+ nextText: '다음달',
18
+ currentText: '오늘',
19
+ monthNames: ['1월','2월','3월','4월','5월','6월',
20
+ '7월','8월','9월','10월','11월','12월'],
21
+ monthNamesShort: ['1월','2월','3월','4월','5월','6월',
22
+ '7월','8월','9월','10월','11월','12월'],
23
+ dayNames: ['일요일','월요일','화요일','수요일','목요일','금요일','토요일'],
24
+ dayNamesShort: ['일','월','화','수','목','금','토'],
25
+ dayNamesMin: ['일','월','화','수','목','금','토'],
26
+ weekHeader: 'Wk',
27
+ dateFormat: 'yy-mm-dd',
28
+ firstDay: 0,
29
+ isRTL: false,
30
+ showMonthAfterYear: true,
31
+ yearSuffix: '년'};
32
+ datepicker.setDefaults(datepicker.regional['ko']);
33
+
34
+ return datepicker.regional['ko'];
35
+
36
+ }));
js/i18n/datepicker/datepicker-nl_NL.js ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Dutch (UTF-8) initialisation for the jQuery UI date picker plugin. */
2
+ /* Written by Mathias Bynens <http://mathiasbynens.be/> */
3
+ (function( factory ) {
4
+ if ( typeof define === "function" && define.amd ) {
5
+
6
+ // AMD. Register as an anonymous module.
7
+ define([ "../datepicker" ], factory );
8
+ } else {
9
+
10
+ // Browser globals
11
+ factory( jQuery.datepicker );
12
+ }
13
+ }(function( datepicker ) {
14
+ datepicker.regional.nl = {
15
+ closeText: 'Sluiten',
16
+ prevText: '←',
17
+ nextText: '→',
18
+ currentText: 'Vandaag',
19
+ monthNames: ['januari', 'februari', 'maart', 'april', 'mei', 'juni',
20
+ 'juli', 'augustus', 'september', 'oktober', 'november', 'december'],
21
+ monthNamesShort: ['jan', 'feb', 'mrt', 'apr', 'mei', 'jun',
22
+ 'jul', 'aug', 'sep', 'okt', 'nov', 'dec'],
23
+ dayNames: ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag'],
24
+ dayNamesShort: ['zon', 'maa', 'din', 'woe', 'don', 'vri', 'zat'],
25
+ dayNamesMin: ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'],
26
+ weekHeader: 'Wk',
27
+ dateFormat: 'dd-mm-yy',
28
+ firstDay: 1,
29
+ isRTL: false,
30
+ showMonthAfterYear: false,
31
+ yearSuffix: ''};
32
+ datepicker.setDefaults(datepicker.regional.nl);
33
+
34
+ return datepicker.regional.nl;
35
+
36
+ }));
js/i18n/datepicker/datepicker-pl_PL.js ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Polish initialisation for the jQuery UI date picker plugin. */
2
+ /* Written by Jacek Wysocki (jacek.wysocki@gmail.com). */
3
+ (function( factory ) {
4
+ if ( typeof define === "function" && define.amd ) {
5
+
6
+ // AMD. Register as an anonymous module.
7
+ define([ "../datepicker" ], factory );
8
+ } else {
9
+
10
+ // Browser globals
11
+ factory( jQuery.datepicker );
12
+ }
13
+ }(function( datepicker ) {
14
+ datepicker.regional['pl'] = {
15
+ closeText: 'Zamknij',
16
+ prevText: '&#x3C;Poprzedni',
17
+ nextText: 'Następny&#x3E;',
18
+ currentText: 'Dziś',
19
+ monthNames: ['Styczeń','Luty','Marzec','Kwiecień','Maj','Czerwiec',
20
+ 'Lipiec','Sierpień','Wrzesień','Październik','Listopad','Grudzień'],
21
+ monthNamesShort: ['Sty','Lu','Mar','Kw','Maj','Cze',
22
+ 'Lip','Sie','Wrz','Pa','Lis','Gru'],
23
+ dayNames: ['Niedziela','Poniedziałek','Wtorek','Środa','Czwartek','Piątek','Sobota'],
24
+ dayNamesShort: ['Nie','Pn','Wt','Śr','Czw','Pt','So'],
25
+ dayNamesMin: ['N','Pn','Wt','Śr','Cz','Pt','So'],
26
+ weekHeader: 'Tydz',
27
+ dateFormat: 'dd.mm.yy',
28
+ firstDay: 1,
29
+ isRTL: false,
30
+ showMonthAfterYear: false,
31
+ yearSuffix: ''};
32
+ datepicker.setDefaults(datepicker.regional['pl']);
33
+
34
+ return datepicker.regional['pl'];
35
+
36
+ }));
js/i18n/datepicker/datepicker-pt_BR.js ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Brazilian initialisation for the jQuery UI date picker plugin. */
2
+ /* Written by Leonildo Costa Silva (leocsilva@gmail.com). */
3
+ (function( factory ) {
4
+ if ( typeof define === "function" && define.amd ) {
5
+
6
+ // AMD. Register as an anonymous module.
7
+ define([ "../datepicker" ], factory );
8
+ } else {
9
+
10
+ // Browser globals
11
+ factory( jQuery.datepicker );
12
+ }
13
+ }(function( datepicker ) {
14
+ datepicker.regional['pt-BR'] = {
15
+ closeText: 'Fechar',
16
+ prevText: '&#x3C;Anterior',
17
+ nextText: 'Próximo&#x3E;',
18
+ currentText: 'Hoje',
19
+ monthNames: ['Janeiro','Fevereiro','Março','Abril','Maio','Junho',
20
+ 'Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'],
21
+ monthNamesShort: ['Jan','Fev','Mar','Abr','Mai','Jun',
22
+ 'Jul','Ago','Set','Out','Nov','Dez'],
23
+ dayNames: ['Domingo','Segunda-feira','Terça-feira','Quarta-feira','Quinta-feira','Sexta-feira','Sábado'],
24
+ dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','Sáb'],
25
+ dayNamesMin: ['Dom','Seg','Ter','Qua','Qui','Sex','Sáb'],
26
+ weekHeader: 'Sm',
27
+ dateFormat: 'dd/mm/yy',
28
+ firstDay: 0,
29
+ isRTL: false,
30
+ showMonthAfterYear: false,
31
+ yearSuffix: ''};
32
+ datepicker.setDefaults(datepicker.regional['pt-BR']);
33
+
34
+ return datepicker.regional['pt-BR'];
35
+
36
+ }));
js/i18n/datepicker/datepicker-pt_PT.js ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Portuguese initialisation for the jQuery UI date picker plugin. */
2
+ (function( factory ) {
3
+ if ( typeof define === "function" && define.amd ) {
4
+
5
+ // AMD. Register as an anonymous module.
6
+ define([ "../datepicker" ], factory );
7
+ } else {
8
+
9
+ // Browser globals
10
+ factory( jQuery.datepicker );
11
+ }
12
+ }(function( datepicker ) {
13
+ datepicker.regional['pt'] = {
14
+ closeText: 'Fechar',
15
+ prevText: 'Anterior',
16
+ nextText: 'Seguinte',
17
+ currentText: 'Hoje',
18
+ monthNames: ['Janeiro','Fevereiro','Março','Abril','Maio','Junho',
19
+ 'Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'],
20
+ monthNamesShort: ['Jan','Fev','Mar','Abr','Mai','Jun',
21
+ 'Jul','Ago','Set','Out','Nov','Dez'],
22
+ dayNames: ['Domingo','Segunda-feira','Terça-feira','Quarta-feira','Quinta-feira','Sexta-feira','Sábado'],
23
+ dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','Sáb'],
24
+ dayNamesMin: ['Dom','Seg','Ter','Qua','Qui','Sex','Sáb'],
25
+ weekHeader: 'Sem',
26
+ dateFormat: 'dd/mm/yy',
27
+ firstDay: 0,
28
+ isRTL: false,
29
+ showMonthAfterYear: false,
30
+ yearSuffix: ''};
31
+ datepicker.setDefaults(datepicker.regional['pt']);
32
+
33
+ return datepicker.regional['pt'];
34
+
35
+ }));
js/i18n/datepicker/datepicker-ro_RO.js ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Romanian initialisation for the jQuery UI date picker plugin.
2
+ *
3
+ * Written by Edmond L. (ll_edmond@walla.com)
4
+ * and Ionut G. Stan (ionut.g.stan@gmail.com)
5
+ */
6
+ (function( factory ) {
7
+ if ( typeof define === "function" && define.amd ) {
8
+
9
+ // AMD. Register as an anonymous module.
10
+ define([ "../datepicker" ], factory );
11
+ } else {
12
+
13
+ // Browser globals
14
+ factory( jQuery.datepicker );
15
+ }
16
+ }(function( datepicker ) {
17
+ datepicker.regional['ro'] = {
18
+ closeText: 'Închide',
19
+ prevText: '&#xAB; Luna precedentă',
20
+ nextText: 'Luna următoare &#xBB;',
21
+ currentText: 'Azi',
22
+ monthNames: ['Ianuarie','Februarie','Martie','Aprilie','Mai','Iunie',
23
+ 'Iulie','August','Septembrie','Octombrie','Noiembrie','Decembrie'],
24
+ monthNamesShort: ['Ian', 'Feb', 'Mar', 'Apr', 'Mai', 'Iun',
25
+ 'Iul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
26
+ dayNames: ['Duminică', 'Luni', 'Marţi', 'Miercuri', 'Joi', 'Vineri', 'Sâmbătă'],
27
+ dayNamesShort: ['Dum', 'Lun', 'Mar', 'Mie', 'Joi', 'Vin', 'Sâm'],
28
+ dayNamesMin: ['Du','Lu','Ma','Mi','Jo','Vi','Sâ'],
29
+ weekHeader: 'Săpt',
30
+ dateFormat: 'dd.mm.yy',
31
+ firstDay: 1,
32
+ isRTL: false,
33
+ showMonthAfterYear: false,
34
+ yearSuffix: ''};
35
+ datepicker.setDefaults(datepicker.regional['ro']);
36
+
37
+ return datepicker.regional['ro'];
38
+
39
+ }));
js/i18n/datepicker/datepicker-ru_RU.js ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Russian (UTF-8) initialisation for the jQuery UI date picker plugin. */
2
+ /* Written by Andrew Stromnov (stromnov@gmail.com). */
3
+ (function( factory ) {
4
+ if ( typeof define === "function" && define.amd ) {
5
+
6
+ // AMD. Register as an anonymous module.
7
+ define([ "../datepicker" ], factory );
8
+ } else {
9
+
10
+ // Browser globals
11
+ factory( jQuery.datepicker );
12
+ }
13
+ }(function( datepicker ) {
14
+ datepicker.regional['ru'] = {
15
+ closeText: 'Закрыть',
16
+ prevText: '&#x3C;Пред',
17
+ nextText: 'След&#x3E;',
18
+ currentText: 'Сегодня',
19
+ monthNames: ['Январь','Февраль','Март','Апрель','Май','Июнь',
20
+ 'Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'],
21
+ monthNamesShort: ['Янв','Фев','Мар','Апр','Май','Июн',
22
+ 'Июл','Авг','Сен','Окт','Ноя','Дек'],
23
+ dayNames: ['воскресенье','понедельник','вторник','среда','четверг','пятница','суббота'],
24
+ dayNamesShort: ['вск','пнд','втр','срд','чтв','птн','сбт'],
25
+ dayNamesMin: ['Вс','Пн','Вт','Ср','Чт','Пт','Сб'],
26
+ weekHeader: 'Нед',
27
+ dateFormat: 'dd.mm.yy',
28
+ firstDay: 1,
29
+ isRTL: false,
30
+ showMonthAfterYear: false,
31
+ yearSuffix: ''};
32
+ datepicker.setDefaults(datepicker.regional['ru']);
33
+
34
+ return datepicker.regional['ru'];
35
+
36
+ }));
js/i18n/datepicker/datepicker-sv_SE.js ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Swedish initialisation for the jQuery UI date picker plugin. */
2
+ /* Written by Anders Ekdahl ( anders@nomadiz.se). */
3
+ (function( factory ) {
4
+ if ( typeof define === "function" && define.amd ) {
5
+
6
+ // AMD. Register as an anonymous module.
7
+ define([ "../datepicker" ], factory );
8
+ } else {
9
+
10
+ // Browser globals
11
+ factory( jQuery.datepicker );
12
+ }
13
+ }(function( datepicker ) {
14
+ datepicker.regional['sv'] = {
15
+ closeText: 'Stäng',
16
+ prevText: '&#xAB;Förra',
17
+ nextText: 'Nästa&#xBB;',
18
+ currentText: 'Idag',
19
+ monthNames: ['Januari','Februari','Mars','April','Maj','Juni',
20
+ 'Juli','Augusti','September','Oktober','November','December'],
21
+ monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun',
22
+ 'Jul','Aug','Sep','Okt','Nov','Dec'],
23
+ dayNamesShort: ['Sön','Mån','Tis','Ons','Tor','Fre','Lör'],
24
+ dayNames: ['Söndag','Måndag','Tisdag','Onsdag','Torsdag','Fredag','Lördag'],
25
+ dayNamesMin: ['Sö','Må','Ti','On','To','Fr','Lö'],
26
+ weekHeader: 'Ve',
27
+ dateFormat: 'yy-mm-dd',
28
+ firstDay: 1,
29
+ isRTL: false,
30
+ showMonthAfterYear: false,
31
+ yearSuffix: ''};
32
+ datepicker.setDefaults(datepicker.regional['sv']);
33
+
34
+ return datepicker.regional['sv'];
35
+
36
+ }));
js/i18n/datepicker/datepicker-tr_TR.js ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Turkish initialisation for the jQuery UI date picker plugin. */
2
+ /* Written by Izzet Emre Erkan (kara@karalamalar.net). */
3
+ (function( factory ) {
4
+ if ( typeof define === "function" && define.amd ) {
5
+
6
+ // AMD. Register as an anonymous module.
7
+ define([ "../datepicker" ], factory );
8
+ } else {
9
+
10
+ // Browser globals
11
+ factory( jQuery.datepicker );
12
+ }
13
+ }(function( datepicker ) {
14
+ datepicker.regional['tr'] = {
15
+ closeText: 'kapat',
16
+ prevText: '&#x3C;geri',
17
+ nextText: 'ileri&#x3e',
18
+ currentText: 'bugün',
19
+ monthNames: ['Ocak','Şubat','Mart','Nisan','Mayıs','Haziran',
20
+ 'Temmuz','Ağustos','Eylül','Ekim','Kasım','Aralık'],
21
+ monthNamesShort: ['Oca','Şub','Mar','Nis','May','Haz',
22
+ 'Tem','Ağu','Eyl','Eki','Kas','Ara'],
23
+ dayNames: ['Pazar','Pazartesi','Salı','Çarşamba','Perşembe','Cuma','Cumartesi'],
24
+ dayNamesShort: ['Pz','Pt','Sa','Ça','Pe','Cu','Ct'],
25
+ dayNamesMin: ['Pz','Pt','Sa','Ça','Pe','Cu','Ct'],
26
+ weekHeader: 'Hf',
27
+ dateFormat: 'dd.mm.yy',
28
+ firstDay: 1,
29
+ isRTL: false,
30
+ showMonthAfterYear: false,
31
+ yearSuffix: ''};
32
+ datepicker.setDefaults(datepicker.regional['tr']);
33
+
34
+ return datepicker.regional['tr'];
35
+
36
+ }));
js/i18n/datepicker/datepicker-zh_CN.js ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Chinese initialisation for the jQuery UI date picker plugin. */
2
+ /* Written by Cloudream (cloudream@gmail.com). */
3
+ (function( factory ) {
4
+ if ( typeof define === "function" && define.amd ) {
5
+
6
+ // AMD. Register as an anonymous module.
7
+ define([ "../datepicker" ], factory );
8
+ } else {
9
+
10
+ // Browser globals
11
+ factory( jQuery.datepicker );
12
+ }
13
+ }(function( datepicker ) {
14
+ datepicker.regional['zh-CN'] = {
15
+ closeText: '关闭',
16
+ prevText: '&#x3C;上月',
17
+ nextText: '下月&#x3E;',
18
+ currentText: '今天',
19
+ monthNames: ['一月','二月','三月','四月','五月','六月',
20
+ '七月','八月','九月','十月','十一月','十二月'],
21
+ monthNamesShort: ['一月','二月','三月','四月','五月','六月',
22
+ '七月','八月','九月','十月','十一月','十二月'],
23
+ dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'],
24
+ dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'],
25
+ dayNamesMin: ['日','一','二','三','四','五','六'],
26
+ weekHeader: '周',
27
+ dateFormat: 'yy-mm-dd',
28
+ firstDay: 1,
29
+ isRTL: false,
30
+ showMonthAfterYear: true,
31
+ yearSuffix: '年'};
32
+ datepicker.setDefaults(datepicker.regional['zh-CN']);
33
+
34
+ return datepicker.regional['zh-CN'];
35
+
36
+ }));
js/i18n/datepicker/datepicker-zh_TW.js ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Chinese initialisation for the jQuery UI date picker plugin. */
2
+ /* Written by Ressol (ressol@gmail.com). */
3
+ (function( factory ) {
4
+ if ( typeof define === "function" && define.amd ) {
5
+
6
+ // AMD. Register as an anonymous module.
7
+ define([ "../datepicker" ], factory );
8
+ } else {
9
+
10
+ // Browser globals
11
+ factory( jQuery.datepicker );
12
+ }
13
+ }(function( datepicker ) {
14
+ datepicker.regional['zh-TW'] = {
15
+ closeText: '關閉',
16
+ prevText: '&#x3C;上月',
17
+ nextText: '下月&#x3E;',
18
+ currentText: '今天',
19
+ monthNames: ['一月','二月','三月','四月','五月','六月',
20
+ '七月','八月','九月','十月','十一月','十二月'],
21
+ monthNamesShort: ['一月','二月','三月','四月','五月','六月',
22
+ '七月','八月','九月','十月','十一月','十二月'],
23
+ dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'],
24
+ dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'],
25
+ dayNamesMin: ['日','一','二','三','四','五','六'],
26
+ weekHeader: '周',
27
+ dateFormat: 'yy/mm/dd',
28
+ firstDay: 1,
29
+ isRTL: false,
30
+ showMonthAfterYear: true,
31
+ yearSuffix: '年'};
32
+ datepicker.setDefaults(datepicker.regional['zh-TW']);
33
+
34
+ return datepicker.regional['zh-TW'];
35
+
36
+ }));
js/i18n/validate/messages-cs_CS.js ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Translated default messages for the jQuery validation plugin.
3
+ * Locale: CS (Czech; čeština, český jazyk)
4
+ */
5
+ (function($) {
6
+ $.extend($.validator.messages, {
7
+ required: "Tento údaj je povinný.",
8
+ remote: "Prosím, opravte tento údaj.",
9
+ email: "Prosím, zadejte platný e-mail.",
10
+ url: "Prosím, zadejte platné URL.",
11
+ date: "Prosím, zadejte platné datum.",
12
+ dateISO: "Prosím, zadejte platné datum (ISO).",
13
+ number: "Prosím, zadejte číslo.",
14
+ digits: "Prosím, zadávejte pouze číslice.",
15
+ creditcard: "Prosím, zadejte číslo kreditní karty.",
16
+ equalTo: "Prosím, zadejte znovu stejnou hodnotu.",
17
+ accept: "Prosím, zadejte soubor se správnou příponou.",
18
+ maxlength: $.validator.format("Prosím, zadejte nejvíce {0} znaků."),
19
+ minlength: $.validator.format("Prosím, zadejte nejméně {0} znaků."),
20
+ rangelength: $.validator.format("Prosím, zadejte od {0} do {1} znaků."),
21
+ range: $.validator.format("Prosím, zadejte hodnotu od {0} do {1}."),
22
+ max: $.validator.format("Prosím, zadejte hodnotu menší nebo rovnu {0}."),
23
+ min: $.validator.format("Prosím, zadejte hodnotu větší nebo rovnu {0}."),
24
+ maxWords: $.validator.format("Prosím, zadejte {0} slova nebo méně."),
25
+ minWords: $.validator.format("Prosím, zadejte alespoň {0} slov."),
26
+ rangeWords: $.validator.format("Prosím zadejte mezi {0} a {1} slovy."),
27
+ alphanumeric: "Písmena, číslice a podtržítka jen prosím",
28
+ lettersonly: "Dopisy jen prosím",
29
+ nowhitespace: "Žádné mezery, prosím",
30
+ phone: 'Prosím, zadejte platné telefonní číslo. Většina USA / Kanada a mezinárodní formáty přijaty.',
31
+ ipv4: 'Prosím, zadejte platnou IP v4 adresu.',
32
+ ipv6: 'Prosím, zadejte platnou IP v6 adresu.',
33
+ ziprange: 'Váš ZIP kód musí v rozsahu 902xx-xxxx na 905-xx-xxxx',
34
+ zipcodeUS: 'Zadaná US PSČ je neplatné',
35
+ integer: 'Pozitivní nebo negativní, non-desetinné číslo, prosím',
36
+ vfbUsername: 'Toto uživatelské jméno je již registrováno. Prosím, zvolte jinou'
37
+ });
38
+ }(jQuery));
js/i18n/validate/messages-de_DE.js ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Translated default messages for the jQuery validation plugin.
3
+ * Locale: DE (German, Deutsch)
4
+ */
5
+ (function($) {
6
+ $.extend($.validator.messages, {
7
+ required: "Dieses Feld ist ein Pflichtfeld.",
8
+ remote: "Bitte korrigieren Sie dieses Feld.",
9
+ email: "Geben Sie bitte eine gültige E-Mail Adresse ein.",
10
+ url: "Geben Sie bitte eine gültige URL ein.",
11
+ date: "Bitte geben Sie ein gültiges Datum ein.",
12
+ dateISO: "Bitte geben Sie ein gültiges Datum ein (ISO).",
13
+ number: "Geben Sie bitte eine Nummer ein.",
14
+ digits: "Geben Sie bitte nur Ziffern ein.",
15
+ creditcard: "Geben Sie bitte eine gültige Kreditkarten-Nummer ein.",
16
+ equalTo: "Bitte denselben Wert wiederholen.",
17
+ accept: "Bitte geben Sie einen Wert mit einer gültigen Erweiterung.",
18
+ maxlength: $.validator.format("Geben Sie bitte maximal {0} Zeichen ein."),
19
+ minlength: $.validator.format("Geben Sie bitte mindestens {0} Zeichen ein."),
20
+ rangelength: $.validator.format("Geben Sie bitte mindestens {0} und maximal {1} Zeichen ein."),
21
+ range: $.validator.format("Geben Sie bitte einen Wert zwischen {0} und {1} ein."),
22
+ max: $.validator.format("Geben Sie bitte einen Wert kleiner oder gleich {0} ein."),
23
+ min: $.validator.format("Geben Sie bitte einen Wert größer oder gleich {0} ein."),
24
+ maxWords: $.validator.format("Geben Sie bitte {0} Wörter oder weniger."),
25
+ minWords: $.validator.format("Geben Sie bitte mindestens {0} Worte."),
26
+ rangeWords: $.validator.format("Geben Sie bitte zwischen {0} und {1} Wörter eingeben."),
27
+ alphanumeric: "Buchstaben, Zahlen und Unterstrichen bitte",
28
+ lettersonly: "Nur Buchstaben bitte",
29
+ nowhitespace: "Kein Leerzeichen bitte",
30
+ phone: 'Bitte geben Sie eine gültige Telefonnummer. Die meisten US / Canada und internationale Formate akzeptiert.',
31
+ ipv4: 'Bitte geben Sie eine gültige IP v4 Adresse.',
32
+ ipv6: 'Bitte geben Sie eine gültige IP-v6-Adresse.',
33
+ ziprange: 'Ihre ZIP-Code muss im Bereich 902xx-xxxx bis 905-xx-xxxx sein',
34
+ zipcodeUS: 'Die angegebene US-Postleitzahl ist ungültig',
35
+ integer: 'Eine positive oder negative Nicht-Dezimalzahl bitte',
36
+ vfbUsername: 'Dieser Benutzername ist bereits registriert. Bitte wählen Sie einen anderen'
37
+ });
38
+ }(jQuery));
js/i18n/validate/messages-el_GR.js ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Translated default messages for the jQuery validation plugin.
3
+ * Locale: EL (Greek; ελληνικά)
4
+ */
5
+ (function($) {
6
+ $.extend($.validator.messages, {
7
+ required: "Αυτό το πεδίο είναι υποχρεωτικό.",
8
+ remote: "Παρακαλώ διορθώστε αυτό το πεδίο.",
9
+ email: "Παρακαλώ εισάγετε μια έγκυρη διεύθυνση email.",
10
+ url: "Παρακαλώ εισάγετε ένα έγκυρο URL.",
11
+ date: "Παρακαλώ εισάγετε μια έγκυρη ημερομηνία.",
12
+ dateISO: "Παρακαλώ εισάγετε μια έγκυρη ημερομηνία (ISO).",
13
+ number: "Παρακαλώ εισάγετε έναν έγκυρο αριθμό.",
14
+ digits: "Παρακαλώ εισάγετε μόνο αριθμητικά ψηφία.",
15
+ creditcard: "Παρακαλώ εισάγετε έναν έγκυρο αριθμό πιστωτικής κάρτας.",
16
+ equalTo: "Παρακαλώ εισάγετε την ίδια τιμή ξανά.",
17
+ accept: "Παρακαλώ εισάγετε μια τιμή με έγκυρη επέκταση αρχείου.",
18
+ maxlength: $.validator.format("Παρακαλώ εισάγετε μέχρι και {0} χαρακτήρες."),
19
+ minlength: $.validator.format("Παρακαλώ εισάγετε τουλάχιστον {0} χαρακτήρες."),
20
+ rangelength: $.validator.format("Παρακαλώ εισάγετε μια τιμή με μήκος μεταξύ {0} και {1} χαρακτήρων."),
21
+ range: $.validator.format("Παρακαλώ εισάγετε μια τιμή μεταξύ {0} και {1}."),
22
+ max: $.validator.format("Παρακαλώ εισάγετε μια τιμή μικρότερη ή ίση του {0}."),
23
+ min: $.validator.format("Παρακαλώ εισάγετε μια τιμή μεγαλύτερη ή ίση του {0}."),
24
+ maxWords: $.validator.format("Παρακαλούμε, εισάγετε {0} λέξεις ή λιγότερο."),
25
+ minWords: $.validator.format("Παρακαλούμε, εισάγετε τουλάχιστον {0} λόγια."),
26
+ rangeWords: $.validator.format("Παρακαλούμε, εισάγετε μεταξύ {0} και {1} λόγια."),
27
+ alphanumeric: "Γράμματα, αριθμούς και χαρακτήρες υπογράμμισης μόνο παρακαλώ",
28
+ lettersonly: "Επιστολές μόνο παρακαλώ",
29
+ nowhitespace: "Δεν λευκό χώρο, παρακαλείστε να",
30
+ phone: 'Παρακαλώ εισάγετε έναν έγκυρο αριθμό τηλεφώνου. Οι περισσότερες μορφές των ΗΠΑ / Καναδά και διεθνή αποδεκτά.',
31
+ ipv4: 'Παρακαλώ εισάγετε μια έγκυρη διεύθυνση IP v4.',
32
+ ipv6: 'Παρακαλώ εισάγετε μια έγκυρη διεύθυνση IP v6.',
33
+ ziprange: 'Ο ταχυδρομικός σας κωδικός πρέπει να είναι στο εύρος 902xx-xxxx 905-xx-xxxx',
34
+ zipcodeUS: 'Η συγκεκριμένη ΗΠΑ ταχυδρομικός κώδικας δεν είναι έγκυρος',
35
+ integer: 'Μια θετική ή αρνητική μη δεκαδικό αριθμό παρακαλώ',
36
+ vfbUsername: 'Αυτό το όνομα χρήστη είναι ήδη καταχωρημένο. Παρακαλώ επιλέξτε ένα άλλο'
37
+ });
38
+ }(jQuery));
js/i18n/validate/messages-en_AU.js ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Translated default messages for the jQuery validation plugin.
3
+ * Locale: EN (English)
4
+ * Region: AU (Austrailian)
5
+ */
6
+ (function($) {
7
+ $.extend($.validator.messages, {
8
+ required: 'This field is required.',
9
+ remote: 'Please fix this field.',
10
+ email: 'Please enter a valid email address.',
11
+ url: 'Please enter a valid URL.',
12
+ date: 'Please enter a valid date.',
13
+ dateISO: 'Please enter a valid date (ISO).',
14
+ number: 'Please enter a valid number.',
15
+ digits: 'Please enter only digits.',
16
+ creditcard: 'Please enter a valid credit card number.',
17
+ equalTo: 'Please enter the same value again.',
18
+ maxlength: $.validator.format( 'Please enter no more than {0} characters.' ),
19
+ minlength: $.validator.format( 'Please enter at least {0} characters.' ),
20
+ rangelength: $.validator.format( 'Please enter a value between {0} and {1} characters long.' ),
21
+ range: $.validator.format( 'Please enter a value between {0} and {1}.' ),
22
+ max: $.validator.format( 'Please enter a value less than or equal to {0}.' ),
23
+ min: $.validator.format( 'Please enter a value greater than or equal to {0}.' ),
24
+ maxWords: $.validator.format( 'Please enter {0} words or less.' ),
25
+ minWords: $.validator.format( 'Please enter at least {0} words.' ),
26
+ rangeWords: $.validator.format( 'Please enter between {0} and {1} words.' ),
27
+ alphanumeric: 'Letters, numbers, and underscores only please',
28
+ lettersonly: 'Letters only please',
29
+ nowhitespace: 'No white space please',
30
+ phone: 'Please enter a valid phone number. Most US/Canada and International formats accepted.',
31
+ ipv4: 'Please enter a valid IP v4 address.',
32
+ ipv6: 'Please enter a valid IP v6 address.',
33
+ ziprange: 'Your ZIP-code must be in the range 902xx-xxxx to 905-xx-xxxx',
34
+ zipcodeUS: 'The specified US ZIP Code is invalid',
35
+ integer: 'A positive or negative non-decimal number please',
36
+ vfbUsername: 'This username is already registered. Please choose another one.'
37
+ });
38
+ }(jQuery));
js/i18n/validate/messages-en_GB.js ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Translated default messages for the jQuery validation plugin.
3
+ * Locale: EN (English)
4
+ * Region: GB (Great Britain)
5
+ */
6
+ (function($) {
7
+ $.extend($.validator.messages, {
8
+ required: 'This field is required.',
9
+ remote: 'Please fix this field.',
10
+ email: 'Please enter a valid email address.',
11
+ url: 'Please enter a valid URL.',
12
+ date: 'Please enter a valid date.',
13
+ dateISO: 'Please enter a valid date (ISO).',
14
+ number: 'Please enter a valid number.',
15
+ digits: 'Please enter only digits.',
16
+ creditcard: 'Please enter a valid credit card number.',
17
+ equalTo: 'Please enter the same value again.',
18
+ maxlength: $.validator.format( 'Please enter no more than {0} characters.' ),
19
+ minlength: $.validator.format( 'Please enter at least {0} characters.' ),
20
+ rangelength: $.validator.format( 'Please enter a value between {0} and {1} characters long.' ),
21
+ range: $.validator.format( 'Please enter a value between {0} and {1}.' ),
22
+ max: $.validator.format( 'Please enter a value less than or equal to {0}.' ),
23
+ min: $.validator.format( 'Please enter a value greater than or equal to {0}.' ),
24
+ maxWords: $.validator.format( 'Please enter {0} words or less.' ),
25
+ minWords: $.validator.format( 'Please enter at least {0} words.' ),
26
+ rangeWords: $.validator.format( 'Please enter between {0} and {1} words.' ),
27
+ alphanumeric: 'Letters, numbers, and underscores only please',
28
+ lettersonly: 'Letters only please',
29
+ nowhitespace: 'No white space please',
30
+ phone: 'Please enter a valid phone number. Most US/Canada and International formats accepted.',
31
+ ipv4: 'Please enter a valid IP v4 address.',
32
+ ipv6: 'Please enter a valid IP v6 address.',
33
+ ziprange: 'Your ZIP-code must be in the range 902xx-xxxx to 905-xx-xxxx',
34
+ zipcodeUS: 'The specified US ZIP Code is invalid',
35
+ integer: 'A positive or negative non-decimal number please',
36
+ vfbUsername: 'This username is already registered. Please choose another one.'
37
+ });
38
+ }(jQuery));
js/i18n/validate/messages-en_US.js ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Translated default messages for the jQuery validation plugin.
3
+ * Locale: EN (English)
4
+ * Region: US (United States)
5
+ */
6
+ (function($) {
7
+ $.extend($.validator.messages, {
8
+ required: 'This field is required.',
9
+ remote: 'Please fix this field.',
10
+ email: 'Please enter a valid email address.',
11
+ url: 'Please enter a valid URL.',
12
+ date: 'Please enter a valid date.',
13
+ dateISO: 'Please enter a valid date (ISO).',
14
+ number: 'Please enter a valid number.',
15
+ digits: 'Please enter only digits.',
16
+ creditcard: 'Please enter a valid credit card number.',
17
+ equalTo: 'Please enter the same value again.',
18
+ maxlength: $.validator.format( 'Please enter no more than {0} characters.' ),
19
+ minlength: $.validator.format( 'Please enter at least {0} characters.' ),
20
+ rangelength: $.validator.format( 'Please enter a value between {0} and {1} characters long.' ),
21
+ range: $.validator.format( 'Please enter a value between {0} and {1}.' ),
22
+ max: $.validator.format( 'Please enter a value less than or equal to {0}.' ),
23
+ min: $.validator.format( 'Please enter a value greater than or equal to {0}.' ),
24
+ maxWords: $.validator.format( 'Please enter {0} words or less.' ),
25
+ minWords: $.validator.format( 'Please enter at least {0} words.' ),
26
+ rangeWords: $.validator.format( 'Please enter between {0} and {1} words.' ),
27
+ alphanumeric: 'Letters, numbers, and underscores only please',
28
+ lettersonly: 'Letters only please',
29
+ nowhitespace: 'No white space please',
30
+ phone: 'Please enter a valid phone number. Most US/Canada and International formats accepted.',
31
+ ipv4: 'Please enter a valid IP v4 address.',
32
+ ipv6: 'Please enter a valid IP v6 address.',
33
+ ziprange: 'Your ZIP-code must be in the range 902xx-xxxx to 905-xx-xxxx',
34
+ zipcodeUS: 'The specified US ZIP Code is invalid',
35
+ integer: 'A positive or negative non-decimal number please',
36
+ vfbUsername: 'This username is already registered. Please choose another one.'
37
+ });
38
+ }(jQuery));
js/i18n/validate/messages-es_ES.js ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Translated default messages for the jQuery validation plugin.
3
+ * Locale: ES (Spanish; Español)
4
+ */
5
+ (function($) {
6
+ $.extend($.validator.messages, {
7
+ required: "Este campo es obligatorio.",
8
+ remote: "Por favor, rellena este campo.",
9
+ email: "Por favor, escribe una dirección de correo válida.",
10
+ url: "Por favor, escribe una URL válida.",
11
+ date: "Por favor, escribe una fecha válida.",
12
+ dateISO: "Por favor, escribe una fecha (ISO) válida.",
13
+ number: "Por favor, escribe un número entero válido.",
14
+ digits: "Por favor, escribe sólo dígitos.",
15
+ creditcard: "Por favor, escribe un número de tarjeta válido.",
16
+ equalTo: "Por favor, escribe el mismo valor de nuevo.",
17
+ accept: "Por favor, escribe un valor con una extensión aceptada.",
18
+ maxlength: $.validator.format("Por favor, no escribas más de {0} caracteres."),
19
+ minlength: $.validator.format("Por favor, no escribas menos de {0} caracteres."),
20
+ rangelength: $.validator.format("Por favor, escribe un valor entre {0} y {1} caracteres."),
21
+ range: $.validator.format("Por favor, escribe un valor entre {0} y {1}."),
22
+ max: $.validator.format("Por favor, escribe un valor menor o igual a {0}."),
23
+ min: $.validator.format("Por favor, escribe un valor mayor o igual a {0}."),
24
+ maxWords: $.validator.format("Por favor, introduzca {0} palabras o menos."),
25
+ minWords: $.validator.format("Por favor introduzca al menos {0} palabras."),
26
+ rangeWords: $.validator.format("Por favor introduce entre {0} y {1} palabras."),
27
+ alphanumeric: "Las letras, números y subrayados por favor",
28
+ lettersonly: "Cartas solamente por favor",
29
+ nowhitespace: "No hay espacio en blanco por favor",
30
+ phone: 'Por favor, introduzca un número de teléfono válido. La mayoría de los formatos de EE.UU. / Canadá e internacionales aceptados.',
31
+ ipv4: 'Por favor, introduce una dirección IP v4 válida.',
32
+ ipv6: 'Por favor, introduce una dirección IP v6 válida.',
33
+ ziprange: 'Su código postal debe estar en el rango 902xx-xxxx a 905-xx-xxxx',
34
+ zipcodeUS: 'Los EE.UU. Código postal especificado no es válido',
35
+ integer: 'Un número no decimal positivo o negativo por favor',
36
+ vfbUsername: 'Este nombre de usuario ya está registrado. Por favor elija otra'
37
+ });
38
+ }(jQuery));
js/i18n/validate/messages-fr_FR.js ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Translated default messages for the jQuery validation plugin.
3
+ * Locale: FR (French; français)
4
+ */
5
+ (function($) {
6
+ $.extend($.validator.messages, {
7
+ required: "Ce champ est obligatoire.",
8
+ remote: "Veuillez corriger ce champ.",
9
+ email: "Veuillez fournir une adresse électronique valide.",
10
+ url: "Veuillez fournir une adresse URL valide.",
11
+ date: "Veuillez fournir une date valide.",
12
+ dateISO: "Veuillez fournir une date valide (ISO).",
13
+ number: "Veuillez fournir un numéro valide.",
14
+ digits: "Veuillez fournir seulement des chiffres.",
15
+ creditcard: "Veuillez fournir un numéro de carte de crédit valide.",
16
+ equalTo: "Veuillez fournir encore la même valeur.",
17
+ accept: "Veuillez fournir une valeur avec une extension valide.",
18
+ maxlength: $.validator.format("Veuillez fournir au plus {0} caractères."),
19
+ minlength: $.validator.format("Veuillez fournir au moins {0} caractères."),
20
+ rangelength: $.validator.format("Veuillez fournir une valeur qui contient entre {0} et {1} caractères."),
21
+ range: $.validator.format("Veuillez fournir une valeur entre {0} et {1}."),
22
+ max: $.validator.format("Veuillez fournir une valeur inférieur ou égal à {0}."),
23
+ min: $.validator.format("Veuillez fournir une valeur supérieur ou égal à {0}."),
24
+ maxWords: $.validator.format("Veuillez fournir au plus {0} mots."),
25
+ minWords: $.validator.format("Veuillez fournir au moins {0} mots."),
26
+ rangeWords: $.validator.format("Veuillez fournir entre {0} et {1} mots."),
27
+ alphanumeric: "Veuillez fournir seulement des lettres, nombres, espaces et soulignages.",
28
+ lettersonly: "Veuillez fournir seulement des lettres.",
29
+ nowhitespace: "Veuillez ne pas inscrire d'espaces blancs.",
30
+ phone: 'Veuillez fournir entrez un numéro de téléphone valide. La plupart des formats US / Canada et internationales acceptées.',
31
+ ipv4: "Veuillez fournir une adresse IP v4 valide.",
32
+ ipv6: "Veuillez fournir une adresse IP v6 valide.",
33
+ ziprange: "Veuillez fournir un code postal entre 902xx-xxxx et 905-xx-xxxx.",
34
+ zipcodeUS: "Les États-Unis Code postal spécifié n'est pas valide",
35
+ integer: "Veuillez fournir un nombre non décimal qui est positif ou négatif.",
36
+ vfbUsername: "Ce nom d'utilisateur est déjà enregistré. S'il vous plaît choisir un autre"
37
+ });
38
+ }(jQuery));
js/i18n/validate/messages-he_IL.js ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Translated default messages for the jQuery validation plugin.
3
+ * Locale: HE (Hebrew; עברית)
4
+ */
5
+ (function($) {
6
+ $.extend($.validator.messages, {
7
+ required: "השדה הזה הינו שדה חובה",
8
+ remote: "נא לתקן שדה זה",
9
+ email: "נא למלא כתובת דוא\"ל חוקית",
10
+ url: "נא למלא כתובת אינטרנט חוקית",
11
+ date: "נא למלא תאריך חוקי",
12
+ dateISO: "נא למלא תאריך חוקי (ISO)",
13
+ number: "נא למלא מספר",
14
+ digits: "נא למלא רק מספרים",
15
+ creditcard: "נא למלא מספר כרטיס אשראי חוקי",
16
+ equalTo: "נא למלא את אותו ערך שוב",
17
+ accept: "נא למלא ערך עם סיומת חוקית",
18
+ maxlength: $.validator.format(".נא לא למלא יותר מ- {0} תווים"),
19
+ minlength: $.validator.format("נא למלא לפחות {0} תווים"),
20
+ rangelength: $.validator.format("נא למלא ערך בין {0} ל- {1} תווים"),
21
+ range: $.validator.format("נא למלא ערך בין {0} ל- {1}"),
22
+ max: $.validator.format("נא למלא ערך קטן או שווה ל- {0}"),
23
+ min: $.validator.format("נא למלא ערך גדול או שווה ל- {0}"),
24
+ maxWords: $.validator.format("נא להזין את {0} מילות או פחות."),
25
+ minWords: $.validator.format("נא להזין לפחות מילות {0}. "),
26
+ rangeWords: $.validator.format("נא להזין בין {0} ו {1} מילות. "),
27
+ alphanumeric: "אותיות, מספרים, ומדגיש רק בבקשה ",
28
+ lettersonly: "רק אותיות בבקשה ",
29
+ nowhitespace: "אין חלל לבן בבקשה",
30
+ phone: 'נא להזין מספר טלפון חוקי. רוב פורמטי ארה"ב / קנדה והבינלאומית מקובלים. ',
31
+ ipv4: 'נא להזין את כתובת ה-IP v4 בתוקף. ',
32
+ ipv6: 'נא להזין את כתובת ה-IP v6 בתוקף. ',
33
+ ziprange: 'מיקוד שלך חייב להיות ב902xx-XXXX טווח ל905-XX-XXXX ',
34
+ zipcodeUS: 'המיקוד בארה"ב שצוין אינו חוקי ',
35
+ integer: 'מספר שאינו עשרוני חיובי או שלילי בבקשה ',
36
+ vfbUsername: 'שם משתמש זה כבר רשום. אנא בחר אחד אחר'
37
+ });
38
+ }(jQuery));
js/i18n/validate/messages-hu_HU.js ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Translated default messages for the jQuery validation plugin.
3
+ * Locale: HU (Hungarian; Magyar)
4
+ */
5
+ (function($) {
6
+ $.extend($.validator.messages, {
7
+ required: "Kötelező megadni.",
8
+ remote: "Kérem javítsa ki ezt a mezőt.",
9
+ email: "Érvényes e-mail címnek kell lennie.",
10
+ url: "Érvényes URL-nek kell lennie.",
11
+ date: "Dátumnak kell lennie.",
12
+ dateISO: "Kérem írjon be egy érvényes dátumot (ISO).",
13
+ number: "Számnak kell lennie.",
14
+ digits: "Csak számjegyek lehetnek.",
15
+ creditcard: "Érvényes hitelkártyaszámnak kell lennie.",
16
+ equalTo: "Meg kell egyeznie a két értéknek.",
17
+ accept: "Adjon meg egy értéket, megfelelő végződéssel.",
18
+ maxlength: $.validator.format("Legfeljebb {0} karakter hosszú legyen."),
19
+ minlength: $.validator.format("Legalább {0} karakter hosszú legyen."),
20
+ rangelength: $.validator.format("Legalább {0} és legfeljebb {1} karakter hosszú legyen."),
21
+ range: $.validator.format("{0} és {1} közé kell esnie."),
22
+ max: $.validator.format("Nem lehet nagyobb, mint {0}."),
23
+ min: $.validator.format("Nem lehet kisebb, mint {0}."),
24
+ maxWords: $.validator.format("Kérjük, adja meg {0} szó, vagy kevesebb."),
25
+ minWords: $.validator.format("Kérjük, adja meg legalább {0} szó."),
26
+ rangeWords: $.validator.format("Kérjük, adja meg {0} {1} szavakat."),
27
+ alphanumeric: "Betűk, számok és aláhúzás csak kérjük",
28
+ lettersonly: "Letters csak kérlek",
29
+ nowhitespace: "No white space kérlek",
30
+ phone: 'Adjon meg egy érvényes telefonszámot. A legtöbb USA / Kanada és nemzetközi formátumban elfogadott.',
31
+ ipv4: 'Adjon meg egy érvényes IP v4-címet.',
32
+ ipv6: 'Adjon meg egy érvényes IP v6-címet.',
33
+ ziprange: 'A zip-kódot kell a tartományban 902xx-xxxx a 905-xx-xxxx',
34
+ zipcodeUS: 'A megadott US irányítószám érvénytelen',
35
+ integer: 'A pozitív vagy negatív nem decimális számot kérjük',
36
+ vfbUsername: 'Ez a felhasználónév már regisztrálva van. Kérjük, válasszon egy másikat'
37
+ });
38
+ }(jQuery));
js/i18n/validate/messages-id_ID.js ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Translated default messages for the jQuery validation plugin.
3
+ * Locale: ID (Indonesian)
4
+ */
5
+ (function($) {
6
+ $.extend($.validator.messages, {
7
+ required: "Field ini harus diisi.",
8
+ remote: "Harap perbaiki field ini.",
9
+ email: "Harap masukan alamat email yang valid.",
10
+ url: "Harap masukan URL yang valid.",
11
+ date: "Harap masukan tanggal yang valid.",
12
+ dateISO: "Harap masukan tanggal yang valid (ISO).",
13
+ number: "Harap masukan angka yang valid.",
14
+ digits: "Harap masukan hanya digit.",
15
+ creditcard: "Harap masukan nomor kartu kredit yang valid.",
16
+ equalTo: "Harap masukan nilai yang sama lagi.",
17
+ accept: "Harap masukan nilai dengan ekstensi yang valid.",
18
+ maxlength: $.validator.format("Harap masukan tidak lebih dari {0} karakter."),
19
+ minlength: $.validator.format("Harap masukan sedikitnya {0} karakter."),
20
+ rangelength: $.validator.format("Harap masukan antara {0} dan {1} karakter."),
21
+ range: $.validator.format("Harap masukan nilai antara {0} dan {1}."),
22
+ max: $.validator.format("Harap masukan nilai lebih kecil atau sama dengan {0}."),
23
+ min: $.validator.format("Harap masukan nilai lebih besar atau sama dengan {0}."),
24
+ maxWords: $.validator.format("Harap masukan {0} kata atau kurang."),
25
+ minWords: $.validator.format("Harap masukan sedikitnya {0} kata."),
26
+ rangeWords: $.validator.format("Harap masukan antara {0} dan {1} kata."),
27
+ alphanumeric: "Harap masukan hanya karakter, angka atau garis bawah.",
28
+ lettersonly: "Harap masukan hanya karakter.",
29
+ nowhitespace: "Tidak boleh ada spasi.",
30
+ phone: 'Masukkan nomor telepon yang valid. Kebanyakan format AS / Kanada dan International diterima.',
31
+ ipv4: 'Silahkan masukkan alamat IP v4 yang valid.',
32
+ ipv6: 'Silahkan masukkan alamat IP v6 valid.',
33
+ ziprange: 'Anda ZIP-kode harus dalam kisaran 902xx-xxxx untuk 905-xx-xxxx',
34
+ zipcodeUS: 'AS ZIP Code yang ditentukan tidak valid',
35
+ integer: 'Sejumlah non-desimal positif atau negatif silahkan',
36
+ vfbUsername: 'Username sudah terdaftar. Silahkan pilih yang lain'
37
+ });
38
+ }(jQuery));
js/i18n/validate/messages-it_IT.js ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Translated default messages for the jQuery validation plugin.
3
+ * Locale: IT (Italian; Italiano)
4
+ */
5
+ (function($) {
6
+ $.extend($.validator.messages, {
7
+ required: "Campo obbligatorio.",
8
+ remote: "Controlla questo campo.",
9
+ email: "Inserisci un indirizzo email valido.",
10
+ url: "Inserisci un indirizzo web valido.",
11
+ date: "Inserisci una data valida.",
12
+ dateISO: "Inserisci una data valida (ISO).",
13
+ number: "Inserisci un numero valido.",
14
+ digits: "Inserisci solo numeri.",
15
+ creditcard: "Inserisci un numero di carta di credito valido.",
16
+ equalTo: "Il valore non corrisponde.",
17
+ accept: "Inserisci un valore con un&apos;estensione valida.",
18
+ maxlength: $.validator.format("Non inserire pi&ugrave; di {0} caratteri."),
19
+ minlength: $.validator.format("Inserisci almeno {0} caratteri."),
20
+ rangelength: $.validator.format("Inserisci un valore compreso tra {0} e {1} caratteri."),
21
+ range: $.validator.format("Inserisci un valore compreso tra {0} e {1}."),
22
+ max: $.validator.format("Inserisci un valore minore o uguale a {0}."),
23
+ min: $.validator.format("Inserisci un valore maggiore o uguale a {0}."),
24
+ maxWords: $.validator.format("Inserisci {0} parole o meno."),
25
+ minWords: $.validator.format("Inserisci almeno {0} parole."),
26
+ rangeWords: $.validator.format("Inserisci tra {0} e {1} parole."),
27
+ alphanumeric: "Lettere, numeri e underscore solo per favore",
28
+ lettersonly: "Lettere solo per favore",
29
+ nowhitespace: "Nessuno spazio bianco per favore",
30
+ phone: 'Si prega di inserire un numero di telefono valido. La maggior parte dei formati di US / Canada e internazionali accettate.',
31
+ ipv4: 'Si prega di inserire un indirizzo IP v4 valido.',
32
+ ipv6: 'Si prega di inserire un indirizzo IP v6 valido.',
33
+ ziprange: 'Il tuo ZIP-codice deve essere nel range 902xx-xxxx a 905-xx-xxxx',
34
+ zipcodeUS: 'Gli Stati Uniti CAP specificato non è valido',
35
+ integer: 'Un numero non decimale positivo o negativo per favore',
36
+ vfbUsername: 'Questo nome utente è già registrato. Si prega di scegliere un altro'
37
+ });
38
+ }(jQuery));
js/i18n/validate/messages-ja_JP.js ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Translated default messages for the jQuery validation plugin.
3
+ * Locale: JA (Japanese; 日本語)
4
+ */
5
+ (function($) {
6
+ $.extend($.validator.messages, {
7
+ required: "このフィールドは必須です。",
8
+ remote: "このフィールドを修正してください。",
9
+ email: "有効なEメールアドレスを入力してください。",
10
+ url: "有効なURLを入力してください。",
11
+ date: "有効な日付を入力してください。",
12
+ dateISO: "有効な日付(ISO)を入力してください。",
13
+ number: "有効な数字を入力してください。",
14
+ digits: "数字のみを入力してください。",
15
+ creditcard: "有効なクレジットカード番号を入力してください。",
16
+ equalTo: "同じ値をもう一度入力してください。",
17
+ accept: "有効な拡張子を含む値を入力してください。",
18
+ maxlength: $.validator.format("{0} 文字以内で入力してください。"),
19
+ minlength: $.validator.format("{0} 文字以上で入力してください。"),
20
+ rangelength: $.validator.format("{0} 文字から {1} 文字までの値を入力してください。"),
21
+ range: $.validator.format("{0} から {1} までの値を入力してください。"),
22
+ max: $.validator.format("{0} 以下の値を入力してください。"),
23
+ min: $.validator.format("{0} 以上の値を入力してください。"),
24
+ maxWords: $.validator.format("{0}字以内で入力してください。"),
25
+ minWords: $.validator.format("少なくとも{0}の言葉を入力してください。"),
26
+ rangeWords: $.validator.format("{0}と{1}単語の間で入力してください。"),
27
+ alphanumeric: "文字、数字、およびアンダースコアのみでお願いします",
28
+ lettersonly: "手紙のみでお願いします",
29
+ nowhitespace: "に空白をして下さい",
30
+ phone: '有効な電話番号を入力してください。ほとんどの米国/カナダおよび国際フォーマットが受け入れた。',
31
+ ipv4: '有効なIP V4アドレスを入力してください。',
32
+ ipv6: '有効なIP V6アドレスを入力してください。',
33
+ ziprange: 'あなたの郵便番号は905-XX-XXXXの範囲の902xx-XXXXである必要があります',
34
+ zipcodeUS: '指定された米国の郵便番号が無効です',
35
+ integer: '正または負の非小数ください',
36
+ vfbUsername: 'このユーザー名はすでに登録されています。他の名前を選んでください'
37
+ });
38
+ }(jQuery));
js/i18n/validate/messages-ko_KR.js ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Translated default messages for the jQuery validation plugin.
3
+ * Locale: KO (Korean; 한국어)
4
+ */
5
+ (function($) {
6
+ $.extend($.validator.messages, {
7
+ required: "필수 항목입니다.",
8
+ remote: "항목을 수정하세요.",
9
+ email: "유효하지 않은 E-Mail주소입니다.",
10
+ url: "유효하지 않은 URL입니다.",
11
+ date: "올바른 날짜를 입력하세요.",
12
+ dateISO: "올바른 날짜(ISO)를 입력하세요.",
13
+ number: "유효한 숫자가 아닙니다.",
14
+ digits: "숫자만 입력 가능합니다.",
15
+ creditcard: "신용카드 번호가 바르지 않습니다.",
16
+ equalTo: "같은 값을 다시 입력하세요.",
17
+ accept: "올바른 확장자가 아닙니다.",
18
+ maxlength: $.validator.format("{0}자를 넘을 수 없습니다. "),
19
+ minlength: $.validator.format("{0}자 이상 입력하세요."),
20
+ rangelength: $.validator.format("문자 길이가 {0} 에서 {1} 사이의 값을 입력하세요."),
21
+ range: $.validator.format("{0} 에서 {1} 사이의 값을 입력하세요."),
22
+ max: $.validator.format("{0} 이하의 값을 입력하세요."),
23
+ min: $.validator.format("{0} 이상의 값을 입력하세요."),
24
+ maxWords: $.validator.format("{0} 단어 이하를 입력 해 주시기 바랍니다."),
25
+ minWords: $.validator.format("적어도 {0} 단어를 입력 해주세요."),
26
+ rangeWords: $.validator.format("{0}과 {1} 단어 사이에 입력하십시오."),
27
+ alphanumeric: "문자, 숫자, 그리고 밑줄 만주세요",
28
+ lettersonly: "문자 만주세요",
29
+ nowhitespace: "에 공백하시기 바랍니다",
30
+ phone: '올바른 전화 번호를 입력하세요. 대부분의 미국 / 캐나다 및 국제 형식으로 받아 들였다.',
31
+ ipv4: '유효한 IP V4 주소를 입력하십시오.',
32
+ ipv6: '유효한 IP V6 주소를 입력 해주십시오.',
33
+ ziprange: '귀하의 ZIP 코드는 905-XX-XXXX의 범위의 902xx-XXXX에 있어야합니다',
34
+ zipcodeUS: '지정된 미국의 우편 번호가 잘못되었습니다',
35
+ integer: '양수 또는 음수가 아닌 십진수주세요',
36
+ vfbUsername: '이 사용자 이름은 이미 등록되어 있습니다. 또 다른 하나를 선택하십시오'
37
+ });
38
+ }(jQuery));
js/i18n/validate/messages-nl_NL.js ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Translated default messages for the jQuery validation plugin.
3
+ * Locale: NL (Dutch; Nederlands, Vlaams)
4
+ */
5
+ (function($) {
6
+ $.extend($.validator.messages, {
7
+ required: "Dit is een verplicht veld.",
8
+ remote: "Controleer dit veld.",
9
+ email: "Vul hier een geldig e-mailadres in.",
10
+ url: "Vul hier een geldige URL in.",
11
+ date: "Vul hier een geldige datum in.",
12
+ dateISO: "Vul hier een geldige datum in (ISO-formaat).",
13
+ number: "Vul hier een geldig getal in.",
14
+ digits: "Vul hier alleen getallen in.",
15
+ creditcard: "Vul hier een geldig creditcardnummer in.",
16
+ equalTo: "Vul hier dezelfde waarde in.",
17
+ accept: "Vul hier een waarde in met een geldige extensie.",
18
+ maxlength: $.validator.format("Vul hier maximaal {0} tekens in."),
19
+ minlength: $.validator.format("Vul hier minimaal {0} tekens in."),
20
+ rangelength: $.validator.format("Vul hier een waarde in van minimaal {0} en maximaal {1} tekens."),
21
+ range: $.validator.format("Vul hier een waarde in van minimaal {0} en maximaal {1}."),
22
+ max: $.validator.format("Vul hier een waarde in kleiner dan of gelijk aan {0}."),
23
+ min: $.validator.format("Vul hier een waarde in groter dan of gelijk aan {0}."),
24
+ maxWords: $.validator.format("Vul hier {0} woorden of minder."),
25
+ minWords: $.validator.format("Vul hier minimaal {0} woorden."),
26
+ rangeWords: $.validator.format("Vul hier tussen {0} en {1} woorden."),
27
+ alphanumeric: "Letters, cijfers, en onderstreept alleen maar te behagen",
28
+ lettersonly: "Brieven slechts tevreden",
29
+ nowhitespace: "Geen witte ruimte alsjeblieft",
30
+ phone: 'Vul een geldig telefoonnummer. De meeste VS / Canada en internationale formats geaccepteerd. ',
31
+ ipv4: 'Vul een geldig IP v4 adres.',
32
+ ipv6: 'Vul een geldig IP v6 adres.',
33
+ ziprange: 'Uw postcode moet in het bereik 902xx-xxxx zijn om 905-xx-xxxx',
34
+ zipcodeUS: 'De opgegeven US postcode is ongeldig',
35
+ integer: 'Een positieve of negatieve niet-decimaal getal aub',
36
+ vfbUsername: 'Deze gebruikersnaam is al geregistreerd. Kies een andere naam'
37
+ });
38
+ }(jQuery));
js/i18n/validate/messages-pl_PL.js ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Translated default messages for the jQuery validation plugin.
3
+ * Locale: PL (Polish; język polski, polszczyzna)
4
+ */
5
+ (function($) {
6
+ $.extend($.validator.messages, {
7
+ required: "To pole jest wymagane.",
8
+ remote: "Proszę o wypełnienie tego pola.",
9
+ email: "Proszę o podanie prawidłowego adresu email.",
10
+ url: "Proszę o podanie prawidłowego URL.",
11
+ date: "Proszę o podanie prawidłowej daty.",
12
+ dateISO: "Proszę o podanie prawidłowej daty (ISO).",
13
+ number: "Proszę o podanie prawidłowej liczby.",
14
+ digits: "Proszę o podanie samych cyfr.",
15
+ creditcard: "Proszę o podanie prawidłowej karty kredytowej.",
16
+ equalTo: "Proszę o podanie tej samej wartości ponownie.",
17
+ accept: "Proszę o podanie wartości z prawidłowym rozszerzeniem.",
18
+ maxlength: $.validator.format("Proszę o podanie nie więcej niż {0} znaków."),
19
+ minlength: $.validator.format("Proszę o podanie przynajmniej {0} znaków."),
20
+ rangelength: $.validator.format("Proszę o podanie wartości o długości od {0} do {1} znaków."),
21
+ range: $.validator.format("Proszę o podanie wartości z przedziału od {0} do {1}."),
22
+ max: $.validator.format("Proszę o podanie wartości mniejszej bądź równej {0}."),
23
+ min: $.validator.format("Proszę o podanie wartości większej bądź równej {0}."),
24
+ maxWords: $.validator.format("Proszę o podanie {0} lub mniej słów."),
25
+ minWords: $.validator.format("Proszę o podanie najmniej {0} słowa"),
26
+ rangeWords: $.validator.format("Proszę o podanie między {0} i {1} słów."),
27
+ alphanumeric: "Liter, cyfr, podkreśleń i tylko proszę",
28
+ lettersonly: "Proszę tylko litery",
29
+ nowhitespace: "Proszę nie spacje",
30
+ phone: 'Proszę podać poprawny numer telefonu. Przyjmujemy większość formatów US / Kanada i międzynarodowe.',
31
+ ipv4: 'Proszę podać adres IP v4.',
32
+ ipv6: 'Proszę podać adres IP v6.',
33
+ ziprange: 'Twój kod pocztowy musi być w zakresie 902xx do 905-xxxx-xxxx-xx',
34
+ zipcodeUS: 'Określone US kod pocztowy jest nieprawidłowy',
35
+ integer: 'Dodatnia lub ujemna liczba dziesiętna proszę nie',
36
+ vfbUsername: 'Ta nazwa użytkownika jest już zarejestrowana. Wybierz inny',
37
+ });
38
+ }(jQuery));
js/i18n/validate/messages-pt_BR.js ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Translated default messages for the jQuery validation plugin.
3
+ * Locale: PT (Portuguese; português)
4
+ * Region: BR (Brazil)
5
+ */
6
+ (function($) {
7
+ $.extend($.validator.messages, {
8
+ required: "Este campo &eacute; requerido.",
9
+ remote: "Por favor, corrija este campo.",
10
+ email: "Por favor, forne&ccedil;a um endere&ccedil;o de email v&aacute;lido.",
11
+ url: "Por favor, forne&ccedil;a uma URL v&aacute;lida.",
12
+ date: "Por favor, forne&ccedil;a uma data v&aacute;lida.",
13
+ dateISO: "Por favor, forne&ccedil;a uma data v&aacute;lida (ISO).",
14
+ number: "Por favor, forne&ccedil;a um n&uacute;mero v&aacute;lido.",
15
+ digits: "Por favor, forne&ccedil;a somente d&iacute;gitos.",
16
+ creditcard: "Por favor, forne&ccedil;a um cart&atilde;o de cr&eacute;dito v&aacute;lido.",
17
+ equalTo: "Por favor, forne&ccedil;a o mesmo valor novamente.",
18
+ accept: "Por favor, forne&ccedil;a um valor com uma extens&atilde;o v&aacute;lida.",
19
+ maxlength: $.validator.format("Por favor, forne&ccedil;a n&atilde;o mais que {0} caracteres."),
20
+ minlength: $.validator.format("Por favor, forne&ccedil;a ao menos {0} caracteres."),
21
+ rangelength: $.validator.format("Por favor, forne&ccedil;a um valor entre {0} e {1} caracteres de comprimento."),
22
+ range: $.validator.format("Por favor, forne&ccedil;a um valor entre {0} e {1}."),
23
+ max: $.validator.format("Por favor, forne&ccedil;a um valor menor ou igual a {0}."),
24
+ min: $.validator.format("Por favor, forne&ccedil;a um valor maior ou igual a {0}."),
25
+ maxWords: $.validator.format("Por favor entre {0} palavras ou menos."),
26
+ minWords: $.validator.format("Por favor, insira pelo menos {0} palavras."),
27
+ rangeWords: $.validator.format("Por favor, insira entre {0} e {1} palavras."),
28
+ alphanumeric: "Letras, números e sublinhados só por favor",
29
+ lettersonly: "Cartas só por favor",
30
+ nowhitespace: "No espaço em branco, por favor",
31
+ phone: 'Por favor insira um número de telefone válido. A maioria dos formatos EUA / Canadá e internacionais aceitos. ',
32
+ ipv4: 'Por favor insira um endereço de IP v4 válido.',
33
+ ipv6: 'Por favor insira um endereço de IP v6 válido.',
34
+ ziprange: 'O CEP-código deve estar no intervalo 902xx-xxxx a 905-xx-xxxx',
35
+ zipcodeUS: 'O CEP EUA especificado é inválido',
36
+ integer: 'Um número não decimal positivo ou negativo, por favor',
37
+ vfbUsername: 'Este nome de usuário já está registrado. Por favor escolha outro'
38
+ });
39
+ }(jQuery));
js/i18n/validate/messages-pt_PT.js ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Translated default messages for the jQuery validation plugin.
3
+ * Locale: PT (Portuguese; português)
4
+ * Region: PT (Portugal)
5
+ */
6
+ (function($) {
7
+ $.extend($.validator.messages, {
8
+ required: "Campo de preenchimento obrigat&oacute;rio.",
9
+ remote: "Por favor, corrija este campo.",
10
+ email: "Por favor, introduza um endere&ccedil;o eletr&oacute;nico v&aacute;lido.",
11
+ url: "Por favor, introduza um URL v&aacute;lido.",
12
+ date: "Por favor, introduza uma data v&aacute;lida.",
13
+ dateISO: "Por favor, introduza uma data v&aacute;lida (ISO).",
14
+ number: "Por favor, introduza um n&uacute;mero v&aacute;lido.",
15
+ digits: "Por favor, introduza apenas d&iacute;gitos.",
16
+ creditcard: "Por favor, introduza um n&uacute;mero de cart&atilde;o de cr&eacute;dito v&aacute;lido.",
17
+ equalTo: "Por favor, introduza de novo o mesmo valor.",
18
+ accept: "Por favor, introduza um ficheiro com uma extens&atilde;o v&aacute;lida.",
19
+ maxlength: $.validator.format("Por favor, n&atilde;o introduza mais do que {0} caracteres."),
20
+ minlength: $.validator.format("Por favor, introduza pelo menos {0} caracteres."),
21
+ rangelength: $.validator.format("Por favor, introduza entre {0} e {1} caracteres."),
22
+ range: $.validator.format("Por favor, introduza um valor entre {0} e {1}."),
23
+ max: $.validator.format("Por favor, introduza um valor menor ou igual a {0}."),
24
+ min: $.validator.format("Por favor, introduza um valor maior ou igual a {0}."),
25
+ maxWords: $.validator.format("Por favor entre {0} palavras ou menos."),
26
+ minWords: $.validator.format("Por favor, insira pelo menos {0} palavras."),
27
+ rangeWords: $.validator.format("Por favor, insira entre {0} e {1} palavras."),
28
+ alphanumeric: "Letras, números e sublinhados só por favor",
29
+ lettersonly: "Cartas só por favor",
30
+ nowhitespace: "No espaço em branco, por favor",
31
+ phone: 'Por favor insira um número de telefone válido. A maioria dos formatos EUA / Canadá e internacionais aceitos. ',
32
+ ipv4: 'Por favor insira um endereço de IP v4 válido.',
33
+ ipv6: 'Por favor insira um endereço de IP v6 válido.',
34
+ ziprange: 'O CEP-código deve estar no intervalo 902xx-xxxx a 905-xx-xxxx',
35
+ zipcodeUS: 'O CEP EUA especificado é inválido',
36
+ integer: 'Um número não decimal positivo ou negativo, por favor',
37
+ vfbUsername: 'Este nome de usuário já está registrado. Por favor escolha outro'
38
+ });
39
+ }(jQuery));
js/i18n/validate/messages-ro_RO.js ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Translated default messages for the jQuery validation plugin.
3
+ * Locale: RO (Romanian, limba română)
4
+ */
5
+ (function($) {
6
+ $.extend($.validator.messages, {
7
+ required: "Acest câmp este obligatoriu.",
8
+ remote: "Te rugăm să completezi acest câmp.",
9
+ email: "Te rugăm să introduci o adresă de email validă",
10
+ url: "Te rugăm sa introduci o adresă URL validă.",
11
+ date: "Te rugăm să introduci o dată corectă.",
12
+ dateISO: "Te rugăm să introduci o dată (ISO) corectă.",
13
+ number: "Te rugăm să introduci un număr întreg valid.",
14
+ digits: "Te rugăm să introduci doar cifre.",
15
+ creditcard: "Te rugăm să introduci un numar de carte de credit valid.",
16
+ equalTo: "Te rugăm să reintroduci valoarea.",
17
+ accept: "Te rugăm să introduci o valoare cu o extensie validă.",
18
+ maxlength: $.validator.format("Te rugăm să nu introduci mai mult de {0} caractere."),
19
+ minlength: $.validator.format("Te rugăm să introduci cel puțin {0} caractere."),
20
+ rangelength: $.validator.format("Te rugăm să introduci o valoare între {0} și {1} caractere."),
21
+ range: $.validator.format("Te rugăm să introduci o valoare între {0} și {1}."),
22
+ max: $.validator.format("Te rugăm să introduci o valoare egal sau mai mică decât {0}."),
23
+ min: $.validator.format("Te rugăm să introduci o valoare egal sau mai mare decât {0}."),
24
+ maxWords: $.validator.format("Te rugăm să introduci {0} de cuvinte sau mai puțin"),
25
+ minWords: $.validator.format("Te rugăm să introduci cel putin {0} cuvinte."),
26
+ rangeWords: $.validator.format("Te rugăm să introduci {0} și {1} cuvinte"),
27
+ alphanumeric: "Litere, numere, și subliniază numai vă rog",
28
+ lettersonly: "Scrisori doar vă rog",
29
+ nowhitespace: "Nu există spațiu alb, vă rugăm",
30
+ phone: 'Vă rugăm să introduceți un număr de telefon valid. Cele mai multe formate de SUA / Canada și internaționale acceptate.',
31
+ ipv4: 'Vă rugăm să introduceți o adresă validă IP v4.',
32
+ ipv6: 'Vă rugăm să introduceți o adresă validă IP v6.',
33
+ ziprange: 'Dvs. ZIP-cod trebuie să fie în gama 902xx-xxxx a 905-xx-xxxx',
34
+ zipcodeUS: 'Specificat SUA cod poștal este nevalid',
35
+ integer: 'Un număr de non-zecimal pozitiv sau negativ, vă rugăm',
36
+ vfbUsername: 'Acest nume de utilizator este deja înregistrat. Vă rugăm să alegeți un alt unul'
37
+ });
38
+ }(jQuery));
js/i18n/validate/messages-ru_RU.js ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Translated default messages for the jQuery validation plugin.
3
+ * Locale: RU (Russian; русский язык)
4
+ */
5
+ (function($) {
6
+ $.extend($.validator.messages, {
7
+ required: "Это поле необходимо заполнить.",
8
+ remote: "Пожалуйста, введите правильное значение.",
9
+ email: "Пожалуйста, введите корректный адрес электронной почты.",
10
+ url: "Пожалуйста, введите корректный URL.",
11
+ date: "Пожалуйста, введите корректную дату.",
12
+ dateISO: "Пожалуйста, введите корректную дату в формате ISO.",
13
+ number: "Пожалуйста, введите число.",
14
+ digits: "Пожалуйста, вводите только цифры.",
15
+ creditcard: "Пожалуйста, введите правильный номер кредитной карты.",
16
+ equalTo: "Пожалуйста, введите такое же значение ещё раз.",
17
+ accept: "Пожалуйста, выберите файл с правильным расширением.",
18
+ maxlength: $.validator.format("Пожалуйста, введите не больше {0} символов."),
19
+ minlength: $.validator.format("Пожалуйста, введите не меньше {0} символов."),
20
+ rangelength: $.validator.format("Пожалуйста, введите значение длиной от {0} до {1} символов."),
21
+ range: $.validator.format("Пожалуйста, введите число от {0} до {1}."),
22
+ max: $.validator.format("Пожалуйста, введите число, меньшее или равное {0}."),
23
+ min: $.validator.format("Пожалуйста, введите число, большее или равное {0}."),
24
+ maxWords: $.validator.format("Пожалуйста, введите {0} слова или меньше."),
25
+ minWords: $.validator.format("Пожалуйста, введите по крайней мере {0} слова."),
26
+ rangeWords: $.validator.format("Пожалуйста, введите между {0} и {1} слов."),
27
+ alphanumeric: "Буквы, цифры и подчеркивает только пожалуйста",
28
+ lettersonly: "Письма только пожалуйста",
29
+ nowhitespace: "Нет пробел пожалуйста",
30
+ phone: 'Пожалуйста, введите действительный номер телефона. Принимаются Большинство форматов США / Канада и международных.',
31
+ ipv4: 'Пожалуйста, введите действительный адрес IP v4.',
32
+ ipv6: 'Пожалуйста, введите действительный адрес IP v6.',
33
+ ziprange: 'Ваш архив код должен находиться в диапазоне от 902xx-XXXX в 905-хх-хххх',
34
+ zipcodeUS: 'Указанный США ZIP код недействителен',
35
+ integer: 'Положительное или отрицательное, не десятичное число пожалуйста',
36
+ vfbUsername: 'Это имя пользователя уже зарегистрировано. Пожалуйста, выберите другое'
37
+ });
38
+ }(jQuery));
js/i18n/validate/messages-sv_SE.js ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Translated default messages for the jQuery validation plugin.
3
+ * Locale: SV (Swedish; Svenska)
4
+ */
5
+ (function($) {
6
+ $.extend($.validator.messages, {
7
+ required: "Detta f&auml;lt &auml;r obligatoriskt.",
8
+ remote: "Åtgärda detta område.",
9
+ email: "Ange en korrekt e-postadress.",
10
+ url: "Ange en korrekt URL.",
11
+ date: "Ange ett korrekt datum.",
12
+ dateISO: "Ange ett korrekt datum (&Aring;&Aring;&Aring;&Aring;-MM-DD).",
13
+ number: "Ange ett korrekt nummer.",
14
+ digits: "Ange endast siffror.",
15
+ creditcard: "Ange ett korrekt kreditkortsnummer.",
16
+ equalTo: "Ange samma v&auml;rde igen.",
17
+ accept: "Ange ett värde med en giltig domän.",
18
+ maxlength: $.validator.format("Du f&aring;r ange h&ouml;gst {0} tecken."),
19
+ minlength: $.validator.format("Du m&aring;ste ange minst {0} tecken."),
20
+ rangelength: $.validator.format("Ange minst {0} och max {1} tecken."),
21
+ range: $.validator.format("Ange ett v&auml;rde mellan {0} och {1}."),
22
+ max: $.validator.format("Ange ett v&auml;rde som &auml;r mindre eller lika med {0}."),
23
+ min: $.validator.format("Ange ett v&auml;rde som &auml;r st&ouml;rre eller lika med {0}."),
24
+ maxWords: $.validator.format("Ange {0} ord eller mindre."),
25
+ minWords: $.validator.format("Ange minst {0} ord."),
26
+ rangeWords: $.validator.format("Ange mellan {0} och {1} ord."),
27
+ alphanumeric: "Bokstäver, siffror och understreck bara snälla",
28
+ lettersonly: "Brev bara snälla",
29
+ nowhitespace: "Inga blank vänligen",
30
+ phone: 'Ange ett giltigt telefonnummer. De flesta USA / Kanada och internationella format accepteras.',
31
+ ipv4: 'Ange en giltig IP v4-adress.',
32
+ ipv6: 'Ange en giltig IP v6-adress.',
33
+ ziprange: 'Din ZIP-kod måste ligga i intervallet 902xx-xxxx till 905-xx-xxxx',
34
+ zipcodeUS: 'Den angivna amerikanska postnummer är ogiltig',
35
+ integer: 'En positiv eller negativ icke-decimaltal vänligen',
36
+ vfbUsername: 'Detta användarnamn är upptaget. Var vänlig välj en annan'
37
+ });
38
+ }(jQuery));
js/i18n/validate/messages-tr_TR.js ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Translated default messages for the jQuery validation plugin.
3
+ * Locale: TR (Turkish; Türkçe)
4
+ */
5
+ (function($) {
6
+ $.extend($.validator.messages, {
7
+ required: "Bu alanın doldurulması zorunludur.",
8
+ remote: "Lütfen bu alanı düzeltin.",
9
+ email: "Lütfen geçerli bir e-posta adresi giriniz.",
10
+ url: "Lütfen geçerli bir web adresi (URL) giriniz.",
11
+ date: "Lütfen geçerli bir tarih giriniz.",
12
+ dateISO: "Lütfen geçerli bir tarih giriniz(ISO formatında)",
13
+ number: "Lütfen geçerli bir sayı giriniz.",
14
+ digits: "Lütfen sadece sayısal karakterler giriniz.",
15
+ creditcard: "Lütfen geçerli bir kredi kartı giriniz.",
16
+ equalTo: "Lütfen aynı değeri tekrar giriniz.",
17
+ accept: "Lütfen geçerli uzantıya sahip bir değer giriniz.",
18
+ maxlength: $.validator.format("Lütfen en fazla {0} karakter uzunluğunda bir değer giriniz."),
19
+ minlength: $.validator.format("Lütfen en az {0} karakter uzunluğunda bir değer giriniz."),
20
+ rangelength: $.validator.format("Lütfen en az {0} ve en fazla {1} uzunluğunda bir değer giriniz."),
21
+ range: $.validator.format("Lütfen {0} ile {1} arasında bir değer giriniz."),
22
+ max: $.validator.format("Lütfen {0} değerine eşit ya da daha küçük bir değer giriniz."),
23
+ min: $.validator.format("Lütfen {0} değerine eşit ya da daha büyük bir değer giriniz."),
24
+ maxWords: $.validator.format("Lütfen {0} kelime veya daha az girin."),
25
+ minWords: $.validator.format("Lütfen en az {0} kelimeleri giriniz."),
26
+ rangeWords: $.validator.format("Lütfen {0} ve {1} kelimeler arasına girin."),
27
+ alphanumeric: "Harfler, sayılar ve alt çizgi sadece lütfen",
28
+ lettersonly: "Mektuplar sadece lütfen",
29
+ nowhitespace: "Hiçbir boşluk lütfen",
30
+ phone: 'Geçerli bir telefon numarası giriniz. Çoğu ABD / Kanada ve Uluslararası formatları kabul.',
31
+ ipv4: 'Geçerli bir IP v4 adresini girin.',
32
+ ipv6: 'Geçerli bir IP v6 adresini girin.',
33
+ ziprange: 'Posta kodu 905-xx-xxxx aralık 902xx-xxxx olmalı',
34
+ zipcodeUS: 'Belirtilen ABD Posta Kodu geçersiz',
35
+ integer: 'Bir pozitif veya negatif olmayan ondalık sayı lütfen',
36
+ vfbUsername: 'Bu kullanıcı adı zaten kayıtlı. Başka bir tane seçiniz'
37
+ });
38
+ }(jQuery));
js/i18n/validate/messages-zh_CN.js ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Translated default messages for the jQuery validation plugin.
3
+ * Locale: ZH (Chinese, 中文 (Zhōngwén), 汉语, 漢語)
4
+ */
5
+ (function($) {
6
+ $.extend($.validator.messages, {
7
+ required: "必须填写",
8
+ remote: "请修正此栏位",
9
+ email: "请输入有效的电子邮件",
10
+ url: "请输入有效的网址",
11
+ date: "请输入有效的日期",
12
+ dateISO: "请输入有效的日期 (YYYY-MM-DD)",
13
+ number: "请输入正确的数字",
14
+ digits: "只可输入数字",
15
+ creditcard: "请输入有效的信用卡号码",
16
+ equalTo: "你的输入不相同",
17
+ accept: "请输入有效的后缀",
18
+ maxlength: $.validator.format("最多 {0} 个字"),
19
+ minlength: $.validator.format("最少 {0} 个字"),
20
+ rangelength: $.validator.format("请输入长度为 {0} 至 {1} 之間的字串"),
21
+ range: $.validator.format("请输入 {0} 至 {1} 之间的数值"),
22
+ max: $.validator.format("请输入不大于 {0} 的数值"),
23
+ min: $.validator.format("请输入不小于 {0} 的数值"),
24
+ maxWords: $.validator.format("請輸入{0}字以內。"),
25
+ minWords: $.validator.format("請輸入至少{0}字。"),
26
+ rangeWords: $.validator.format("請{0}和{1}字之間進入。"),
27
+ alphanumeric: "字母,數字和下劃線只請",
28
+ lettersonly: "英皇只請",
29
+ nowhitespace: "沒有空格,請",
30
+ phone: '請輸入一個有效的電話號碼。接受大多數美國/加拿大和國際格式。',
31
+ ipv4: '請輸入一個有效的IP地址卷。',
32
+ ipv6: '請輸入一個有效的IP v6地址。',
33
+ ziprange: '您的郵遞區號必須在範圍902xx-XXXX905-XX-XXXX',
34
+ zipcodeUS: '指定美國郵政編碼無效',
35
+ integer: '一個正或負的非十進制數,請',
36
+ vfbUsername: '此用戶名已被註冊。請選擇另外一個'
37
+ });
38
+ }(jQuery));
js/i18n/validate/messages-zh_TW.js ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * Translated default messages for the jQuery validation plugin.
3
+ * Locale: ZH (Chinese; 中文 (Zhōngwén), 汉语, 漢語)
4
+ * Region: TW (Taiwan)
5
+ */
6
+ (function($) {
7
+ $.extend($.validator.messages, {
8
+ required: "必須填寫",
9
+ remote: "請修正此欄位",
10
+ email: "請輸入有效的電子郵件",
11
+ url: "請輸入有效的網址",
12
+ date: "請輸入有效的日期",
13
+ dateISO: "請輸入有效的日期 (YYYY-MM-DD)",
14
+ number: "請輸入正確的數值",
15
+ digits: "只可輸入數字",
16
+ creditcard: "請輸入有效的信用卡號碼",
17
+ equalTo: "請重複輸入一次",
18
+ accept: "請輸入有效的後綴",
19
+ maxlength: $.validator.format("最多 {0} 個字"),
20
+ minlength: $.validator.format("最少 {0} 個字"),
21
+ rangelength: $.validator.format("請輸入長度為 {0} 至 {1} 之間的字串"),
22
+ range: $.validator.format("請輸入 {0} 至 {1} 之間的數值"),
23
+ max: $.validator.format("請輸入不大於 {0} 的數值"),
24
+ min: $.validator.format("請輸入不小於 {0} 的數值"),
25
+ maxWords: $.validator.format("請輸入{0}字以內。"),
26
+ minWords: $.validator.format("請輸入至少{0}字。"),
27
+ rangeWords: $.validator.format("請{0}和{1}字之間進入。"),
28
+ alphanumeric: "字母,數字和下劃線只請",
29
+ lettersonly: "英皇只請",
30
+ nowhitespace: "沒有空格,請",
31
+ phone: '請輸入一個有效的電話號碼。接受大多數美國/加拿大和國際格式。',
32
+ ipv4: '請輸入一個有效的IP地址卷。',
33
+ ipv6: '請輸入一個有效的IP v6地址。',
34
+ ziprange: '您的郵遞區號必須在範圍902xx-XXXX905-XX-XXXX',
35
+ zipcodeUS: '指定美國郵政編碼無效',
36
+ integer: '一個正或負的非十進制數,請',
37
+ vfbUsername: '此用戶名已被註冊。請選擇另外一個'
38
+ });
39
+ }(jQuery));
js/vfb-admin.js CHANGED
@@ -13,7 +13,7 @@ jQuery(document).ready(function($) {
13
  // Initialize our tooltip timeout var
14
  var tooltip_timeout = null;
15
 
16
- // !Tooltips
17
  $( document ).on( 'mouseenter mouseleave', '.vfb-tooltip', function( e ) {
18
  // If mouse over tooltips
19
  if( e.type == 'mouseenter' ) {
@@ -28,7 +28,7 @@ jQuery(document).ready(function($) {
28
  width = $( this ).width();
29
 
30
  // Create our tooltip popup
31
- $( this ).append( '<div class="tooltip"><h3>' + tip_title + '</h3><p class="text">' + tip + '</p></div>' );
32
 
33
  // Save the title before we remove it
34
  $.data( this, 'title', tip_title );
@@ -37,11 +37,11 @@ jQuery(document).ready(function($) {
37
  this.title = '';
38
 
39
  // Move over the div so it's not on top of the link
40
- $( this ).find( '.tooltip' ).css({left:width + 22});
41
 
42
  // Set a timer for hover intent
43
  tooltip_timeout = setTimeout( function(){
44
- $( '.tooltip' ).fadeIn( 300 );
45
  }, 500 );
46
  }
47
  else {
@@ -49,7 +49,7 @@ jQuery(document).ready(function($) {
49
  this.title = $.data( this, 'title' );
50
 
51
  // Close the tooltip
52
- $( '.tooltip' ).fadeOut( 500 );
53
 
54
  // Remove the appended tooltip div
55
  $( this ).children().remove();
13
  // Initialize our tooltip timeout var
14
  var tooltip_timeout = null;
15
 
16
+ // !Display/Hide the tooltip
17
  $( document ).on( 'mouseenter mouseleave', '.vfb-tooltip', function( e ) {
18
  // If mouse over tooltips
19
  if( e.type == 'mouseenter' ) {
28
  width = $( this ).width();
29
 
30
  // Create our tooltip popup
31
+ $( this ).append( '<div class="vfb-tooltip-popup"><h3>' + tip_title + '</h3><p>' + tip + '</p></div>' );
32
 
33
  // Save the title before we remove it
34
  $.data( this, 'title', tip_title );
37
  this.title = '';
38
 
39
  // Move over the div so it's not on top of the link
40
+ $( this ).find( '.vfb-tooltip-popup' ).css({left:width + 22});
41
 
42
  // Set a timer for hover intent
43
  tooltip_timeout = setTimeout( function(){
44
+ $( '.vfb-tooltip-popup' ).fadeIn( 300 );
45
  }, 500 );
46
  }
47
  else {
49
  this.title = $.data( this, 'title' );
50
 
51
  // Close the tooltip
52
+ $( '.vfb-tooltip-popup' ).fadeOut( 500 );
53
 
54
  // Remove the appended tooltip div
55
  $( this ).children().remove();
js/vfb-admin.min.js CHANGED
@@ -1 +1 @@
1
- jQuery(document).ready(function(h){if(window.VfbAdminPages){var g=VfbAdminPages.vfb_pages;if(pagenow==g.vfb){h(".if-js-closed").removeClass("if-js-closed").addClass("closed");postboxes.add_postbox_toggles(g.vfb)}}var c=null;h(document).on("mouseenter mouseleave",".vfb-tooltip",function(q){if(q.type=="mouseenter"){if(c){clearTimeout(c);c=null}var n=h(this).attr("title"),p=h(this).attr("rel"),o=h(this).width();h(this).append('<div class="tooltip"><h3>'+n+'</h3><p class="text">'+p+"</p></div>");h.data(this,"title",n);this.title="";h(this).find(".tooltip").css({left:o+22});c=setTimeout(function(){h(".tooltip").fadeIn(300)},500)}else{this.title=h.data(this,"title");h(".tooltip").fadeOut(500);h(this).children().remove()}});h(document).on("click","a.vfb-add-option",function(t){t.preventDefault();var x=h(this).parent().siblings(".vfb-cloned-options"),p=x.children(),r=p.length,q=r+1,n=p[r-1],o=h(n).attr("id"),v=h(n).children("label").attr("for");var u=v.replace(new RegExp(/(\d+)$/g),""),s=o.replace(new RegExp(/(\d+)$/g),"");var w=h("#"+o).clone().attr("id",s+q);w.children("label").attr("for",u+q);w.find('input[type="text"]').attr("id",u+q);w.find('input[type="radio"]').attr("value",q);h("#"+s+r).after(w)});h(document).on("click","a.deleteOption",function(o){o.preventDefault();var n=h(this).parent().parent().find(".clonedOption").length;if(n-1==0){alert("You must have at least one option.")}else{h(this).closest("div").remove()}});h(".vfb-cloned-options").sortable({items:"div.option"});h(document).on("click","a.addEmail",function(t){t.preventDefault();var o=h(this).closest("#email-details").find(".clonedOption").length;var s=o+1;var u=h(this).closest("div").attr("id");var r=h(this).closest("div").find("label").attr("for");var n=r.replace(new RegExp(/(\d+)$/g),"");var q=u.replace(new RegExp(/(\d+)$/g),"");var p=h("#"+u).clone().attr("id",q+s);p.find("label").attr("for",n+s);p.find("input").attr("id",n+s);h("#"+q+o).after(p)});h(document).on("click","a.deleteEmail",function(o){o.preventDefault();var n=h(this).closest("#email-details").find(".clonedOption").length;if(n-1==0){alert("You must have at least one option.")}else{h(this).closest("div").remove()}});h('.option input[type="radio"]').mousedown(function(){h(this).attr("previousValue",h(this).prop("checked"))}).click(function(){var n=h(this).attr("previousValue");if(n=="true"){h(this).prop("checked",false)}});h(".menu-delete").click(function(){var n=(h(this).hasClass("entry-delete"))?"entry":"form";var o=confirm("You are about to permanently delete this "+n+" and all of its data.\n'Cancel' to stop, 'OK' to delete.");if(o){return true}return false});h(document).on("click","a.item-edit",function(o){o.preventDefault();h(o.target).closest("li").children(".menu-item-settings").slideToggle("fast");h(this).toggleClass("opened");var n=h(o.target).closest("dl");if(n.hasClass("vfb-menu-item-inactive")){n.removeClass("vfb-menu-item-inactive").addClass("vfb-menu-item-active")}else{n.removeClass("vfb-menu-item-active").addClass("vfb-menu-item-inactive")}});function m(n){if("FIELDSET"!==n){h("#vfb-fieldset-first-warning").show()}else{h("#vfb-fieldset-first-warning").hide()}}h("#vfb-menu-to-edit").nestedSortable({listType:"ul",maxLevels:3,handle:".vfb-menu-item-handle",placeholder:"vfb-sortable-placeholder",forcePlaceholderSize:true,forceHelperSize:true,tolerance:"pointer",toleranceElement:"> dl",items:"li:not(.ui-state-disabled)",create:function(n,o){h(this).css("min-height",h(this).height())},start:function(n,o){o.placeholder.height(o.item.height())},stop:function(o,p){var n=h("#vfb-menu-to-edit .item-type:first").text();opts={url:ajaxurl,type:"POST",async:true,cache:false,data:{action:"visual_form_builder_sort_field",order:h(this).nestedSortable("toArray")},success:function(q){h("#loading-animation").hide();m(n);return}};h.ajax(opts)}});h("#form-items .vfb-draggable-form-items").click(function(n){n.preventDefault();h(this).data("submit_value",h(this).text())});h("#form-items .vfb-draggable-form-items").click(function(p){p.preventDefault();var q=h(this).closest("form").serializeArray(),o=h(this).data("submit_value"),n=h("#vfb-menu-to-edit li.ui-state-disabled:first").attr("id").match(new RegExp(/(\d+)$/g))[0];h("img.waiting").show();h.post(ajaxurl,{action:"visual_form_builder_create_field",data:q,field_type:o,previous:n,page:pagenow,nonce:h("#_wpnonce").val()}).done(function(r){h("img.waiting").hide();h(r).hide().insertBefore("#vfb-menu-to-edit li.ui-state-disabled:first").fadeIn()})});h(document).on("click","a.item-delete",function(v){v.preventDefault();var r=childs=new Array(),z=0,o=h(this).attr("href"),n=o.split("&"),u=confirm("You are about to permanently delete this field.\n'Cancel' to stop, 'OK' to delete.");if(!u){return false}for(var s=0;s<n.length;s++){var x=n[s].indexOf("=");var w=n[s].substring(0,x);var y=n[s].substring(x+1);r[w]=y}var p=h(this).closest(".form-item").find("ul").children();var q=p.parent().html();p.each(function(t){childs[t]=h(this).attr("id").match(new RegExp(/(\d+)$/g))[0]});var A=h(this).closest("li.form-item").parents("li.form-item");if(A.length){z=A.attr("id").match(new RegExp(/(\d+)$/g))[0]}h.post(ajaxurl,{action:"visual_form_builder_delete_field",form:r.form,field:r.field,child_ids:childs,parent_id:z,page:pagenow,nonce:r._wpnonce}).done(function(t){h("#form_item_"+r.field).addClass("deleting").animate({opacity:0,height:0},350,function(){h(this).before(q).remove()})})});h("#form-settings-button").click(function(p){p.preventDefault();h(this).toggleClass("current");h("#form-settings").slideToggle("fast");var n=h('input[name="form_id"]').val(),o=(h(this).hasClass("current"))?"opened":"closed";h.post(ajaxurl,{action:"visual_form_builder_form_settings",form:n,status:o,page:pagenow}).done(function(q){if(o=="closed"){h(".settings-links").removeClass("on");h(".settings-links:first").addClass("on");h(".form-details").slideUp("normal");h(".form-details:first").show("normal")}})});h(".settings-links").click(function(p){p.preventDefault();h(".settings-links").removeClass("on");h(".form-details").slideUp("fast");if(h(this).next("div").is(":hidden")==true){h(this).addClass("on");h(this).next().slideDown("normal")}var o=h('input[name="form_id"]').val(),n=this.hash.replace(/#/g,"");h.post(ajaxurl,{action:"visual_form_builder_form_settings",form:o,accordion:n,page:pagenow})});var b=false;h("#vfb-form-builder-management input, #vfb-form-builder-management select, #vfb-form-builder-management textarea").change(function(){j()});function j(){b=true}window.onbeforeunload=function(){if(b){return"The changes you made will be lost if you navigate away from this page."}};h(document).on("submit","#visual-form-builder-update",function(){window.onbeforeunload=null});if(h(".columns-2 #side-sortables").length>0){var a=h("#vfb_form_items_meta_box"),d=a.width(),e=a.offset(),f=a.nextAll(),i=false;h(window).on("scroll",function(){if(h(window).scrollTop()>e.top){a.stop().css({top:55,position:"fixed","z-index":"1",width:d});if(f.is(":visible")){i=true;f.stop().css({opacity:0.1})}}else{a.stop().css({top:0,position:"relative"});if(i){f.stop().css({opacity:1})}}})}var l=h(".form-success-type:checked").val();h("#form-success-message-"+l).show();h(".form-success-type").change(function(){var n=h(this).val();switch(n){case"text":h("#form-success-message-text").show();h("#form-success-message-page, #form-success-message-redirect").hide();break;case"page":h("#form-success-message-page").show();h("#form-success-message-text, #form-success-message-redirect").hide();break;case"redirect":h("#form-success-message-redirect").show();h("#form-success-message-text, #form-success-message-page").hide();break}});h(".vfb-field-types").click(function(o){o.preventDefault();h("#vfb-field-tabs li").removeClass("tabs");h(this).parent().addClass("tabs");h(".tabs-panel-active").removeClass("tabs-panel-active").addClass("tabs-panel-inactive");var n=this.hash;h(n).removeClass("tabs-panel-inactive").addClass("tabs-panel-active")});h("#visual-form-builder-update").validate({rules:{"form_email_to[]":{email:true},form_email_from:{email:true},form_success_message_redirect:{url:true},form_notification_email_name:{required:function(n){return h("#form-notification-setting").is(":checked")}},form_notification_email_from:{required:function(n){return h("#form-notification-setting").is(":checked")},email:true},form_notification_email:{required:function(n){return h("#form-notification-setting").is(":checked")}}},errorPlacement:function(n,o){n.insertAfter(o.parent())}});h("#visual-form-builder-new-form").validate();h("#form_email_from_name_override").change(function(){if(h("#form_email_from_name_override").val()==""){h("#form-email-sender-name").prop("readonly",false)}else{h("#form-email-sender-name").prop("readonly","readonly")}});h("#form_email_from_override").change(function(){if(h("#form_email_from_override").val()==""){h("#form-email-sender").prop("readonly",false)}else{h("#form-email-sender").prop("readonly","readonly")}});h("#notification-email").toggle(h("#form-notification-setting").prop("checked"));h("#form-notification-setting").change(function(){var n=h(this).is(":checked");if(n){h("#notification-email").show();h("#form-notification-email-name, #form-notification-email-from, #form-notification-email, #form-notification-subject, #form-notification-message, #form-notification-entry").prop("disabled",false)}else{h("#notification-email").hide();h("#form-notification-email-name, #form-notification-email-from, #form-notification-email, #form-notification-subject, #form-notification-message, #form-notification-entry").prop("disabled","disabled")}});h("#vfb-export-select-all").click(function(n){n.preventDefault();h('#vfb-export-entries-fields input[type="checkbox"]').prop("checked",true)});h("#vfb-export-unselect-all").click(function(n){n.preventDefault();h('#vfb-export-entries-fields input[type="checkbox"]').prop("checked",false)});h("#vfb-export-entries-forms").change(function(){var o=h(this).val(),n=k(o);h("#vfb-export-entries-fields").html("Loading...");h.get(ajaxurl,{action:"visual_form_builder_export_load_options",id:o,count:n,page:pagenow}).done(function(p){h("#vfb-export-entries-fields").html(p)}).fail(function(p){h("#vfb-export-entries-fields").html("Error loading entry fields.")})});h("#vfb-export-entries-rows").change(function(){var o=h("#vfb-export-entries-forms").val();var n=h(this).val();h("#vfb-export-entries-fields").html("Loading...");h.get(ajaxurl,{action:"visual_form_builder_export_load_options",id:o,offset:n,page:pagenow}).done(function(p){h("#vfb-export-entries-fields").html(p)}).fail(function(p){h("#vfb-export-entries-fields").html("Error loading entry fields.")})});function k(o){var n="";h.ajax(ajaxurl,{async:false,data:{action:"visual_form_builder_export_entries_count",id:o,page:pagenow}}).done(function(p){if(p>1000){h("#vfb-export-entries-rows").empty();var r=Math.ceil(parseInt(p)/1000);for(var q=1;q<=r;q++){h("#vfb-export-entries-rows").append(h("<option></option>").attr("value",q).text(q))}h("#vfb-export-entries-pages").show()}else{h("#vfb-export-entries-pages").hide()}n=p}).fail(function(p){});return n}});
1
+ jQuery(document).ready(function(h){if(window.VfbAdminPages){var g=VfbAdminPages.vfb_pages;if(pagenow==g.vfb){h(".if-js-closed").removeClass("if-js-closed").addClass("closed");postboxes.add_postbox_toggles(g.vfb)}}var c=null;h(document).on("mouseenter mouseleave",".vfb-tooltip",function(q){if(q.type=="mouseenter"){if(c){clearTimeout(c);c=null}var n=h(this).attr("title"),p=h(this).attr("rel"),o=h(this).width();h(this).append('<div class="vfb-tooltip-popup"><h3>'+n+"</h3><p>"+p+"</p></div>");h.data(this,"title",n);this.title="";h(this).find(".vfb-tooltip-popup").css({left:o+22});c=setTimeout(function(){h(".vfb-tooltip-popup").fadeIn(300)},500)}else{this.title=h.data(this,"title");h(".vfb-tooltip-popup").fadeOut(500);h(this).children().remove()}});h(document).on("click","a.vfb-add-option",function(t){t.preventDefault();var x=h(this).parent().siblings(".vfb-cloned-options"),p=x.children(),r=p.length,q=r+1,n=p[r-1],o=h(n).attr("id"),v=h(n).children("label").attr("for");var u=v.replace(new RegExp(/(\d+)$/g),""),s=o.replace(new RegExp(/(\d+)$/g),"");var w=h("#"+o).clone().attr("id",s+q);w.children("label").attr("for",u+q);w.find('input[type="text"]').attr("id",u+q);w.find('input[type="radio"]').attr("value",q);h("#"+s+r).after(w)});h(document).on("click","a.deleteOption",function(o){o.preventDefault();var n=h(this).parent().parent().find(".clonedOption").length;if(n-1==0){alert("You must have at least one option.")}else{h(this).closest("div").remove()}});h(".vfb-cloned-options").sortable({items:"div.option"});h(document).on("click","a.addEmail",function(t){t.preventDefault();var o=h(this).closest("#email-details").find(".clonedOption").length;var s=o+1;var u=h(this).closest("div").attr("id");var r=h(this).closest("div").find("label").attr("for");var n=r.replace(new RegExp(/(\d+)$/g),"");var q=u.replace(new RegExp(/(\d+)$/g),"");var p=h("#"+u).clone().attr("id",q+s);p.find("label").attr("for",n+s);p.find("input").attr("id",n+s);h("#"+q+o).after(p)});h(document).on("click","a.deleteEmail",function(o){o.preventDefault();var n=h(this).closest("#email-details").find(".clonedOption").length;if(n-1==0){alert("You must have at least one option.")}else{h(this).closest("div").remove()}});h('.option input[type="radio"]').mousedown(function(){h(this).attr("previousValue",h(this).prop("checked"))}).click(function(){var n=h(this).attr("previousValue");if(n=="true"){h(this).prop("checked",false)}});h(".menu-delete").click(function(){var n=(h(this).hasClass("entry-delete"))?"entry":"form";var o=confirm("You are about to permanently delete this "+n+" and all of its data.\n'Cancel' to stop, 'OK' to delete.");if(o){return true}return false});h(document).on("click","a.item-edit",function(o){o.preventDefault();h(o.target).closest("li").children(".menu-item-settings").slideToggle("fast");h(this).toggleClass("opened");var n=h(o.target).closest("dl");if(n.hasClass("vfb-menu-item-inactive")){n.removeClass("vfb-menu-item-inactive").addClass("vfb-menu-item-active")}else{n.removeClass("vfb-menu-item-active").addClass("vfb-menu-item-inactive")}});function m(n){if("FIELDSET"!==n){h("#vfb-fieldset-first-warning").show()}else{h("#vfb-fieldset-first-warning").hide()}}h("#vfb-menu-to-edit").nestedSortable({listType:"ul",maxLevels:3,handle:".vfb-menu-item-handle",placeholder:"vfb-sortable-placeholder",forcePlaceholderSize:true,forceHelperSize:true,tolerance:"pointer",toleranceElement:"> dl",items:"li:not(.ui-state-disabled)",create:function(n,o){h(this).css("min-height",h(this).height())},start:function(n,o){o.placeholder.height(o.item.height())},stop:function(o,p){var n=h("#vfb-menu-to-edit .item-type:first").text();opts={url:ajaxurl,type:"POST",async:true,cache:false,data:{action:"visual_form_builder_sort_field",order:h(this).nestedSortable("toArray")},success:function(q){h("#loading-animation").hide();m(n);return}};h.ajax(opts)}});h("#form-items .vfb-draggable-form-items").click(function(n){n.preventDefault();h(this).data("submit_value",h(this).text())});h("#form-items .vfb-draggable-form-items").click(function(p){p.preventDefault();var q=h(this).closest("form").serializeArray(),o=h(this).data("submit_value"),n=h("#vfb-menu-to-edit li.ui-state-disabled:first").attr("id").match(new RegExp(/(\d+)$/g))[0];h("img.waiting").show();h.post(ajaxurl,{action:"visual_form_builder_create_field",data:q,field_type:o,previous:n,page:pagenow,nonce:h("#_wpnonce").val()}).done(function(r){h("img.waiting").hide();h(r).hide().insertBefore("#vfb-menu-to-edit li.ui-state-disabled:first").fadeIn()})});h(document).on("click","a.item-delete",function(v){v.preventDefault();var r=childs=new Array(),z=0,o=h(this).attr("href"),n=o.split("&"),u=confirm("You are about to permanently delete this field.\n'Cancel' to stop, 'OK' to delete.");if(!u){return false}for(var s=0;s<n.length;s++){var x=n[s].indexOf("=");var w=n[s].substring(0,x);var y=n[s].substring(x+1);r[w]=y}var p=h(this).closest(".form-item").find("ul").children();var q=p.parent().html();p.each(function(t){childs[t]=h(this).attr("id").match(new RegExp(/(\d+)$/g))[0]});var A=h(this).closest("li.form-item").parents("li.form-item");if(A.length){z=A.attr("id").match(new RegExp(/(\d+)$/g))[0]}h.post(ajaxurl,{action:"visual_form_builder_delete_field",form:r.form,field:r.field,child_ids:childs,parent_id:z,page:pagenow,nonce:r._wpnonce}).done(function(t){h("#form_item_"+r.field).addClass("deleting").animate({opacity:0,height:0},350,function(){h(this).before(q).remove()})})});h("#form-settings-button").click(function(p){p.preventDefault();h(this).toggleClass("current");h("#form-settings").slideToggle("fast");var n=h('input[name="form_id"]').val(),o=(h(this).hasClass("current"))?"opened":"closed";h.post(ajaxurl,{action:"visual_form_builder_form_settings",form:n,status:o,page:pagenow}).done(function(q){if(o=="closed"){h(".settings-links").removeClass("on");h(".settings-links:first").addClass("on");h(".form-details").slideUp("normal");h(".form-details:first").show("normal")}})});h(".settings-links").click(function(p){p.preventDefault();h(".settings-links").removeClass("on");h(".form-details").slideUp("fast");if(h(this).next("div").is(":hidden")==true){h(this).addClass("on");h(this).next().slideDown("normal")}var o=h('input[name="form_id"]').val(),n=this.hash.replace(/#/g,"");h.post(ajaxurl,{action:"visual_form_builder_form_settings",form:o,accordion:n,page:pagenow})});var b=false;h("#vfb-form-builder-management input, #vfb-form-builder-management select, #vfb-form-builder-management textarea").change(function(){j()});function j(){b=true}window.onbeforeunload=function(){if(b){return"The changes you made will be lost if you navigate away from this page."}};h(document).on("submit","#visual-form-builder-update",function(){window.onbeforeunload=null});if(h(".columns-2 #side-sortables").length>0){var a=h("#vfb_form_items_meta_box"),d=a.width(),e=a.offset(),f=a.nextAll(),i=false;h(window).on("scroll",function(){if(h(window).scrollTop()>e.top){a.stop().css({top:55,position:"fixed","z-index":"1",width:d});if(f.is(":visible")){i=true;f.stop().css({opacity:0.1})}}else{a.stop().css({top:0,position:"relative"});if(i){f.stop().css({opacity:1})}}})}var l=h(".form-success-type:checked").val();h("#form-success-message-"+l).show();h(".form-success-type").change(function(){var n=h(this).val();switch(n){case"text":h("#form-success-message-text").show();h("#form-success-message-page, #form-success-message-redirect").hide();break;case"page":h("#form-success-message-page").show();h("#form-success-message-text, #form-success-message-redirect").hide();break;case"redirect":h("#form-success-message-redirect").show();h("#form-success-message-text, #form-success-message-page").hide();break}});h(".vfb-field-types").click(function(o){o.preventDefault();h("#vfb-field-tabs li").removeClass("tabs");h(this).parent().addClass("tabs");h(".tabs-panel-active").removeClass("tabs-panel-active").addClass("tabs-panel-inactive");var n=this.hash;h(n).removeClass("tabs-panel-inactive").addClass("tabs-panel-active")});h("#visual-form-builder-update").validate({rules:{"form_email_to[]":{email:true},form_email_from:{email:true},form_success_message_redirect:{url:true},form_notification_email_name:{required:function(n){return h("#form-notification-setting").is(":checked")}},form_notification_email_from:{required:function(n){return h("#form-notification-setting").is(":checked")},email:true},form_notification_email:{required:function(n){return h("#form-notification-setting").is(":checked")}}},errorPlacement:function(n,o){n.insertAfter(o.parent())}});h("#visual-form-builder-new-form").validate();h("#form_email_from_name_override").change(function(){if(h("#form_email_from_name_override").val()==""){h("#form-email-sender-name").prop("readonly",false)}else{h("#form-email-sender-name").prop("readonly","readonly")}});h("#form_email_from_override").change(function(){if(h("#form_email_from_override").val()==""){h("#form-email-sender").prop("readonly",false)}else{h("#form-email-sender").prop("readonly","readonly")}});h("#notification-email").toggle(h("#form-notification-setting").prop("checked"));h("#form-notification-setting").change(function(){var n=h(this).is(":checked");if(n){h("#notification-email").show();h("#form-notification-email-name, #form-notification-email-from, #form-notification-email, #form-notification-subject, #form-notification-message, #form-notification-entry").prop("disabled",false)}else{h("#notification-email").hide();h("#form-notification-email-name, #form-notification-email-from, #form-notification-email, #form-notification-subject, #form-notification-message, #form-notification-entry").prop("disabled","disabled")}});h("#vfb-export-select-all").click(function(n){n.preventDefault();h('#vfb-export-entries-fields input[type="checkbox"]').prop("checked",true)});h("#vfb-export-unselect-all").click(function(n){n.preventDefault();h('#vfb-export-entries-fields input[type="checkbox"]').prop("checked",false)});h("#vfb-export-entries-forms").change(function(){var o=h(this).val(),n=k(o);h("#vfb-export-entries-fields").html("Loading...");h.get(ajaxurl,{action:"visual_form_builder_export_load_options",id:o,count:n,page:pagenow}).done(function(p){h("#vfb-export-entries-fields").html(p)}).fail(function(p){h("#vfb-export-entries-fields").html("Error loading entry fields.")})});h("#vfb-export-entries-rows").change(function(){var o=h("#vfb-export-entries-forms").val();var n=h(this).val();h("#vfb-export-entries-fields").html("Loading...");h.get(ajaxurl,{action:"visual_form_builder_export_load_options",id:o,offset:n,page:pagenow}).done(function(p){h("#vfb-export-entries-fields").html(p)}).fail(function(p){h("#vfb-export-entries-fields").html("Error loading entry fields.")})});function k(o){var n="";h.ajax(ajaxurl,{async:false,data:{action:"visual_form_builder_export_entries_count",id:o,page:pagenow}}).done(function(p){if(p>1000){h("#vfb-export-entries-rows").empty();var r=Math.ceil(parseInt(p)/1000);for(var q=1;q<=r;q++){h("#vfb-export-entries-rows").append(h("<option></option>").attr("value",q).text(q))}h("#vfb-export-entries-pages").show()}else{h("#vfb-export-entries-pages").hide()}n=p}).fail(function(p){});return n}});
js/vfb-validation.js CHANGED
@@ -43,6 +43,6 @@ jQuery(document).ready(function($) {
43
  return this.optional(element) || value.length > 9 &&
44
  value.match( /^((\+)?[1-9]{1,2})?([-\s\.])?((\(\d{1,4}\))|\d{1,4})(([-\s\.])?[0-9]{1,12}){1,2}$/ );
45
 
46
- }, $.validator.format( 'Please enter a valid phone number. Most US/Canada and International formats accepted.' )
47
  );
48
  });
43
  return this.optional(element) || value.length > 9 &&
44
  value.match( /^((\+)?[1-9]{1,2})?([-\s\.])?((\(\d{1,4}\))|\d{1,4})(([-\s\.])?[0-9]{1,12}){1,2}$/ );
45
 
46
+ }, $.validator.messages.phone
47
  );
48
  });
js/vfb-validation.min.js CHANGED
@@ -1 +1 @@
1
- jQuery(document).ready(function(a){a(".visual-form-builder").each(function(){a(this).validate({rules:{"vfb-secret":{required:true,digits:true,maxlength:2}},errorClass:"vfb-error",errorPlacement:function(b,c){if(c.is(":radio")||c.is(":checkbox")){b.appendTo(c.parent().parent())}else{if(c.is(":password")){b.hide()}else{b.insertAfter(c)}}}})});a(".visual-form-builder li:not(.vfb-item-instructions li, .vfb-span li)").filter(function(){return a(this).css("list-style-type")!=="none"}).css("list-style","none");a(".vfb-date-picker").each(function(){var b=a(this).attr("data-dp-dateFormat")?a(this).attr("data-dp-dateFormat"):"mm/dd/yy";a(this).datepicker({dateFormat:b})});a.validator.addMethod("phone",function(c,b){c=c.replace(/[\+\s\(\)\.\-\ ]/g,"");return this.optional(b)||c.length>9&&c.match(/^((\+)?[1-9]{1,2})?([-\s\.])?((\(\d{1,4}\))|\d{1,4})(([-\s\.])?[0-9]{1,12}){1,2}$/)},a.validator.format("Please enter a valid phone number. Most US/Canada and International formats accepted."))});
1
+ jQuery(document).ready(function(a){a(".visual-form-builder").each(function(){a(this).validate({rules:{"vfb-secret":{required:true,digits:true,maxlength:2}},errorClass:"vfb-error",errorPlacement:function(b,c){if(c.is(":radio")||c.is(":checkbox")){b.appendTo(c.parent().parent())}else{if(c.is(":password")){b.hide()}else{b.insertAfter(c)}}}})});a(".visual-form-builder li:not(.vfb-item-instructions li, .vfb-span li)").filter(function(){return a(this).css("list-style-type")!=="none"}).css("list-style","none");a(".vfb-date-picker").each(function(){var b=a(this).attr("data-dp-dateFormat")?a(this).attr("data-dp-dateFormat"):"mm/dd/yy";a(this).datepicker({dateFormat:b})});a.validator.addMethod("phone",function(c,b){c=c.replace(/[\+\s\(\)\.\-\ ]/g,"");return this.optional(b)||c.length>9&&c.match(/^((\+)?[1-9]{1,2})?([-\s\.])?((\(\d{1,4}\))|\d{1,4})(([-\s\.])?[0-9]{1,12}){1,2}$/)},a.validator.messages.phone)});
readme.txt CHANGED
@@ -3,8 +3,8 @@ Contributors: mmuro
3
  Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=G87A9UN9CLPH4&lc=US&item_name=Visual%20Form%20Builder&currency_code=USD&bn=PP%2dDonationsBF%3abtn_donate_SM%2egif%3aNonHosted
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.8
7
- Stable tag: 2.8
8
  License: GPLv2 or later
9
 
10
  Build beautiful, fully functional contact forms in only a few minutes without writing PHP, CSS, or HTML.
@@ -237,6 +237,28 @@ function my_scripts_method() {
237
 
238
  == Changelog ==
239
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
240
  **Version 2.8 - Dec 3, 2013**
241
 
242
  * Add Title option to widget
3
  Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=G87A9UN9CLPH4&lc=US&item_name=Visual%20Form%20Builder&currency_code=USD&bn=PP%2dDonationsBF%3abtn_donate_SM%2egif%3aNonHosted
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: 4.2
7
+ Stable tag: 2.8.1
8
  License: GPLv2 or later
9
 
10
  Build beautiful, fully functional contact forms in only a few minutes without writing PHP, CSS, or HTML.
237
 
238
  == Changelog ==
239
 
240
+ **Version 2.8.1 - Apr 12, 2014**
241
+
242
+ * Add localized jQuery form validation messages for languages that have a VFB translation file
243
+ * Add localized jQuery UI datepicker text for languages that have a VFB translation file
244
+ * Add vfb_spam_words_exploits, vfb_spam_words_profanity, and vfb_spam_words_misc filters to allow spam sensitivity words to be controlled
245
+ * Update the jQuery UI date picker and CKEditor scripts to only load when the respective field is on the form
246
+ * Update tooltip to prefix class names to prevent potential conflicts
247
+ * Update admin notices to only display on VFB Pro pages
248
+ * Update "Add New Form" help text
249
+ * Update Export to make sure there are no errors with unserializing before proceeding
250
+ * Update Export to more accurately strip all HTML tags for all fields except HTML and Address (where <br> is replaced with new lines)
251
+ * Update admin form editor to get fields by reference to improve looping speed
252
+ * Update admin with more jQuery UI CSS overrides for the disabled classes
253
+ * Update email headers to use array formatting instead of a string
254
+ * Update file upload process to check if the $FILE global is an array before proceeding
255
+ * Update Display Forms shortcode/template tag to not wrap in <code> tags
256
+ * Update CSS to use !important to prevent themes from conflicting with certain rules
257
+ * Fix bug with image upload where guid may not be set correctly on some servers
258
+ * Fix bug for missing Address description
259
+ * Fix bug in export where entries fields did not load the correct page with the right field names
260
+ * Fix bug where sanitizing number should sanitize digits, which doesn’t allow decimals
261
+
262
  **Version 2.8 - Dec 3, 2013**
263
 
264
  * Add Title option to widget
visual-form-builder.php CHANGED
@@ -4,11 +4,11 @@ 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.8
8
  */
9
 
10
  // Version number to output as meta tag
11
- define( 'VFB_VERSION', '2.8' );
12
 
13
  /*
14
  This program is free software; you can redistribute it and/or modify
@@ -41,7 +41,7 @@ class Visual_Form_Builder{
41
  * @var string
42
  * @access protected
43
  */
44
- protected $vfb_db_version = '2.7';
45
 
46
  /**
47
  * Flag used to add scripts to front-end only once
@@ -95,45 +95,48 @@ class Visual_Form_Builder{
95
  // Add suffix to load dev files
96
  $this->load_dev_files = ( defined( 'VFB_SCRIPT_DEBUG' ) && VFB_SCRIPT_DEBUG ) ? '' : '.min';
97
 
98
- // Make sure we are in the admin before proceeding.
99
- if ( is_admin() ) {
100
- // Build options and settings pages.
101
- add_action( 'admin_menu', array( &$this, 'add_admin' ) );
102
- add_action( 'admin_init', array( &$this, 'save' ) );
103
- add_action( 'admin_menu', array( &$this, 'additional_plugin_setup' ) );
104
-
105
- // Register AJAX functions
106
- $actions = array(
107
- // Form Builder
108
- 'sort_field',
109
- 'create_field',
110
- 'delete_field',
111
- 'form_settings',
112
-
113
- // Media button
114
- 'media_button',
115
- );
 
 
 
 
116
 
117
- // Add all AJAX functions
118
- foreach( $actions as $name ) {
119
- add_action( "wp_ajax_visual_form_builder_$name", array( &$this, "ajax_$name" ) );
120
- }
121
 
122
- // Adds additional media button to insert form shortcode
123
- add_action( 'media_buttons', array( &$this, 'add_media_button' ), 999 );
124
 
125
- // Adds a Dashboard widget
126
- add_action( 'wp_dashboard_setup', array( &$this, 'add_dashboard_widget' ) );
127
 
128
- // Adds a Settings link to the Plugins page
129
- add_filter( 'plugin_action_links', array( &$this, 'plugin_action_links' ), 10, 2 );
130
 
131
- // Check the db version and run SQL install, if needed
132
- add_action( 'plugins_loaded', array( &$this, 'update_db_check' ) );
133
 
134
- // Display update messages
135
- add_action( 'admin_notices', array( &$this, 'admin_notices' ) );
136
- }
137
 
138
  // Load i18n
139
  add_action( 'plugins_loaded', array( &$this, 'languages' ) );
@@ -548,7 +551,10 @@ class Visual_Form_Builder{
548
  ?>
549
  <p><?php _e( 'Add forms to your Posts or Pages by locating the <strong>Add Form</strong> button in the area above your post/page editor.', 'visual-form-builder' ); ?></p>
550
  <p><?php _e( 'You may also manually insert the shortcode into a post/page.', 'visual-form-builder' ); ?></p>
551
- <p><?php _e( 'Shortcode', 'visual-form-builder-pro' ); ?> <code>[vfb id='<?php echo (int) $_REQUEST['form']; ?>']</code></p>
 
 
 
552
  <?php
553
  }
554
 
@@ -660,10 +666,10 @@ class Visual_Form_Builder{
660
  wp_enqueue_script( 'jquery-ui-sortable' );
661
  wp_enqueue_script( 'postbox' );
662
  wp_enqueue_script( 'jquery-form-validation', plugins_url( '/js/jquery.validate.min.js', __FILE__ ), array( 'jquery' ), '1.9.0', true );
663
- wp_enqueue_script( 'vfb-admin', plugins_url( "/js/vfb-admin$this->load_dev_files.js", __FILE__ ) , array( 'jquery', 'jquery-form-validation' ), '20131203', true );
664
  wp_enqueue_script( 'nested-sortable', plugins_url( "/js/jquery.ui.nestedSortable$this->load_dev_files.js", __FILE__ ) , array( 'jquery', 'jquery-ui-sortable' ), '1.3.5', true );
665
 
666
- wp_enqueue_style( 'visual-form-builder-style', plugins_url( "/css/visual-form-builder-admin$this->load_dev_files.css", __FILE__ ), array(), '20131203' );
667
 
668
  wp_localize_script( 'vfb-admin', 'VfbAdminPages', array( 'vfb_pages' => $this->_admin_pages ) );
669
  }
@@ -671,6 +677,10 @@ class Visual_Form_Builder{
671
  /**
672
  * Queue form validation scripts
673
  *
 
 
 
 
674
  * @since 1.0
675
  */
676
  public function scripts() {
@@ -678,15 +688,56 @@ class Visual_Form_Builder{
678
  $this->add_scripts = true;
679
 
680
  wp_register_script( 'jquery-form-validation', plugins_url( '/js/jquery.validate.min.js', __FILE__ ), array( 'jquery' ), '1.9.0', true );
681
- wp_register_script( 'visual-form-builder-validation', plugins_url( "/js/vfb-validation$this->load_dev_files.js", __FILE__ ) , array( 'jquery', 'jquery-form-validation' ), '20131203', true );
682
  wp_register_script( 'visual-form-builder-metadata', plugins_url( '/js/jquery.metadata.js', __FILE__ ) , array( 'jquery', 'jquery-form-validation' ), '2.0', true );
683
  wp_register_script( 'vfb-ckeditor', plugins_url( '/js/ckeditor/ckeditor.js', __FILE__ ), array( 'jquery' ), '4.1', true );
684
 
685
  wp_enqueue_script( 'jquery-form-validation' );
686
- wp_enqueue_script( 'jquery-ui-datepicker' );
687
  wp_enqueue_script( 'visual-form-builder-validation' );
688
  wp_enqueue_script( 'visual-form-builder-metadata' );
689
- wp_enqueue_script( 'vfb-ckeditor' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
690
  }
691
 
692
  /**
@@ -699,7 +750,7 @@ class Visual_Form_Builder{
699
  $vfb_settings = get_option( 'vfb-settings' );
700
 
701
  wp_register_style( 'vfb-jqueryui-css', apply_filters( 'vfb-date-picker-css', plugins_url( '/css/smoothness/jquery-ui-1.10.3.min.css', __FILE__ ) ), array(), '20131203' );
702
- wp_register_style( 'visual-form-builder-css', apply_filters( 'visual-form-builder-css', plugins_url( "/css/visual-form-builder$this->load_dev_files.css", __FILE__ ) ), array(), '20131203' );
703
 
704
  // Settings - Always load CSS
705
  if ( isset( $vfb_settings['always-load-css'] ) ) {
@@ -738,348 +789,405 @@ class Visual_Form_Builder{
738
  }
739
 
740
  /**
741
- * Actions to save, update, and delete forms/form fields
742
  *
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
743
  *
744
- * @since 1.0
 
 
745
  */
746
- public function save() {
747
  global $wpdb;
748
 
749
- if ( !isset( $_REQUEST['page'] ) )
750
  return;
751
 
752
- if ( !isset( $_REQUEST['action'] ) )
753
  return;
754
 
755
- if ( !in_array( $_REQUEST['page'], array( 'visual-form-builder', 'vfb-add-new', 'vfb-entries', 'vfb-settings' ) ) )
756
  return;
757
 
758
- switch ( $_REQUEST['action'] ) :
759
- case 'create_form' :
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
760
 
761
- check_admin_referer( 'create_form' );
762
-
763
- $form_key = sanitize_title( $_REQUEST['form_title'] );
764
- $form_title = esc_html( $_REQUEST['form_title'] );
765
- $form_from_name = esc_html( $_REQUEST['form_email_from_name'] );
766
- $form_subject = esc_html( $_REQUEST['form_email_subject'] );
767
- $form_from = esc_html( $_REQUEST['form_email_from'] );
768
- $form_to = serialize( $_REQUEST['form_email_to'] );
769
-
770
- $newdata = array(
771
- 'form_key' => $form_key,
772
- 'form_title' => $form_title,
773
- 'form_email_from_name' => $form_from_name,
774
- 'form_email_subject' => $form_subject,
775
- 'form_email_from' => $form_from,
776
- 'form_email_to' => $form_to,
777
- 'form_success_message' => '<p id="form_success">Your form was successfully submitted. Thank you for contacting us.</p>'
778
- );
 
 
779
 
780
- // Create the form
781
- $wpdb->insert( $this->form_table_name, $newdata );
782
 
783
- // Get form ID to add our first field
784
- $new_form_selected = $wpdb->insert_id;
785
 
786
- // Setup the initial fieldset
787
- $initial_fieldset = array(
788
- 'form_id' => $wpdb->insert_id,
789
- 'field_key' => 'fieldset',
790
- 'field_type' => 'fieldset',
791
- 'field_name' => 'Fieldset',
792
- 'field_sequence' => 0
793
- );
794
 
795
- // Add the first fieldset to get things started
796
- $wpdb->insert( $this->field_table_name, $initial_fieldset );
797
 
798
- $verification_fieldset = array(
799
- 'form_id' => $new_form_selected,
800
- 'field_key' => 'verification',
801
- 'field_type' => 'verification',
802
- 'field_name' => 'Verification',
803
- 'field_description' => '(This is for preventing spam)',
804
- 'field_sequence' => 1
805
- );
806
 
807
- // Insert the submit field
808
- $wpdb->insert( $this->field_table_name, $verification_fieldset );
809
-
810
- $verify_fieldset_parent_id = $wpdb->insert_id;
811
-
812
- $secret = array(
813
- 'form_id' => $new_form_selected,
814
- 'field_key' => 'secret',
815
- 'field_type' => 'secret',
816
- 'field_name' => 'Please enter any two digits',
817
- 'field_description' => 'Example: 12',
818
- 'field_size' => 'medium',
819
- 'field_required' => 'yes',
820
- 'field_parent' => $verify_fieldset_parent_id,
821
- 'field_sequence' => 2
822
- );
823
 
824
- // Insert the submit field
825
- $wpdb->insert( $this->field_table_name, $secret );
826
-
827
- // Make the submit last in the sequence
828
- $submit = array(
829
- 'form_id' => $new_form_selected,
830
- 'field_key' => 'submit',
831
- 'field_type' => 'submit',
832
- 'field_name' => 'Submit',
833
- 'field_parent' => $verify_fieldset_parent_id,
834
- 'field_sequence' => 3
835
- );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
836
 
837
- // Insert the submit field
838
- $wpdb->insert( $this->field_table_name, $submit );
 
 
839
 
840
- // Redirect to keep the URL clean (use AJAX in the future?)
841
- wp_redirect( 'admin.php?page=visual-form-builder&action=edit&form=' . $new_form_selected );
842
- exit();
843
 
844
- break;
 
 
845
 
846
- case 'update_form' :
 
 
 
 
 
 
 
 
 
 
847
 
848
- check_admin_referer( 'vfb_update_form' );
849
-
850
- $form_id = absint( $_REQUEST['form_id'] );
851
- $form_key = sanitize_title( $_REQUEST['form_title'], $form_id );
852
- $form_title = $_REQUEST['form_title'];
853
- $form_subject = $_REQUEST['form_email_subject'];
854
- $form_to = serialize( array_map( 'sanitize_email', $_REQUEST['form_email_to'] ) );
855
- $form_from = sanitize_email( $_REQUEST['form_email_from'] );
856
- $form_from_name = $_REQUEST['form_email_from_name'];
857
- $form_from_override = isset( $_REQUEST['form_email_from_override'] ) ? $_REQUEST['form_email_from_override'] : '';
858
- $form_from_name_override = isset( $_REQUEST['form_email_from_name_override'] ) ? $_REQUEST['form_email_from_name_override'] : '';
859
- $form_success_type = $_REQUEST['form_success_type'];
860
- $form_notification_setting = isset( $_REQUEST['form_notification_setting'] ) ? $_REQUEST['form_notification_setting'] : '';
861
- $form_notification_email_name = isset( $_REQUEST['form_notification_email_name'] ) ? $_REQUEST['form_notification_email_name'] : '';
862
- $form_notification_email_from = isset( $_REQUEST['form_notification_email_from'] ) ? sanitize_email( $_REQUEST['form_notification_email_from'] ) : '';
863
- $form_notification_email = isset( $_REQUEST['form_notification_email'] ) ? $_REQUEST['form_notification_email'] : '';
864
- $form_notification_subject = isset( $_REQUEST['form_notification_subject'] ) ? $_REQUEST['form_notification_subject'] : '';
865
- $form_notification_message = isset( $_REQUEST['form_notification_message'] ) ? wp_richedit_pre( $_REQUEST['form_notification_message'] ) : '';
866
- $form_notification_entry = isset( $_REQUEST['form_notification_entry'] ) ? $_REQUEST['form_notification_entry'] : '';
867
- $form_label_alignment = $_REQUEST['form_label_alignment'];
868
-
869
- // Add confirmation based on which type was selected
870
- switch ( $form_success_type ) {
871
- case 'text' :
872
- $form_success_message = wp_richedit_pre( $_REQUEST['form_success_message_text'] );
873
- break;
874
- case 'page' :
875
- $form_success_message = $_REQUEST['form_success_message_page'];
876
- break;
877
- case 'redirect' :
878
- $form_success_message = $_REQUEST['form_success_message_redirect'];
879
- break;
880
- }
881
 
882
- $newdata = array(
883
- 'form_key' => $form_key,
884
- 'form_title' => $form_title,
885
- 'form_email_subject' => $form_subject,
886
- 'form_email_to' => $form_to,
887
- 'form_email_from' => $form_from,
888
- 'form_email_from_name' => $form_from_name,
889
- 'form_email_from_override' => $form_from_override,
890
- 'form_email_from_name_override' => $form_from_name_override,
891
- 'form_success_type' => $form_success_type,
892
- 'form_success_message' => $form_success_message,
893
- 'form_notification_setting' => $form_notification_setting,
894
- 'form_notification_email_name' => $form_notification_email_name,
895
- 'form_notification_email_from' => $form_notification_email_from,
896
- 'form_notification_email' => $form_notification_email,
897
- 'form_notification_subject' => $form_notification_subject,
898
- 'form_notification_message' => $form_notification_message,
899
- 'form_notification_entry' => $form_notification_entry,
900
- 'form_label_alignment' => $form_label_alignment
901
- );
902
 
903
- $where = array( 'form_id' => $form_id );
904
-
905
- // Update form details
906
- $wpdb->update( $this->form_table_name, $newdata, $where );
907
-
908
- $field_ids = array();
909
-
910
- // Get max post vars, if available. Otherwise set to 1000
911
- $max_post_vars = ( ini_get( 'max_input_vars' ) ) ? intval( ini_get( 'max_input_vars' ) ) : 1000;
912
-
913
- // Set a message to be displayed if we've reached a limit
914
- if ( count( $_POST, COUNT_RECURSIVE ) > $max_post_vars )
915
- $this->post_max_vars = true;
916
-
917
- foreach ( $_REQUEST['field_id'] as $fields ) :
918
- $field_ids[] = $fields;
919
- endforeach;
920
-
921
- // Initialize field sequence
922
- $field_sequence = 0;
923
-
924
- // Loop through each field and update
925
- foreach ( $field_ids as $id ) :
926
- $id = absint( $id );
927
-
928
- $field_name = ( isset( $_REQUEST['field_name-' . $id] ) ) ? trim( $_REQUEST['field_name-' . $id] ) : '';
929
- $field_key = sanitize_key( sanitize_title( $field_name, $id ) );
930
- $field_desc = ( isset( $_REQUEST['field_description-' . $id] ) ) ? trim( $_REQUEST['field_description-' . $id] ) : '';
931
- $field_options = ( isset( $_REQUEST['field_options-' . $id] ) ) ? serialize( array_map( 'trim', $_REQUEST['field_options-' . $id] ) ) : '';
932
- $field_validation = ( isset( $_REQUEST['field_validation-' . $id] ) ) ? $_REQUEST['field_validation-' . $id] : '';
933
- $field_required = ( isset( $_REQUEST['field_required-' . $id] ) ) ? $_REQUEST['field_required-' . $id] : '';
934
- $field_size = ( isset( $_REQUEST['field_size-' . $id] ) ) ? $_REQUEST['field_size-' . $id] : '';
935
- $field_css = ( isset( $_REQUEST['field_css-' . $id] ) ) ? $_REQUEST['field_css-' . $id] : '';
936
- $field_layout = ( isset( $_REQUEST['field_layout-' . $id] ) ) ? $_REQUEST['field_layout-' . $id] : '';
937
- $field_default = ( isset( $_REQUEST['field_default-' . $id] ) ) ? trim( $_REQUEST['field_default-' . $id] ) : '';
938
-
939
- $field_data = array(
940
- 'field_key' => $field_key,
941
- 'field_name' => $field_name,
942
- 'field_description' => $field_desc,
943
- 'field_options' => $field_options,
944
- 'field_validation' => $field_validation,
945
- 'field_required' => $field_required,
946
- 'field_size' => $field_size,
947
- 'field_css' => $field_css,
948
- 'field_layout' => $field_layout,
949
- 'field_sequence' => $field_sequence,
950
- 'field_default' => $field_default
951
- );
952
-
953
- $where = array(
954
- 'form_id' => $form_id,
955
- 'field_id' => $id
956
- );
957
-
958
- // Update all fields
959
- $wpdb->update( $this->field_table_name, $field_data, $where );
960
-
961
- $field_sequence++;
962
- endforeach;
963
 
964
- break;
965
 
966
- case 'delete_form' :
967
- $id = absint( $_REQUEST['form'] );
968
 
969
- check_admin_referer( 'delete-form-' . $id );
 
 
 
970
 
971
- // Delete form and all fields
972
- $wpdb->query( $wpdb->prepare( "DELETE FROM $this->form_table_name WHERE form_id = %d", $id ) );
973
- $wpdb->query( $wpdb->prepare( "DELETE FROM $this->field_table_name WHERE form_id = %d", $id ) );
974
- $wpdb->query( $wpdb->prepare( "DELETE FROM $this->entries_table_name WHERE form_id = %d", $id ) );
975
 
976
- // Redirect to keep the URL clean (use AJAX in the future?)
977
- wp_redirect( add_query_arg( 'action', 'deleted', 'admin.php?page=visual-form-builder' ) );
978
- exit();
 
 
 
 
 
 
979
 
980
- break;
 
981
 
982
- case 'copy_form' :
983
- $id = absint( $_REQUEST['form'] );
984
-
985
- check_admin_referer( 'copy-form-' . $id );
986
-
987
- // Get all fields and data for the request form
988
- $fields = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM $this->field_table_name WHERE form_id = %d", $id ) );
989
- $forms = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM $this->form_table_name WHERE form_id = %d", $id ) );
990
- $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 ) );
991
- $from_name = $wpdb->get_var( null, 1 );
992
- $notify = $wpdb->get_var( null, 2 );
993
-
994
- // Copy this form and force the initial title to denote a copy
995
- foreach ( $forms as $form ) {
996
- $data = array(
997
- 'form_key' => sanitize_title( $form->form_key . ' copy' ),
998
- 'form_title' => $form->form_title . ' Copy',
999
- 'form_email_subject' => $form->form_email_subject,
1000
- 'form_email_to' => $form->form_email_to,
1001
- 'form_email_from' => $form->form_email_from,
1002
- 'form_email_from_name' => $form->form_email_from_name,
1003
- 'form_email_from_override' => $form->form_email_from_override,
1004
- 'form_email_from_name_override' => $form->form_email_from_name_override,
1005
- 'form_success_type' => $form->form_success_type,
1006
- 'form_success_message' => $form->form_success_message,
1007
- 'form_notification_setting' => $form->form_notification_setting,
1008
- 'form_notification_email_name' => $form->form_notification_email_name,
1009
- 'form_notification_email_from' => $form->form_notification_email_from,
1010
- 'form_notification_email' => $form->form_notification_email,
1011
- 'form_notification_subject' => $form->form_notification_subject,
1012
- 'form_notification_message' => $form->form_notification_message,
1013
- 'form_notification_entry' => $form->form_notification_entry,
1014
- 'form_label_alignment' => $form->form_label_alignment
1015
- );
1016
-
1017
- $wpdb->insert( $this->form_table_name, $data );
1018
- }
1019
 
1020
- // Get form ID to add our first field
1021
- $new_form_selected = $wpdb->insert_id;
1022
-
1023
- // Copy each field and data
1024
- foreach ( $fields as $field ) {
1025
- $data = array(
1026
- 'form_id' => $new_form_selected,
1027
- 'field_key' => $field->field_key,
1028
- 'field_type' => $field->field_type,
1029
- 'field_name' => $field->field_name,
1030
- 'field_description' => $field->field_description,
1031
- 'field_options' => $field->field_options,
1032
- 'field_sequence' => $field->field_sequence,
1033
- 'field_validation' => $field->field_validation,
1034
- 'field_required' => $field->field_required,
1035
- 'field_size' => $field->field_size,
1036
- 'field_css' => $field->field_css,
1037
- 'field_layout' => $field->field_layout,
1038
- 'field_parent' => $field->field_parent
1039
- );
1040
-
1041
- $wpdb->insert( $this->field_table_name, $data );
1042
-
1043
- // If a parent field, save the old ID and the new ID to update new parent ID
1044
- if ( in_array( $field->field_type, array( 'fieldset', 'section', 'verification' ) ) )
1045
- $parents[ $field->field_id ] = $wpdb->insert_id;
1046
-
1047
- if ( $override == $field->field_id )
1048
- $wpdb->update( $this->form_table_name, array( 'form_email_from_override' => $wpdb->insert_id ), array( 'form_id' => $new_form_selected ) );
1049
-
1050
- if ( $from_name == $field->field_id )
1051
- $wpdb->update( $this->form_table_name, array( 'form_email_from_name_override' => $wpdb->insert_id ), array( 'form_id' => $new_form_selected ) );
1052
-
1053
- if ( $notify == $field->field_id )
1054
- $wpdb->update( $this->form_table_name, array( 'form_notification_email' => $wpdb->insert_id ), array( 'form_id' => $new_form_selected ) );
1055
- }
1056
 
1057
- // Loop through our parents and update them to their new IDs
1058
- foreach ( $parents as $k => $v ) {
1059
- $wpdb->update( $this->field_table_name, array( 'field_parent' => $v ), array( 'form_id' => $new_form_selected, 'field_parent' => $k ) );
1060
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1061
 
1062
- break;
 
1063
 
1064
- case 'trash_entry' :
1065
- $entry_id = absint( $_GET['entry'] );
1066
- $wpdb->update( $this->entries_table_name, array( 'entry_approved' => 'trash' ), array( 'entries_id' => $entry_id ) );
1067
- break;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1068
 
1069
- case 'vfb_settings' :
1070
 
1071
- check_admin_referer( 'vfb-update-settings' );
 
 
1072
 
1073
- $data = array();
 
1074
 
1075
- foreach ( $_POST['vfb-settings'] as $key => $val ) {
1076
- $data[ $key ] = esc_html( $val );
1077
- }
1078
 
1079
- update_option( 'vfb-settings', $data );
 
 
1080
 
1081
- break;
1082
- endswitch;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1083
  }
1084
 
1085
  /**
@@ -1364,29 +1472,39 @@ class Visual_Form_Builder{
1364
  * @since 1.0
1365
  */
1366
  public function admin_notices(){
1367
- if ( isset( $_REQUEST['action'] ) ) {
1368
- switch( $_REQUEST['action'] ) {
1369
- case 'create_form' :
1370
- echo '<div id="message" class="updated"><p>' . __( 'The form has been successfully created.' , 'visual-form-builder' ) . '</p></div>';
 
 
 
 
 
1371
  break;
1372
- case 'update_form' :
1373
- echo '<div id="message" class="updated"><p>' . sprintf( __( 'The %s form has been updated.' , 'visual-form-builder'), '<strong>' . $_REQUEST['form_title'] . '</strong>' ) . '</p></div>';
1374
 
1375
- if ( $this->post_max_vars ) :
1376
- // Get max post vars, if available. Otherwise set to 1000
1377
- $max_post_vars = ( ini_get( 'max_input_vars' ) ) ? intval( ini_get( 'max_input_vars' ) ) : 1000;
 
 
 
1378
 
1379
- echo '<div id="message" class="error"><p>' . sprintf( __( 'Error saving form. The maximum amount of data allowed by your server has been reached. Please update <a href="%s" target="_blank">max_input_vars</a> in your php.ini file to allow more data to be saved. Current limit is <strong>%d</strong>', 'visual-form-builder' ), 'http://www.php.net/manual/en/info.configuration.php#ini.max-input-vars', $max_post_vars ) . '</p></div>';
1380
- endif;
1381
  break;
1382
- case 'deleted' :
1383
- echo '<div id="message" class="updated"><p>' . __( 'The form has been successfully deleted.' , 'visual-form-builder') . '</p></div>';
 
1384
  break;
1385
- case 'copy_form' :
1386
- echo '<div id="message" class="updated"><p>' . __( 'The form has been successfully duplicated.' , 'visual-form-builder') . '</p></div>';
 
1387
  break;
1388
- }
1389
 
 
 
 
1390
  }
1391
  }
1392
 
@@ -1522,26 +1640,51 @@ class Visual_Form_Builder{
1522
  <h3><?php _e( 'Global Settings', 'visual-form-builder' ); ?></h3>
1523
  <p><?php _e( 'These settings will affect all forms on your site.', 'visual-form-builder' ); ?></p>
1524
  <table class="form-table">
1525
- <?php
1526
- $disable = array(
1527
- 'always-load-css' => __( 'Always load CSS', 'visual-form-builder' ),
1528
- 'disable-css' => __( 'Disable CSS', 'visual-form-builder' ), // visual-form-builder-css
1529
- 'address-labels' => __( 'Place Address labels above fields', 'visual-form-builder' ), // vfb_address_labels_placement
1530
- 'show-version' => __( 'Disable meta tag version', 'visual-form-builder' ), // vfb_show_version
1531
- );
1532
-
1533
- foreach ( $disable as $key => $title ) :
1534
-
1535
- $vfb_settings[ $key ] = isset( $vfb_settings[ $key ] ) ? $vfb_settings[ $key ] : '';
1536
- ?>
1537
  <tr valign="top">
1538
- <th scope="row"><label for="vfb-settings-<?php echo $key; ?>"><?php echo $title; ?></label></th>
1539
  <td>
1540
- <?php $vfb_settings[ $key ] = isset( $vfb_settings[ $key ] ) ? $vfb_settings[ $key ] : 0; ?>
1541
- <input type="checkbox" name="vfb-settings[<?php echo $key; ?>]" id="vfb-settings-<?php echo $key; ?>" value="1" <?php checked( $vfb_settings[ $key ], 1 ); ?> />
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1542
  </td>
1543
  </tr>
1544
- <?php endforeach; ?>
1545
 
1546
  <tr valign="top">
1547
  <th scope="row"><label for="vfb-settings-spam-points"><?php _e( 'Spam word sensitivity', 'visual-form-builder' ); ?></label></th>
@@ -1580,6 +1723,7 @@ class Visual_Form_Builder{
1580
  $vfb_settings['sender-mail-header'] = isset( $vfb_settings['sender-mail-header'] ) ? $vfb_settings['sender-mail-header'] : $from_email;
1581
  ?>
1582
  <input type="text" name="vfb-settings[sender-mail-header]" id="vfb-settings-sender-mail-header" value="<?php echo $vfb_settings['sender-mail-header']; ?>" class="regular-text" />
 
1583
  </td>
1584
  </tr>
1585
  </table>
@@ -1807,7 +1951,9 @@ class Visual_Form_Builder{
1807
  return wp_kses_data( force_balance_tags( $data ) );
1808
  break;
1809
 
1810
- case 'number' :
 
 
1811
  return preg_replace( '/\D/i', '', $data );
1812
  break;
1813
 
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.8.1
8
  */
9
 
10
  // Version number to output as meta tag
11
+ define( 'VFB_VERSION', '2.8.1' );
12
 
13
  /*
14
  This program is free software; you can redistribute it and/or modify
41
  * @var string
42
  * @access protected
43
  */
44
+ protected $vfb_db_version = '2.8';
45
 
46
  /**
47
  * Flag used to add scripts to front-end only once
95
  // Add suffix to load dev files
96
  $this->load_dev_files = ( defined( 'VFB_SCRIPT_DEBUG' ) && VFB_SCRIPT_DEBUG ) ? '' : '.min';
97
 
98
+ // Saving functions
99
+ add_action( 'admin_init', array( &$this, 'save_add_new_form' ) );
100
+ add_action( 'admin_init', array( &$this, 'save_update_form' ) );
101
+ add_action( 'admin_init', array( &$this, 'save_trash_delete_form' ) );
102
+ add_action( 'admin_init', array( &$this, 'save_copy_form' ) );
103
+ add_action( 'admin_init', array( &$this, 'save_settings' ) );
104
+
105
+ // Build options and settings pages.
106
+ add_action( 'admin_menu', array( &$this, 'add_admin' ) );
107
+ add_action( 'admin_menu', array( &$this, 'additional_plugin_setup' ) );
108
+
109
+ // Register AJAX functions
110
+ $actions = array(
111
+ // Form Builder
112
+ 'sort_field',
113
+ 'create_field',
114
+ 'delete_field',
115
+ 'form_settings',
116
+
117
+ // Media button
118
+ 'media_button',
119
+ );
120
 
121
+ // Add all AJAX functions
122
+ foreach( $actions as $name ) {
123
+ add_action( "wp_ajax_visual_form_builder_$name", array( &$this, "ajax_$name" ) );
124
+ }
125
 
126
+ // Adds additional media button to insert form shortcode
127
+ add_action( 'media_buttons', array( &$this, 'add_media_button' ), 999 );
128
 
129
+ // Adds a Dashboard widget
130
+ add_action( 'wp_dashboard_setup', array( &$this, 'add_dashboard_widget' ) );
131
 
132
+ // Adds a Settings link to the Plugins page
133
+ add_filter( 'plugin_action_links', array( &$this, 'plugin_action_links' ), 10, 2 );
134
 
135
+ // Check the db version and run SQL install, if needed
136
+ add_action( 'plugins_loaded', array( &$this, 'update_db_check' ) );
137
 
138
+ // Display update messages
139
+ add_action( 'admin_notices', array( &$this, 'admin_notices' ) );
 
140
 
141
  // Load i18n
142
  add_action( 'plugins_loaded', array( &$this, 'languages' ) );
551
  ?>
552
  <p><?php _e( 'Add forms to your Posts or Pages by locating the <strong>Add Form</strong> button in the area above your post/page editor.', 'visual-form-builder' ); ?></p>
553
  <p><?php _e( 'You may also manually insert the shortcode into a post/page.', 'visual-form-builder' ); ?></p>
554
+ <p>
555
+ <?php _e( 'Shortcode', 'visual-form-builder' ); ?>
556
+ <input value="[vfb id='<?php echo (int) $_REQUEST['form']; ?>']" readonly="readonly" />
557
+ </p>
558
  <?php
559
  }
560
 
666
  wp_enqueue_script( 'jquery-ui-sortable' );
667
  wp_enqueue_script( 'postbox' );
668
  wp_enqueue_script( 'jquery-form-validation', plugins_url( '/js/jquery.validate.min.js', __FILE__ ), array( 'jquery' ), '1.9.0', true );
669
+ wp_enqueue_script( 'vfb-admin', plugins_url( "/js/vfb-admin$this->load_dev_files.js", __FILE__ ) , array( 'jquery', 'jquery-form-validation' ), '20140412', true );
670
  wp_enqueue_script( 'nested-sortable', plugins_url( "/js/jquery.ui.nestedSortable$this->load_dev_files.js", __FILE__ ) , array( 'jquery', 'jquery-ui-sortable' ), '1.3.5', true );
671
 
672
+ wp_enqueue_style( 'visual-form-builder-style', plugins_url( "/css/visual-form-builder-admin$this->load_dev_files.css", __FILE__ ), array(), '20140412' );
673
 
674
  wp_localize_script( 'vfb-admin', 'VfbAdminPages', array( 'vfb_pages' => $this->_admin_pages ) );
675
  }
677
  /**
678
  * Queue form validation scripts
679
  *
680
+ * Scripts loaded in form-output.php, when field is present:
681
+ * jQuery UI date picker
682
+ * CKEditor
683
+ *
684
  * @since 1.0
685
  */
686
  public function scripts() {
688
  $this->add_scripts = true;
689
 
690
  wp_register_script( 'jquery-form-validation', plugins_url( '/js/jquery.validate.min.js', __FILE__ ), array( 'jquery' ), '1.9.0', true );
691
+ wp_register_script( 'visual-form-builder-validation', plugins_url( "/js/vfb-validation$this->load_dev_files.js", __FILE__ ) , array( 'jquery', 'jquery-form-validation' ), '20140412', true );
692
  wp_register_script( 'visual-form-builder-metadata', plugins_url( '/js/jquery.metadata.js', __FILE__ ) , array( 'jquery', 'jquery-form-validation' ), '2.0', true );
693
  wp_register_script( 'vfb-ckeditor', plugins_url( '/js/ckeditor/ckeditor.js', __FILE__ ), array( 'jquery' ), '4.1', true );
694
 
695
  wp_enqueue_script( 'jquery-form-validation' );
 
696
  wp_enqueue_script( 'visual-form-builder-validation' );
697
  wp_enqueue_script( 'visual-form-builder-metadata' );
698
+
699
+ $locale = get_locale();
700
+ $translations = array(
701
+ 'cs_CS', // Czech
702
+ 'de_DE', // German
703
+ 'el_GR', // Greek
704
+ 'en_US', // English (US)
705
+ 'en_AU', // English (AU)
706
+ 'en_GB', // English (GB)
707
+ 'es_ES', // Spanish
708
+ 'fr_FR', // French
709
+ 'he_IL', // Hebrew
710
+ 'hu_HU', // Hungarian
711
+ 'id_ID', // Indonseian
712
+ 'it_IT', // Italian
713
+ 'ja_JP', // Japanese
714
+ 'ko_KR', // Korean
715
+ 'nl_NL', // Dutch
716
+ 'pl_PL', // Polish
717
+ 'pt_BR', // Portuguese (Brazilian)
718
+ 'pt_PT', // Portuguese (European)
719
+ 'ro_RO', // Romanian
720
+ 'ru_RU', // Russian
721
+ 'sv_SE', // Swedish
722
+ 'tr_TR', // Turkish
723
+ 'zh_CN', // Chinese
724
+ 'zh_TW', // Chinese (Taiwan)
725
+ );
726
+
727
+ // Load localized vaidation and datepicker text, if translation files exist
728
+ if ( in_array( $locale, $translations ) ) {
729
+ wp_register_script( 'vfb-validation-i18n', plugins_url( "/js/i18n/validate/messages-$locale.js", __FILE__ ), array( 'jquery-form-validation' ), '1.9.0', true );
730
+ wp_register_script( 'vfb-datepicker-i18n', plugins_url( "/js/i18n/datepicker/datepicker-$locale.js", __FILE__ ), array( 'jquery-ui-datepicker' ), '1.0', true );
731
+
732
+ wp_enqueue_script( 'vfb-validation-i18n' );
733
+ }
734
+ // Otherwise, load English translations
735
+ else {
736
+ wp_register_script( 'vfb-validation-i18n', plugins_url( "/js/i18n/validate/messages-en_US.js", __FILE__ ), array( 'jquery-form-validation' ), '1.9.0', true );
737
+ wp_register_script( 'vfb-datepicker-i18n', plugins_url( "/js/i18n/datepicker/datepicker-en_US.js", __FILE__ ), array( 'jquery-ui-datepicker' ), '1.0', true );
738
+
739
+ wp_enqueue_script( 'vfb-validation-i18n' );
740
+ }
741
  }
742
 
743
  /**
750
  $vfb_settings = get_option( 'vfb-settings' );
751
 
752
  wp_register_style( 'vfb-jqueryui-css', apply_filters( 'vfb-date-picker-css', plugins_url( '/css/smoothness/jquery-ui-1.10.3.min.css', __FILE__ ) ), array(), '20131203' );
753
+ wp_register_style( 'visual-form-builder-css', apply_filters( 'visual-form-builder-css', plugins_url( "/css/visual-form-builder$this->load_dev_files.css", __FILE__ ) ), array(), '20140412' );
754
 
755
  // Settings - Always load CSS
756
  if ( isset( $vfb_settings['always-load-css'] ) ) {
789
  }
790
 
791
  /**
792
+ * Save new forms on the VFB Pro > Add New page
793
  *
794
+ * @access public
795
+ * @since 2.8.1
796
+ * @return void
797
+ */
798
+ public function save_add_new_form() {
799
+ global $wpdb;
800
+
801
+ if ( !isset( $_REQUEST['action'] ) || !isset( $_GET['page'] ) )
802
+ return;
803
+
804
+ if ( 'vfb-add-new' !== $_GET['page'] )
805
+ return;
806
+
807
+ if ( 'create_form' !== $_REQUEST['action'] )
808
+ return;
809
+
810
+ check_admin_referer( 'create_form' );
811
+
812
+ $form_key = sanitize_title( $_REQUEST['form_title'] );
813
+ $form_title = esc_html( $_REQUEST['form_title'] );
814
+ $form_from_name = esc_html( $_REQUEST['form_email_from_name'] );
815
+ $form_subject = esc_html( $_REQUEST['form_email_subject'] );
816
+ $form_from = esc_html( $_REQUEST['form_email_from'] );
817
+ $form_to = serialize( $_REQUEST['form_email_to'] );
818
+
819
+ $newdata = array(
820
+ 'form_key' => $form_key,
821
+ 'form_title' => $form_title,
822
+ 'form_email_from_name' => $form_from_name,
823
+ 'form_email_subject' => $form_subject,
824
+ 'form_email_from' => $form_from,
825
+ 'form_email_to' => $form_to,
826
+ 'form_success_message' => '<p id="form_success">Your form was successfully submitted. Thank you for contacting us.</p>'
827
+ );
828
+
829
+ // Create the form
830
+ $wpdb->insert( $this->form_table_name, $newdata );
831
+
832
+ // Get form ID to add our first field
833
+ $new_form_selected = $wpdb->insert_id;
834
+
835
+ // Setup the initial fieldset
836
+ $initial_fieldset = array(
837
+ 'form_id' => $wpdb->insert_id,
838
+ 'field_key' => 'fieldset',
839
+ 'field_type' => 'fieldset',
840
+ 'field_name' => 'Fieldset',
841
+ 'field_sequence' => 0
842
+ );
843
+
844
+ // Add the first fieldset to get things started
845
+ $wpdb->insert( $this->field_table_name, $initial_fieldset );
846
+
847
+ $verification_fieldset = array(
848
+ 'form_id' => $new_form_selected,
849
+ 'field_key' => 'verification',
850
+ 'field_type' => 'verification',
851
+ 'field_name' => 'Verification',
852
+ 'field_description' => '(This is for preventing spam)',
853
+ 'field_sequence' => 1
854
+ );
855
+
856
+ // Insert the submit field
857
+ $wpdb->insert( $this->field_table_name, $verification_fieldset );
858
+
859
+ $verify_fieldset_parent_id = $wpdb->insert_id;
860
+
861
+ $secret = array(
862
+ 'form_id' => $new_form_selected,
863
+ 'field_key' => 'secret',
864
+ 'field_type' => 'secret',
865
+ 'field_name' => 'Please enter any two digits',
866
+ 'field_description' => 'Example: 12',
867
+ 'field_size' => 'medium',
868
+ 'field_required' => 'yes',
869
+ 'field_parent' => $verify_fieldset_parent_id,
870
+ 'field_sequence' => 2
871
+ );
872
+
873
+ // Insert the submit field
874
+ $wpdb->insert( $this->field_table_name, $secret );
875
+
876
+ // Make the submit last in the sequence
877
+ $submit = array(
878
+ 'form_id' => $new_form_selected,
879
+ 'field_key' => 'submit',
880
+ 'field_type' => 'submit',
881
+ 'field_name' => 'Submit',
882
+ 'field_parent' => $verify_fieldset_parent_id,
883
+ 'field_sequence' => 3
884
+ );
885
+
886
+ // Insert the submit field
887
+ $wpdb->insert( $this->field_table_name, $submit );
888
+
889
+ // Redirect to keep the URL clean (use AJAX in the future?)
890
+ wp_redirect( 'admin.php?page=visual-form-builder&action=edit&form=' . $new_form_selected );
891
+ exit();
892
+ }
893
+
894
+ /**
895
+ * Save the form
896
  *
897
+ * @access public
898
+ * @since 2.8.1
899
+ * @return void
900
  */
901
+ public function save_update_form() {
902
  global $wpdb;
903
 
904
+ if ( !isset( $_REQUEST['action'] ) || !isset( $_GET['page'] ) )
905
  return;
906
 
907
+ if ( 'visual-form-builder' !== $_GET['page'] )
908
  return;
909
 
910
+ if ( 'update_form' !== $_REQUEST['action'] )
911
  return;
912
 
913
+ check_admin_referer( 'vfb_update_form' );
914
+
915
+ $form_id = absint( $_REQUEST['form_id'] );
916
+ $form_key = sanitize_title( $_REQUEST['form_title'], $form_id );
917
+ $form_title = $_REQUEST['form_title'];
918
+ $form_subject = $_REQUEST['form_email_subject'];
919
+ $form_to = serialize( array_map( 'sanitize_email', $_REQUEST['form_email_to'] ) );
920
+ $form_from = sanitize_email( $_REQUEST['form_email_from'] );
921
+ $form_from_name = $_REQUEST['form_email_from_name'];
922
+ $form_from_override = isset( $_REQUEST['form_email_from_override'] ) ? $_REQUEST['form_email_from_override'] : '';
923
+ $form_from_name_override = isset( $_REQUEST['form_email_from_name_override'] ) ? $_REQUEST['form_email_from_name_override'] : '';
924
+ $form_success_type = $_REQUEST['form_success_type'];
925
+ $form_notification_setting = isset( $_REQUEST['form_notification_setting'] ) ? $_REQUEST['form_notification_setting'] : '';
926
+ $form_notification_email_name = isset( $_REQUEST['form_notification_email_name'] ) ? $_REQUEST['form_notification_email_name'] : '';
927
+ $form_notification_email_from = isset( $_REQUEST['form_notification_email_from'] ) ? sanitize_email( $_REQUEST['form_notification_email_from'] ) : '';
928
+ $form_notification_email = isset( $_REQUEST['form_notification_email'] ) ? $_REQUEST['form_notification_email'] : '';
929
+ $form_notification_subject = isset( $_REQUEST['form_notification_subject'] ) ? $_REQUEST['form_notification_subject'] : '';
930
+ $form_notification_message = isset( $_REQUEST['form_notification_message'] ) ? wp_richedit_pre( $_REQUEST['form_notification_message'] ) : '';
931
+ $form_notification_entry = isset( $_REQUEST['form_notification_entry'] ) ? $_REQUEST['form_notification_entry'] : '';
932
+ $form_label_alignment = $_REQUEST['form_label_alignment'];
933
+
934
+ // Add confirmation based on which type was selected
935
+ switch ( $form_success_type ) {
936
+ case 'text' :
937
+ $form_success_message = wp_richedit_pre( $_REQUEST['form_success_message_text'] );
938
+ break;
939
+ case 'page' :
940
+ $form_success_message = $_REQUEST['form_success_message_page'];
941
+ break;
942
+ case 'redirect' :
943
+ $form_success_message = $_REQUEST['form_success_message_redirect'];
944
+ break;
945
+ }
946
 
947
+ $newdata = array(
948
+ 'form_key' => $form_key,
949
+ 'form_title' => $form_title,
950
+ 'form_email_subject' => $form_subject,
951
+ 'form_email_to' => $form_to,
952
+ 'form_email_from' => $form_from,
953
+ 'form_email_from_name' => $form_from_name,
954
+ 'form_email_from_override' => $form_from_override,
955
+ 'form_email_from_name_override' => $form_from_name_override,
956
+ 'form_success_type' => $form_success_type,
957
+ 'form_success_message' => $form_success_message,
958
+ 'form_notification_setting' => $form_notification_setting,
959
+ 'form_notification_email_name' => $form_notification_email_name,
960
+ 'form_notification_email_from' => $form_notification_email_from,
961
+ 'form_notification_email' => $form_notification_email,
962
+ 'form_notification_subject' => $form_notification_subject,
963
+ 'form_notification_message' => $form_notification_message,
964
+ 'form_notification_entry' => $form_notification_entry,
965
+ 'form_label_alignment' => $form_label_alignment
966
+ );
967
 
968
+ $where = array( 'form_id' => $form_id );
 
969
 
970
+ // Update form details
971
+ $wpdb->update( $this->form_table_name, $newdata, $where );
972
 
973
+ $field_ids = array();
 
 
 
 
 
 
 
974
 
975
+ // Get max post vars, if available. Otherwise set to 1000
976
+ $max_post_vars = ( ini_get( 'max_input_vars' ) ) ? intval( ini_get( 'max_input_vars' ) ) : 1000;
977
 
978
+ // Set a message to be displayed if we've reached a limit
979
+ if ( count( $_POST, COUNT_RECURSIVE ) > $max_post_vars )
980
+ $this->post_max_vars = true;
 
 
 
 
 
981
 
982
+ foreach ( $_REQUEST['field_id'] as $fields ) :
983
+ $field_ids[] = $fields;
984
+ endforeach;
 
 
 
 
 
 
 
 
 
 
 
 
 
985
 
986
+ // Initialize field sequence
987
+ $field_sequence = 0;
988
+
989
+ // Loop through each field and update
990
+ foreach ( $field_ids as $id ) :
991
+ $id = absint( $id );
992
+
993
+ $field_name = ( isset( $_REQUEST['field_name-' . $id] ) ) ? trim( $_REQUEST['field_name-' . $id] ) : '';
994
+ $field_key = sanitize_key( sanitize_title( $field_name, $id ) );
995
+ $field_desc = ( isset( $_REQUEST['field_description-' . $id] ) ) ? trim( $_REQUEST['field_description-' . $id] ) : '';
996
+ $field_options = ( isset( $_REQUEST['field_options-' . $id] ) ) ? serialize( array_map( 'trim', $_REQUEST['field_options-' . $id] ) ) : '';
997
+ $field_validation = ( isset( $_REQUEST['field_validation-' . $id] ) ) ? $_REQUEST['field_validation-' . $id] : '';
998
+ $field_required = ( isset( $_REQUEST['field_required-' . $id] ) ) ? $_REQUEST['field_required-' . $id] : '';
999
+ $field_size = ( isset( $_REQUEST['field_size-' . $id] ) ) ? $_REQUEST['field_size-' . $id] : '';
1000
+ $field_css = ( isset( $_REQUEST['field_css-' . $id] ) ) ? $_REQUEST['field_css-' . $id] : '';
1001
+ $field_layout = ( isset( $_REQUEST['field_layout-' . $id] ) ) ? $_REQUEST['field_layout-' . $id] : '';
1002
+ $field_default = ( isset( $_REQUEST['field_default-' . $id] ) ) ? trim( $_REQUEST['field_default-' . $id] ) : '';
1003
+
1004
+ $field_data = array(
1005
+ 'field_key' => $field_key,
1006
+ 'field_name' => $field_name,
1007
+ 'field_description' => $field_desc,
1008
+ 'field_options' => $field_options,
1009
+ 'field_validation' => $field_validation,
1010
+ 'field_required' => $field_required,
1011
+ 'field_size' => $field_size,
1012
+ 'field_css' => $field_css,
1013
+ 'field_layout' => $field_layout,
1014
+ 'field_sequence' => $field_sequence,
1015
+ 'field_default' => $field_default
1016
+ );
1017
 
1018
+ $where = array(
1019
+ 'form_id' => $form_id,
1020
+ 'field_id' => $id
1021
+ );
1022
 
1023
+ // Update all fields
1024
+ $wpdb->update( $this->field_table_name, $field_data, $where );
 
1025
 
1026
+ $field_sequence++;
1027
+ endforeach;
1028
+ }
1029
 
1030
+ /**
1031
+ * Handle trashing and deleting forms
1032
+ *
1033
+ * This is a placeholder function since all processing is handled in includes/class-forms-list.php
1034
+ *
1035
+ * @access public
1036
+ * @since 2.8.1
1037
+ * @return void
1038
+ */
1039
+ public function save_trash_delete_form() {
1040
+ global $wpdb;
1041
 
1042
+ if ( !isset( $_REQUEST['action'] ) || !isset( $_GET['page'] ) )
1043
+ return;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1044
 
1045
+ if ( 'visual-form-builder' !== $_GET['page'] )
1046
+ return;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1047
 
1048
+ if ( 'delete_form' !== $_REQUEST['action'] )
1049
+ return;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1050
 
1051
+ $id = absint( $_REQUEST['form'] );
1052
 
1053
+ check_admin_referer( 'delete-form-' . $id );
 
1054
 
1055
+ // Delete form and all fields
1056
+ $wpdb->query( $wpdb->prepare( "DELETE FROM $this->form_table_name WHERE form_id = %d", $id ) );
1057
+ $wpdb->query( $wpdb->prepare( "DELETE FROM $this->field_table_name WHERE form_id = %d", $id ) );
1058
+ $wpdb->query( $wpdb->prepare( "DELETE FROM $this->entries_table_name WHERE form_id = %d", $id ) );
1059
 
1060
+ // Redirect to keep the URL clean (use AJAX in the future?)
1061
+ wp_redirect( add_query_arg( 'action', 'deleted', 'admin.php?page=visual-form-builder' ) );
1062
+ exit();
1063
+ }
1064
 
1065
+ /**
1066
+ * Handle form duplication
1067
+ *
1068
+ * @access public
1069
+ * @since 2.8.1
1070
+ * @return void
1071
+ */
1072
+ public function save_copy_form() {
1073
+ global $wpdb;
1074
 
1075
+ if ( !isset( $_REQUEST['action'] ) || !isset( $_GET['page'] ) )
1076
+ return;
1077
 
1078
+ if ( 'visual-form-builder' !== $_GET['page'] )
1079
+ return;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1080
 
1081
+ if ( 'copy_form' !== $_REQUEST['action'] )
1082
+ return;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1083
 
1084
+ $id = absint( $_REQUEST['form'] );
1085
+
1086
+ check_admin_referer( 'copy-form-' . $id );
1087
+
1088
+ // Get all fields and data for the request form
1089
+ $fields = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM $this->field_table_name WHERE form_id = %d", $id ) );
1090
+ $forms = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM $this->form_table_name WHERE form_id = %d", $id ) );
1091
+ $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 ) );
1092
+ $from_name = $wpdb->get_var( null, 1 );
1093
+ $notify = $wpdb->get_var( null, 2 );
1094
+
1095
+ // Copy this form and force the initial title to denote a copy
1096
+ foreach ( $forms as $form ) {
1097
+ $data = array(
1098
+ 'form_key' => sanitize_title( $form->form_key . ' copy' ),
1099
+ 'form_title' => $form->form_title . ' Copy',
1100
+ 'form_email_subject' => $form->form_email_subject,
1101
+ 'form_email_to' => $form->form_email_to,
1102
+ 'form_email_from' => $form->form_email_from,
1103
+ 'form_email_from_name' => $form->form_email_from_name,
1104
+ 'form_email_from_override' => $form->form_email_from_override,
1105
+ 'form_email_from_name_override' => $form->form_email_from_name_override,
1106
+ 'form_success_type' => $form->form_success_type,
1107
+ 'form_success_message' => $form->form_success_message,
1108
+ 'form_notification_setting' => $form->form_notification_setting,
1109
+ 'form_notification_email_name' => $form->form_notification_email_name,
1110
+ 'form_notification_email_from' => $form->form_notification_email_from,
1111
+ 'form_notification_email' => $form->form_notification_email,
1112
+ 'form_notification_subject' => $form->form_notification_subject,
1113
+ 'form_notification_message' => $form->form_notification_message,
1114
+ 'form_notification_entry' => $form->form_notification_entry,
1115
+ 'form_label_alignment' => $form->form_label_alignment
1116
+ );
1117
 
1118
+ $wpdb->insert( $this->form_table_name, $data );
1119
+ }
1120
 
1121
+ // Get form ID to add our first field
1122
+ $new_form_selected = $wpdb->insert_id;
1123
+
1124
+ // Copy each field and data
1125
+ foreach ( $fields as $field ) {
1126
+ $data = array(
1127
+ 'form_id' => $new_form_selected,
1128
+ 'field_key' => $field->field_key,
1129
+ 'field_type' => $field->field_type,
1130
+ 'field_name' => $field->field_name,
1131
+ 'field_description' => $field->field_description,
1132
+ 'field_options' => $field->field_options,
1133
+ 'field_sequence' => $field->field_sequence,
1134
+ 'field_validation' => $field->field_validation,
1135
+ 'field_required' => $field->field_required,
1136
+ 'field_size' => $field->field_size,
1137
+ 'field_css' => $field->field_css,
1138
+ 'field_layout' => $field->field_layout,
1139
+ 'field_parent' => $field->field_parent
1140
+ );
1141
 
1142
+ $wpdb->insert( $this->field_table_name, $data );
1143
 
1144
+ // If a parent field, save the old ID and the new ID to update new parent ID
1145
+ if ( in_array( $field->field_type, array( 'fieldset', 'section', 'verification' ) ) )
1146
+ $parents[ $field->field_id ] = $wpdb->insert_id;
1147
 
1148
+ if ( $override == $field->field_id )
1149
+ $wpdb->update( $this->form_table_name, array( 'form_email_from_override' => $wpdb->insert_id ), array( 'form_id' => $new_form_selected ) );
1150
 
1151
+ if ( $from_name == $field->field_id )
1152
+ $wpdb->update( $this->form_table_name, array( 'form_email_from_name_override' => $wpdb->insert_id ), array( 'form_id' => $new_form_selected ) );
 
1153
 
1154
+ if ( $notify == $field->field_id )
1155
+ $wpdb->update( $this->form_table_name, array( 'form_notification_email' => $wpdb->insert_id ), array( 'form_id' => $new_form_selected ) );
1156
+ }
1157
 
1158
+ // Loop through our parents and update them to their new IDs
1159
+ foreach ( $parents as $k => $v ) {
1160
+ $wpdb->update( $this->field_table_name, array( 'field_parent' => $v ), array( 'form_id' => $new_form_selected, 'field_parent' => $k ) );
1161
+ }
1162
+ }
1163
+
1164
+ /**
1165
+ * Save options on the VFB Pro > Settings page
1166
+ *
1167
+ * @access public
1168
+ * @since 2.8.1
1169
+ * @return void
1170
+ */
1171
+ public function save_settings() {
1172
+
1173
+ if ( !isset( $_REQUEST['action'] ) || !isset( $_GET['page'] ) )
1174
+ return;
1175
+
1176
+ if ( 'vfb-settings' !== $_GET['page'] )
1177
+ return;
1178
+
1179
+ if ( 'vfb_settings' !== $_REQUEST['action'] )
1180
+ return;
1181
+
1182
+ check_admin_referer( 'vfb-update-settings' );
1183
+
1184
+ $data = array();
1185
+
1186
+ foreach ( $_POST['vfb-settings'] as $key => $val ) {
1187
+ $data[ $key ] = esc_html( $val );
1188
+ }
1189
+
1190
+ update_option( 'vfb-settings', $data );
1191
  }
1192
 
1193
  /**
1472
  * @since 1.0
1473
  */
1474
  public function admin_notices(){
1475
+ if ( !isset( $_REQUEST['action'] ) || !isset( $_GET['page'] ) )
1476
+ return;
1477
+
1478
+ if ( !in_array( $_GET['page'], array( 'visual-form-builder', 'vfb-add-new', 'vfb-entries', 'vfb-email-design', 'vfb-reports', 'vfb-import', 'vfb-export', 'vfb-settings' ) ) )
1479
+ return;
1480
+
1481
+ switch( $_REQUEST['action'] ) {
1482
+ case 'create_form' :
1483
+ echo '<div id="message" class="updated"><p>' . __( 'Form created.' , 'visual-form-builder' ) . '</p></div>';
1484
  break;
 
 
1485
 
1486
+ case 'update_form' :
1487
+ echo '<div id="message" class="updated"><p>' . __( 'Form updated.' , 'visual-form-builder' ) . '</p></div>';
1488
+
1489
+ if ( $this->post_max_vars ) :
1490
+ // Get max post vars, if available. Otherwise set to 1000
1491
+ $max_post_vars = ( ini_get( 'max_input_vars' ) ) ? intval( ini_get( 'max_input_vars' ) ) : 1000;
1492
 
1493
+ echo '<div id="message" class="error"><p>' . sprintf( __( 'Error saving form. The maximum amount of data allowed by your server has been reached. Please update <a href="%s" target="_blank">max_input_vars</a> in your php.ini file to allow more data to be saved. Current limit is <strong>%d</strong>', 'visual-form-builder' ), 'http://www.php.net/manual/en/info.configuration.php#ini.max-input-vars', $max_post_vars ) . '</p></div>';
1494
+ endif;
1495
  break;
1496
+
1497
+ case 'deleted' :
1498
+ echo '<div id="message" class="updated"><p>' . __( 'Item permanently deleted.' , 'visual-form-builder') . '</p></div>';
1499
  break;
1500
+
1501
+ case 'copy_form' :
1502
+ echo '<div id="message" class="updated"><p>' . __( 'Item successfully duplicated.' , 'visual-form-builder') . '</p></div>';
1503
  break;
 
1504
 
1505
+ case 'vfb_settings' :
1506
+ echo sprintf( '<div id="message" class="updated"><p>%s</p></div>', __( 'Settings saved.' , 'visual-form-builder' ) );
1507
+ break;
1508
  }
1509
  }
1510
 
1640
  <h3><?php _e( 'Global Settings', 'visual-form-builder' ); ?></h3>
1641
  <p><?php _e( 'These settings will affect all forms on your site.', 'visual-form-builder' ); ?></p>
1642
  <table class="form-table">
 
 
 
 
 
 
 
 
 
 
 
 
1643
  <tr valign="top">
1644
+ <th scope="row"><?php _e( 'CSS', 'visual-form-builder-pro' ); ?></th>
1645
  <td>
1646
+ <fieldset>
1647
+ <?php
1648
+ $disable = array(
1649
+ 'always-load-css' => __( 'Always load CSS', 'visual-form-builder' ),
1650
+ 'disable-css' => __( 'Disable CSS', 'visual-form-builder' ), // visual-form-builder-css
1651
+ );
1652
+
1653
+ foreach ( $disable as $key => $title ) :
1654
+
1655
+ $vfb_settings[ $key ] = isset( $vfb_settings[ $key ] ) ? $vfb_settings[ $key ] : '';
1656
+ ?>
1657
+ <label for="vfb-settings-<?php echo $key; ?>">
1658
+ <input type="checkbox" name="vfb-settings[<?php echo $key; ?>]" id="vfb-settings-<?php echo $key; ?>" value="1" <?php checked( $vfb_settings[ $key ], 1 ); ?> /> <?php echo $title; ?>
1659
+ </label>
1660
+ <br>
1661
+ <?php endforeach; ?>
1662
+ </fieldset>
1663
+ </td>
1664
+ </tr>
1665
+
1666
+ <tr valign="top">
1667
+ <th scope="row"><?php _e( 'Form Output', 'visual-form-builder-pro' ); ?></th>
1668
+ <td>
1669
+ <fieldset>
1670
+ <?php
1671
+ $disable = array(
1672
+ 'address-labels' => __( 'Place Address labels above fields', 'visual-form-builder' ), // vfb_address_labels_placement
1673
+ 'show-version' => __( 'Disable meta tag version', 'visual-form-builder' ), // vfb_show_version
1674
+ );
1675
+
1676
+ foreach ( $disable as $key => $title ) :
1677
+
1678
+ $vfb_settings[ $key ] = isset( $vfb_settings[ $key ] ) ? $vfb_settings[ $key ] : '';
1679
+ ?>
1680
+ <label for="vfb-settings-<?php echo $key; ?>">
1681
+ <input type="checkbox" name="vfb-settings[<?php echo $key; ?>]" id="vfb-settings-<?php echo $key; ?>" value="1" <?php checked( $vfb_settings[ $key ], 1 ); ?> /> <?php echo $title; ?>
1682
+ </label>
1683
+ <br>
1684
+ <?php endforeach; ?>
1685
+ </fieldset>
1686
  </td>
1687
  </tr>
 
1688
 
1689
  <tr valign="top">
1690
  <th scope="row"><label for="vfb-settings-spam-points"><?php _e( 'Spam word sensitivity', 'visual-form-builder' ); ?></label></th>
1723
  $vfb_settings['sender-mail-header'] = isset( $vfb_settings['sender-mail-header'] ) ? $vfb_settings['sender-mail-header'] : $from_email;
1724
  ?>
1725
  <input type="text" name="vfb-settings[sender-mail-header]" id="vfb-settings-sender-mail-header" value="<?php echo $vfb_settings['sender-mail-header']; ?>" class="regular-text" />
1726
+ <p class="description"><?php _e( 'Some server configurations require an existing email on the domain be used when sending emails.', 'visual-form-builder' ); ?></p>
1727
  </td>
1728
  </tr>
1729
  </table>
1951
  return wp_kses_data( force_balance_tags( $data ) );
1952
  break;
1953
 
1954
+ case 'min' :
1955
+ case 'max' :
1956
+ case 'digits' :
1957
  return preg_replace( '/\D/i', '', $data );
1958
  break;
1959