MailChimp List Subscribe Form - Version 1.2.5

Version Description

Added support for multiple interest groups, field formatting based on type and date picker.

=

Download this release

Release Info

Developer crowdfavorite
Plugin Icon wp plugin MailChimp List Subscribe Form
Version 1.2.5
Comparing to
See all releases

Code changes from version 1.2.4 to 1.2.5

Files changed (89) hide show
  1. css/flick/flick.css +357 -0
  2. css/flick/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  3. css/flick/images/ui-bg_flat_0_eeeeee_40x100.png +0 -0
  4. css/flick/images/ui-bg_flat_55_ffffff_40x100.png +0 -0
  5. css/flick/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  6. css/flick/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  7. css/flick/images/ui-bg_highlight-soft_100_f6f6f6_1x100.png +0 -0
  8. css/flick/images/ui-bg_highlight-soft_25_0073ea_1x100.png +0 -0
  9. css/flick/images/ui-bg_highlight-soft_50_dddddd_1x100.png +0 -0
  10. css/flick/images/ui-icons_0073ea_256x240.png +0 -0
  11. css/flick/images/ui-icons_454545_256x240.png +0 -0
  12. css/flick/images/ui-icons_666666_256x240.png +0 -0
  13. css/flick/images/ui-icons_ff0084_256x240.png +0 -0
  14. css/flick/images/ui-icons_ffffff_256x240.png +0 -0
  15. js/datepicker.js +1815 -0
  16. js/i18n/jquery-ui-i18n.js +1379 -0
  17. js/i18n/jquery.ui.datepicker-af.js +23 -0
  18. js/i18n/jquery.ui.datepicker-ar-DZ.js +23 -0
  19. js/i18n/jquery.ui.datepicker-ar.js +23 -0
  20. js/i18n/jquery.ui.datepicker-az.js +23 -0
  21. js/i18n/jquery.ui.datepicker-bg.js +24 -0
  22. js/i18n/jquery.ui.datepicker-bs.js +23 -0
  23. js/i18n/jquery.ui.datepicker-ca.js +23 -0
  24. js/i18n/jquery.ui.datepicker-cs.js +23 -0
  25. js/i18n/jquery.ui.datepicker-da.js +23 -0
  26. js/i18n/jquery.ui.datepicker-de.js +23 -0
  27. js/i18n/jquery.ui.datepicker-el.js +23 -0
  28. js/i18n/jquery.ui.datepicker-en-AU.js +23 -0
  29. js/i18n/jquery.ui.datepicker-en-GB.js +23 -0
  30. js/i18n/jquery.ui.datepicker-en-NZ.js +23 -0
  31. js/i18n/jquery.ui.datepicker-eo.js +23 -0
  32. js/i18n/jquery.ui.datepicker-es.js +23 -0
  33. js/i18n/jquery.ui.datepicker-et.js +23 -0
  34. js/i18n/jquery.ui.datepicker-eu.js +23 -0
  35. js/i18n/jquery.ui.datepicker-fa.js +23 -0
  36. js/i18n/jquery.ui.datepicker-fi.js +23 -0
  37. js/i18n/jquery.ui.datepicker-fo.js +23 -0
  38. js/i18n/jquery.ui.datepicker-fr-CH.js +23 -0
  39. js/i18n/jquery.ui.datepicker-fr.js +25 -0
  40. js/i18n/jquery.ui.datepicker-gl.js +23 -0
  41. js/i18n/jquery.ui.datepicker-he.js +23 -0
  42. js/i18n/jquery.ui.datepicker-hr.js +23 -0
  43. js/i18n/jquery.ui.datepicker-hu.js +23 -0
  44. js/i18n/jquery.ui.datepicker-hy.js +23 -0
  45. js/i18n/jquery.ui.datepicker-id.js +23 -0
  46. js/i18n/jquery.ui.datepicker-is.js +23 -0
  47. js/i18n/jquery.ui.datepicker-it.js +23 -0
  48. js/i18n/jquery.ui.datepicker-ja.js +23 -0
  49. js/i18n/jquery.ui.datepicker-ko.js +23 -0
  50. js/i18n/jquery.ui.datepicker-kz.js +23 -0
  51. js/i18n/jquery.ui.datepicker-lt.js +23 -0
  52. js/i18n/jquery.ui.datepicker-lv.js +23 -0
  53. js/i18n/jquery.ui.datepicker-ml.js +23 -0
  54. js/i18n/jquery.ui.datepicker-ms.js +23 -0
  55. js/i18n/jquery.ui.datepicker-nl.js +23 -0
  56. js/i18n/jquery.ui.datepicker-no.js +23 -0
  57. js/i18n/jquery.ui.datepicker-pl.js +23 -0
  58. js/i18n/jquery.ui.datepicker-pt-BR.js +23 -0
  59. js/i18n/jquery.ui.datepicker-pt.js +22 -0
  60. js/i18n/jquery.ui.datepicker-rm.js +21 -0
  61. js/i18n/jquery.ui.datepicker-ro.js +26 -0
  62. js/i18n/jquery.ui.datepicker-ru.js +23 -0
  63. js/i18n/jquery.ui.datepicker-sk.js +23 -0
  64. js/i18n/jquery.ui.datepicker-sl.js +24 -0
  65. js/i18n/jquery.ui.datepicker-sq.js +23 -0
  66. js/i18n/jquery.ui.datepicker-sr-SR.js +23 -0
  67. js/i18n/jquery.ui.datepicker-sr.js +23 -0
  68. js/i18n/jquery.ui.datepicker-sv.js +23 -0
  69. js/i18n/jquery.ui.datepicker-ta.js +23 -0
  70. js/i18n/jquery.ui.datepicker-th.js +23 -0
  71. js/i18n/jquery.ui.datepicker-tj.js +23 -0
  72. js/i18n/jquery.ui.datepicker-tr.js +23 -0
  73. js/i18n/jquery.ui.datepicker-uk.js +23 -0
  74. js/i18n/jquery.ui.datepicker-vi.js +23 -0
  75. js/i18n/jquery.ui.datepicker-zh-CN.js +23 -0
  76. js/i18n/jquery.ui.datepicker-zh-HK.js +23 -0
  77. js/i18n/jquery.ui.datepicker-zh-TW.js +23 -0
  78. js/mailchimp.js +2 -1
  79. js/scrollTo.js +11 -0
  80. mailchimp.php +389 -170
  81. mailchimp_widget.php +449 -81
  82. miniMCAPI.class.php +2 -2
  83. po/mailchimp_i18n-es_CL.mo +0 -0
  84. po/mailchimp_i18n-es_CL.po +345 -0
  85. po/mailchimp_i18n-es_ES.mo +0 -0
  86. po/mailchimp_i18n-es_ES.po +345 -0
  87. po/mailchimp_i18n-tr_TR.mo +0 -0
  88. po/mailchimp_i18n-tr_TR.po +344 -0
  89. readme.txt +25 -10
css/flick/flick.css ADDED
@@ -0,0 +1,357 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * jQuery UI CSS Framework 1.8.14
3
+ *
4
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
5
+ * Dual licensed under the MIT or GPL Version 2 licenses.
6
+ * http://jquery.org/license
7
+ *
8
+ * http://docs.jquery.com/UI/Theming/API
9
+ */
10
+
11
+ /* Layout helpers
12
+ ----------------------------------*/
13
+ .ui-helper-hidden { display: none; }
14
+ .ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
15
+ .ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
16
+ .ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
17
+ .ui-helper-clearfix { display: inline-block; }
18
+ /* required comment for clearfix to work in Opera \*/
19
+ * html .ui-helper-clearfix { height:1%; }
20
+ .ui-helper-clearfix { display:block; }
21
+ /* end clearfix */
22
+ .ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
23
+
24
+
25
+ /* Interaction Cues
26
+ ----------------------------------*/
27
+ .ui-state-disabled { cursor: default !important; }
28
+
29
+
30
+ /* Icons
31
+ ----------------------------------*/
32
+
33
+ /* states and images */
34
+ .ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
35
+
36
+
37
+ /* Misc visuals
38
+ ----------------------------------*/
39
+
40
+ /* Overlays */
41
+ .ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
42
+
43
+
44
+ /*
45
+ * jQuery UI CSS Framework 1.8.14
46
+ *
47
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
48
+ * Dual licensed under the MIT or GPL Version 2 licenses.
49
+ * http://jquery.org/license
50
+ *
51
+ * http://docs.jquery.com/UI/Theming/API
52
+ *
53
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Helvetica,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=2px&bgColorHeader=dddddd&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=50&borderColorHeader=dddddd&fcHeader=444444&iconColorHeader=0073ea&bgColorContent=ffffff&bgTextureContent=01_flat.png&bgImgOpacityContent=75&borderColorContent=dddddd&fcContent=444444&iconColorContent=ff0084&bgColorDefault=f6f6f6&bgTextureDefault=03_highlight_soft.png&bgImgOpacityDefault=100&borderColorDefault=dddddd&fcDefault=0073ea&iconColorDefault=666666&bgColorHover=0073ea&bgTextureHover=03_highlight_soft.png&bgImgOpacityHover=25&borderColorHover=0073ea&fcHover=ffffff&iconColorHover=ffffff&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=dddddd&fcActive=ff0084&iconColorActive=454545&bgColorHighlight=ffffff&bgTextureHighlight=01_flat.png&bgImgOpacityHighlight=55&borderColorHighlight=cccccc&fcHighlight=444444&iconColorHighlight=0073ea&bgColorError=ffffff&bgTextureError=01_flat.png&bgImgOpacityError=55&borderColorError=ff0084&fcError=222222&iconColorError=ff0084&bgColorOverlay=eeeeee&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=80&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=60&thicknessShadow=4px&offsetTopShadow=-4px&offsetLeftShadow=-4px&cornerRadiusShadow=0px
54
+ */
55
+
56
+
57
+ /* Component containers
58
+ ----------------------------------*/
59
+ .ui-widget { font-family: Helvetica, Arial, sans-serif; font-size: 1.1em; }
60
+ .ui-widget .ui-widget { font-size: 1em; }
61
+ .ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Helvetica, Arial, sans-serif; font-size: 1em; }
62
+ .ui-widget-content { border: 1px solid #dddddd; background: #ffffff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; color: #444444; }
63
+ .ui-widget-content a { color: #444444; }
64
+ .ui-widget-header { border: 1px solid #dddddd; background: #dddddd url(images/ui-bg_highlight-soft_50_dddddd_1x100.png) 50% 50% repeat-x; color: #444444; font-weight: bold; }
65
+ .ui-widget-header a { color: #444444; }
66
+
67
+ /* Interaction states
68
+ ----------------------------------*/
69
+ .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #dddddd; background: #f6f6f6 url(images/ui-bg_highlight-soft_100_f6f6f6_1x100.png) 50% 50% repeat-x; font-weight: bold; color: #0073ea; }
70
+ .ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #0073ea; text-decoration: none; }
71
+ .ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #0073ea; background: #0073ea url(images/ui-bg_highlight-soft_25_0073ea_1x100.png) 50% 50% repeat-x; font-weight: bold; color: #ffffff; }
72
+ .ui-state-hover a, .ui-state-hover a:hover { color: #ffffff; text-decoration: none; }
73
+ .ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #dddddd; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #ff0084; }
74
+ .ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #ff0084; text-decoration: none; }
75
+ .ui-widget :active { outline: none; }
76
+
77
+ /* Interaction Cues
78
+ ----------------------------------*/
79
+ .ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #cccccc; background: #ffffff url(images/ui-bg_flat_55_ffffff_40x100.png) 50% 50% repeat-x; color: #444444; }
80
+ .ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #444444; }
81
+ .ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #ff0084; background: #ffffff url(images/ui-bg_flat_55_ffffff_40x100.png) 50% 50% repeat-x; color: #222222; }
82
+ .ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #222222; }
83
+ .ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #222222; }
84
+ .ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
85
+ .ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
86
+ .ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
87
+
88
+ /* Icons
89
+ ----------------------------------*/
90
+
91
+ /* states and images */
92
+ .ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_ff0084_256x240.png); }
93
+ .ui-widget-content .ui-icon {background-image: url(images/ui-icons_ff0084_256x240.png); }
94
+ .ui-widget-header .ui-icon {background-image: url(images/ui-icons_0073ea_256x240.png); }
95
+ .ui-state-default .ui-icon { background-image: url(images/ui-icons_666666_256x240.png); }
96
+ .ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); }
97
+ .ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
98
+ .ui-state-highlight .ui-icon {background-image: url(images/ui-icons_0073ea_256x240.png); }
99
+ .ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_ff0084_256x240.png); }
100
+
101
+ /* positioning */
102
+ .ui-icon-carat-1-n { background-position: 0 0; }
103
+ .ui-icon-carat-1-ne { background-position: -16px 0; }
104
+ .ui-icon-carat-1-e { background-position: -32px 0; }
105
+ .ui-icon-carat-1-se { background-position: -48px 0; }
106
+ .ui-icon-carat-1-s { background-position: -64px 0; }
107
+ .ui-icon-carat-1-sw { background-position: -80px 0; }
108
+ .ui-icon-carat-1-w { background-position: -96px 0; }
109
+ .ui-icon-carat-1-nw { background-position: -112px 0; }
110
+ .ui-icon-carat-2-n-s { background-position: -128px 0; }
111
+ .ui-icon-carat-2-e-w { background-position: -144px 0; }
112
+ .ui-icon-triangle-1-n { background-position: 0 -16px; }
113
+ .ui-icon-triangle-1-ne { background-position: -16px -16px; }
114
+ .ui-icon-triangle-1-e { background-position: -32px -16px; }
115
+ .ui-icon-triangle-1-se { background-position: -48px -16px; }
116
+ .ui-icon-triangle-1-s { background-position: -64px -16px; }
117
+ .ui-icon-triangle-1-sw { background-position: -80px -16px; }
118
+ .ui-icon-triangle-1-w { background-position: -96px -16px; }
119
+ .ui-icon-triangle-1-nw { background-position: -112px -16px; }
120
+ .ui-icon-triangle-2-n-s { background-position: -128px -16px; }
121
+ .ui-icon-triangle-2-e-w { background-position: -144px -16px; }
122
+ .ui-icon-arrow-1-n { background-position: 0 -32px; }
123
+ .ui-icon-arrow-1-ne { background-position: -16px -32px; }
124
+ .ui-icon-arrow-1-e { background-position: -32px -32px; }
125
+ .ui-icon-arrow-1-se { background-position: -48px -32px; }
126
+ .ui-icon-arrow-1-s { background-position: -64px -32px; }
127
+ .ui-icon-arrow-1-sw { background-position: -80px -32px; }
128
+ .ui-icon-arrow-1-w { background-position: -96px -32px; }
129
+ .ui-icon-arrow-1-nw { background-position: -112px -32px; }
130
+ .ui-icon-arrow-2-n-s { background-position: -128px -32px; }
131
+ .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
132
+ .ui-icon-arrow-2-e-w { background-position: -160px -32px; }
133
+ .ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
134
+ .ui-icon-arrowstop-1-n { background-position: -192px -32px; }
135
+ .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
136
+ .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
137
+ .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
138
+ .ui-icon-arrowthick-1-n { background-position: 0 -48px; }
139
+ .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
140
+ .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
141
+ .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
142
+ .ui-icon-arrowthick-1-s { background-position: -64px -48px; }
143
+ .ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
144
+ .ui-icon-arrowthick-1-w { background-position: -96px -48px; }
145
+ .ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
146
+ .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
147
+ .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
148
+ .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
149
+ .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
150
+ .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
151
+ .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
152
+ .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
153
+ .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
154
+ .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
155
+ .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
156
+ .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
157
+ .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
158
+ .ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
159
+ .ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
160
+ .ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
161
+ .ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
162
+ .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
163
+ .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
164
+ .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
165
+ .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
166
+ .ui-icon-arrow-4 { background-position: 0 -80px; }
167
+ .ui-icon-arrow-4-diag { background-position: -16px -80px; }
168
+ .ui-icon-extlink { background-position: -32px -80px; }
169
+ .ui-icon-newwin { background-position: -48px -80px; }
170
+ .ui-icon-refresh { background-position: -64px -80px; }
171
+ .ui-icon-shuffle { background-position: -80px -80px; }
172
+ .ui-icon-transfer-e-w { background-position: -96px -80px; }
173
+ .ui-icon-transferthick-e-w { background-position: -112px -80px; }
174
+ .ui-icon-folder-collapsed { background-position: 0 -96px; }
175
+ .ui-icon-folder-open { background-position: -16px -96px; }
176
+ .ui-icon-document { background-position: -32px -96px; }
177
+ .ui-icon-document-b { background-position: -48px -96px; }
178
+ .ui-icon-note { background-position: -64px -96px; }
179
+ .ui-icon-mail-closed { background-position: -80px -96px; }
180
+ .ui-icon-mail-open { background-position: -96px -96px; }
181
+ .ui-icon-suitcase { background-position: -112px -96px; }
182
+ .ui-icon-comment { background-position: -128px -96px; }
183
+ .ui-icon-person { background-position: -144px -96px; }
184
+ .ui-icon-print { background-position: -160px -96px; }
185
+ .ui-icon-trash { background-position: -176px -96px; }
186
+ .ui-icon-locked { background-position: -192px -96px; }
187
+ .ui-icon-unlocked { background-position: -208px -96px; }
188
+ .ui-icon-bookmark { background-position: -224px -96px; }
189
+ .ui-icon-tag { background-position: -240px -96px; }
190
+ .ui-icon-home { background-position: 0 -112px; }
191
+ .ui-icon-flag { background-position: -16px -112px; }
192
+ .ui-icon-calendar { background-position: -32px -112px; }
193
+ .ui-icon-cart { background-position: -48px -112px; }
194
+ .ui-icon-pencil { background-position: -64px -112px; }
195
+ .ui-icon-clock { background-position: -80px -112px; }
196
+ .ui-icon-disk { background-position: -96px -112px; }
197
+ .ui-icon-calculator { background-position: -112px -112px; }
198
+ .ui-icon-zoomin { background-position: -128px -112px; }
199
+ .ui-icon-zoomout { background-position: -144px -112px; }
200
+ .ui-icon-search { background-position: -160px -112px; }
201
+ .ui-icon-wrench { background-position: -176px -112px; }
202
+ .ui-icon-gear { background-position: -192px -112px; }
203
+ .ui-icon-heart { background-position: -208px -112px; }
204
+ .ui-icon-star { background-position: -224px -112px; }
205
+ .ui-icon-link { background-position: -240px -112px; }
206
+ .ui-icon-cancel { background-position: 0 -128px; }
207
+ .ui-icon-plus { background-position: -16px -128px; }
208
+ .ui-icon-plusthick { background-position: -32px -128px; }
209
+ .ui-icon-minus { background-position: -48px -128px; }
210
+ .ui-icon-minusthick { background-position: -64px -128px; }
211
+ .ui-icon-close { background-position: -80px -128px; }
212
+ .ui-icon-closethick { background-position: -96px -128px; }
213
+ .ui-icon-key { background-position: -112px -128px; }
214
+ .ui-icon-lightbulb { background-position: -128px -128px; }
215
+ .ui-icon-scissors { background-position: -144px -128px; }
216
+ .ui-icon-clipboard { background-position: -160px -128px; }
217
+ .ui-icon-copy { background-position: -176px -128px; }
218
+ .ui-icon-contact { background-position: -192px -128px; }
219
+ .ui-icon-image { background-position: -208px -128px; }
220
+ .ui-icon-video { background-position: -224px -128px; }
221
+ .ui-icon-script { background-position: -240px -128px; }
222
+ .ui-icon-alert { background-position: 0 -144px; }
223
+ .ui-icon-info { background-position: -16px -144px; }
224
+ .ui-icon-notice { background-position: -32px -144px; }
225
+ .ui-icon-help { background-position: -48px -144px; }
226
+ .ui-icon-check { background-position: -64px -144px; }
227
+ .ui-icon-bullet { background-position: -80px -144px; }
228
+ .ui-icon-radio-off { background-position: -96px -144px; }
229
+ .ui-icon-radio-on { background-position: -112px -144px; }
230
+ .ui-icon-pin-w { background-position: -128px -144px; }
231
+ .ui-icon-pin-s { background-position: -144px -144px; }
232
+ .ui-icon-play { background-position: 0 -160px; }
233
+ .ui-icon-pause { background-position: -16px -160px; }
234
+ .ui-icon-seek-next { background-position: -32px -160px; }
235
+ .ui-icon-seek-prev { background-position: -48px -160px; }
236
+ .ui-icon-seek-end { background-position: -64px -160px; }
237
+ .ui-icon-seek-start { background-position: -80px -160px; }
238
+ /* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
239
+ .ui-icon-seek-first { background-position: -80px -160px; }
240
+ .ui-icon-stop { background-position: -96px -160px; }
241
+ .ui-icon-eject { background-position: -112px -160px; }
242
+ .ui-icon-volume-off { background-position: -128px -160px; }
243
+ .ui-icon-volume-on { background-position: -144px -160px; }
244
+ .ui-icon-power { background-position: 0 -176px; }
245
+ .ui-icon-signal-diag { background-position: -16px -176px; }
246
+ .ui-icon-signal { background-position: -32px -176px; }
247
+ .ui-icon-battery-0 { background-position: -48px -176px; }
248
+ .ui-icon-battery-1 { background-position: -64px -176px; }
249
+ .ui-icon-battery-2 { background-position: -80px -176px; }
250
+ .ui-icon-battery-3 { background-position: -96px -176px; }
251
+ .ui-icon-circle-plus { background-position: 0 -192px; }
252
+ .ui-icon-circle-minus { background-position: -16px -192px; }
253
+ .ui-icon-circle-close { background-position: -32px -192px; }
254
+ .ui-icon-circle-triangle-e { background-position: -48px -192px; }
255
+ .ui-icon-circle-triangle-s { background-position: -64px -192px; }
256
+ .ui-icon-circle-triangle-w { background-position: -80px -192px; }
257
+ .ui-icon-circle-triangle-n { background-position: -96px -192px; }
258
+ .ui-icon-circle-arrow-e { background-position: -112px -192px; }
259
+ .ui-icon-circle-arrow-s { background-position: -128px -192px; }
260
+ .ui-icon-circle-arrow-w { background-position: -144px -192px; }
261
+ .ui-icon-circle-arrow-n { background-position: -160px -192px; }
262
+ .ui-icon-circle-zoomin { background-position: -176px -192px; }
263
+ .ui-icon-circle-zoomout { background-position: -192px -192px; }
264
+ .ui-icon-circle-check { background-position: -208px -192px; }
265
+ .ui-icon-circlesmall-plus { background-position: 0 -208px; }
266
+ .ui-icon-circlesmall-minus { background-position: -16px -208px; }
267
+ .ui-icon-circlesmall-close { background-position: -32px -208px; }
268
+ .ui-icon-squaresmall-plus { background-position: -48px -208px; }
269
+ .ui-icon-squaresmall-minus { background-position: -64px -208px; }
270
+ .ui-icon-squaresmall-close { background-position: -80px -208px; }
271
+ .ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
272
+ .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
273
+ .ui-icon-grip-solid-vertical { background-position: -32px -224px; }
274
+ .ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
275
+ .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
276
+ .ui-icon-grip-diagonal-se { background-position: -80px -224px; }
277
+
278
+
279
+ /* Misc visuals
280
+ ----------------------------------*/
281
+
282
+ /* Corner radius */
283
+ .ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 2px; -webkit-border-top-left-radius: 2px; -khtml-border-top-left-radius: 2px; border-top-left-radius: 2px; }
284
+ .ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 2px; -webkit-border-top-right-radius: 2px; -khtml-border-top-right-radius: 2px; border-top-right-radius: 2px; }
285
+ .ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 2px; -webkit-border-bottom-left-radius: 2px; -khtml-border-bottom-left-radius: 2px; border-bottom-left-radius: 2px; }
286
+ .ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 2px; -webkit-border-bottom-right-radius: 2px; -khtml-border-bottom-right-radius: 2px; border-bottom-right-radius: 2px; }
287
+
288
+ /* Overlays */
289
+ .ui-widget-overlay { background: #eeeeee url(images/ui-bg_flat_0_eeeeee_40x100.png) 50% 50% repeat-x; opacity: .80;filter:Alpha(Opacity=80); }
290
+ .ui-widget-shadow { margin: -4px 0 0 -4px; padding: 4px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .60;filter:Alpha(Opacity=60); -moz-border-radius: 0px; -khtml-border-radius: 0px; -webkit-border-radius: 0px; border-radius: 0px; }/*
291
+ * jQuery UI Datepicker 1.8.14
292
+ *
293
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
294
+ * Dual licensed under the MIT or GPL Version 2 licenses.
295
+ * http://jquery.org/license
296
+ *
297
+ * http://docs.jquery.com/UI/Datepicker#theming
298
+ */
299
+ .ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
300
+ .ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
301
+ .ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
302
+ .ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
303
+ .ui-datepicker .ui-datepicker-prev { left:2px; }
304
+ .ui-datepicker .ui-datepicker-next { right:2px; }
305
+ .ui-datepicker .ui-datepicker-prev-hover { left:1px; }
306
+ .ui-datepicker .ui-datepicker-next-hover { right:1px; }
307
+ .ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; }
308
+ .ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
309
+ .ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
310
+ .ui-datepicker select.ui-datepicker-month-year {width: 100%;}
311
+ .ui-datepicker select.ui-datepicker-month,
312
+ .ui-datepicker select.ui-datepicker-year { width: 49%;}
313
+ .ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
314
+ .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; }
315
+ .ui-datepicker td { border: 0; padding: 1px; }
316
+ .ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
317
+ .ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
318
+ .ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
319
+ .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
320
+
321
+ /* with multiple calendars */
322
+ .ui-datepicker.ui-datepicker-multi { width:auto; }
323
+ .ui-datepicker-multi .ui-datepicker-group { float:left; }
324
+ .ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
325
+ .ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
326
+ .ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
327
+ .ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
328
+ .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
329
+ .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
330
+ .ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
331
+ .ui-datepicker-row-break { clear:both; width:100%; font-size:0em; }
332
+
333
+ /* RTL support */
334
+ .ui-datepicker-rtl { direction: rtl; }
335
+ .ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
336
+ .ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
337
+ .ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
338
+ .ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
339
+ .ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
340
+ .ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
341
+ .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
342
+ .ui-datepicker-rtl .ui-datepicker-group { float:right; }
343
+ .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
344
+ .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
345
+
346
+ /* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
347
+ .ui-datepicker-cover {
348
+ display: none; /*sorry for IE5*/
349
+ display/**/: block; /*sorry for IE5*/
350
+ position: absolute; /*must have*/
351
+ z-index: -1; /*must have*/
352
+ filter: mask(); /*must have*/
353
+ top: -4px; /*must have*/
354
+ left: -4px; /*must have*/
355
+ width: 200px; /*must have*/
356
+ height: 200px; /*must have*/
357
+ }
css/flick/images/ui-bg_flat_0_aaaaaa_40x100.png ADDED
Binary file
css/flick/images/ui-bg_flat_0_eeeeee_40x100.png ADDED
Binary file
css/flick/images/ui-bg_flat_55_ffffff_40x100.png ADDED
Binary file
css/flick/images/ui-bg_flat_75_ffffff_40x100.png ADDED
Binary file
css/flick/images/ui-bg_glass_65_ffffff_1x400.png ADDED
Binary file
css/flick/images/ui-bg_highlight-soft_100_f6f6f6_1x100.png ADDED
Binary file
css/flick/images/ui-bg_highlight-soft_25_0073ea_1x100.png ADDED
Binary file
css/flick/images/ui-bg_highlight-soft_50_dddddd_1x100.png ADDED
Binary file
css/flick/images/ui-icons_0073ea_256x240.png ADDED
Binary file
css/flick/images/ui-icons_454545_256x240.png ADDED
Binary file
css/flick/images/ui-icons_666666_256x240.png ADDED
Binary file
css/flick/images/ui-icons_ff0084_256x240.png ADDED
Binary file
css/flick/images/ui-icons_ffffff_256x240.png ADDED
Binary file
js/datepicker.js ADDED
@@ -0,0 +1,1815 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * jQuery UI Datepicker 1.8.14
3
+ *
4
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
5
+ * Dual licensed under the MIT or GPL Version 2 licenses.
6
+ * http://jquery.org/license
7
+ *
8
+ * http://docs.jquery.com/UI/Datepicker
9
+ *
10
+ * Depends:
11
+ * jquery.ui.core.js
12
+ */
13
+ (function( $, undefined ) {
14
+
15
+ $.extend($.ui, { datepicker: { version: "1.8.14" } });
16
+
17
+ var PROP_NAME = 'datepicker';
18
+ var dpuuid = new Date().getTime();
19
+ var instActive;
20
+
21
+ /* Date picker manager.
22
+ Use the singleton instance of this class, $.datepicker, to interact with the date picker.
23
+ Settings for (groups of) date pickers are maintained in an instance object,
24
+ allowing multiple different settings on the same page. */
25
+
26
+ function Datepicker() {
27
+ this.debug = false; // Change this to true to start debugging
28
+ this._curInst = null; // The current instance in use
29
+ this._keyEvent = false; // If the last event was a key event
30
+ this._disabledInputs = []; // List of date picker inputs that have been disabled
31
+ this._datepickerShowing = false; // True if the popup picker is showing , false if not
32
+ this._inDialog = false; // True if showing within a "dialog", false if not
33
+ this._mainDivId = 'ui-datepicker-div'; // The ID of the main datepicker division
34
+ this._inlineClass = 'ui-datepicker-inline'; // The name of the inline marker class
35
+ this._appendClass = 'ui-datepicker-append'; // The name of the append marker class
36
+ this._triggerClass = 'ui-datepicker-trigger'; // The name of the trigger marker class
37
+ this._dialogClass = 'ui-datepicker-dialog'; // The name of the dialog marker class
38
+ this._disableClass = 'ui-datepicker-disabled'; // The name of the disabled covering marker class
39
+ this._unselectableClass = 'ui-datepicker-unselectable'; // The name of the unselectable cell marker class
40
+ this._currentClass = 'ui-datepicker-current-day'; // The name of the current day marker class
41
+ this._dayOverClass = 'ui-datepicker-days-cell-over'; // The name of the day hover marker class
42
+ this.regional = []; // Available regional settings, indexed by language code
43
+ this.regional[''] = { // Default regional settings
44
+ closeText: 'Done', // Display text for close link
45
+ prevText: 'Prev', // Display text for previous month link
46
+ nextText: 'Next', // Display text for next month link
47
+ currentText: 'Today', // Display text for current month link
48
+ monthNames: ['January','February','March','April','May','June',
49
+ 'July','August','September','October','November','December'], // Names of months for drop-down and formatting
50
+ monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], // For formatting
51
+ dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], // For formatting
52
+ dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], // For formatting
53
+ dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'], // Column headings for days starting at Sunday
54
+ weekHeader: 'Wk', // Column header for week of the year
55
+ dateFormat: 'mm/dd/yy', // See format options on parseDate
56
+ firstDay: 0, // The first day of the week, Sun = 0, Mon = 1, ...
57
+ isRTL: false, // True if right-to-left language, false if left-to-right
58
+ showMonthAfterYear: false, // True if the year select precedes month, false for month then year
59
+ yearSuffix: '' // Additional text to append to the year in the month headers
60
+ };
61
+ this._defaults = { // Global defaults for all the date picker instances
62
+ showOn: 'focus', // 'focus' for popup on focus,
63
+ // 'button' for trigger button, or 'both' for either
64
+ showAnim: 'fadeIn', // Name of jQuery animation for popup
65
+ showOptions: {}, // Options for enhanced animations
66
+ defaultDate: null, // Used when field is blank: actual date,
67
+ // +/-number for offset from today, null for today
68
+ appendText: '', // Display text following the input box, e.g. showing the format
69
+ buttonText: '...', // Text for trigger button
70
+ buttonImage: '', // URL for trigger button image
71
+ buttonImageOnly: false, // True if the image appears alone, false if it appears on a button
72
+ hideIfNoPrevNext: false, // True to hide next/previous month links
73
+ // if not applicable, false to just disable them
74
+ navigationAsDateFormat: false, // True if date formatting applied to prev/today/next links
75
+ gotoCurrent: false, // True if today link goes back to current selection instead
76
+ changeMonth: false, // True if month can be selected directly, false if only prev/next
77
+ changeYear: false, // True if year can be selected directly, false if only prev/next
78
+ yearRange: 'c-10:c+10', // Range of years to display in drop-down,
79
+ // either relative to today's year (-nn:+nn), relative to currently displayed year
80
+ // (c-nn:c+nn), absolute (nnnn:nnnn), or a combination of the above (nnnn:-n)
81
+ showOtherMonths: false, // True to show dates in other months, false to leave blank
82
+ selectOtherMonths: false, // True to allow selection of dates in other months, false for unselectable
83
+ showWeek: false, // True to show week of the year, false to not show it
84
+ calculateWeek: this.iso8601Week, // How to calculate the week of the year,
85
+ // takes a Date and returns the number of the week for it
86
+ shortYearCutoff: '+10', // Short year values < this are in the current century,
87
+ // > this are in the previous century,
88
+ // string value starting with '+' for current year + value
89
+ minDate: null, // The earliest selectable date, or null for no limit
90
+ maxDate: null, // The latest selectable date, or null for no limit
91
+ duration: 'fast', // Duration of display/closure
92
+ beforeShowDay: null, // Function that takes a date and returns an array with
93
+ // [0] = true if selectable, false if not, [1] = custom CSS class name(s) or '',
94
+ // [2] = cell title (optional), e.g. $.datepicker.noWeekends
95
+ beforeShow: null, // Function that takes an input field and
96
+ // returns a set of custom settings for the date picker
97
+ onSelect: null, // Define a callback function when a date is selected
98
+ onChangeMonthYear: null, // Define a callback function when the month or year is changed
99
+ onClose: null, // Define a callback function when the datepicker is closed
100
+ numberOfMonths: 1, // Number of months to show at a time
101
+ showCurrentAtPos: 0, // The position in multipe months at which to show the current month (starting at 0)
102
+ stepMonths: 1, // Number of months to step back/forward
103
+ stepBigMonths: 12, // Number of months to step back/forward for the big links
104
+ altField: '', // Selector for an alternate field to store selected dates into
105
+ altFormat: '', // The date format to use for the alternate field
106
+ constrainInput: true, // The input is constrained by the current date format
107
+ showButtonPanel: false, // True to show button panel, false to not show it
108
+ autoSize: false // True to size the input for the date format, false to leave as is
109
+ };
110
+ $.extend(this._defaults, this.regional['']);
111
+ this.dpDiv = bindHover($('<div id="' + this._mainDivId + '" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'));
112
+ }
113
+
114
+ $.extend(Datepicker.prototype, {
115
+ /* Class name added to elements to indicate already configured with a date picker. */
116
+ markerClassName: 'hasDatepicker',
117
+
118
+ //Keep track of the maximum number of rows displayed (see #7043)
119
+ maxRows: 4,
120
+
121
+ /* Debug logging (if enabled). */
122
+ log: function () {
123
+ if (this.debug)
124
+ console.log.apply('', arguments);
125
+ },
126
+
127
+ // TODO rename to "widget" when switching to widget factory
128
+ _widgetDatepicker: function() {
129
+ return this.dpDiv;
130
+ },
131
+
132
+ /* Override the default settings for all instances of the date picker.
133
+ @param settings object - the new settings to use as defaults (anonymous object)
134
+ @return the manager object */
135
+ setDefaults: function(settings) {
136
+ extendRemove(this._defaults, settings || {});
137
+ return this;
138
+ },
139
+
140
+ /* Attach the date picker to a jQuery selection.
141
+ @param target element - the target input field or division or span
142
+ @param settings object - the new settings to use for this date picker instance (anonymous) */
143
+ _attachDatepicker: function(target, settings) {
144
+ // check for settings on the control itself - in namespace 'date:'
145
+ var inlineSettings = null;
146
+ for (var attrName in this._defaults) {
147
+ var attrValue = target.getAttribute('date:' + attrName);
148
+ if (attrValue) {
149
+ inlineSettings = inlineSettings || {};
150
+ try {
151
+ inlineSettings[attrName] = eval(attrValue);
152
+ } catch (err) {
153
+ inlineSettings[attrName] = attrValue;
154
+ }
155
+ }
156
+ }
157
+ var nodeName = target.nodeName.toLowerCase();
158
+ var inline = (nodeName == 'div' || nodeName == 'span');
159
+ if (!target.id) {
160
+ this.uuid += 1;
161
+ target.id = 'dp' + this.uuid;
162
+ }
163
+ var inst = this._newInst($(target), inline);
164
+ inst.settings = $.extend({}, settings || {}, inlineSettings || {});
165
+ if (nodeName == 'input') {
166
+ this._connectDatepicker(target, inst);
167
+ } else if (inline) {
168
+ this._inlineDatepicker(target, inst);
169
+ }
170
+ },
171
+
172
+ /* Create a new instance object. */
173
+ _newInst: function(target, inline) {
174
+ var id = target[0].id.replace(/([^A-Za-z0-9_-])/g, '\\\\$1'); // escape jQuery meta chars
175
+ return {id: id, input: target, // associated target
176
+ selectedDay: 0, selectedMonth: 0, selectedYear: 0, // current selection
177
+ drawMonth: 0, drawYear: 0, // month being drawn
178
+ inline: inline, // is datepicker inline or not
179
+ dpDiv: (!inline ? this.dpDiv : // presentation div
180
+ bindHover($('<div class="' + this._inlineClass + ' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>')))};
181
+ },
182
+
183
+ /* Attach the date picker to an input field. */
184
+ _connectDatepicker: function(target, inst) {
185
+ var input = $(target);
186
+ inst.append = $([]);
187
+ inst.trigger = $([]);
188
+ if (input.hasClass(this.markerClassName))
189
+ return;
190
+ this._attachments(input, inst);
191
+ input.addClass(this.markerClassName).keydown(this._doKeyDown).
192
+ keypress(this._doKeyPress).keyup(this._doKeyUp).
193
+ bind("setData.datepicker", function(event, key, value) {
194
+ inst.settings[key] = value;
195
+ }).bind("getData.datepicker", function(event, key) {
196
+ return this._get(inst, key);
197
+ });
198
+ this._autoSize(inst);
199
+ $.data(target, PROP_NAME, inst);
200
+ },
201
+
202
+ /* Make attachments based on settings. */
203
+ _attachments: function(input, inst) {
204
+ var appendText = this._get(inst, 'appendText');
205
+ var isRTL = this._get(inst, 'isRTL');
206
+ if (inst.append)
207
+ inst.append.remove();
208
+ if (appendText) {
209
+ inst.append = $('<span class="' + this._appendClass + '">' + appendText + '</span>');
210
+ input[isRTL ? 'before' : 'after'](inst.append);
211
+ }
212
+ input.unbind('focus', this._showDatepicker);
213
+ if (inst.trigger)
214
+ inst.trigger.remove();
215
+ var showOn = this._get(inst, 'showOn');
216
+ if (showOn == 'focus' || showOn == 'both') // pop-up date picker when in the marked field
217
+ input.focus(this._showDatepicker);
218
+ if (showOn == 'button' || showOn == 'both') { // pop-up date picker when button clicked
219
+ var buttonText = this._get(inst, 'buttonText');
220
+ var buttonImage = this._get(inst, 'buttonImage');
221
+ inst.trigger = $(this._get(inst, 'buttonImageOnly') ?
222
+ $('<img/>').addClass(this._triggerClass).
223
+ attr({ src: buttonImage, alt: buttonText, title: buttonText }) :
224
+ $('<button type="button"></button>').addClass(this._triggerClass).
225
+ html(buttonImage == '' ? buttonText : $('<img/>').attr(
226
+ { src:buttonImage, alt:buttonText, title:buttonText })));
227
+ input[isRTL ? 'before' : 'after'](inst.trigger);
228
+ inst.trigger.click(function() {
229
+ if ($.datepicker._datepickerShowing && $.datepicker._lastInput == input[0])
230
+ $.datepicker._hideDatepicker();
231
+ else
232
+ $.datepicker._showDatepicker(input[0]);
233
+ return false;
234
+ });
235
+ }
236
+ },
237
+
238
+ /* Apply the maximum length for the date format. */
239
+ _autoSize: function(inst) {
240
+ if (this._get(inst, 'autoSize') && !inst.inline) {
241
+ var date = new Date(2009, 12 - 1, 20); // Ensure double digits
242
+ var dateFormat = this._get(inst, 'dateFormat');
243
+ if (dateFormat.match(/[DM]/)) {
244
+ var findMax = function(names) {
245
+ var max = 0;
246
+ var maxI = 0;
247
+ for (var i = 0; i < names.length; i++) {
248
+ if (names[i].length > max) {
249
+ max = names[i].length;
250
+ maxI = i;
251
+ }
252
+ }
253
+ return maxI;
254
+ };
255
+ date.setMonth(findMax(this._get(inst, (dateFormat.match(/MM/) ?
256
+ 'monthNames' : 'monthNamesShort'))));
257
+ date.setDate(findMax(this._get(inst, (dateFormat.match(/DD/) ?
258
+ 'dayNames' : 'dayNamesShort'))) + 20 - date.getDay());
259
+ }
260
+ inst.input.attr('size', this._formatDate(inst, date).length);
261
+ }
262
+ },
263
+
264
+ /* Attach an inline date picker to a div. */
265
+ _inlineDatepicker: function(target, inst) {
266
+ var divSpan = $(target);
267
+ if (divSpan.hasClass(this.markerClassName))
268
+ return;
269
+ divSpan.addClass(this.markerClassName).append(inst.dpDiv).
270
+ bind("setData.datepicker", function(event, key, value){
271
+ inst.settings[key] = value;
272
+ }).bind("getData.datepicker", function(event, key){
273
+ return this._get(inst, key);
274
+ });
275
+ $.data(target, PROP_NAME, inst);
276
+ this._setDate(inst, this._getDefaultDate(inst), true);
277
+ this._updateDatepicker(inst);
278
+ this._updateAlternate(inst);
279
+ inst.dpDiv.show();
280
+ },
281
+
282
+ /* Pop-up the date picker in a "dialog" box.
283
+ @param input element - ignored
284
+ @param date string or Date - the initial date to display
285
+ @param onSelect function - the function to call when a date is selected
286
+ @param settings object - update the dialog date picker instance's settings (anonymous object)
287
+ @param pos int[2] - coordinates for the dialog's position within the screen or
288
+ event - with x/y coordinates or
289
+ leave empty for default (screen centre)
290
+ @return the manager object */
291
+ _dialogDatepicker: function(input, date, onSelect, settings, pos) {
292
+ var inst = this._dialogInst; // internal instance
293
+ if (!inst) {
294
+ this.uuid += 1;
295
+ var id = 'dp' + this.uuid;
296
+ this._dialogInput = $('<input type="text" id="' + id +
297
+ '" style="position: absolute; top: -100px; width: 0px; z-index: -10;"/>');
298
+ this._dialogInput.keydown(this._doKeyDown);
299
+ $('body').append(this._dialogInput);
300
+ inst = this._dialogInst = this._newInst(this._dialogInput, false);
301
+ inst.settings = {};
302
+ $.data(this._dialogInput[0], PROP_NAME, inst);
303
+ }
304
+ extendRemove(inst.settings, settings || {});
305
+ date = (date && date.constructor == Date ? this._formatDate(inst, date) : date);
306
+ this._dialogInput.val(date);
307
+
308
+ this._pos = (pos ? (pos.length ? pos : [pos.pageX, pos.pageY]) : null);
309
+ if (!this._pos) {
310
+ var browserWidth = document.documentElement.clientWidth;
311
+ var browserHeight = document.documentElement.clientHeight;
312
+ var scrollX = document.documentElement.scrollLeft || document.body.scrollLeft;
313
+ var scrollY = document.documentElement.scrollTop || document.body.scrollTop;
314
+ this._pos = // should use actual width/height below
315
+ [(browserWidth / 2) - 100 + scrollX, (browserHeight / 2) - 150 + scrollY];
316
+ }
317
+
318
+ // move input on screen for focus, but hidden behind dialog
319
+ this._dialogInput.css('left', (this._pos[0] + 20) + 'px').css('top', this._pos[1] + 'px');
320
+ inst.settings.onSelect = onSelect;
321
+ this._inDialog = true;
322
+ this.dpDiv.addClass(this._dialogClass);
323
+ this._showDatepicker(this._dialogInput[0]);
324
+ if ($.blockUI)
325
+ $.blockUI(this.dpDiv);
326
+ $.data(this._dialogInput[0], PROP_NAME, inst);
327
+ return this;
328
+ },
329
+
330
+ /* Detach a datepicker from its control.
331
+ @param target element - the target input field or division or span */
332
+ _destroyDatepicker: function(target) {
333
+ var $target = $(target);
334
+ var inst = $.data(target, PROP_NAME);
335
+ if (!$target.hasClass(this.markerClassName)) {
336
+ return;
337
+ }
338
+ var nodeName = target.nodeName.toLowerCase();
339
+ $.removeData(target, PROP_NAME);
340
+ if (nodeName == 'input') {
341
+ inst.append.remove();
342
+ inst.trigger.remove();
343
+ $target.removeClass(this.markerClassName).
344
+ unbind('focus', this._showDatepicker).
345
+ unbind('keydown', this._doKeyDown).
346
+ unbind('keypress', this._doKeyPress).
347
+ unbind('keyup', this._doKeyUp);
348
+ } else if (nodeName == 'div' || nodeName == 'span')
349
+ $target.removeClass(this.markerClassName).empty();
350
+ },
351
+
352
+ /* Enable the date picker to a jQuery selection.
353
+ @param target element - the target input field or division or span */
354
+ _enableDatepicker: function(target) {
355
+ var $target = $(target);
356
+ var inst = $.data(target, PROP_NAME);
357
+ if (!$target.hasClass(this.markerClassName)) {
358
+ return;
359
+ }
360
+ var nodeName = target.nodeName.toLowerCase();
361
+ if (nodeName == 'input') {
362
+ target.disabled = false;
363
+ inst.trigger.filter('button').
364
+ each(function() { this.disabled = false; }).end().
365
+ filter('img').css({opacity: '1.0', cursor: ''});
366
+ }
367
+ else if (nodeName == 'div' || nodeName == 'span') {
368
+ var inline = $target.children('.' + this._inlineClass);
369
+ inline.children().removeClass('ui-state-disabled');
370
+ inline.find("select.ui-datepicker-month, select.ui-datepicker-year").
371
+ removeAttr("disabled");
372
+ }
373
+ this._disabledInputs = $.map(this._disabledInputs,
374
+ function(value) { return (value == target ? null : value); }); // delete entry
375
+ },
376
+
377
+ /* Disable the date picker to a jQuery selection.
378
+ @param target element - the target input field or division or span */
379
+ _disableDatepicker: function(target) {
380
+ var $target = $(target);
381
+ var inst = $.data(target, PROP_NAME);
382
+ if (!$target.hasClass(this.markerClassName)) {
383
+ return;
384
+ }
385
+ var nodeName = target.nodeName.toLowerCase();
386
+ if (nodeName == 'input') {
387
+ target.disabled = true;
388
+ inst.trigger.filter('button').
389
+ each(function() { this.disabled = true; }).end().
390
+ filter('img').css({opacity: '0.5', cursor: 'default'});
391
+ }
392
+ else if (nodeName == 'div' || nodeName == 'span') {
393
+ var inline = $target.children('.' + this._inlineClass);
394
+ inline.children().addClass('ui-state-disabled');
395
+ inline.find("select.ui-datepicker-month, select.ui-datepicker-year").
396
+ attr("disabled", "disabled");
397
+ }
398
+ this._disabledInputs = $.map(this._disabledInputs,
399
+ function(value) { return (value == target ? null : value); }); // delete entry
400
+ this._disabledInputs[this._disabledInputs.length] = target;
401
+ },
402
+
403
+ /* Is the first field in a jQuery collection disabled as a datepicker?
404
+ @param target element - the target input field or division or span
405
+ @return boolean - true if disabled, false if enabled */
406
+ _isDisabledDatepicker: function(target) {
407
+ if (!target) {
408
+ return false;
409
+ }
410
+ for (var i = 0; i < this._disabledInputs.length; i++) {
411
+ if (this._disabledInputs[i] == target)
412
+ return true;
413
+ }
414
+ return false;
415
+ },
416
+
417
+ /* Retrieve the instance data for the target control.
418
+ @param target element - the target input field or division or span
419
+ @return object - the associated instance data
420
+ @throws error if a jQuery problem getting data */
421
+ _getInst: function(target) {
422
+ try {
423
+ return $.data(target, PROP_NAME);
424
+ }
425
+ catch (err) {
426
+ throw 'Missing instance data for this datepicker';
427
+ }
428
+ },
429
+
430
+ /* Update or retrieve the settings for a date picker attached to an input field or division.
431
+ @param target element - the target input field or division or span
432
+ @param name object - the new settings to update or
433
+ string - the name of the setting to change or retrieve,
434
+ when retrieving also 'all' for all instance settings or
435
+ 'defaults' for all global defaults
436
+ @param value any - the new value for the setting
437
+ (omit if above is an object or to retrieve a value) */
438
+ _optionDatepicker: function(target, name, value) {
439
+ var inst = this._getInst(target);
440
+ if (arguments.length == 2 && typeof name == 'string') {
441
+ return (name == 'defaults' ? $.extend({}, $.datepicker._defaults) :
442
+ (inst ? (name == 'all' ? $.extend({}, inst.settings) :
443
+ this._get(inst, name)) : null));
444
+ }
445
+ var settings = name || {};
446
+ if (typeof name == 'string') {
447
+ settings = {};
448
+ settings[name] = value;
449
+ }
450
+ if (inst) {
451
+ if (this._curInst == inst) {
452
+ this._hideDatepicker();
453
+ }
454
+ var date = this._getDateDatepicker(target, true);
455
+ var minDate = this._getMinMaxDate(inst, 'min');
456
+ var maxDate = this._getMinMaxDate(inst, 'max');
457
+ extendRemove(inst.settings, settings);
458
+ // reformat the old minDate/maxDate values if dateFormat changes and a new minDate/maxDate isn't provided
459
+ if (minDate !== null && settings['dateFormat'] !== undefined && settings['minDate'] === undefined)
460
+ inst.settings.minDate = this._formatDate(inst, minDate);
461
+ if (maxDate !== null && settings['dateFormat'] !== undefined && settings['maxDate'] === undefined)
462
+ inst.settings.maxDate = this._formatDate(inst, maxDate);
463
+ this._attachments($(target), inst);
464
+ this._autoSize(inst);
465
+ this._setDate(inst, date);
466
+ this._updateAlternate(inst);
467
+ this._updateDatepicker(inst);
468
+ }
469
+ },
470
+
471
+ // change method deprecated
472
+ _changeDatepicker: function(target, name, value) {
473
+ this._optionDatepicker(target, name, value);
474
+ },
475
+
476
+ /* Redraw the date picker attached to an input field or division.
477
+ @param target element - the target input field or division or span */
478
+ _refreshDatepicker: function(target) {
479
+ var inst = this._getInst(target);
480
+ if (inst) {
481
+ this._updateDatepicker(inst);
482
+ }
483
+ },
484
+
485
+ /* Set the dates for a jQuery selection.
486
+ @param target element - the target input field or division or span
487
+ @param date Date - the new date */
488
+ _setDateDatepicker: function(target, date) {
489
+ var inst = this._getInst(target);
490
+ if (inst) {
491
+ this._setDate(inst, date);
492
+ this._updateDatepicker(inst);
493
+ this._updateAlternate(inst);
494
+ }
495
+ },
496
+
497
+ /* Get the date(s) for the first entry in a jQuery selection.
498
+ @param target element - the target input field or division or span
499
+ @param noDefault boolean - true if no default date is to be used
500
+ @return Date - the current date */
501
+ _getDateDatepicker: function(target, noDefault) {
502
+ var inst = this._getInst(target);
503
+ if (inst && !inst.inline)
504
+ this._setDateFromField(inst, noDefault);
505
+ return (inst ? this._getDate(inst) : null);
506
+ },
507
+
508
+ /* Handle keystrokes. */
509
+ _doKeyDown: function(event) {
510
+ var inst = $.datepicker._getInst(event.target);
511
+ var handled = true;
512
+ var isRTL = inst.dpDiv.is('.ui-datepicker-rtl');
513
+ inst._keyEvent = true;
514
+ if ($.datepicker._datepickerShowing)
515
+ switch (event.keyCode) {
516
+ case 9: $.datepicker._hideDatepicker();
517
+ handled = false;
518
+ break; // hide on tab out
519
+ case 13: var sel = $('td.' + $.datepicker._dayOverClass + ':not(.' +
520
+ $.datepicker._currentClass + ')', inst.dpDiv);
521
+ if (sel[0])
522
+ $.datepicker._selectDay(event.target, inst.selectedMonth, inst.selectedYear, sel[0]);
523
+ else
524
+ $.datepicker._hideDatepicker();
525
+ return false; // don't submit the form
526
+ break; // select the value on enter
527
+ case 27: $.datepicker._hideDatepicker();
528
+ break; // hide on escape
529
+ case 33: $.datepicker._adjustDate(event.target, (event.ctrlKey ?
530
+ -$.datepicker._get(inst, 'stepBigMonths') :
531
+ -$.datepicker._get(inst, 'stepMonths')), 'M');
532
+ break; // previous month/year on page up/+ ctrl
533
+ case 34: $.datepicker._adjustDate(event.target, (event.ctrlKey ?
534
+ +$.datepicker._get(inst, 'stepBigMonths') :
535
+ +$.datepicker._get(inst, 'stepMonths')), 'M');
536
+ break; // next month/year on page down/+ ctrl
537
+ case 35: if (event.ctrlKey || event.metaKey) $.datepicker._clearDate(event.target);
538
+ handled = event.ctrlKey || event.metaKey;
539
+ break; // clear on ctrl or command +end
540
+ case 36: if (event.ctrlKey || event.metaKey) $.datepicker._gotoToday(event.target);
541
+ handled = event.ctrlKey || event.metaKey;
542
+ break; // current on ctrl or command +home
543
+ case 37: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, (isRTL ? +1 : -1), 'D');
544
+ handled = event.ctrlKey || event.metaKey;
545
+ // -1 day on ctrl or command +left
546
+ if (event.originalEvent.altKey) $.datepicker._adjustDate(event.target, (event.ctrlKey ?
547
+ -$.datepicker._get(inst, 'stepBigMonths') :
548
+ -$.datepicker._get(inst, 'stepMonths')), 'M');
549
+ // next month/year on alt +left on Mac
550
+ break;
551
+ case 38: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, -7, 'D');
552
+ handled = event.ctrlKey || event.metaKey;
553
+ break; // -1 week on ctrl or command +up
554
+ case 39: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, (isRTL ? -1 : +1), 'D');
555
+ handled = event.ctrlKey || event.metaKey;
556
+ // +1 day on ctrl or command +right
557
+ if (event.originalEvent.altKey) $.datepicker._adjustDate(event.target, (event.ctrlKey ?
558
+ +$.datepicker._get(inst, 'stepBigMonths') :
559
+ +$.datepicker._get(inst, 'stepMonths')), 'M');
560
+ // next month/year on alt +right
561
+ break;
562
+ case 40: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, +7, 'D');
563
+ handled = event.ctrlKey || event.metaKey;
564
+ break; // +1 week on ctrl or command +down
565
+ default: handled = false;
566
+ }
567
+ else if (event.keyCode == 36 && event.ctrlKey) // display the date picker on ctrl+home
568
+ $.datepicker._showDatepicker(this);
569
+ else {
570
+ handled = false;
571
+ }
572
+ if (handled) {
573
+ event.preventDefault();
574
+ event.stopPropagation();
575
+ }
576
+ },
577
+
578
+ /* Filter entered characters - based on date format. */
579
+ _doKeyPress: function(event) {
580
+ var inst = $.datepicker._getInst(event.target);
581
+ if ($.datepicker._get(inst, 'constrainInput')) {
582
+ var chars = $.datepicker._possibleChars($.datepicker._get(inst, 'dateFormat'));
583
+ var chr = String.fromCharCode(event.charCode == undefined ? event.keyCode : event.charCode);
584
+ return event.ctrlKey || event.metaKey || (chr < ' ' || !chars || chars.indexOf(chr) > -1);
585
+ }
586
+ },
587
+
588
+ /* Synchronise manual entry and field/alternate field. */
589
+ _doKeyUp: function(event) {
590
+ var inst = $.datepicker._getInst(event.target);
591
+ if (inst.input.val() != inst.lastVal) {
592
+ try {
593
+ var date = $.datepicker.parseDate($.datepicker._get(inst, 'dateFormat'),
594
+ (inst.input ? inst.input.val() : null),
595
+ $.datepicker._getFormatConfig(inst));
596
+ if (date) { // only if valid
597
+ $.datepicker._setDateFromField(inst);
598
+ $.datepicker._updateAlternate(inst);
599
+ $.datepicker._updateDatepicker(inst);
600
+ }
601
+ }
602
+ catch (event) {
603
+ $.datepicker.log(event);
604
+ }
605
+ }
606
+ return true;
607
+ },
608
+
609
+ /* Pop-up the date picker for a given input field.
610
+ @param input element - the input field attached to the date picker or
611
+ event - if triggered by focus */
612
+ _showDatepicker: function(input) {
613
+ input = input.target || input;
614
+ if (input.nodeName.toLowerCase() != 'input') // find from button/image trigger
615
+ input = $('input', input.parentNode)[0];
616
+ if ($.datepicker._isDisabledDatepicker(input) || $.datepicker._lastInput == input) // already here
617
+ return;
618
+ var inst = $.datepicker._getInst(input);
619
+ if ($.datepicker._curInst && $.datepicker._curInst != inst) {
620
+ if ( $.datepicker._datepickerShowing ) {
621
+ $.datepicker._triggerOnClose($.datepicker._curInst);
622
+ }
623
+ $.datepicker._curInst.dpDiv.stop(true, true);
624
+ }
625
+ var beforeShow = $.datepicker._get(inst, 'beforeShow');
626
+ extendRemove(inst.settings, (beforeShow ? beforeShow.apply(input, [input, inst]) : {}));
627
+ inst.lastVal = null;
628
+ $.datepicker._lastInput = input;
629
+ $.datepicker._setDateFromField(inst);
630
+ if ($.datepicker._inDialog) // hide cursor
631
+ input.value = '';
632
+ if (!$.datepicker._pos) { // position below input
633
+ $.datepicker._pos = $.datepicker._findPos(input);
634
+ $.datepicker._pos[1] += input.offsetHeight; // add the height
635
+ }
636
+ var isFixed = false;
637
+ $(input).parents().each(function() {
638
+ isFixed |= $(this).css('position') == 'fixed';
639
+ return !isFixed;
640
+ });
641
+ if (isFixed && $.browser.opera) { // correction for Opera when fixed and scrolled
642
+ $.datepicker._pos[0] -= document.documentElement.scrollLeft;
643
+ $.datepicker._pos[1] -= document.documentElement.scrollTop;
644
+ }
645
+ var offset = {left: $.datepicker._pos[0], top: $.datepicker._pos[1]};
646
+ $.datepicker._pos = null;
647
+ //to avoid flashes on Firefox
648
+ inst.dpDiv.empty();
649
+ // determine sizing offscreen
650
+ inst.dpDiv.css({position: 'absolute', display: 'block', top: '-1000px'});
651
+ $.datepicker._updateDatepicker(inst);
652
+ // fix width for dynamic number of date pickers
653
+ // and adjust position before showing
654
+ offset = $.datepicker._checkOffset(inst, offset, isFixed);
655
+ inst.dpDiv.css({position: ($.datepicker._inDialog && $.blockUI ?
656
+ 'static' : (isFixed ? 'fixed' : 'absolute')), display: 'none',
657
+ left: offset.left + 'px', top: offset.top + 'px'});
658
+ if (!inst.inline) {
659
+ var showAnim = $.datepicker._get(inst, 'showAnim');
660
+ var duration = $.datepicker._get(inst, 'duration');
661
+ var postProcess = function() {
662
+ var cover = inst.dpDiv.find('iframe.ui-datepicker-cover'); // IE6- only
663
+ if( !! cover.length ){
664
+ var borders = $.datepicker._getBorders(inst.dpDiv);
665
+ cover.css({left: -borders[0], top: -borders[1],
666
+ width: inst.dpDiv.outerWidth(), height: inst.dpDiv.outerHeight()});
667
+ }
668
+ };
669
+ inst.dpDiv.zIndex($(input).zIndex()+1);
670
+ $.datepicker._datepickerShowing = true;
671
+ if ($.effects && $.effects[showAnim])
672
+ inst.dpDiv.show(showAnim, $.datepicker._get(inst, 'showOptions'), duration, postProcess);
673
+ else
674
+ inst.dpDiv[showAnim || 'show']((showAnim ? duration : null), postProcess);
675
+ if (!showAnim || !duration)
676
+ postProcess();
677
+ if (inst.input.is(':visible') && !inst.input.is(':disabled'))
678
+ inst.input.focus();
679
+ $.datepicker._curInst = inst;
680
+ }
681
+ },
682
+
683
+ /* Generate the date picker content. */
684
+ _updateDatepicker: function(inst) {
685
+ var self = this;
686
+ self.maxRows = 4; //Reset the max number of rows being displayed (see #7043)
687
+ var borders = $.datepicker._getBorders(inst.dpDiv);
688
+ instActive = inst; // for delegate hover events
689
+ inst.dpDiv.empty().append(this._generateHTML(inst));
690
+ var cover = inst.dpDiv.find('iframe.ui-datepicker-cover'); // IE6- only
691
+ if( !!cover.length ){ //avoid call to outerXXXX() when not in IE6
692
+ cover.css({left: -borders[0], top: -borders[1], width: inst.dpDiv.outerWidth(), height: inst.dpDiv.outerHeight()})
693
+ }
694
+ inst.dpDiv.find('.' + this._dayOverClass + ' a').mouseover();
695
+ var numMonths = this._getNumberOfMonths(inst);
696
+ var cols = numMonths[1];
697
+ var width = 17;
698
+ inst.dpDiv.removeClass('ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4').width('');
699
+ if (cols > 1)
700
+ inst.dpDiv.addClass('ui-datepicker-multi-' + cols).css('width', (width * cols) + 'em');
701
+ inst.dpDiv[(numMonths[0] != 1 || numMonths[1] != 1 ? 'add' : 'remove') +
702
+ 'Class']('ui-datepicker-multi');
703
+ inst.dpDiv[(this._get(inst, 'isRTL') ? 'add' : 'remove') +
704
+ 'Class']('ui-datepicker-rtl');
705
+ if (inst == $.datepicker._curInst && $.datepicker._datepickerShowing && inst.input &&
706
+ // #6694 - don't focus the input if it's already focused
707
+ // this breaks the change event in IE
708
+ inst.input.is(':visible') && !inst.input.is(':disabled') && inst.input[0] != document.activeElement)
709
+ inst.input.focus();
710
+ // deffered render of the years select (to avoid flashes on Firefox)
711
+ if( inst.yearshtml ){
712
+ var origyearshtml = inst.yearshtml;
713
+ setTimeout(function(){
714
+ //assure that inst.yearshtml didn't change.
715
+ if( origyearshtml === inst.yearshtml && inst.yearshtml ){
716
+ inst.dpDiv.find('select.ui-datepicker-year:first').replaceWith(inst.yearshtml);
717
+ }
718
+ origyearshtml = inst.yearshtml = null;
719
+ }, 0);
720
+ }
721
+ },
722
+
723
+ /* Retrieve the size of left and top borders for an element.
724
+ @param elem (jQuery object) the element of interest
725
+ @return (number[2]) the left and top borders */
726
+ _getBorders: function(elem) {
727
+ var convert = function(value) {
728
+ return {thin: 1, medium: 2, thick: 3}[value] || value;
729
+ };
730
+ return [parseFloat(convert(elem.css('border-left-width'))),
731
+ parseFloat(convert(elem.css('border-top-width')))];
732
+ },
733
+
734
+ /* Check positioning to remain on screen. */
735
+ _checkOffset: function(inst, offset, isFixed) {
736
+ var dpWidth = inst.dpDiv.outerWidth();
737
+ var dpHeight = inst.dpDiv.outerHeight();
738
+ var inputWidth = inst.input ? inst.input.outerWidth() : 0;
739
+ var inputHeight = inst.input ? inst.input.outerHeight() : 0;
740
+ var viewWidth = document.documentElement.clientWidth + $(document).scrollLeft();
741
+ var viewHeight = document.documentElement.clientHeight + $(document).scrollTop();
742
+
743
+ offset.left -= (this._get(inst, 'isRTL') ? (dpWidth - inputWidth) : 0);
744
+ offset.left -= (isFixed && offset.left == inst.input.offset().left) ? $(document).scrollLeft() : 0;
745
+ offset.top -= (isFixed && offset.top == (inst.input.offset().top + inputHeight)) ? $(document).scrollTop() : 0;
746
+
747
+ // now check if datepicker is showing outside window viewport - move to a better place if so.
748
+ offset.left -= Math.min(offset.left, (offset.left + dpWidth > viewWidth && viewWidth > dpWidth) ?
749
+ Math.abs(offset.left + dpWidth - viewWidth) : 0);
750
+ offset.top -= Math.min(offset.top, (offset.top + dpHeight > viewHeight && viewHeight > dpHeight) ?
751
+ Math.abs(dpHeight + inputHeight) : 0);
752
+
753
+ return offset;
754
+ },
755
+
756
+ /* Find an object's position on the screen. */
757
+ _findPos: function(obj) {
758
+ var inst = this._getInst(obj);
759
+ var isRTL = this._get(inst, 'isRTL');
760
+ while (obj && (obj.type == 'hidden' || obj.nodeType != 1 || $.expr.filters.hidden(obj))) {
761
+ obj = obj[isRTL ? 'previousSibling' : 'nextSibling'];
762
+ }
763
+ var position = $(obj).offset();
764
+ return [position.left, position.top];
765
+ },
766
+
767
+ /* Trigger custom callback of onClose. */
768
+ _triggerOnClose: function(inst) {
769
+ var onClose = this._get(inst, 'onClose');
770
+ if (onClose)
771
+ onClose.apply((inst.input ? inst.input[0] : null),
772
+ [(inst.input ? inst.input.val() : ''), inst]);
773
+ },
774
+
775
+ /* Hide the date picker from view.
776
+ @param input element - the input field attached to the date picker */
777
+ _hideDatepicker: function(input) {
778
+ var inst = this._curInst;
779
+ if (!inst || (input && inst != $.data(input, PROP_NAME)))
780
+ return;
781
+ if (this._datepickerShowing) {
782
+ var showAnim = this._get(inst, 'showAnim');
783
+ var duration = this._get(inst, 'duration');
784
+ var postProcess = function() {
785
+ $.datepicker._tidyDialog(inst);
786
+ this._curInst = null;
787
+ };
788
+ if ($.effects && $.effects[showAnim])
789
+ inst.dpDiv.hide(showAnim, $.datepicker._get(inst, 'showOptions'), duration, postProcess);
790
+ else
791
+ inst.dpDiv[(showAnim == 'slideDown' ? 'slideUp' :
792
+ (showAnim == 'fadeIn' ? 'fadeOut' : 'hide'))]((showAnim ? duration : null), postProcess);
793
+ if (!showAnim)
794
+ postProcess();
795
+ $.datepicker._triggerOnClose(inst);
796
+ this._datepickerShowing = false;
797
+ this._lastInput = null;
798
+ if (this._inDialog) {
799
+ this._dialogInput.css({ position: 'absolute', left: '0', top: '-100px' });
800
+ if ($.blockUI) {
801
+ $.unblockUI();
802
+ $('body').append(this.dpDiv);
803
+ }
804
+ }
805
+ this._inDialog = false;
806
+ }
807
+ },
808
+
809
+ /* Tidy up after a dialog display. */
810
+ _tidyDialog: function(inst) {
811
+ inst.dpDiv.removeClass(this._dialogClass).unbind('.ui-datepicker-calendar');
812
+ },
813
+
814
+ /* Close date picker if clicked elsewhere. */
815
+ _checkExternalClick: function(event) {
816
+ if (!$.datepicker._curInst)
817
+ return;
818
+ var $target = $(event.target);
819
+ if ($target[0].id != $.datepicker._mainDivId &&
820
+ $target.parents('#' + $.datepicker._mainDivId).length == 0 &&
821
+ !$target.hasClass($.datepicker.markerClassName) &&
822
+ !$target.hasClass($.datepicker._triggerClass) &&
823
+ $.datepicker._datepickerShowing && !($.datepicker._inDialog && $.blockUI))
824
+ $.datepicker._hideDatepicker();
825
+ },
826
+
827
+ /* Adjust one of the date sub-fields. */
828
+ _adjustDate: function(id, offset, period) {
829
+ var target = $(id);
830
+ var inst = this._getInst(target[0]);
831
+ if (this._isDisabledDatepicker(target[0])) {
832
+ return;
833
+ }
834
+ this._adjustInstDate(inst, offset +
835
+ (period == 'M' ? this._get(inst, 'showCurrentAtPos') : 0), // undo positioning
836
+ period);
837
+ this._updateDatepicker(inst);
838
+ },
839
+
840
+ /* Action for current link. */
841
+ _gotoToday: function(id) {
842
+ var target = $(id);
843
+ var inst = this._getInst(target[0]);
844
+ if (this._get(inst, 'gotoCurrent') && inst.currentDay) {
845
+ inst.selectedDay = inst.currentDay;
846
+ inst.drawMonth = inst.selectedMonth = inst.currentMonth;
847
+ inst.drawYear = inst.selectedYear = inst.currentYear;
848
+ }
849
+ else {
850
+ var date = new Date();
851
+ inst.selectedDay = date.getDate();
852
+ inst.drawMonth = inst.selectedMonth = date.getMonth();
853
+ inst.drawYear = inst.selectedYear = date.getFullYear();
854
+ }
855
+ this._notifyChange(inst);
856
+ this._adjustDate(target);
857
+ },
858
+
859
+ /* Action for selecting a new month/year. */
860
+ _selectMonthYear: function(id, select, period) {
861
+ var target = $(id);
862
+ var inst = this._getInst(target[0]);
863
+ inst._selectingMonthYear = false;
864
+ inst['selected' + (period == 'M' ? 'Month' : 'Year')] =
865
+ inst['draw' + (period == 'M' ? 'Month' : 'Year')] =
866
+ parseInt(select.options[select.selectedIndex].value,10);
867
+ this._notifyChange(inst);
868
+ this._adjustDate(target);
869
+ },
870
+
871
+ /* Restore input focus after not changing month/year. */
872
+ _clickMonthYear: function(id) {
873
+ var target = $(id);
874
+ var inst = this._getInst(target[0]);
875
+ if (inst.input && inst._selectingMonthYear) {
876
+ setTimeout(function() {
877
+ inst.input.focus();
878
+ }, 0);
879
+ }
880
+ inst._selectingMonthYear = !inst._selectingMonthYear;
881
+ },
882
+
883
+ /* Action for selecting a day. */
884
+ _selectDay: function(id, month, year, td) {
885
+ var target = $(id);
886
+ if ($(td).hasClass(this._unselectableClass) || this._isDisabledDatepicker(target[0])) {
887
+ return;
888
+ }
889
+ var inst = this._getInst(target[0]);
890
+ inst.selectedDay = inst.currentDay = $('a', td).html();
891
+ inst.selectedMonth = inst.currentMonth = month;
892
+ inst.selectedYear = inst.currentYear = year;
893
+ this._selectDate(id, this._formatDate(inst,
894
+ inst.currentDay, inst.currentMonth, inst.currentYear));
895
+ },
896
+
897
+ /* Erase the input field and hide the date picker. */
898
+ _clearDate: function(id) {
899
+ var target = $(id);
900
+ var inst = this._getInst(target[0]);
901
+ this._selectDate(target, '');
902
+ },
903
+
904
+ /* Update the input field with the selected date. */
905
+ _selectDate: function(id, dateStr) {
906
+ var target = $(id);
907
+ var inst = this._getInst(target[0]);
908
+ dateStr = (dateStr != null ? dateStr : this._formatDate(inst));
909
+ if (inst.input)
910
+ inst.input.val(dateStr);
911
+ this._updateAlternate(inst);
912
+ var onSelect = this._get(inst, 'onSelect');
913
+ if (onSelect)
914
+ onSelect.apply((inst.input ? inst.input[0] : null), [dateStr, inst]); // trigger custom callback
915
+ else if (inst.input)
916
+ inst.input.trigger('change'); // fire the change event
917
+ if (inst.inline)
918
+ this._updateDatepicker(inst);
919
+ else {
920
+ this._hideDatepicker();
921
+ this._lastInput = inst.input[0];
922
+ if (typeof(inst.input[0]) != 'object')
923
+ inst.input.focus(); // restore focus
924
+ this._lastInput = null;
925
+ }
926
+ },
927
+
928
+ /* Update any alternate field to synchronise with the main field. */
929
+ _updateAlternate: function(inst) {
930
+ var altField = this._get(inst, 'altField');
931
+ if (altField) { // update alternate field too
932
+ var altFormat = this._get(inst, 'altFormat') || this._get(inst, 'dateFormat');
933
+ var date = this._getDate(inst);
934
+ var dateStr = this.formatDate(altFormat, date, this._getFormatConfig(inst));
935
+ $(altField).each(function() { $(this).val(dateStr); });
936
+ }
937
+ },
938
+
939
+ /* Set as beforeShowDay function to prevent selection of weekends.
940
+ @param date Date - the date to customise
941
+ @return [boolean, string] - is this date selectable?, what is its CSS class? */
942
+ noWeekends: function(date) {
943
+ var day = date.getDay();
944
+ return [(day > 0 && day < 6), ''];
945
+ },
946
+
947
+ /* Set as calculateWeek to determine the week of the year based on the ISO 8601 definition.
948
+ @param date Date - the date to get the week for
949
+ @return number - the number of the week within the year that contains this date */
950
+ iso8601Week: function(date) {
951
+ var checkDate = new Date(date.getTime());
952
+ // Find Thursday of this week starting on Monday
953
+ checkDate.setDate(checkDate.getDate() + 4 - (checkDate.getDay() || 7));
954
+ var time = checkDate.getTime();
955
+ checkDate.setMonth(0); // Compare with Jan 1
956
+ checkDate.setDate(1);
957
+ return Math.floor(Math.round((time - checkDate) / 86400000) / 7) + 1;
958
+ },
959
+
960
+ /* Parse a string value into a date object.
961
+ See formatDate below for the possible formats.
962
+
963
+ @param format string - the expected format of the date
964
+ @param value string - the date in the above format
965
+ @param settings Object - attributes include:
966
+ shortYearCutoff number - the cutoff year for determining the century (optional)
967
+ dayNamesShort string[7] - abbreviated names of the days from Sunday (optional)
968
+ dayNames string[7] - names of the days from Sunday (optional)
969
+ monthNamesShort string[12] - abbreviated names of the months (optional)
970
+ monthNames string[12] - names of the months (optional)
971
+ @return Date - the extracted date value or null if value is blank */
972
+ parseDate: function (format, value, settings) {
973
+ if (format == null || value == null)
974
+ throw 'Invalid arguments';
975
+ value = (typeof value == 'object' ? value.toString() : value + '');
976
+ if (value == '')
977
+ return null;
978
+ var shortYearCutoff = (settings ? settings.shortYearCutoff : null) || this._defaults.shortYearCutoff;
979
+ shortYearCutoff = (typeof shortYearCutoff != 'string' ? shortYearCutoff :
980
+ new Date().getFullYear() % 100 + parseInt(shortYearCutoff, 10));
981
+ var dayNamesShort = (settings ? settings.dayNamesShort : null) || this._defaults.dayNamesShort;
982
+ var dayNames = (settings ? settings.dayNames : null) || this._defaults.dayNames;
983
+ var monthNamesShort = (settings ? settings.monthNamesShort : null) || this._defaults.monthNamesShort;
984
+ var monthNames = (settings ? settings.monthNames : null) || this._defaults.monthNames;
985
+ var year = -1;
986
+ var month = -1;
987
+ var day = -1;
988
+ var doy = -1;
989
+ var literal = false;
990
+ // Check whether a format character is doubled
991
+ var lookAhead = function(match) {
992
+ var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) == match);
993
+ if (matches)
994
+ iFormat++;
995
+ return matches;
996
+ };
997
+ // Extract a number from the string value
998
+ var getNumber = function(match) {
999
+ var isDoubled = lookAhead(match);
1000
+ var size = (match == '@' ? 14 : (match == '!' ? 20 :
1001
+ (match == 'y' && isDoubled ? 4 : (match == 'o' ? 3 : 2))));
1002
+ var digits = new RegExp('^\\d{1,' + size + '}');
1003
+ var num = value.substring(iValue).match(digits);
1004
+ if (!num)
1005
+ throw 'Missing number at position ' + iValue;
1006
+ iValue += num[0].length;
1007
+ return parseInt(num[0], 10);
1008
+ };
1009
+ // Extract a name from the string value and convert to an index
1010
+ var getName = function(match, shortNames, longNames) {
1011
+ var names = $.map(lookAhead(match) ? longNames : shortNames, function (v, k) {
1012
+ return [ [k, v] ];
1013
+ }).sort(function (a, b) {
1014
+ return -(a[1].length - b[1].length);
1015
+ });
1016
+ var index = -1;
1017
+ $.each(names, function (i, pair) {
1018
+ var name = pair[1];
1019
+ if (value.substr(iValue, name.length).toLowerCase() == name.toLowerCase()) {
1020
+ index = pair[0];
1021
+ iValue += name.length;
1022
+ return false;
1023
+ }
1024
+ });
1025
+ if (index != -1)
1026
+ return index + 1;
1027
+ else
1028
+ throw 'Unknown name at position ' + iValue;
1029
+ };
1030
+ // Confirm that a literal character matches the string value
1031
+ var checkLiteral = function() {
1032
+ if (value.charAt(iValue) != format.charAt(iFormat))
1033
+ throw 'Unexpected literal at position ' + iValue;
1034
+ iValue++;
1035
+ };
1036
+ var iValue = 0;
1037
+ for (var iFormat = 0; iFormat < format.length; iFormat++) {
1038
+ if (literal)
1039
+ if (format.charAt(iFormat) == "'" && !lookAhead("'"))
1040
+ literal = false;
1041
+ else
1042
+ checkLiteral();
1043
+ else
1044
+ switch (format.charAt(iFormat)) {
1045
+ case 'd':
1046
+ day = getNumber('d');
1047
+ break;
1048
+ case 'D':
1049
+ getName('D', dayNamesShort, dayNames);
1050
+ break;
1051
+ case 'o':
1052
+ doy = getNumber('o');
1053
+ break;
1054
+ case 'm':
1055
+ month = getNumber('m');
1056
+ break;
1057
+ case 'M':
1058
+ month = getName('M', monthNamesShort, monthNames);
1059
+ break;
1060
+ case 'y':
1061
+ year = getNumber('y');
1062
+ break;
1063
+ case '@':
1064
+ var date = new Date(getNumber('@'));
1065
+ year = date.getFullYear();
1066
+ month = date.getMonth() + 1;
1067
+ day = date.getDate();
1068
+ break;
1069
+ case '!':
1070
+ var date = new Date((getNumber('!') - this._ticksTo1970) / 10000);
1071
+ year = date.getFullYear();
1072
+ month = date.getMonth() + 1;
1073
+ day = date.getDate();
1074
+ break;
1075
+ case "'":
1076
+ if (lookAhead("'"))
1077
+ checkLiteral();
1078
+ else
1079
+ literal = true;
1080
+ break;
1081
+ default:
1082
+ checkLiteral();
1083
+ }
1084
+ }
1085
+ if (iValue < value.length){
1086
+ throw "Extra/unparsed characters found in date: " + value.substring(iValue);
1087
+ }
1088
+ if (year == -1)
1089
+ year = new Date().getFullYear();
1090
+ else if (year < 100)
1091
+ year += new Date().getFullYear() - new Date().getFullYear() % 100 +
1092
+ (year <= shortYearCutoff ? 0 : -100);
1093
+ if (doy > -1) {
1094
+ month = 1;
1095
+ day = doy;
1096
+ do {
1097
+ var dim = this._getDaysInMonth(year, month - 1);
1098
+ if (day <= dim)
1099
+ break;
1100
+ month++;
1101
+ day -= dim;
1102
+ } while (true);
1103
+ }
1104
+ var date = this._daylightSavingAdjust(new Date(year, month - 1, day));
1105
+ if (date.getFullYear() != year || date.getMonth() + 1 != month || date.getDate() != day)
1106
+ throw 'Invalid date'; // E.g. 31/02/00
1107
+ return date;
1108
+ },
1109
+
1110
+ /* Standard date formats. */
1111
+ ATOM: 'yy-mm-dd', // RFC 3339 (ISO 8601)
1112
+ COOKIE: 'D, dd M yy',
1113
+ ISO_8601: 'yy-mm-dd',
1114
+ RFC_822: 'D, d M y',
1115
+ RFC_850: 'DD, dd-M-y',
1116
+ RFC_1036: 'D, d M y',
1117
+ RFC_1123: 'D, d M yy',
1118
+ RFC_2822: 'D, d M yy',
1119
+ RSS: 'D, d M y', // RFC 822
1120
+ TICKS: '!',
1121
+ TIMESTAMP: '@',
1122
+ W3C: 'yy-mm-dd', // ISO 8601
1123
+
1124
+ _ticksTo1970: (((1970 - 1) * 365 + Math.floor(1970 / 4) - Math.floor(1970 / 100) +
1125
+ Math.floor(1970 / 400)) * 24 * 60 * 60 * 10000000),
1126
+
1127
+ /* Format a date object into a string value.
1128
+ The format can be combinations of the following:
1129
+ d - day of month (no leading zero)
1130
+ dd - day of month (two digit)
1131
+ o - day of year (no leading zeros)
1132
+ oo - day of year (three digit)
1133
+ D - day name short
1134
+ DD - day name long
1135
+ m - month of year (no leading zero)
1136
+ mm - month of year (two digit)
1137
+ M - month name short
1138
+ MM - month name long
1139
+ y - year (two digit)
1140
+ yy - year (four digit)
1141
+ @ - Unix timestamp (ms since 01/01/1970)
1142
+ ! - Windows ticks (100ns since 01/01/0001)
1143
+ '...' - literal text
1144
+ '' - single quote
1145
+
1146
+ @param format string - the desired format of the date
1147
+ @param date Date - the date value to format
1148
+ @param settings Object - attributes include:
1149
+ dayNamesShort string[7] - abbreviated names of the days from Sunday (optional)
1150
+ dayNames string[7] - names of the days from Sunday (optional)
1151
+ monthNamesShort string[12] - abbreviated names of the months (optional)
1152
+ monthNames string[12] - names of the months (optional)
1153
+ @return string - the date in the above format */
1154
+ formatDate: function (format, date, settings) {
1155
+ if (!date)
1156
+ return '';
1157
+ var dayNamesShort = (settings ? settings.dayNamesShort : null) || this._defaults.dayNamesShort;
1158
+ var dayNames = (settings ? settings.dayNames : null) || this._defaults.dayNames;
1159
+ var monthNamesShort = (settings ? settings.monthNamesShort : null) || this._defaults.monthNamesShort;
1160
+ var monthNames = (settings ? settings.monthNames : null) || this._defaults.monthNames;
1161
+ // Check whether a format character is doubled
1162
+ var lookAhead = function(match) {
1163
+ var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) == match);
1164
+ if (matches)
1165
+ iFormat++;
1166
+ return matches;
1167
+ };
1168
+ // Format a number, with leading zero if necessary
1169
+ var formatNumber = function(match, value, len) {
1170
+ var num = '' + value;
1171
+ if (lookAhead(match))
1172
+ while (num.length < len)
1173
+ num = '0' + num;
1174
+ return num;
1175
+ };
1176
+ // Format a name, short or long as requested
1177
+ var formatName = function(match, value, shortNames, longNames) {
1178
+ return (lookAhead(match) ? longNames[value] : shortNames[value]);
1179
+ };
1180
+ var output = '';
1181
+ var literal = false;
1182
+ if (date)
1183
+ for (var iFormat = 0; iFormat < format.length; iFormat++) {
1184
+ if (literal)
1185
+ if (format.charAt(iFormat) == "'" && !lookAhead("'"))
1186
+ literal = false;
1187
+ else
1188
+ output += format.charAt(iFormat);
1189
+ else
1190
+ switch (format.charAt(iFormat)) {
1191
+ case 'd':
1192
+ output += formatNumber('d', date.getDate(), 2);
1193
+ break;
1194
+ case 'D':
1195
+ output += formatName('D', date.getDay(), dayNamesShort, dayNames);
1196
+ break;
1197
+ case 'o':
1198
+ output += formatNumber('o',
1199
+ Math.round((new Date(date.getFullYear(), date.getMonth(), date.getDate()).getTime() - new Date(date.getFullYear(), 0, 0).getTime()) / 86400000), 3);
1200
+ break;
1201
+ case 'm':
1202
+ output += formatNumber('m', date.getMonth() + 1, 2);
1203
+ break;
1204
+ case 'M':
1205
+ output += formatName('M', date.getMonth(), monthNamesShort, monthNames);
1206
+ break;
1207
+ case 'y':
1208
+ output += (lookAhead('y') ? date.getFullYear() :
1209
+ (date.getYear() % 100 < 10 ? '0' : '') + date.getYear() % 100);
1210
+ break;
1211
+ case '@':
1212
+ output += date.getTime();
1213
+ break;
1214
+ case '!':
1215
+ output += date.getTime() * 10000 + this._ticksTo1970;
1216
+ break;
1217
+ case "'":
1218
+ if (lookAhead("'"))
1219
+ output += "'";
1220
+ else
1221
+ literal = true;
1222
+ break;
1223
+ default:
1224
+ output += format.charAt(iFormat);
1225
+ }
1226
+ }
1227
+ return output;
1228
+ },
1229
+
1230
+ /* Extract all possible characters from the date format. */
1231
+ _possibleChars: function (format) {
1232
+ var chars = '';
1233
+ var literal = false;
1234
+ // Check whether a format character is doubled
1235
+ var lookAhead = function(match) {
1236
+ var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) == match);
1237
+ if (matches)
1238
+ iFormat++;
1239
+ return matches;
1240
+ };
1241
+ for (var iFormat = 0; iFormat < format.length; iFormat++)
1242
+ if (literal)
1243
+ if (format.charAt(iFormat) == "'" && !lookAhead("'"))
1244
+ literal = false;
1245
+ else
1246
+ chars += format.charAt(iFormat);
1247
+ else
1248
+ switch (format.charAt(iFormat)) {
1249
+ case 'd': case 'm': case 'y': case '@':
1250
+ chars += '0123456789';
1251
+ break;
1252
+ case 'D': case 'M':
1253
+ return null; // Accept anything
1254
+ case "'":
1255
+ if (lookAhead("'"))
1256
+ chars += "'";
1257
+ else
1258
+ literal = true;
1259
+ break;
1260
+ default:
1261
+ chars += format.charAt(iFormat);
1262
+ }
1263
+ return chars;
1264
+ },
1265
+
1266
+ /* Get a setting value, defaulting if necessary. */
1267
+ _get: function(inst, name) {
1268
+ return inst.settings[name] !== undefined ?
1269
+ inst.settings[name] : this._defaults[name];
1270
+ },
1271
+
1272
+ /* Parse existing date and initialise date picker. */
1273
+ _setDateFromField: function(inst, noDefault) {
1274
+ if (inst.input.val() == inst.lastVal) {
1275
+ return;
1276
+ }
1277
+ var dateFormat = this._get(inst, 'dateFormat');
1278
+ var dates = inst.lastVal = inst.input ? inst.input.val() : null;
1279
+ var date, defaultDate;
1280
+ date = defaultDate = this._getDefaultDate(inst);
1281
+ var settings = this._getFormatConfig(inst);
1282
+ try {
1283
+ date = this.parseDate(dateFormat, dates, settings) || defaultDate;
1284
+ } catch (event) {
1285
+ this.log(event);
1286
+ dates = (noDefault ? '' : dates);
1287
+ }
1288
+ inst.selectedDay = date.getDate();
1289
+ inst.drawMonth = inst.selectedMonth = date.getMonth();
1290
+ inst.drawYear = inst.selectedYear = date.getFullYear();
1291
+ inst.currentDay = (dates ? date.getDate() : 0);
1292
+ inst.currentMonth = (dates ? date.getMonth() : 0);
1293
+ inst.currentYear = (dates ? date.getFullYear() : 0);
1294
+ this._adjustInstDate(inst);
1295
+ },
1296
+
1297
+ /* Retrieve the default date shown on opening. */
1298
+ _getDefaultDate: function(inst) {
1299
+ return this._restrictMinMax(inst,
1300
+ this._determineDate(inst, this._get(inst, 'defaultDate'), new Date()));
1301
+ },
1302
+
1303
+ /* A date may be specified as an exact value or a relative one. */
1304
+ _determineDate: function(inst, date, defaultDate) {
1305
+ var offsetNumeric = function(offset) {
1306
+ var date = new Date();
1307
+ date.setDate(date.getDate() + offset);
1308
+ return date;
1309
+ };
1310
+ var offsetString = function(offset) {
1311
+ try {
1312
+ return $.datepicker.parseDate($.datepicker._get(inst, 'dateFormat'),
1313
+ offset, $.datepicker._getFormatConfig(inst));
1314
+ }
1315
+ catch (e) {
1316
+ // Ignore
1317
+ }
1318
+ var date = (offset.toLowerCase().match(/^c/) ?
1319
+ $.datepicker._getDate(inst) : null) || new Date();
1320
+ var year = date.getFullYear();
1321
+ var month = date.getMonth();
1322
+ var day = date.getDate();
1323
+ var pattern = /([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g;
1324
+ var matches = pattern.exec(offset);
1325
+ while (matches) {
1326
+ switch (matches[2] || 'd') {
1327
+ case 'd' : case 'D' :
1328
+ day += parseInt(matches[1],10); break;
1329
+ case 'w' : case 'W' :
1330
+ day += parseInt(matches[1],10) * 7; break;
1331
+ case 'm' : case 'M' :
1332
+ month += parseInt(matches[1],10);
1333
+ day = Math.min(day, $.datepicker._getDaysInMonth(year, month));
1334
+ break;
1335
+ case 'y': case 'Y' :
1336
+ year += parseInt(matches[1],10);
1337
+ day = Math.min(day, $.datepicker._getDaysInMonth(year, month));
1338
+ break;
1339
+ }
1340
+ matches = pattern.exec(offset);
1341
+ }
1342
+ return new Date(year, month, day);
1343
+ };
1344
+ var newDate = (date == null || date === '' ? defaultDate : (typeof date == 'string' ? offsetString(date) :
1345
+ (typeof date == 'number' ? (isNaN(date) ? defaultDate : offsetNumeric(date)) : new Date(date.getTime()))));
1346
+ newDate = (newDate && newDate.toString() == 'Invalid Date' ? defaultDate : newDate);
1347
+ if (newDate) {
1348
+ newDate.setHours(0);
1349
+ newDate.setMinutes(0);
1350
+ newDate.setSeconds(0);
1351
+ newDate.setMilliseconds(0);
1352
+ }
1353
+ return this._daylightSavingAdjust(newDate);
1354
+ },
1355
+
1356
+ /* Handle switch to/from daylight saving.
1357
+ Hours may be non-zero on daylight saving cut-over:
1358
+ > 12 when midnight changeover, but then cannot generate
1359
+ midnight datetime, so jump to 1AM, otherwise reset.
1360
+ @param date (Date) the date to check
1361
+ @return (Date) the corrected date */
1362
+ _daylightSavingAdjust: function(date) {
1363
+ if (!date) return null;
1364
+ date.setHours(date.getHours() > 12 ? date.getHours() + 2 : 0);
1365
+ return date;
1366
+ },
1367
+
1368
+ /* Set the date(s) directly. */
1369
+ _setDate: function(inst, date, noChange) {
1370
+ var clear = !date;
1371
+ var origMonth = inst.selectedMonth;
1372
+ var origYear = inst.selectedYear;
1373
+ var newDate = this._restrictMinMax(inst, this._determineDate(inst, date, new Date()));
1374
+ inst.selectedDay = inst.currentDay = newDate.getDate();
1375
+ inst.drawMonth = inst.selectedMonth = inst.currentMonth = newDate.getMonth();
1376
+ inst.drawYear = inst.selectedYear = inst.currentYear = newDate.getFullYear();
1377
+ if ((origMonth != inst.selectedMonth || origYear != inst.selectedYear) && !noChange)
1378
+ this._notifyChange(inst);
1379
+ this._adjustInstDate(inst);
1380
+ if (inst.input) {
1381
+ inst.input.val(clear ? '' : this._formatDate(inst));
1382
+ }
1383
+ },
1384
+
1385
+ /* Retrieve the date(s) directly. */
1386
+ _getDate: function(inst) {
1387
+ var startDate = (!inst.currentYear || (inst.input && inst.input.val() == '') ? null :
1388
+ this._daylightSavingAdjust(new Date(
1389
+ inst.currentYear, inst.currentMonth, inst.currentDay)));
1390
+ return startDate;
1391
+ },
1392
+
1393
+ /* Generate the HTML for the current state of the date picker. */
1394
+ _generateHTML: function(inst) {
1395
+ var today = new Date();
1396
+ today = this._daylightSavingAdjust(
1397
+ new Date(today.getFullYear(), today.getMonth(), today.getDate())); // clear time
1398
+ var isRTL = this._get(inst, 'isRTL');
1399
+ var showButtonPanel = this._get(inst, 'showButtonPanel');
1400
+ var hideIfNoPrevNext = this._get(inst, 'hideIfNoPrevNext');
1401
+ var navigationAsDateFormat = this._get(inst, 'navigationAsDateFormat');
1402
+ var numMonths = this._getNumberOfMonths(inst);
1403
+ var showCurrentAtPos = this._get(inst, 'showCurrentAtPos');
1404
+ var stepMonths = this._get(inst, 'stepMonths');
1405
+ var isMultiMonth = (numMonths[0] != 1 || numMonths[1] != 1);
1406
+ var currentDate = this._daylightSavingAdjust((!inst.currentDay ? new Date(9999, 9, 9) :
1407
+ new Date(inst.currentYear, inst.currentMonth, inst.currentDay)));
1408
+ var minDate = this._getMinMaxDate(inst, 'min');
1409
+ var maxDate = this._getMinMaxDate(inst, 'max');
1410
+ var drawMonth = inst.drawMonth - showCurrentAtPos;
1411
+ var drawYear = inst.drawYear;
1412
+ if (drawMonth < 0) {
1413
+ drawMonth += 12;
1414
+ drawYear--;
1415
+ }
1416
+ if (maxDate) {
1417
+ var maxDraw = this._daylightSavingAdjust(new Date(maxDate.getFullYear(),
1418
+ maxDate.getMonth() - (numMonths[0] * numMonths[1]) + 1, maxDate.getDate()));
1419
+ maxDraw = (minDate && maxDraw < minDate ? minDate : maxDraw);
1420
+ while (this._daylightSavingAdjust(new Date(drawYear, drawMonth, 1)) > maxDraw) {
1421
+ drawMonth--;
1422
+ if (drawMonth < 0) {
1423
+ drawMonth = 11;
1424
+ drawYear--;
1425
+ }
1426
+ }
1427
+ }
1428
+ inst.drawMonth = drawMonth;
1429
+ inst.drawYear = drawYear;
1430
+ var prevText = this._get(inst, 'prevText');
1431
+ prevText = (!navigationAsDateFormat ? prevText : this.formatDate(prevText,
1432
+ this._daylightSavingAdjust(new Date(drawYear, drawMonth - stepMonths, 1)),
1433
+ this._getFormatConfig(inst)));
1434
+ var prev = (this._canAdjustMonth(inst, -1, drawYear, drawMonth) ?
1435
+ '<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery_' + dpuuid +
1436
+ '.datepicker._adjustDate(\'#' + inst.id + '\', -' + stepMonths + ', \'M\');"' +
1437
+ ' title="' + prevText + '"><span class="ui-icon ui-icon-circle-triangle-' + ( isRTL ? 'e' : 'w') + '">' + prevText + '</span></a>' :
1438
+ (hideIfNoPrevNext ? '' : '<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="'+ prevText +'"><span class="ui-icon ui-icon-circle-triangle-' + ( isRTL ? 'e' : 'w') + '">' + prevText + '</span></a>'));
1439
+ var nextText = this._get(inst, 'nextText');
1440
+ nextText = (!navigationAsDateFormat ? nextText : this.formatDate(nextText,
1441
+ this._daylightSavingAdjust(new Date(drawYear, drawMonth + stepMonths, 1)),
1442
+ this._getFormatConfig(inst)));
1443
+ var next = (this._canAdjustMonth(inst, +1, drawYear, drawMonth) ?
1444
+ '<a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery_' + dpuuid +
1445
+ '.datepicker._adjustDate(\'#' + inst.id + '\', +' + stepMonths + ', \'M\');"' +
1446
+ ' title="' + nextText + '"><span class="ui-icon ui-icon-circle-triangle-' + ( isRTL ? 'w' : 'e') + '">' + nextText + '</span></a>' :
1447
+ (hideIfNoPrevNext ? '' : '<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="'+ nextText + '"><span class="ui-icon ui-icon-circle-triangle-' + ( isRTL ? 'w' : 'e') + '">' + nextText + '</span></a>'));
1448
+ var currentText = this._get(inst, 'currentText');
1449
+ var gotoDate = (this._get(inst, 'gotoCurrent') && inst.currentDay ? currentDate : today);
1450
+ currentText = (!navigationAsDateFormat ? currentText :
1451
+ this.formatDate(currentText, gotoDate, this._getFormatConfig(inst)));
1452
+ var controls = (!inst.inline ? '<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" onclick="DP_jQuery_' + dpuuid +
1453
+ '.datepicker._hideDatepicker();">' + this._get(inst, 'closeText') + '</button>' : '');
1454
+ var buttonPanel = (showButtonPanel) ? '<div class="ui-datepicker-buttonpane ui-widget-content">' + (isRTL ? controls : '') +
1455
+ (this._isInRange(inst, gotoDate) ? '<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="DP_jQuery_' + dpuuid +
1456
+ '.datepicker._gotoToday(\'#' + inst.id + '\');"' +
1457
+ '>' + currentText + '</button>' : '') + (isRTL ? '' : controls) + '</div>' : '';
1458
+ var firstDay = parseInt(this._get(inst, 'firstDay'),10);
1459
+ firstDay = (isNaN(firstDay) ? 0 : firstDay);
1460
+ var showWeek = this._get(inst, 'showWeek');
1461
+ var dayNames = this._get(inst, 'dayNames');
1462
+ var dayNamesShort = this._get(inst, 'dayNamesShort');
1463
+ var dayNamesMin = this._get(inst, 'dayNamesMin');
1464
+ var monthNames = this._get(inst, 'monthNames');
1465
+ var monthNamesShort = this._get(inst, 'monthNamesShort');
1466
+ var beforeShowDay = this._get(inst, 'beforeShowDay');
1467
+ var showOtherMonths = this._get(inst, 'showOtherMonths');
1468
+ var selectOtherMonths = this._get(inst, 'selectOtherMonths');
1469
+ var calculateWeek = this._get(inst, 'calculateWeek') || this.iso8601Week;
1470
+ var defaultDate = this._getDefaultDate(inst);
1471
+ var html = '';
1472
+ for (var row = 0; row < numMonths[0]; row++) {
1473
+ var group = '';
1474
+ this.maxRows = 4;
1475
+ for (var col = 0; col < numMonths[1]; col++) {
1476
+ var selectedDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, inst.selectedDay));
1477
+ var cornerClass = ' ui-corner-all';
1478
+ var calender = '';
1479
+ if (isMultiMonth) {
1480
+ calender += '<div class="ui-datepicker-group';
1481
+ if (numMonths[1] > 1)
1482
+ switch (col) {
1483
+ case 0: calender += ' ui-datepicker-group-first';
1484
+ cornerClass = ' ui-corner-' + (isRTL ? 'right' : 'left'); break;
1485
+ case numMonths[1]-1: calender += ' ui-datepicker-group-last';
1486
+ cornerClass = ' ui-corner-' + (isRTL ? 'left' : 'right'); break;
1487
+ default: calender += ' ui-datepicker-group-middle'; cornerClass = ''; break;
1488
+ }
1489
+ calender += '">';
1490
+ }
1491
+ calender += '<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix' + cornerClass + '">' +
1492
+ (/all|left/.test(cornerClass) && row == 0 ? (isRTL ? next : prev) : '') +
1493
+ (/all|right/.test(cornerClass) && row == 0 ? (isRTL ? prev : next) : '') +
1494
+ this._generateMonthYearHeader(inst, drawMonth, drawYear, minDate, maxDate,
1495
+ row > 0 || col > 0, monthNames, monthNamesShort) + // draw month headers
1496
+ '</div><table class="ui-datepicker-calendar"><thead>' +
1497
+ '<tr>';
1498
+ var thead = (showWeek ? '<th class="ui-datepicker-week-col">' + this._get(inst, 'weekHeader') + '</th>' : '');
1499
+ for (var dow = 0; dow < 7; dow++) { // days of the week
1500
+ var day = (dow + firstDay) % 7;
1501
+ thead += '<th' + ((dow + firstDay + 6) % 7 >= 5 ? ' class="ui-datepicker-week-end"' : '') + '>' +
1502
+ '<span title="' + dayNames[day] + '">' + dayNamesMin[day] + '</span></th>';
1503
+ }
1504
+ calender += thead + '</tr></thead><tbody>';
1505
+ var daysInMonth = this._getDaysInMonth(drawYear, drawMonth);
1506
+ if (drawYear == inst.selectedYear && drawMonth == inst.selectedMonth)
1507
+ inst.selectedDay = Math.min(inst.selectedDay, daysInMonth);
1508
+ var leadDays = (this._getFirstDayOfMonth(drawYear, drawMonth) - firstDay + 7) % 7;
1509
+ var curRows = Math.ceil((leadDays + daysInMonth) / 7); // calculate the number of rows to generate
1510
+ var numRows = (isMultiMonth ? this.maxRows > curRows ? this.maxRows : curRows : curRows); //If multiple months, use the higher number of rows (see #7043)
1511
+ this.maxRows = numRows;
1512
+ var printDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, 1 - leadDays));
1513
+ for (var dRow = 0; dRow < numRows; dRow++) { // create date picker rows
1514
+ calender += '<tr>';
1515
+ var tbody = (!showWeek ? '' : '<td class="ui-datepicker-week-col">' +
1516
+ this._get(inst, 'calculateWeek')(printDate) + '</td>');
1517
+ for (var dow = 0; dow < 7; dow++) { // create date picker days
1518
+ var daySettings = (beforeShowDay ?
1519
+ beforeShowDay.apply((inst.input ? inst.input[0] : null), [printDate]) : [true, '']);
1520
+ var otherMonth = (printDate.getMonth() != drawMonth);
1521
+ var unselectable = (otherMonth && !selectOtherMonths) || !daySettings[0] ||
1522
+ (minDate && printDate < minDate) || (maxDate && printDate > maxDate);
1523
+ tbody += '<td class="' +
1524
+ ((dow + firstDay + 6) % 7 >= 5 ? ' ui-datepicker-week-end' : '') + // highlight weekends
1525
+ (otherMonth ? ' ui-datepicker-other-month' : '') + // highlight days from other months
1526
+ ((printDate.getTime() == selectedDate.getTime() && drawMonth == inst.selectedMonth && inst._keyEvent) || // user pressed key
1527
+ (defaultDate.getTime() == printDate.getTime() && defaultDate.getTime() == selectedDate.getTime()) ?
1528
+ // or defaultDate is current printedDate and defaultDate is selectedDate
1529
+ ' ' + this._dayOverClass : '') + // highlight selected day
1530
+ (unselectable ? ' ' + this._unselectableClass + ' ui-state-disabled': '') + // highlight unselectable days
1531
+ (otherMonth && !showOtherMonths ? '' : ' ' + daySettings[1] + // highlight custom dates
1532
+ (printDate.getTime() == currentDate.getTime() ? ' ' + this._currentClass : '') + // highlight selected day
1533
+ (printDate.getTime() == today.getTime() ? ' ui-datepicker-today' : '')) + '"' + // highlight today (if different)
1534
+ ((!otherMonth || showOtherMonths) && daySettings[2] ? ' title="' + daySettings[2] + '"' : '') + // cell title
1535
+ (unselectable ? '' : ' onclick="DP_jQuery_' + dpuuid + '.datepicker._selectDay(\'#' +
1536
+ inst.id + '\',' + printDate.getMonth() + ',' + printDate.getFullYear() + ', this);return false;"') + '>' + // actions
1537
+ (otherMonth && !showOtherMonths ? '&#xa0;' : // display for other months
1538
+ (unselectable ? '<span class="ui-state-default">' + printDate.getDate() + '</span>' : '<a class="ui-state-default' +
1539
+ (printDate.getTime() == today.getTime() ? ' ui-state-highlight' : '') +
1540
+ (printDate.getTime() == currentDate.getTime() ? ' ui-state-active' : '') + // highlight selected day
1541
+ (otherMonth ? ' ui-priority-secondary' : '') + // distinguish dates from other months
1542
+ '" href="#">' + printDate.getDate() + '</a>')) + '</td>'; // display selectable date
1543
+ printDate.setDate(printDate.getDate() + 1);
1544
+ printDate = this._daylightSavingAdjust(printDate);
1545
+ }
1546
+ calender += tbody + '</tr>';
1547
+ }
1548
+ drawMonth++;
1549
+ if (drawMonth > 11) {
1550
+ drawMonth = 0;
1551
+ drawYear++;
1552
+ }
1553
+ calender += '</tbody></table>' + (isMultiMonth ? '</div>' +
1554
+ ((numMonths[0] > 0 && col == numMonths[1]-1) ? '<div class="ui-datepicker-row-break"></div>' : '') : '');
1555
+ group += calender;
1556
+ }
1557
+ html += group;
1558
+ }
1559
+ html += buttonPanel + ($.browser.msie && parseInt($.browser.version,10) < 7 && !inst.inline ?
1560
+ '<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>' : '');
1561
+ inst._keyEvent = false;
1562
+ return html;
1563
+ },
1564
+
1565
+ /* Generate the month and year header. */
1566
+ _generateMonthYearHeader: function(inst, drawMonth, drawYear, minDate, maxDate,
1567
+ secondary, monthNames, monthNamesShort) {
1568
+ var changeMonth = this._get(inst, 'changeMonth');
1569
+ var changeYear = this._get(inst, 'changeYear');
1570
+ var showMonthAfterYear = this._get(inst, 'showMonthAfterYear');
1571
+ var html = '<div class="ui-datepicker-title">';
1572
+ var monthHtml = '';
1573
+ // month selection
1574
+ if (secondary || !changeMonth)
1575
+ monthHtml += '<span class="ui-datepicker-month">' + monthNames[drawMonth] + '</span>';
1576
+ else {
1577
+ var inMinYear = (minDate && minDate.getFullYear() == drawYear);
1578
+ var inMaxYear = (maxDate && maxDate.getFullYear() == drawYear);
1579
+ monthHtml += '<select class="ui-datepicker-month" ' +
1580
+ 'onchange="DP_jQuery_' + dpuuid + '.datepicker._selectMonthYear(\'#' + inst.id + '\', this, \'M\');" ' +
1581
+ 'onclick="DP_jQuery_' + dpuuid + '.datepicker._clickMonthYear(\'#' + inst.id + '\');"' +
1582
+ '>';
1583
+ for (var month = 0; month < 12; month++) {
1584
+ if ((!inMinYear || month >= minDate.getMonth()) &&
1585
+ (!inMaxYear || month <= maxDate.getMonth()))
1586
+ monthHtml += '<option value="' + month + '"' +
1587
+ (month == drawMonth ? ' selected="selected"' : '') +
1588
+ '>' + monthNamesShort[month] + '</option>';
1589
+ }
1590
+ monthHtml += '</select>';
1591
+ }
1592
+ if (!showMonthAfterYear)
1593
+ html += monthHtml + (secondary || !(changeMonth && changeYear) ? '&#xa0;' : '');
1594
+ // year selection
1595
+ if ( !inst.yearshtml ) {
1596
+ inst.yearshtml = '';
1597
+ if (secondary || !changeYear)
1598
+ html += '<span class="ui-datepicker-year">' + drawYear + '</span>';
1599
+ else {
1600
+ // determine range of years to display
1601
+ var years = this._get(inst, 'yearRange').split(':');
1602
+ var thisYear = new Date().getFullYear();
1603
+ var determineYear = function(value) {
1604
+ var year = (value.match(/c[+-].*/) ? drawYear + parseInt(value.substring(1), 10) :
1605
+ (value.match(/[+-].*/) ? thisYear + parseInt(value, 10) :
1606
+ parseInt(value, 10)));
1607
+ return (isNaN(year) ? thisYear : year);
1608
+ };
1609
+ var year = determineYear(years[0]);
1610
+ var endYear = Math.max(year, determineYear(years[1] || ''));
1611
+ year = (minDate ? Math.max(year, minDate.getFullYear()) : year);
1612
+ endYear = (maxDate ? Math.min(endYear, maxDate.getFullYear()) : endYear);
1613
+ inst.yearshtml += '<select class="ui-datepicker-year" ' +
1614
+ 'onchange="DP_jQuery_' + dpuuid + '.datepicker._selectMonthYear(\'#' + inst.id + '\', this, \'Y\');" ' +
1615
+ 'onclick="DP_jQuery_' + dpuuid + '.datepicker._clickMonthYear(\'#' + inst.id + '\');"' +
1616
+ '>';
1617
+ for (; year <= endYear; year++) {
1618
+ inst.yearshtml += '<option value="' + year + '"' +
1619
+ (year == drawYear ? ' selected="selected"' : '') +
1620
+ '>' + year + '</option>';
1621
+ }
1622
+ inst.yearshtml += '</select>';
1623
+
1624
+ html += inst.yearshtml;
1625
+ inst.yearshtml = null;
1626
+ }
1627
+ }
1628
+ html += this._get(inst, 'yearSuffix');
1629
+ if (showMonthAfterYear)
1630
+ html += (secondary || !(changeMonth && changeYear) ? '&#xa0;' : '') + monthHtml;
1631
+ html += '</div>'; // Close datepicker_header
1632
+ return html;
1633
+ },
1634
+
1635
+ /* Adjust one of the date sub-fields. */
1636
+ _adjustInstDate: function(inst, offset, period) {
1637
+ var year = inst.drawYear + (period == 'Y' ? offset : 0);
1638
+ var month = inst.drawMonth + (period == 'M' ? offset : 0);
1639
+ var day = Math.min(inst.selectedDay, this._getDaysInMonth(year, month)) +
1640
+ (period == 'D' ? offset : 0);
1641
+ var date = this._restrictMinMax(inst,
1642
+ this._daylightSavingAdjust(new Date(year, month, day)));
1643
+ inst.selectedDay = date.getDate();
1644
+ inst.drawMonth = inst.selectedMonth = date.getMonth();
1645
+ inst.drawYear = inst.selectedYear = date.getFullYear();
1646
+ if (period == 'M' || period == 'Y')
1647
+ this._notifyChange(inst);
1648
+ },
1649
+
1650
+ /* Ensure a date is within any min/max bounds. */
1651
+ _restrictMinMax: function(inst, date) {
1652
+ var minDate = this._getMinMaxDate(inst, 'min');
1653
+ var maxDate = this._getMinMaxDate(inst, 'max');
1654
+ var newDate = (minDate && date < minDate ? minDate : date);
1655
+ newDate = (maxDate && newDate > maxDate ? maxDate : newDate);
1656
+ return newDate;
1657
+ },
1658
+
1659
+ /* Notify change of month/year. */
1660
+ _notifyChange: function(inst) {
1661
+ var onChange = this._get(inst, 'onChangeMonthYear');
1662
+ if (onChange)
1663
+ onChange.apply((inst.input ? inst.input[0] : null),
1664
+ [inst.selectedYear, inst.selectedMonth + 1, inst]);
1665
+ },
1666
+
1667
+ /* Determine the number of months to show. */
1668
+ _getNumberOfMonths: function(inst) {
1669
+ var numMonths = this._get(inst, 'numberOfMonths');
1670
+ return (numMonths == null ? [1, 1] : (typeof numMonths == 'number' ? [1, numMonths] : numMonths));
1671
+ },
1672
+
1673
+ /* Determine the current maximum date - ensure no time components are set. */
1674
+ _getMinMaxDate: function(inst, minMax) {
1675
+ return this._determineDate(inst, this._get(inst, minMax + 'Date'), null);
1676
+ },
1677
+
1678
+ /* Find the number of days in a given month. */
1679
+ _getDaysInMonth: function(year, month) {
1680
+ return 32 - this._daylightSavingAdjust(new Date(year, month, 32)).getDate();
1681
+ },
1682
+
1683
+ /* Find the day of the week of the first of a month. */
1684
+ _getFirstDayOfMonth: function(year, month) {
1685
+ return new Date(year, month, 1).getDay();
1686
+ },
1687
+
1688
+ /* Determines if we should allow a "next/prev" month display change. */
1689
+ _canAdjustMonth: function(inst, offset, curYear, curMonth) {
1690
+ var numMonths = this._getNumberOfMonths(inst);
1691
+ var date = this._daylightSavingAdjust(new Date(curYear,
1692
+ curMonth + (offset < 0 ? offset : numMonths[0] * numMonths[1]), 1));
1693
+ if (offset < 0)
1694
+ date.setDate(this._getDaysInMonth(date.getFullYear(), date.getMonth()));
1695
+ return this._isInRange(inst, date);
1696
+ },
1697
+
1698
+ /* Is the given date in the accepted range? */
1699
+ _isInRange: function(inst, date) {
1700
+ var minDate = this._getMinMaxDate(inst, 'min');
1701
+ var maxDate = this._getMinMaxDate(inst, 'max');
1702
+ return ((!minDate || date.getTime() >= minDate.getTime()) &&
1703
+ (!maxDate || date.getTime() <= maxDate.getTime()));
1704
+ },
1705
+
1706
+ /* Provide the configuration settings for formatting/parsing. */
1707
+ _getFormatConfig: function(inst) {
1708
+ var shortYearCutoff = this._get(inst, 'shortYearCutoff');
1709
+ shortYearCutoff = (typeof shortYearCutoff != 'string' ? shortYearCutoff :
1710
+ new Date().getFullYear() % 100 + parseInt(shortYearCutoff, 10));
1711
+ return {shortYearCutoff: shortYearCutoff,
1712
+ dayNamesShort: this._get(inst, 'dayNamesShort'), dayNames: this._get(inst, 'dayNames'),
1713
+ monthNamesShort: this._get(inst, 'monthNamesShort'), monthNames: this._get(inst, 'monthNames')};
1714
+ },
1715
+
1716
+ /* Format the given date for display. */
1717
+ _formatDate: function(inst, day, month, year) {
1718
+ if (!day) {
1719
+ inst.currentDay = inst.selectedDay;
1720
+ inst.currentMonth = inst.selectedMonth;
1721
+ inst.currentYear = inst.selectedYear;
1722
+ }
1723
+ var date = (day ? (typeof day == 'object' ? day :
1724
+ this._daylightSavingAdjust(new Date(year, month, day))) :
1725
+ this._daylightSavingAdjust(new Date(inst.currentYear, inst.currentMonth, inst.currentDay)));
1726
+ return this.formatDate(this._get(inst, 'dateFormat'), date, this._getFormatConfig(inst));
1727
+ }
1728
+ });
1729
+
1730
+ /*
1731
+ * Bind hover events for datepicker elements.
1732
+ * Done via delegate so the binding only occurs once in the lifetime of the parent div.
1733
+ * Global instActive, set by _updateDatepicker allows the handlers to find their way back to the active picker.
1734
+ */
1735
+ function bindHover(dpDiv) {
1736
+ var selector = 'button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a';
1737
+ return dpDiv.bind('mouseout', function(event) {
1738
+ var elem = $( event.target ).closest( selector );
1739
+ if ( !elem.length ) {
1740
+ return;
1741
+ }
1742
+ elem.removeClass( "ui-state-hover ui-datepicker-prev-hover ui-datepicker-next-hover" );
1743
+ })
1744
+ .bind('mouseover', function(event) {
1745
+ var elem = $( event.target ).closest( selector );
1746
+ if ($.datepicker._isDisabledDatepicker( instActive.inline ? dpDiv.parent()[0] : instActive.input[0]) ||
1747
+ !elem.length ) {
1748
+ return;
1749
+ }
1750
+ elem.parents('.ui-datepicker-calendar').find('a').removeClass('ui-state-hover');
1751
+ elem.addClass('ui-state-hover');
1752
+ if (elem.hasClass('ui-datepicker-prev')) elem.addClass('ui-datepicker-prev-hover');
1753
+ if (elem.hasClass('ui-datepicker-next')) elem.addClass('ui-datepicker-next-hover');
1754
+ });
1755
+ }
1756
+
1757
+ /* jQuery extend now ignores nulls! */
1758
+ function extendRemove(target, props) {
1759
+ $.extend(target, props);
1760
+ for (var name in props)
1761
+ if (props[name] == null || props[name] == undefined)
1762
+ target[name] = props[name];
1763
+ return target;
1764
+ };
1765
+
1766
+ /* Determine whether an object is an array. */
1767
+ function isArray(a) {
1768
+ return (a && (($.browser.safari && typeof a == 'object' && a.length) ||
1769
+ (a.constructor && a.constructor.toString().match(/\Array\(\)/))));
1770
+ };
1771
+
1772
+ /* Invoke the datepicker functionality.
1773
+ @param options string - a command, optionally followed by additional parameters or
1774
+ Object - settings for attaching new datepicker functionality
1775
+ @return jQuery object */
1776
+ $.fn.datepicker = function(options){
1777
+
1778
+ /* Verify an empty collection wasn't passed - Fixes #6976 */
1779
+ if ( !this.length ) {
1780
+ return this;
1781
+ }
1782
+
1783
+ /* Initialise the date picker. */
1784
+ if (!$.datepicker.initialized) {
1785
+ $(document).mousedown($.datepicker._checkExternalClick).
1786
+ find('body').append($.datepicker.dpDiv);
1787
+ $.datepicker.initialized = true;
1788
+ }
1789
+
1790
+ var otherArgs = Array.prototype.slice.call(arguments, 1);
1791
+ if (typeof options == 'string' && (options == 'isDisabled' || options == 'getDate' || options == 'widget'))
1792
+ return $.datepicker['_' + options + 'Datepicker'].
1793
+ apply($.datepicker, [this[0]].concat(otherArgs));
1794
+ if (options == 'option' && arguments.length == 2 && typeof arguments[1] == 'string')
1795
+ return $.datepicker['_' + options + 'Datepicker'].
1796
+ apply($.datepicker, [this[0]].concat(otherArgs));
1797
+ return this.each(function() {
1798
+ typeof options == 'string' ?
1799
+ $.datepicker['_' + options + 'Datepicker'].
1800
+ apply($.datepicker, [this].concat(otherArgs)) :
1801
+ $.datepicker._attachDatepicker(this, options);
1802
+ });
1803
+ };
1804
+
1805
+ $.datepicker = new Datepicker(); // singleton instance
1806
+ $.datepicker.initialized = false;
1807
+ $.datepicker.uuid = new Date().getTime();
1808
+ $.datepicker.version = "1.8.14";
1809
+
1810
+ // Workaround for #4055
1811
+ // Add another global to avoid noConflict issues with inline event handlers
1812
+ window['DP_jQuery_' + dpuuid] = $;
1813
+
1814
+ $('.date-pick').datepicker({autoFocusNextInput: true});
1815
+ })(jQuery);
js/i18n/jquery-ui-i18n.js ADDED
@@ -0,0 +1,1379 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Afrikaans initialisation for the jQuery UI date picker plugin. */
2
+ /* Written by Renier Pretorius. */
3
+ jQuery(function($){
4
+ $.datepicker.regional['af'] = {
5
+ closeText: 'Selekteer',
6
+ prevText: 'Vorige',
7
+ nextText: 'Volgende',
8
+ currentText: 'Vandag',
9
+ monthNames: ['Januarie','Februarie','Maart','April','Mei','Junie',
10
+ 'Julie','Augustus','September','Oktober','November','Desember'],
11
+ monthNamesShort: ['Jan', 'Feb', 'Mrt', 'Apr', 'Mei', 'Jun',
12
+ 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Des'],
13
+ dayNames: ['Sondag', 'Maandag', 'Dinsdag', 'Woensdag', 'Donderdag', 'Vrydag', 'Saterdag'],
14
+ dayNamesShort: ['Son', 'Maa', 'Din', 'Woe', 'Don', 'Vry', 'Sat'],
15
+ dayNamesMin: ['So','Ma','Di','Wo','Do','Vr','Sa'],
16
+ weekHeader: 'Wk',
17
+ dateFormat: 'dd/mm/yy',
18
+ firstDay: 1,
19
+ isRTL: false,
20
+ showMonthAfterYear: false,
21
+ yearSuffix: ''};
22
+ $.datepicker.setDefaults($.datepicker.regional['af']);
23
+ });
24
+ /* Algerian Arabic Translation for jQuery UI date picker plugin. (can be used for Tunisia)*/
25
+ /* Mohamed Cherif BOUCHELAGHEM -- cherifbouchelaghem@yahoo.fr */
26
+
27
+ jQuery(function($){
28
+ $.datepicker.regional['ar-DZ'] = {
29
+ closeText: 'إغلاق',
30
+ prevText: '&#x3c;السابق',
31
+ nextText: 'التالي&#x3e;',
32
+ currentText: 'اليوم',
33
+ monthNames: ['جانفي', 'فيفري', 'مارس', 'أفريل', 'ماي', 'جوان',
34
+ 'جويلية', 'أوت', 'سبتمبر','أكتوبر', 'نوفمبر', 'ديسمبر'],
35
+ monthNamesShort: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'],
36
+ dayNames: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
37
+ dayNamesShort: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
38
+ dayNamesMin: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
39
+ weekHeader: 'أسبوع',
40
+ dateFormat: 'dd/mm/yy',
41
+ firstDay: 6,
42
+ isRTL: true,
43
+ showMonthAfterYear: false,
44
+ yearSuffix: ''};
45
+ $.datepicker.setDefaults($.datepicker.regional['ar-DZ']);
46
+ });
47
+ /* Arabic Translation for jQuery UI date picker plugin. */
48
+ /* Khaled Alhourani -- me@khaledalhourani.com */
49
+ /* NOTE: monthNames are the original months names and they are the Arabic names, not the new months name فبراير - يناير and there isn't any Arabic roots for these months */
50
+ jQuery(function($){
51
+ $.datepicker.regional['ar'] = {
52
+ closeText: 'إغلاق',
53
+ prevText: '&#x3c;السابق',
54
+ nextText: 'التالي&#x3e;',
55
+ currentText: 'اليوم',
56
+ monthNames: ['كانون الثاني', 'شباط', 'آذار', 'نيسان', 'مايو', 'حزيران',
57
+ 'تموز', 'آب', 'أيلول', 'تشرين الأول', 'تشرين الثاني', 'كانون الأول'],
58
+ monthNamesShort: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'],
59
+ dayNames: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
60
+ dayNamesShort: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
61
+ dayNamesMin: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
62
+ weekHeader: 'أسبوع',
63
+ dateFormat: 'dd/mm/yy',
64
+ firstDay: 6,
65
+ isRTL: true,
66
+ showMonthAfterYear: false,
67
+ yearSuffix: ''};
68
+ $.datepicker.setDefaults($.datepicker.regional['ar']);
69
+ });/* Azerbaijani (UTF-8) initialisation for the jQuery UI date picker plugin. */
70
+ /* Written by Jamil Najafov (necefov33@gmail.com). */
71
+ jQuery(function($) {
72
+ $.datepicker.regional['az'] = {
73
+ closeText: 'Bağla',
74
+ prevText: '&#x3c;Geri',
75
+ nextText: 'İrəli&#x3e;',
76
+ currentText: 'Bugün',
77
+ monthNames: ['Yanvar','Fevral','Mart','Aprel','May','İyun',
78
+ 'İyul','Avqust','Sentyabr','Oktyabr','Noyabr','Dekabr'],
79
+ monthNamesShort: ['Yan','Fev','Mar','Apr','May','İyun',
80
+ 'İyul','Avq','Sen','Okt','Noy','Dek'],
81
+ dayNames: ['Bazar','Bazar ertəsi','Çərşənbə axşamı','Çərşənbə','Cümə axşamı','Cümə','Şənbə'],
82
+ dayNamesShort: ['B','Be','Ça','Ç','Ca','C','Ş'],
83
+ dayNamesMin: ['B','B','Ç','С','Ç','C','Ş'],
84
+ weekHeader: 'Hf',
85
+ dateFormat: 'dd.mm.yy',
86
+ firstDay: 1,
87
+ isRTL: false,
88
+ showMonthAfterYear: false,
89
+ yearSuffix: ''};
90
+ $.datepicker.setDefaults($.datepicker.regional['az']);
91
+ });/* Bulgarian initialisation for the jQuery UI date picker plugin. */
92
+ /* Written by Stoyan Kyosev (http://svest.org). */
93
+ jQuery(function($){
94
+ $.datepicker.regional['bg'] = {
95
+ closeText: 'затвори',
96
+ prevText: '&#x3c;назад',
97
+ nextText: 'напред&#x3e;',
98
+ nextBigText: '&#x3e;&#x3e;',
99
+ currentText: 'днес',
100
+ monthNames: ['Януари','Февруари','Март','Април','Май','Юни',
101
+ 'Юли','Август','Септември','Октомври','Ноември','Декември'],
102
+ monthNamesShort: ['Яну','Фев','Мар','Апр','Май','Юни',
103
+ 'Юли','Авг','Сеп','Окт','Нов','Дек'],
104
+ dayNames: ['Неделя','Понеделник','Вторник','Сряда','Четвъртък','Петък','Събота'],
105
+ dayNamesShort: ['Нед','Пон','Вто','Сря','Чет','Пет','Съб'],
106
+ dayNamesMin: ['Не','По','Вт','Ср','Че','Пе','Съ'],
107
+ weekHeader: 'Wk',
108
+ dateFormat: 'dd.mm.yy',
109
+ firstDay: 1,
110
+ isRTL: false,
111
+ showMonthAfterYear: false,
112
+ yearSuffix: ''};
113
+ $.datepicker.setDefaults($.datepicker.regional['bg']);
114
+ });
115
+ /* Bosnian i18n for the jQuery UI date picker plugin. */
116
+ /* Written by Kenan Konjo. */
117
+ jQuery(function($){
118
+ $.datepicker.regional['bs'] = {
119
+ closeText: 'Zatvori',
120
+ prevText: '&#x3c;',
121
+ nextText: '&#x3e;',
122
+ currentText: 'Danas',
123
+ monthNames: ['Januar','Februar','Mart','April','Maj','Juni',
124
+ 'Juli','August','Septembar','Oktobar','Novembar','Decembar'],
125
+ monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun',
126
+ 'Jul','Aug','Sep','Okt','Nov','Dec'],
127
+ dayNames: ['Nedelja','Ponedeljak','Utorak','Srijeda','Četvrtak','Petak','Subota'],
128
+ dayNamesShort: ['Ned','Pon','Uto','Sri','Čet','Pet','Sub'],
129
+ dayNamesMin: ['Ne','Po','Ut','Sr','Če','Pe','Su'],
130
+ weekHeader: 'Wk',
131
+ dateFormat: 'dd.mm.yy',
132
+ firstDay: 1,
133
+ isRTL: false,
134
+ showMonthAfterYear: false,
135
+ yearSuffix: ''};
136
+ $.datepicker.setDefaults($.datepicker.regional['bs']);
137
+ });/* Inicialització en català per a l'extenció 'calendar' per jQuery. */
138
+ /* Writers: (joan.leon@gmail.com). */
139
+ jQuery(function($){
140
+ $.datepicker.regional['ca'] = {
141
+ closeText: 'Tancar',
142
+ prevText: '&#x3c;Ant',
143
+ nextText: 'Seg&#x3e;',
144
+ currentText: 'Avui',
145
+ monthNames: ['Gener','Febrer','Mar&ccedil;','Abril','Maig','Juny',
146
+ 'Juliol','Agost','Setembre','Octubre','Novembre','Desembre'],
147
+ monthNamesShort: ['Gen','Feb','Mar','Abr','Mai','Jun',
148
+ 'Jul','Ago','Set','Oct','Nov','Des'],
149
+ dayNames: ['Diumenge','Dilluns','Dimarts','Dimecres','Dijous','Divendres','Dissabte'],
150
+ dayNamesShort: ['Dug','Dln','Dmt','Dmc','Djs','Dvn','Dsb'],
151
+ dayNamesMin: ['Dg','Dl','Dt','Dc','Dj','Dv','Ds'],
152
+ weekHeader: 'Sm',
153
+ dateFormat: 'dd/mm/yy',
154
+ firstDay: 1,
155
+ isRTL: false,
156
+ showMonthAfterYear: false,
157
+ yearSuffix: ''};
158
+ $.datepicker.setDefaults($.datepicker.regional['ca']);
159
+ });/* Czech initialisation for the jQuery UI date picker plugin. */
160
+ /* Written by Tomas Muller (tomas@tomas-muller.net). */
161
+ jQuery(function($){
162
+ $.datepicker.regional['cs'] = {
163
+ closeText: 'Zavřít',
164
+ prevText: '&#x3c;Dříve',
165
+ nextText: 'Později&#x3e;',
166
+ currentText: 'Nyní',
167
+ monthNames: ['leden','únor','březen','duben','květen','červen',
168
+ 'červenec','srpen','září','říjen','listopad','prosinec'],
169
+ monthNamesShort: ['led','úno','bře','dub','kvě','čer',
170
+ 'čvc','srp','zář','říj','lis','pro'],
171
+ dayNames: ['neděle', 'pondělí', 'úterý', 'středa', 'čtvrtek', 'pátek', 'sobota'],
172
+ dayNamesShort: ['ne', 'po', 'út', 'st', 'čt', 'pá', 'so'],
173
+ dayNamesMin: ['ne','po','út','st','čt','pá','so'],
174
+ weekHeader: 'Týd',
175
+ dateFormat: 'dd.mm.yy',
176
+ firstDay: 1,
177
+ isRTL: false,
178
+ showMonthAfterYear: false,
179
+ yearSuffix: ''};
180
+ $.datepicker.setDefaults($.datepicker.regional['cs']);
181
+ });
182
+ /* Danish initialisation for the jQuery UI date picker plugin. */
183
+ /* Written by Jan Christensen ( deletestuff@gmail.com). */
184
+ jQuery(function($){
185
+ $.datepicker.regional['da'] = {
186
+ closeText: 'Luk',
187
+ prevText: '&#x3c;Forrige',
188
+ nextText: 'Næste&#x3e;',
189
+ currentText: 'Idag',
190
+ monthNames: ['Januar','Februar','Marts','April','Maj','Juni',
191
+ 'Juli','August','September','Oktober','November','December'],
192
+ monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun',
193
+ 'Jul','Aug','Sep','Okt','Nov','Dec'],
194
+ dayNames: ['Søndag','Mandag','Tirsdag','Onsdag','Torsdag','Fredag','Lørdag'],
195
+ dayNamesShort: ['Søn','Man','Tir','Ons','Tor','Fre','Lør'],
196
+ dayNamesMin: ['Sø','Ma','Ti','On','To','Fr','Lø'],
197
+ weekHeader: 'Uge',
198
+ dateFormat: 'dd-mm-yy',
199
+ firstDay: 1,
200
+ isRTL: false,
201
+ showMonthAfterYear: false,
202
+ yearSuffix: ''};
203
+ $.datepicker.setDefaults($.datepicker.regional['da']);
204
+ });
205
+ /* German initialisation for the jQuery UI date picker plugin. */
206
+ /* Written by Milian Wolff (mail@milianw.de). */
207
+ jQuery(function($){
208
+ $.datepicker.regional['de'] = {
209
+ closeText: 'schließen',
210
+ prevText: '&#x3c;zurück',
211
+ nextText: 'Vor&#x3e;',
212
+ currentText: 'heute',
213
+ monthNames: ['Januar','Februar','März','April','Mai','Juni',
214
+ 'Juli','August','September','Oktober','November','Dezember'],
215
+ monthNamesShort: ['Jan','Feb','Mär','Apr','Mai','Jun',
216
+ 'Jul','Aug','Sep','Okt','Nov','Dez'],
217
+ dayNames: ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'],
218
+ dayNamesShort: ['So','Mo','Di','Mi','Do','Fr','Sa'],
219
+ dayNamesMin: ['So','Mo','Di','Mi','Do','Fr','Sa'],
220
+ weekHeader: 'Wo',
221
+ dateFormat: 'dd.mm.yy',
222
+ firstDay: 1,
223
+ isRTL: false,
224
+ showMonthAfterYear: false,
225
+ yearSuffix: ''};
226
+ $.datepicker.setDefaults($.datepicker.regional['de']);
227
+ });
228
+ /* Greek (el) initialisation for the jQuery UI date picker plugin. */
229
+ /* Written by Alex Cicovic (http://www.alexcicovic.com) */
230
+ jQuery(function($){
231
+ $.datepicker.regional['el'] = {
232
+ closeText: 'Κλείσιμο',
233
+ prevText: 'Προηγούμενος',
234
+ nextText: 'Επόμενος',
235
+ currentText: 'Τρέχων Μήνας',
236
+ monthNames: ['Ιανουάριος','Φεβρουάριος','Μάρτιος','Απρίλιος','Μάιος','Ιούνιος',
237
+ 'Ιούλιος','Αύγουστος','Σεπτέμβριος','Οκτώβριος','Νοέμβριος','Δεκέμβριος'],
238
+ monthNamesShort: ['Ιαν','Φεβ','Μαρ','Απρ','Μαι','Ιουν',
239
+ 'Ιουλ','Αυγ','Σεπ','Οκτ','Νοε','Δεκ'],
240
+ dayNames: ['Κυριακή','Δευτέρα','Τρίτη','Τετάρτη','Πέμπτη','Παρασκευή','Σάββατο'],
241
+ dayNamesShort: ['Κυρ','Δευ','Τρι','Τετ','Πεμ','Παρ','Σαβ'],
242
+ dayNamesMin: ['Κυ','Δε','Τρ','Τε','Πε','Πα','Σα'],
243
+ weekHeader: 'Εβδ',
244
+ dateFormat: 'dd/mm/yy',
245
+ firstDay: 1,
246
+ isRTL: false,
247
+ showMonthAfterYear: false,
248
+ yearSuffix: ''};
249
+ $.datepicker.setDefaults($.datepicker.regional['el']);
250
+ });/* English/Australia initialisation for the jQuery UI date picker plugin. */
251
+ /* Based on the en-GB initialisation. */
252
+ jQuery(function($){
253
+ $.datepicker.regional['en-AU'] = {
254
+ closeText: 'Done',
255
+ prevText: 'Prev',
256
+ nextText: 'Next',
257
+ currentText: 'Today',
258
+ monthNames: ['January','February','March','April','May','June',
259
+ 'July','August','September','October','November','December'],
260
+ monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
261
+ 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
262
+ dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
263
+ dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
264
+ dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'],
265
+ weekHeader: 'Wk',
266
+ dateFormat: 'dd/mm/yy',
267
+ firstDay: 1,
268
+ isRTL: false,
269
+ showMonthAfterYear: false,
270
+ yearSuffix: ''};
271
+ $.datepicker.setDefaults($.datepicker.regional['en-AU']);
272
+ });
273
+ /* English/UK initialisation for the jQuery UI date picker plugin. */
274
+ /* Written by Stuart. */
275
+ jQuery(function($){
276
+ $.datepicker.regional['en-GB'] = {
277
+ closeText: 'Done',
278
+ prevText: 'Prev',
279
+ nextText: 'Next',
280
+ currentText: 'Today',
281
+ monthNames: ['January','February','March','April','May','June',
282
+ 'July','August','September','October','November','December'],
283
+ monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
284
+ 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
285
+ dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
286
+ dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
287
+ dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'],
288
+ weekHeader: 'Wk',
289
+ dateFormat: 'dd/mm/yy',
290
+ firstDay: 1,
291
+ isRTL: false,
292
+ showMonthAfterYear: false,
293
+ yearSuffix: ''};
294
+ $.datepicker.setDefaults($.datepicker.regional['en-GB']);
295
+ });
296
+ /* English/New Zealand initialisation for the jQuery UI date picker plugin. */
297
+ /* Based on the en-GB initialisation. */
298
+ jQuery(function($){
299
+ $.datepicker.regional['en-NZ'] = {
300
+ closeText: 'Done',
301
+ prevText: 'Prev',
302
+ nextText: 'Next',
303
+ currentText: 'Today',
304
+ monthNames: ['January','February','March','April','May','June',
305
+ 'July','August','September','October','November','December'],
306
+ monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
307
+ 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
308
+ dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
309
+ dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
310
+ dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'],
311
+ weekHeader: 'Wk',
312
+ dateFormat: 'dd/mm/yy',
313
+ firstDay: 1,
314
+ isRTL: false,
315
+ showMonthAfterYear: false,
316
+ yearSuffix: ''};
317
+ $.datepicker.setDefaults($.datepicker.regional['en-NZ']);
318
+ });
319
+ /* Esperanto initialisation for the jQuery UI date picker plugin. */
320
+ /* Written by Olivier M. (olivierweb@ifrance.com). */
321
+ jQuery(function($){
322
+ $.datepicker.regional['eo'] = {
323
+ closeText: 'Fermi',
324
+ prevText: '&lt;Anta',
325
+ nextText: 'Sekv&gt;',
326
+ currentText: 'Nuna',
327
+ monthNames: ['Januaro','Februaro','Marto','Aprilo','Majo','Junio',
328
+ 'Julio','Aŭgusto','Septembro','Oktobro','Novembro','Decembro'],
329
+ monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun',
330
+ 'Jul','Aŭg','Sep','Okt','Nov','Dec'],
331
+ dayNames: ['Dimanĉo','Lundo','Mardo','Merkredo','Ĵaŭdo','Vendredo','Sabato'],
332
+ dayNamesShort: ['Dim','Lun','Mar','Mer','Ĵaŭ','Ven','Sab'],
333
+ dayNamesMin: ['Di','Lu','Ma','Me','Ĵa','Ve','Sa'],
334
+ weekHeader: 'Sb',
335
+ dateFormat: 'dd/mm/yy',
336
+ firstDay: 0,
337
+ isRTL: false,
338
+ showMonthAfterYear: false,
339
+ yearSuffix: ''};
340
+ $.datepicker.setDefaults($.datepicker.regional['eo']);
341
+ });
342
+ /* Inicialización en español para la extensión 'UI date picker' para jQuery. */
343
+ /* Traducido por Vester (xvester@gmail.com). */
344
+ jQuery(function($){
345
+ $.datepicker.regional['es'] = {
346
+ closeText: 'Cerrar',
347
+ prevText: '&#x3c;Ant',
348
+ nextText: 'Sig&#x3e;',
349
+ currentText: 'Hoy',
350
+ monthNames: ['Enero','Febrero','Marzo','Abril','Mayo','Junio',
351
+ 'Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'],
352
+ monthNamesShort: ['Ene','Feb','Mar','Abr','May','Jun',
353
+ 'Jul','Ago','Sep','Oct','Nov','Dic'],
354
+ dayNames: ['Domingo','Lunes','Martes','Mi&eacute;rcoles','Jueves','Viernes','S&aacute;bado'],
355
+ dayNamesShort: ['Dom','Lun','Mar','Mi&eacute;','Juv','Vie','S&aacute;b'],
356
+ dayNamesMin: ['Do','Lu','Ma','Mi','Ju','Vi','S&aacute;'],
357
+ weekHeader: 'Sm',
358
+ dateFormat: 'dd/mm/yy',
359
+ firstDay: 1,
360
+ isRTL: false,
361
+ showMonthAfterYear: false,
362
+ yearSuffix: ''};
363
+ $.datepicker.setDefaults($.datepicker.regional['es']);
364
+ });/* Estonian initialisation for the jQuery UI date picker plugin. */
365
+ /* Written by Mart Sõmermaa (mrts.pydev at gmail com). */
366
+ jQuery(function($){
367
+ $.datepicker.regional['et'] = {
368
+ closeText: 'Sulge',
369
+ prevText: 'Eelnev',
370
+ nextText: 'Järgnev',
371
+ currentText: 'Täna',
372
+ monthNames: ['Jaanuar','Veebruar','Märts','Aprill','Mai','Juuni',
373
+ 'Juuli','August','September','Oktoober','November','Detsember'],
374
+ monthNamesShort: ['Jaan', 'Veebr', 'Märts', 'Apr', 'Mai', 'Juuni',
375
+ 'Juuli', 'Aug', 'Sept', 'Okt', 'Nov', 'Dets'],
376
+ dayNames: ['Pühapäev', 'Esmaspäev', 'Teisipäev', 'Kolmapäev', 'Neljapäev', 'Reede', 'Laupäev'],
377
+ dayNamesShort: ['Pühap', 'Esmasp', 'Teisip', 'Kolmap', 'Neljap', 'Reede', 'Laup'],
378
+ dayNamesMin: ['P','E','T','K','N','R','L'],
379
+ weekHeader: 'Sm',
380
+ dateFormat: 'dd.mm.yy',
381
+ firstDay: 1,
382
+ isRTL: false,
383
+ showMonthAfterYear: false,
384
+ yearSuffix: ''};
385
+ $.datepicker.setDefaults($.datepicker.regional['et']);
386
+ }); /* Euskarako oinarria 'UI date picker' jquery-ko extentsioarentzat */
387
+ /* Karrikas-ek itzulia (karrikas@karrikas.com) */
388
+ jQuery(function($){
389
+ $.datepicker.regional['eu'] = {
390
+ closeText: 'Egina',
391
+ prevText: '&#x3c;Aur',
392
+ nextText: 'Hur&#x3e;',
393
+ currentText: 'Gaur',
394
+ monthNames: ['Urtarrila','Otsaila','Martxoa','Apirila','Maiatza','Ekaina',
395
+ 'Uztaila','Abuztua','Iraila','Urria','Azaroa','Abendua'],
396
+ monthNamesShort: ['Urt','Ots','Mar','Api','Mai','Eka',
397
+ 'Uzt','Abu','Ira','Urr','Aza','Abe'],
398
+ dayNames: ['Igandea','Astelehena','Asteartea','Asteazkena','Osteguna','Ostirala','Larunbata'],
399
+ dayNamesShort: ['Iga','Ast','Ast','Ast','Ost','Ost','Lar'],
400
+ dayNamesMin: ['Ig','As','As','As','Os','Os','La'],
401
+ weekHeader: 'Wk',
402
+ dateFormat: 'yy/mm/dd',
403
+ firstDay: 1,
404
+ isRTL: false,
405
+ showMonthAfterYear: false,
406
+ yearSuffix: ''};
407
+ $.datepicker.setDefaults($.datepicker.regional['eu']);
408
+ });/* Persian (Farsi) Translation for the jQuery UI date picker plugin. */
409
+ /* Javad Mowlanezhad -- jmowla@gmail.com */
410
+ /* Jalali calendar should supported soon! (Its implemented but I have to test it) */
411
+ jQuery(function($) {
412
+ $.datepicker.regional['fa'] = {
413
+ closeText: 'بستن',
414
+ prevText: '&#x3c;قبلي',
415
+ nextText: 'بعدي&#x3e;',
416
+ currentText: 'امروز',
417
+ monthNames: ['فروردين','ارديبهشت','خرداد','تير','مرداد','شهريور',
418
+ 'مهر','آبان','آذر','دي','بهمن','اسفند'],
419
+ monthNamesShort: ['1','2','3','4','5','6','7','8','9','10','11','12'],
420
+ dayNames: ['يکشنبه','دوشنبه','سه‌شنبه','چهارشنبه','پنجشنبه','جمعه','شنبه'],
421
+ dayNamesShort: ['ي','د','س','چ','پ','ج', 'ش'],
422
+ dayNamesMin: ['ي','د','س','چ','پ','ج', 'ش'],
423
+ weekHeader: 'هف',
424
+ dateFormat: 'yy/mm/dd',
425
+ firstDay: 6,
426
+ isRTL: true,
427
+ showMonthAfterYear: false,
428
+ yearSuffix: ''};
429
+ $.datepicker.setDefaults($.datepicker.regional['fa']);
430
+ });/* Finnish initialisation for the jQuery UI date picker plugin. */
431
+ /* Written by Harri Kilpi� (harrikilpio@gmail.com). */
432
+ jQuery(function($){
433
+ $.datepicker.regional['fi'] = {
434
+ closeText: 'Sulje',
435
+ prevText: '&laquo;Edellinen',
436
+ nextText: 'Seuraava&raquo;',
437
+ currentText: 'T&auml;n&auml;&auml;n',
438
+ monthNames: ['Tammikuu','Helmikuu','Maaliskuu','Huhtikuu','Toukokuu','Kes&auml;kuu',
439
+ 'Hein&auml;kuu','Elokuu','Syyskuu','Lokakuu','Marraskuu','Joulukuu'],
440
+ monthNamesShort: ['Tammi','Helmi','Maalis','Huhti','Touko','Kes&auml;',
441
+ 'Hein&auml;','Elo','Syys','Loka','Marras','Joulu'],
442
+ dayNamesShort: ['Su','Ma','Ti','Ke','To','Pe','Su'],
443
+ dayNames: ['Sunnuntai','Maanantai','Tiistai','Keskiviikko','Torstai','Perjantai','Lauantai'],
444
+ dayNamesMin: ['Su','Ma','Ti','Ke','To','Pe','La'],
445
+ weekHeader: 'Vk',
446
+ dateFormat: 'dd.mm.yy',
447
+ firstDay: 1,
448
+ isRTL: false,
449
+ showMonthAfterYear: false,
450
+ yearSuffix: ''};
451
+ $.datepicker.setDefaults($.datepicker.regional['fi']);
452
+ });
453
+ /* Faroese initialisation for the jQuery UI date picker plugin */
454
+ /* Written by Sverri Mohr Olsen, sverrimo@gmail.com */
455
+ jQuery(function($){
456
+ $.datepicker.regional['fo'] = {
457
+ closeText: 'Lat aftur',
458
+ prevText: '&#x3c;Fyrra',
459
+ nextText: 'Næsta&#x3e;',
460
+ currentText: 'Í dag',
461
+ monthNames: ['Januar','Februar','Mars','Apríl','Mei','Juni',
462
+ 'Juli','August','September','Oktober','November','Desember'],
463
+ monthNamesShort: ['Jan','Feb','Mar','Apr','Mei','Jun',
464
+ 'Jul','Aug','Sep','Okt','Nov','Des'],
465
+ dayNames: ['Sunnudagur','Mánadagur','Týsdagur','Mikudagur','Hósdagur','Fríggjadagur','Leyardagur'],
466
+ dayNamesShort: ['Sun','Mán','Týs','Mik','Hós','Frí','Ley'],
467
+ dayNamesMin: ['Su','Má','Tý','Mi','Hó','Fr','Le'],
468
+ weekHeader: 'Vk',
469
+ dateFormat: 'dd-mm-yy',
470
+ firstDay: 0,
471
+ isRTL: false,
472
+ showMonthAfterYear: false,
473
+ yearSuffix: ''};
474
+ $.datepicker.setDefaults($.datepicker.regional['fo']);
475
+ });
476
+ /* Swiss-French initialisation for the jQuery UI date picker plugin. */
477
+ /* Written Martin Voelkle (martin.voelkle@e-tc.ch). */
478
+ jQuery(function($){
479
+ $.datepicker.regional['fr-CH'] = {
480
+ closeText: 'Fermer',
481
+ prevText: '&#x3c;Préc',
482
+ nextText: 'Suiv&#x3e;',
483
+ currentText: 'Courant',
484
+ monthNames: ['Janvier','Février','Mars','Avril','Mai','Juin',
485
+ 'Juillet','Août','Septembre','Octobre','Novembre','Décembre'],
486
+ monthNamesShort: ['Jan','Fév','Mar','Avr','Mai','Jun',
487
+ 'Jul','Aoû','Sep','Oct','Nov','Déc'],
488
+ dayNames: ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'],
489
+ dayNamesShort: ['Dim','Lun','Mar','Mer','Jeu','Ven','Sam'],
490
+ dayNamesMin: ['Di','Lu','Ma','Me','Je','Ve','Sa'],
491
+ weekHeader: 'Sm',
492
+ dateFormat: 'dd.mm.yy',
493
+ firstDay: 1,
494
+ isRTL: false,
495
+ showMonthAfterYear: false,
496
+ yearSuffix: ''};
497
+ $.datepicker.setDefaults($.datepicker.regional['fr-CH']);
498
+ });/* French initialisation for the jQuery UI date picker plugin. */
499
+ /* Written by Keith Wood (kbwood{at}iinet.com.au),
500
+ Stéphane Nahmani (sholby@sholby.net),
501
+ Stéphane Raimbault <stephane.raimbault@gmail.com> */
502
+ jQuery(function($){
503
+ $.datepicker.regional['fr'] = {
504
+ closeText: 'Fermer',
505
+ prevText: 'Précédent',
506
+ nextText: 'Suivant',
507
+ currentText: 'Aujourd\'hui',
508
+ monthNames: ['Janvier','Février','Mars','Avril','Mai','Juin',
509
+ 'Juillet','Août','Septembre','Octobre','Novembre','Décembre'],
510
+ monthNamesShort: ['Janv.','Févr.','Mars','Avril','Mai','Juin',
511
+ 'Juil.','Août','Sept.','Oct.','Nov.','Déc.'],
512
+ dayNames: ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'],
513
+ dayNamesShort: ['Dim.','Lun.','Mar.','Mer.','Jeu.','Ven.','Sam.'],
514
+ dayNamesMin: ['D','L','M','M','J','V','S'],
515
+ weekHeader: 'Sem.',
516
+ dateFormat: 'dd/mm/yy',
517
+ firstDay: 1,
518
+ isRTL: false,
519
+ showMonthAfterYear: false,
520
+ yearSuffix: ''};
521
+ $.datepicker.setDefaults($.datepicker.regional['fr']);
522
+ });
523
+ /* Galician localization for 'UI date picker' jQuery extension. */
524
+ /* Translated by Jorge Barreiro <yortx.barry@gmail.com>. */
525
+ jQuery(function($){
526
+ $.datepicker.regional['gl'] = {
527
+ closeText: 'Pechar',
528
+ prevText: '&#x3c;Ant',
529
+ nextText: 'Seg&#x3e;',
530
+ currentText: 'Hoxe',
531
+ monthNames: ['Xaneiro','Febreiro','Marzo','Abril','Maio','Xuño',
532
+ 'Xullo','Agosto','Setembro','Outubro','Novembro','Decembro'],
533
+ monthNamesShort: ['Xan','Feb','Mar','Abr','Mai','Xuñ',
534
+ 'Xul','Ago','Set','Out','Nov','Dec'],
535
+ dayNames: ['Domingo','Luns','Martes','M&eacute;rcores','Xoves','Venres','S&aacute;bado'],
536
+ dayNamesShort: ['Dom','Lun','Mar','M&eacute;r','Xov','Ven','S&aacute;b'],
537
+ dayNamesMin: ['Do','Lu','Ma','M&eacute;','Xo','Ve','S&aacute;'],
538
+ weekHeader: 'Sm',
539
+ dateFormat: 'dd/mm/yy',
540
+ firstDay: 1,
541
+ isRTL: false,
542
+ showMonthAfterYear: false,
543
+ yearSuffix: ''};
544
+ $.datepicker.setDefaults($.datepicker.regional['gl']);
545
+ });/* Hebrew initialisation for the UI Datepicker extension. */
546
+ /* Written by Amir Hardon (ahardon at gmail dot com). */
547
+ jQuery(function($){
548
+ $.datepicker.regional['he'] = {
549
+ closeText: 'סגור',
550
+ prevText: '&#x3c;הקודם',
551
+ nextText: 'הבא&#x3e;',
552
+ currentText: 'היום',
553
+ monthNames: ['ינואר','פברואר','מרץ','אפריל','מאי','יוני',
554
+ 'יולי','אוגוסט','ספטמבר','אוקטובר','נובמבר','דצמבר'],
555
+ monthNamesShort: ['1','2','3','4','5','6',
556
+ '7','8','9','10','11','12'],
557
+ dayNames: ['ראשון','שני','שלישי','רביעי','חמישי','שישי','שבת'],
558
+ dayNamesShort: ['א\'','ב\'','ג\'','ד\'','ה\'','ו\'','שבת'],
559
+ dayNamesMin: ['א\'','ב\'','ג\'','ד\'','ה\'','ו\'','שבת'],
560
+ weekHeader: 'Wk',
561
+ dateFormat: 'dd/mm/yy',
562
+ firstDay: 0,
563
+ isRTL: true,
564
+ showMonthAfterYear: false,
565
+ yearSuffix: ''};
566
+ $.datepicker.setDefaults($.datepicker.regional['he']);
567
+ });
568
+ /* Croatian i18n for the jQuery UI date picker plugin. */
569
+ /* Written by Vjekoslav Nesek. */
570
+ jQuery(function($){
571
+ $.datepicker.regional['hr'] = {
572
+ closeText: 'Zatvori',
573
+ prevText: '&#x3c;',
574
+ nextText: '&#x3e;',
575
+ currentText: 'Danas',
576
+ monthNames: ['Siječanj','Veljača','Ožujak','Travanj','Svibanj','Lipanj',
577
+ 'Srpanj','Kolovoz','Rujan','Listopad','Studeni','Prosinac'],
578
+ monthNamesShort: ['Sij','Velj','Ožu','Tra','Svi','Lip',
579
+ 'Srp','Kol','Ruj','Lis','Stu','Pro'],
580
+ dayNames: ['Nedjelja','Ponedjeljak','Utorak','Srijeda','Četvrtak','Petak','Subota'],
581
+ dayNamesShort: ['Ned','Pon','Uto','Sri','Čet','Pet','Sub'],
582
+ dayNamesMin: ['Ne','Po','Ut','Sr','Če','Pe','Su'],
583
+ weekHeader: 'Tje',
584
+ dateFormat: 'dd.mm.yy.',
585
+ firstDay: 1,
586
+ isRTL: false,
587
+ showMonthAfterYear: false,
588
+ yearSuffix: ''};
589
+ $.datepicker.setDefaults($.datepicker.regional['hr']);
590
+ });/* Hungarian initialisation for the jQuery UI date picker plugin. */
591
+ /* Written by Istvan Karaszi (jquery@spam.raszi.hu). */
592
+ jQuery(function($){
593
+ $.datepicker.regional['hu'] = {
594
+ closeText: 'bezárás',
595
+ prevText: '&laquo;&nbsp;vissza',
596
+ nextText: 'előre&nbsp;&raquo;',
597
+ currentText: 'ma',
598
+ monthNames: ['Január', 'Február', 'Március', 'Április', 'Május', 'Június',
599
+ 'Július', 'Augusztus', 'Szeptember', 'Október', 'November', 'December'],
600
+ monthNamesShort: ['Jan', 'Feb', 'Már', 'Ápr', 'Máj', 'Jún',
601
+ 'Júl', 'Aug', 'Szep', 'Okt', 'Nov', 'Dec'],
602
+ dayNames: ['Vasárnap', 'Hétfö', 'Kedd', 'Szerda', 'Csütörtök', 'Péntek', 'Szombat'],
603
+ dayNamesShort: ['Vas', 'Hét', 'Ked', 'Sze', 'Csü', 'Pén', 'Szo'],
604
+ dayNamesMin: ['V', 'H', 'K', 'Sze', 'Cs', 'P', 'Szo'],
605
+ weekHeader: 'Hé',
606
+ dateFormat: 'yy-mm-dd',
607
+ firstDay: 1,
608
+ isRTL: false,
609
+ showMonthAfterYear: true,
610
+ yearSuffix: ''};
611
+ $.datepicker.setDefaults($.datepicker.regional['hu']);
612
+ });
613
+ /* Armenian(UTF-8) initialisation for the jQuery UI date picker plugin. */
614
+ /* Written by Levon Zakaryan (levon.zakaryan@gmail.com)*/
615
+ jQuery(function($){
616
+ $.datepicker.regional['hy'] = {
617
+ closeText: 'Փակել',
618
+ prevText: '&#x3c;Նախ.',
619
+ nextText: 'Հաջ.&#x3e;',
620
+ currentText: 'Այսօր',
621
+ monthNames: ['Հունվար','Փետրվար','Մարտ','Ապրիլ','Մայիս','Հունիս',
622
+ 'Հուլիս','Օգոստոս','Սեպտեմբեր','Հոկտեմբեր','Նոյեմբեր','Դեկտեմբեր'],
623
+ monthNamesShort: ['Հունվ','Փետր','Մարտ','Ապր','Մայիս','Հունիս',
624
+ 'Հուլ','Օգս','Սեպ','Հոկ','Նոյ','Դեկ'],
625
+ dayNames: ['կիրակի','եկուշաբթի','երեքշաբթի','չորեքշաբթի','հինգշաբթի','ուրբաթ','շաբաթ'],
626
+ dayNamesShort: ['կիր','երկ','երք','չրք','հնգ','ուրբ','շբթ'],
627
+ dayNamesMin: ['կիր','երկ','երք','չրք','հնգ','ուրբ','շբթ'],
628
+ weekHeader: 'ՇԲՏ',
629
+ dateFormat: 'dd.mm.yy',
630
+ firstDay: 1,
631
+ isRTL: false,
632
+ showMonthAfterYear: false,
633
+ yearSuffix: ''};
634
+ $.datepicker.setDefaults($.datepicker.regional['hy']);
635
+ });/* Indonesian initialisation for the jQuery UI date picker plugin. */
636
+ /* Written by Deden Fathurahman (dedenf@gmail.com). */
637
+ jQuery(function($){
638
+ $.datepicker.regional['id'] = {
639
+ closeText: 'Tutup',
640
+ prevText: '&#x3c;mundur',
641
+ nextText: 'maju&#x3e;',
642
+ currentText: 'hari ini',
643
+ monthNames: ['Januari','Februari','Maret','April','Mei','Juni',
644
+ 'Juli','Agustus','September','Oktober','Nopember','Desember'],
645
+ monthNamesShort: ['Jan','Feb','Mar','Apr','Mei','Jun',
646
+ 'Jul','Agus','Sep','Okt','Nop','Des'],
647
+ dayNames: ['Minggu','Senin','Selasa','Rabu','Kamis','Jumat','Sabtu'],
648
+ dayNamesShort: ['Min','Sen','Sel','Rab','kam','Jum','Sab'],
649
+ dayNamesMin: ['Mg','Sn','Sl','Rb','Km','jm','Sb'],
650
+ weekHeader: 'Mg',
651
+ dateFormat: 'dd/mm/yy',
652
+ firstDay: 0,
653
+ isRTL: false,
654
+ showMonthAfterYear: false,
655
+ yearSuffix: ''};
656
+ $.datepicker.setDefaults($.datepicker.regional['id']);
657
+ });/* Icelandic initialisation for the jQuery UI date picker plugin. */
658
+ /* Written by Haukur H. Thorsson (haukur@eskill.is). */
659
+ jQuery(function($){
660
+ $.datepicker.regional['is'] = {
661
+ closeText: 'Loka',
662
+ prevText: '&#x3c; Fyrri',
663
+ nextText: 'N&aelig;sti &#x3e;',
664
+ currentText: '&Iacute; dag',
665
+ monthNames: ['Jan&uacute;ar','Febr&uacute;ar','Mars','Apr&iacute;l','Ma&iacute','J&uacute;n&iacute;',
666
+ 'J&uacute;l&iacute;','&Aacute;g&uacute;st','September','Okt&oacute;ber','N&oacute;vember','Desember'],
667
+ monthNamesShort: ['Jan','Feb','Mar','Apr','Ma&iacute;','J&uacute;n',
668
+ 'J&uacute;l','&Aacute;g&uacute;','Sep','Okt','N&oacute;v','Des'],
669
+ dayNames: ['Sunnudagur','M&aacute;nudagur','&THORN;ri&eth;judagur','Mi&eth;vikudagur','Fimmtudagur','F&ouml;studagur','Laugardagur'],
670
+ dayNamesShort: ['Sun','M&aacute;n','&THORN;ri','Mi&eth;','Fim','F&ouml;s','Lau'],
671
+ dayNamesMin: ['Su','M&aacute;','&THORN;r','Mi','Fi','F&ouml;','La'],
672
+ weekHeader: 'Vika',
673
+ dateFormat: 'dd/mm/yy',
674
+ firstDay: 0,
675
+ isRTL: false,
676
+ showMonthAfterYear: false,
677
+ yearSuffix: ''};
678
+ $.datepicker.setDefaults($.datepicker.regional['is']);
679
+ });/* Italian initialisation for the jQuery UI date picker plugin. */
680
+ /* Written by Antonello Pasella (antonello.pasella@gmail.com). */
681
+ jQuery(function($){
682
+ $.datepicker.regional['it'] = {
683
+ closeText: 'Chiudi',
684
+ prevText: '&#x3c;Prec',
685
+ nextText: 'Succ&#x3e;',
686
+ currentText: 'Oggi',
687
+ monthNames: ['Gennaio','Febbraio','Marzo','Aprile','Maggio','Giugno',
688
+ 'Luglio','Agosto','Settembre','Ottobre','Novembre','Dicembre'],
689
+ monthNamesShort: ['Gen','Feb','Mar','Apr','Mag','Giu',
690
+ 'Lug','Ago','Set','Ott','Nov','Dic'],
691
+ dayNames: ['Domenica','Luned&#236','Marted&#236','Mercoled&#236','Gioved&#236','Venerd&#236','Sabato'],
692
+ dayNamesShort: ['Dom','Lun','Mar','Mer','Gio','Ven','Sab'],
693
+ dayNamesMin: ['Do','Lu','Ma','Me','Gi','Ve','Sa'],
694
+ weekHeader: 'Sm',
695
+ dateFormat: 'dd/mm/yy',
696
+ firstDay: 1,
697
+ isRTL: false,
698
+ showMonthAfterYear: false,
699
+ yearSuffix: ''};
700
+ $.datepicker.setDefaults($.datepicker.regional['it']);
701
+ });
702
+ /* Japanese initialisation for the jQuery UI date picker plugin. */
703
+ /* Written by Kentaro SATO (kentaro@ranvis.com). */
704
+ jQuery(function($){
705
+ $.datepicker.regional['ja'] = {
706
+ closeText: '閉じる',
707
+ prevText: '&#x3c;前',
708
+ nextText: '次&#x3e;',
709
+ currentText: '今日',
710
+ monthNames: ['1月','2月','3月','4月','5月','6月',
711
+ '7月','8月','9月','10月','11月','12月'],
712
+ monthNamesShort: ['1月','2月','3月','4月','5月','6月',
713
+ '7月','8月','9月','10月','11月','12月'],
714
+ dayNames: ['日曜日','月曜日','火曜日','水曜日','木曜日','金曜日','土曜日'],
715
+ dayNamesShort: ['日','月','火','水','木','金','土'],
716
+ dayNamesMin: ['日','月','火','水','木','金','土'],
717
+ weekHeader: '週',
718
+ dateFormat: 'yy/mm/dd',
719
+ firstDay: 0,
720
+ isRTL: false,
721
+ showMonthAfterYear: true,
722
+ yearSuffix: '年'};
723
+ $.datepicker.setDefaults($.datepicker.regional['ja']);
724
+ });/* Korean initialisation for the jQuery calendar extension. */
725
+ /* Written by DaeKwon Kang (ncrash.dk@gmail.com). */
726
+ jQuery(function($){
727
+ $.datepicker.regional['ko'] = {
728
+ closeText: '닫기',
729
+ prevText: '이전달',
730
+ nextText: '다음달',
731
+ currentText: '오늘',
732
+ monthNames: ['1월(JAN)','2월(FEB)','3월(MAR)','4월(APR)','5월(MAY)','6월(JUN)',
733
+ '7월(JUL)','8월(AUG)','9월(SEP)','10월(OCT)','11월(NOV)','12월(DEC)'],
734
+ monthNamesShort: ['1월(JAN)','2월(FEB)','3월(MAR)','4월(APR)','5월(MAY)','6월(JUN)',
735
+ '7월(JUL)','8월(AUG)','9월(SEP)','10월(OCT)','11월(NOV)','12월(DEC)'],
736
+ dayNames: ['일','월','화','수','목','금','토'],
737
+ dayNamesShort: ['일','월','화','수','목','금','토'],
738
+ dayNamesMin: ['일','월','화','수','목','금','토'],
739
+ weekHeader: 'Wk',
740
+ dateFormat: 'yy-mm-dd',
741
+ firstDay: 0,
742
+ isRTL: false,
743
+ showMonthAfterYear: false,
744
+ yearSuffix: '년'};
745
+ $.datepicker.setDefaults($.datepicker.regional['ko']);
746
+ });/* Kazakh (UTF-8) initialisation for the jQuery UI date picker plugin. */
747
+ /* Written by Dmitriy Karasyov (dmitriy.karasyov@gmail.com). */
748
+ jQuery(function($){
749
+ $.datepicker.regional['kz'] = {
750
+ closeText: 'Жабу',
751
+ prevText: '&#x3c;Алдыңғы',
752
+ nextText: 'Келесі&#x3e;',
753
+ currentText: 'Бүгін',
754
+ monthNames: ['Қаңтар','Ақпан','Наурыз','Сәуір','Мамыр','Маусым',
755
+ 'Шілде','Тамыз','Қыркүйек','Қазан','Қараша','Желтоқсан'],
756
+ monthNamesShort: ['Қаң','Ақп','Нау','Сәу','Мам','Мау',
757
+ 'Шіл','Там','Қыр','Қаз','Қар','Жел'],
758
+ dayNames: ['Жексенбі','Дүйсенбі','Сейсенбі','Сәрсенбі','Бейсенбі','Жұма','Сенбі'],
759
+ dayNamesShort: ['жкс','дсн','ссн','срс','бсн','жма','снб'],
760
+ dayNamesMin: ['Жк','Дс','Сс','Ср','Бс','Жм','Сн'],
761
+ weekHeader: 'Не',
762
+ dateFormat: 'dd.mm.yy',
763
+ firstDay: 1,
764
+ isRTL: false,
765
+ showMonthAfterYear: false,
766
+ yearSuffix: ''};
767
+ $.datepicker.setDefaults($.datepicker.regional['kz']);
768
+ });
769
+ /* Lithuanian (UTF-8) initialisation for the jQuery UI date picker plugin. */
770
+ /* @author Arturas Paleicikas <arturas@avalon.lt> */
771
+ jQuery(function($){
772
+ $.datepicker.regional['lt'] = {
773
+ closeText: 'Uždaryti',
774
+ prevText: '&#x3c;Atgal',
775
+ nextText: 'Pirmyn&#x3e;',
776
+ currentText: 'Šiandien',
777
+ monthNames: ['Sausis','Vasaris','Kovas','Balandis','Gegužė','Birželis',
778
+ 'Liepa','Rugpjūtis','Rugsėjis','Spalis','Lapkritis','Gruodis'],
779
+ monthNamesShort: ['Sau','Vas','Kov','Bal','Geg','Bir',
780
+ 'Lie','Rugp','Rugs','Spa','Lap','Gru'],
781
+ dayNames: ['sekmadienis','pirmadienis','antradienis','trečiadienis','ketvirtadienis','penktadienis','šeštadienis'],
782
+ dayNamesShort: ['sek','pir','ant','tre','ket','pen','šeš'],
783
+ dayNamesMin: ['Se','Pr','An','Tr','Ke','Pe','Še'],
784
+ weekHeader: 'Wk',
785
+ dateFormat: 'yy-mm-dd',
786
+ firstDay: 1,
787
+ isRTL: false,
788
+ showMonthAfterYear: false,
789
+ yearSuffix: ''};
790
+ $.datepicker.setDefaults($.datepicker.regional['lt']);
791
+ });/* Latvian (UTF-8) initialisation for the jQuery UI date picker plugin. */
792
+ /* @author Arturas Paleicikas <arturas.paleicikas@metasite.net> */
793
+ jQuery(function($){
794
+ $.datepicker.regional['lv'] = {
795
+ closeText: 'Aizvērt',
796
+ prevText: 'Iepr',
797
+ nextText: 'Nāka',
798
+ currentText: 'Šodien',
799
+ monthNames: ['Janvāris','Februāris','Marts','Aprīlis','Maijs','Jūnijs',
800
+ 'Jūlijs','Augusts','Septembris','Oktobris','Novembris','Decembris'],
801
+ monthNamesShort: ['Jan','Feb','Mar','Apr','Mai','Jūn',
802
+ 'Jūl','Aug','Sep','Okt','Nov','Dec'],
803
+ dayNames: ['svētdiena','pirmdiena','otrdiena','trešdiena','ceturtdiena','piektdiena','sestdiena'],
804
+ dayNamesShort: ['svt','prm','otr','tre','ctr','pkt','sst'],
805
+ dayNamesMin: ['Sv','Pr','Ot','Tr','Ct','Pk','Ss'],
806
+ weekHeader: 'Nav',
807
+ dateFormat: 'dd-mm-yy',
808
+ firstDay: 1,
809
+ isRTL: false,
810
+ showMonthAfterYear: false,
811
+ yearSuffix: ''};
812
+ $.datepicker.setDefaults($.datepicker.regional['lv']);
813
+ });/* Malayalam (UTF-8) initialisation for the jQuery UI date picker plugin. */
814
+ /* Written by Saji Nediyanchath (saji89@gmail.com). */
815
+ jQuery(function($){
816
+ $.datepicker.regional['ml'] = {
817
+ closeText: 'ശരി',
818
+ prevText: 'മുന്നത്തെ',
819
+ nextText: 'അടുത്തത് ',
820
+ currentText: 'ഇന്ന്',
821
+ monthNames: ['ജനുവരി','ഫെബ്രുവരി','മാര്‍ച്ച്','ഏപ്രില്‍','മേയ്','ജൂണ്‍',
822
+ 'ജൂലൈ','ആഗസ്റ്റ്','സെപ്റ്റംബര്‍','ഒക്ടോബര്‍','നവംബര്‍','ഡിസംബര്‍'],
823
+ monthNamesShort: ['ജനു', 'ഫെബ്', 'മാര്‍', 'ഏപ്രി', 'മേയ്', 'ജൂണ്‍',
824
+ 'ജൂലാ', 'ആഗ', 'സെപ്', 'ഒക്ടോ', 'നവം', 'ഡിസ'],
825
+ dayNames: ['ഞായര്‍', 'തിങ്കള്‍', 'ചൊവ്വ', 'ബുധന്‍', 'വ്യാഴം', 'വെള്ളി', 'ശനി'],
826
+ dayNamesShort: ['ഞായ', 'തിങ്ക', 'ചൊവ്വ', 'ബുധ', 'വ്യാഴം', 'വെള്ളി', 'ശനി'],
827
+ dayNamesMin: ['ഞാ','തി','ചൊ','ബു','വ്യാ','വെ','ശ'],
828
+ weekHeader: 'ആ',
829
+ dateFormat: 'dd/mm/yy',
830
+ firstDay: 1,
831
+ isRTL: false,
832
+ showMonthAfterYear: false,
833
+ yearSuffix: ''};
834
+ $.datepicker.setDefaults($.datepicker.regional['ml']);
835
+ });
836
+ /* Malaysian initialisation for the jQuery UI date picker plugin. */
837
+ /* Written by Mohd Nawawi Mohamad Jamili (nawawi@ronggeng.net). */
838
+ jQuery(function($){
839
+ $.datepicker.regional['ms'] = {
840
+ closeText: 'Tutup',
841
+ prevText: '&#x3c;Sebelum',
842
+ nextText: 'Selepas&#x3e;',
843
+ currentText: 'hari ini',
844
+ monthNames: ['Januari','Februari','Mac','April','Mei','Jun',
845
+ 'Julai','Ogos','September','Oktober','November','Disember'],
846
+ monthNamesShort: ['Jan','Feb','Mac','Apr','Mei','Jun',
847
+ 'Jul','Ogo','Sep','Okt','Nov','Dis'],
848
+ dayNames: ['Ahad','Isnin','Selasa','Rabu','Khamis','Jumaat','Sabtu'],
849
+ dayNamesShort: ['Aha','Isn','Sel','Rab','kha','Jum','Sab'],
850
+ dayNamesMin: ['Ah','Is','Se','Ra','Kh','Ju','Sa'],
851
+ weekHeader: 'Mg',
852
+ dateFormat: 'dd/mm/yy',
853
+ firstDay: 0,
854
+ isRTL: false,
855
+ showMonthAfterYear: false,
856
+ yearSuffix: ''};
857
+ $.datepicker.setDefaults($.datepicker.regional['ms']);
858
+ });/* Dutch (UTF-8) initialisation for the jQuery UI date picker plugin. */
859
+ /* Written by Mathias Bynens <http://mathiasbynens.be/> */
860
+ jQuery(function($){
861
+ $.datepicker.regional.nl = {
862
+ closeText: 'Sluiten',
863
+ prevText: '←',
864
+ nextText: '→',
865
+ currentText: 'Vandaag',
866
+ monthNames: ['januari', 'februari', 'maart', 'april', 'mei', 'juni',
867
+ 'juli', 'augustus', 'september', 'oktober', 'november', 'december'],
868
+ monthNamesShort: ['jan', 'feb', 'maa', 'apr', 'mei', 'jun',
869
+ 'jul', 'aug', 'sep', 'okt', 'nov', 'dec'],
870
+ dayNames: ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag'],
871
+ dayNamesShort: ['zon', 'maa', 'din', 'woe', 'don', 'vri', 'zat'],
872
+ dayNamesMin: ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'],
873
+ weekHeader: 'Wk',
874
+ dateFormat: 'dd-mm-yy',
875
+ firstDay: 1,
876
+ isRTL: false,
877
+ showMonthAfterYear: false,
878
+ yearSuffix: ''};
879
+ $.datepicker.setDefaults($.datepicker.regional.nl);
880
+ });/* Norwegian initialisation for the jQuery UI date picker plugin. */
881
+ /* Written by Naimdjon Takhirov (naimdjon@gmail.com). */
882
+
883
+ jQuery(function($){
884
+ $.datepicker.regional['no'] = {
885
+ closeText: 'Lukk',
886
+ prevText: '&laquo;Forrige',
887
+ nextText: 'Neste&raquo;',
888
+ currentText: 'I dag',
889
+ monthNames: ['januar','februar','mars','april','mai','juni','juli','august','september','oktober','november','desember'],
890
+ monthNamesShort: ['jan','feb','mar','apr','mai','jun','jul','aug','sep','okt','nov','des'],
891
+ dayNamesShort: ['søn','man','tir','ons','tor','fre','lør'],
892
+ dayNames: ['søndag','mandag','tirsdag','onsdag','torsdag','fredag','lørdag'],
893
+ dayNamesMin: ['sø','ma','ti','on','to','fr','lø'],
894
+ weekHeader: 'Uke',
895
+ dateFormat: 'dd.mm.yy',
896
+ firstDay: 1,
897
+ isRTL: false,
898
+ showMonthAfterYear: false,
899
+ yearSuffix: ''
900
+ };
901
+ $.datepicker.setDefaults($.datepicker.regional['no']);
902
+ });
903
+ /* Polish initialisation for the jQuery UI date picker plugin. */
904
+ /* Written by Jacek Wysocki (jacek.wysocki@gmail.com). */
905
+ jQuery(function($){
906
+ $.datepicker.regional['pl'] = {
907
+ closeText: 'Zamknij',
908
+ prevText: '&#x3c;Poprzedni',
909
+ nextText: 'Następny&#x3e;',
910
+ currentText: 'Dziś',
911
+ monthNames: ['Styczeń','Luty','Marzec','Kwiecień','Maj','Czerwiec',
912
+ 'Lipiec','Sierpień','Wrzesień','Październik','Listopad','Grudzień'],
913
+ monthNamesShort: ['Sty','Lu','Mar','Kw','Maj','Cze',
914
+ 'Lip','Sie','Wrz','Pa','Lis','Gru'],
915
+ dayNames: ['Niedziela','Poniedziałek','Wtorek','Środa','Czwartek','Piątek','Sobota'],
916
+ dayNamesShort: ['Nie','Pn','Wt','Śr','Czw','Pt','So'],
917
+ dayNamesMin: ['N','Pn','Wt','Śr','Cz','Pt','So'],
918
+ weekHeader: 'Tydz',
919
+ dateFormat: 'dd.mm.yy',
920
+ firstDay: 1,
921
+ isRTL: false,
922
+ showMonthAfterYear: false,
923
+ yearSuffix: ''};
924
+ $.datepicker.setDefaults($.datepicker.regional['pl']);
925
+ });
926
+ /* Brazilian initialisation for the jQuery UI date picker plugin. */
927
+ /* Written by Leonildo Costa Silva (leocsilva@gmail.com). */
928
+ jQuery(function($){
929
+ $.datepicker.regional['pt-BR'] = {
930
+ closeText: 'Fechar',
931
+ prevText: '&#x3c;Anterior',
932
+ nextText: 'Pr&oacute;ximo&#x3e;',
933
+ currentText: 'Hoje',
934
+ monthNames: ['Janeiro','Fevereiro','Mar&ccedil;o','Abril','Maio','Junho',
935
+ 'Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'],
936
+ monthNamesShort: ['Jan','Fev','Mar','Abr','Mai','Jun',
937
+ 'Jul','Ago','Set','Out','Nov','Dez'],
938
+ dayNames: ['Domingo','Segunda-feira','Ter&ccedil;a-feira','Quarta-feira','Quinta-feira','Sexta-feira','S&aacute;bado'],
939
+ dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','S&aacute;b'],
940
+ dayNamesMin: ['Dom','Seg','Ter','Qua','Qui','Sex','S&aacute;b'],
941
+ weekHeader: 'Sm',
942
+ dateFormat: 'dd/mm/yy',
943
+ firstDay: 0,
944
+ isRTL: false,
945
+ showMonthAfterYear: false,
946
+ yearSuffix: ''};
947
+ $.datepicker.setDefaults($.datepicker.regional['pt-BR']);
948
+ });/* Portuguese initialisation for the jQuery UI date picker plugin. */
949
+ jQuery(function($){
950
+ $.datepicker.regional['pt'] = {
951
+ closeText: 'Fechar',
952
+ prevText: '&#x3c;Anterior',
953
+ nextText: 'Seguinte',
954
+ currentText: 'Hoje',
955
+ monthNames: ['Janeiro','Fevereiro','Mar&ccedil;o','Abril','Maio','Junho',
956
+ 'Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'],
957
+ monthNamesShort: ['Jan','Fev','Mar','Abr','Mai','Jun',
958
+ 'Jul','Ago','Set','Out','Nov','Dez'],
959
+ dayNames: ['Domingo','Segunda-feira','Ter&ccedil;a-feira','Quarta-feira','Quinta-feira','Sexta-feira','S&aacute;bado'],
960
+ dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','S&aacute;b'],
961
+ dayNamesMin: ['Dom','Seg','Ter','Qua','Qui','Sex','S&aacute;b'],
962
+ weekHeader: 'Sem',
963
+ dateFormat: 'dd/mm/yy',
964
+ firstDay: 0,
965
+ isRTL: false,
966
+ showMonthAfterYear: false,
967
+ yearSuffix: ''};
968
+ $.datepicker.setDefaults($.datepicker.regional['pt']);
969
+ });/* Romansh initialisation for the jQuery UI date picker plugin. */
970
+ /* Written by Yvonne Gienal (yvonne.gienal@educa.ch). */
971
+ jQuery(function($){
972
+ $.datepicker.regional['rm'] = {
973
+ closeText: 'Serrar',
974
+ prevText: '&#x3c;Suandant',
975
+ nextText: 'Precedent&#x3e;',
976
+ currentText: 'Actual',
977
+ monthNames: ['Schaner','Favrer','Mars','Avrigl','Matg','Zercladur', 'Fanadur','Avust','Settember','October','November','December'],
978
+ monthNamesShort: ['Scha','Fev','Mar','Avr','Matg','Zer', 'Fan','Avu','Sett','Oct','Nov','Dec'],
979
+ dayNames: ['Dumengia','Glindesdi','Mardi','Mesemna','Gievgia','Venderdi','Sonda'],
980
+ dayNamesShort: ['Dum','Gli','Mar','Mes','Gie','Ven','Som'],
981
+ dayNamesMin: ['Du','Gl','Ma','Me','Gi','Ve','So'],
982
+ weekHeader: 'emna',
983
+ dateFormat: 'dd/mm/yy',
984
+ firstDay: 1,
985
+ isRTL: false,
986
+ showMonthAfterYear: false,
987
+ yearSuffix: ''};
988
+ $.datepicker.setDefaults($.datepicker.regional['rm']);
989
+ });
990
+ /* Romanian initialisation for the jQuery UI date picker plugin.
991
+ *
992
+ * Written by Edmond L. (ll_edmond@walla.com)
993
+ * and Ionut G. Stan (ionut.g.stan@gmail.com)
994
+ */
995
+ jQuery(function($){
996
+ $.datepicker.regional['ro'] = {
997
+ closeText: 'Închide',
998
+ prevText: '&laquo; Luna precedentă',
999
+ nextText: 'Luna următoare &raquo;',
1000
+ currentText: 'Azi',
1001
+ monthNames: ['Ianuarie','Februarie','Martie','Aprilie','Mai','Iunie',
1002
+ 'Iulie','August','Septembrie','Octombrie','Noiembrie','Decembrie'],
1003
+ monthNamesShort: ['Ian', 'Feb', 'Mar', 'Apr', 'Mai', 'Iun',
1004
+ 'Iul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
1005
+ dayNames: ['Duminică', 'Luni', 'Marţi', 'Miercuri', 'Joi', 'Vineri', 'Sâmbătă'],
1006
+ dayNamesShort: ['Dum', 'Lun', 'Mar', 'Mie', 'Joi', 'Vin', 'Sâm'],
1007
+ dayNamesMin: ['Du','Lu','Ma','Mi','Jo','Vi','Sâ'],
1008
+ weekHeader: 'Săpt',
1009
+ dateFormat: 'dd.mm.yy',
1010
+ firstDay: 1,
1011
+ isRTL: false,
1012
+ showMonthAfterYear: false,
1013
+ yearSuffix: ''};
1014
+ $.datepicker.setDefaults($.datepicker.regional['ro']);
1015
+ });
1016
+ /* Russian (UTF-8) initialisation for the jQuery UI date picker plugin. */
1017
+ /* Written by Andrew Stromnov (stromnov@gmail.com). */
1018
+ jQuery(function($){
1019
+ $.datepicker.regional['ru'] = {
1020
+ closeText: 'Закрыть',
1021
+ prevText: '&#x3c;Пред',
1022
+ nextText: 'След&#x3e;',
1023
+ currentText: 'Сегодня',
1024
+ monthNames: ['Январь','Февраль','Март','Апрель','Май','Июнь',
1025
+ 'Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'],
1026
+ monthNamesShort: ['Янв','Фев','Мар','Апр','Май','Июн',
1027
+ 'Июл','Авг','Сен','Окт','Ноя','Дек'],
1028
+ dayNames: ['воскресенье','понедельник','вторник','среда','четверг','пятница','суббота'],
1029
+ dayNamesShort: ['вск','пнд','втр','срд','чтв','птн','сбт'],
1030
+ dayNamesMin: ['Вс','Пн','Вт','Ср','Чт','Пт','Сб'],
1031
+ weekHeader: 'Нед',
1032
+ dateFormat: 'dd.mm.yy',
1033
+ firstDay: 1,
1034
+ isRTL: false,
1035
+ showMonthAfterYear: false,
1036
+ yearSuffix: ''};
1037
+ $.datepicker.setDefaults($.datepicker.regional['ru']);
1038
+ });/* Slovak initialisation for the jQuery UI date picker plugin. */
1039
+ /* Written by Vojtech Rinik (vojto@hmm.sk). */
1040
+ jQuery(function($){
1041
+ $.datepicker.regional['sk'] = {
1042
+ closeText: 'Zavrieť',
1043
+ prevText: '&#x3c;Predchádzajúci',
1044
+ nextText: 'Nasledujúci&#x3e;',
1045
+ currentText: 'Dnes',
1046
+ monthNames: ['Január','Február','Marec','Apríl','Máj','Jún',
1047
+ 'Júl','August','September','Október','November','December'],
1048
+ monthNamesShort: ['Jan','Feb','Mar','Apr','Máj','Jún',
1049
+ 'Júl','Aug','Sep','Okt','Nov','Dec'],
1050
+ dayNames: ['Nedeľa','Pondelok','Utorok','Streda','Štvrtok','Piatok','Sobota'],
1051
+ dayNamesShort: ['Ned','Pon','Uto','Str','Štv','Pia','Sob'],
1052
+ dayNamesMin: ['Ne','Po','Ut','St','Št','Pia','So'],
1053
+ weekHeader: 'Ty',
1054
+ dateFormat: 'dd.mm.yy',
1055
+ firstDay: 1,
1056
+ isRTL: false,
1057
+ showMonthAfterYear: false,
1058
+ yearSuffix: ''};
1059
+ $.datepicker.setDefaults($.datepicker.regional['sk']);
1060
+ });
1061
+ /* Slovenian initialisation for the jQuery UI date picker plugin. */
1062
+ /* Written by Jaka Jancar (jaka@kubje.org). */
1063
+ /* c = &#x10D;, s = &#x161; z = &#x17E; C = &#x10C; S = &#x160; Z = &#x17D; */
1064
+ jQuery(function($){
1065
+ $.datepicker.regional['sl'] = {
1066
+ closeText: 'Zapri',
1067
+ prevText: '&lt;Prej&#x161;nji',
1068
+ nextText: 'Naslednji&gt;',
1069
+ currentText: 'Trenutni',
1070
+ monthNames: ['Januar','Februar','Marec','April','Maj','Junij',
1071
+ 'Julij','Avgust','September','Oktober','November','December'],
1072
+ monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun',
1073
+ 'Jul','Avg','Sep','Okt','Nov','Dec'],
1074
+ dayNames: ['Nedelja','Ponedeljek','Torek','Sreda','&#x10C;etrtek','Petek','Sobota'],
1075
+ dayNamesShort: ['Ned','Pon','Tor','Sre','&#x10C;et','Pet','Sob'],
1076
+ dayNamesMin: ['Ne','Po','To','Sr','&#x10C;e','Pe','So'],
1077
+ weekHeader: 'Teden',
1078
+ dateFormat: 'dd.mm.yy',
1079
+ firstDay: 1,
1080
+ isRTL: false,
1081
+ showMonthAfterYear: false,
1082
+ yearSuffix: ''};
1083
+ $.datepicker.setDefaults($.datepicker.regional['sl']);
1084
+ });
1085
+ /* Albanian initialisation for the jQuery UI date picker plugin. */
1086
+ /* Written by Flakron Bytyqi (flakron@gmail.com). */
1087
+ jQuery(function($){
1088
+ $.datepicker.regional['sq'] = {
1089
+ closeText: 'mbylle',
1090
+ prevText: '&#x3c;mbrapa',
1091
+ nextText: 'Përpara&#x3e;',
1092
+ currentText: 'sot',
1093
+ monthNames: ['Janar','Shkurt','Mars','Prill','Maj','Qershor',
1094
+ 'Korrik','Gusht','Shtator','Tetor','Nëntor','Dhjetor'],
1095
+ monthNamesShort: ['Jan','Shk','Mar','Pri','Maj','Qer',
1096
+ 'Kor','Gus','Sht','Tet','Nën','Dhj'],
1097
+ dayNames: ['E Diel','E Hënë','E Martë','E Mërkurë','E Enjte','E Premte','E Shtune'],
1098
+ dayNamesShort: ['Di','Hë','Ma','Më','En','Pr','Sh'],
1099
+ dayNamesMin: ['Di','Hë','Ma','Më','En','Pr','Sh'],
1100
+ weekHeader: 'Ja',
1101
+ dateFormat: 'dd.mm.yy',
1102
+ firstDay: 1,
1103
+ isRTL: false,
1104
+ showMonthAfterYear: false,
1105
+ yearSuffix: ''};
1106
+ $.datepicker.setDefaults($.datepicker.regional['sq']);
1107
+ });
1108
+ /* Serbian i18n for the jQuery UI date picker plugin. */
1109
+ /* Written by Dejan Dimić. */
1110
+ jQuery(function($){
1111
+ $.datepicker.regional['sr-SR'] = {
1112
+ closeText: 'Zatvori',
1113
+ prevText: '&#x3c;',
1114
+ nextText: '&#x3e;',
1115
+ currentText: 'Danas',
1116
+ monthNames: ['Januar','Februar','Mart','April','Maj','Jun',
1117
+ 'Jul','Avgust','Septembar','Oktobar','Novembar','Decembar'],
1118
+ monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun',
1119
+ 'Jul','Avg','Sep','Okt','Nov','Dec'],
1120
+ dayNames: ['Nedelja','Ponedeljak','Utorak','Sreda','Četvrtak','Petak','Subota'],
1121
+ dayNamesShort: ['Ned','Pon','Uto','Sre','Čet','Pet','Sub'],
1122
+ dayNamesMin: ['Ne','Po','Ut','Sr','Če','Pe','Su'],
1123
+ weekHeader: 'Sed',
1124
+ dateFormat: 'dd/mm/yy',
1125
+ firstDay: 1,
1126
+ isRTL: false,
1127
+ showMonthAfterYear: false,
1128
+ yearSuffix: ''};
1129
+ $.datepicker.setDefaults($.datepicker.regional['sr-SR']);
1130
+ });
1131
+ /* Serbian i18n for the jQuery UI date picker plugin. */
1132
+ /* Written by Dejan Dimić. */
1133
+ jQuery(function($){
1134
+ $.datepicker.regional['sr'] = {
1135
+ closeText: 'Затвори',
1136
+ prevText: '&#x3c;',
1137
+ nextText: '&#x3e;',
1138
+ currentText: 'Данас',
1139
+ monthNames: ['Јануар','Фебруар','Март','Април','Мај','Јун',
1140
+ 'Јул','Август','Септембар','Октобар','Новембар','Децембар'],
1141
+ monthNamesShort: ['Јан','Феб','Мар','Апр','Мај','Јун',
1142
+ 'Јул','Авг','Сеп','Окт','Нов','Дец'],
1143
+ dayNames: ['Недеља','Понедељак','Уторак','Среда','Четвртак','Петак','Субота'],
1144
+ dayNamesShort: ['Нед','Пон','Уто','Сре','Чет','Пет','Суб'],
1145
+ dayNamesMin: ['Не','По','Ут','Ср','Че','Пе','Су'],
1146
+ weekHeader: 'Сед',
1147
+ dateFormat: 'dd/mm/yy',
1148
+ firstDay: 1,
1149
+ isRTL: false,
1150
+ showMonthAfterYear: false,
1151
+ yearSuffix: ''};
1152
+ $.datepicker.setDefaults($.datepicker.regional['sr']);
1153
+ });
1154
+ /* Swedish initialisation for the jQuery UI date picker plugin. */
1155
+ /* Written by Anders Ekdahl ( anders@nomadiz.se). */
1156
+ jQuery(function($){
1157
+ $.datepicker.regional['sv'] = {
1158
+ closeText: 'Stäng',
1159
+ prevText: '&laquo;Förra',
1160
+ nextText: 'Nästa&raquo;',
1161
+ currentText: 'Idag',
1162
+ monthNames: ['Januari','Februari','Mars','April','Maj','Juni',
1163
+ 'Juli','Augusti','September','Oktober','November','December'],
1164
+ monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun',
1165
+ 'Jul','Aug','Sep','Okt','Nov','Dec'],
1166
+ dayNamesShort: ['Sön','Mån','Tis','Ons','Tor','Fre','Lör'],
1167
+ dayNames: ['Söndag','Måndag','Tisdag','Onsdag','Torsdag','Fredag','Lördag'],
1168
+ dayNamesMin: ['Sö','Må','Ti','On','To','Fr','Lö'],
1169
+ weekHeader: 'Ve',
1170
+ dateFormat: 'yy-mm-dd',
1171
+ firstDay: 1,
1172
+ isRTL: false,
1173
+ showMonthAfterYear: false,
1174
+ yearSuffix: ''};
1175
+ $.datepicker.setDefaults($.datepicker.regional['sv']);
1176
+ });
1177
+ /* Tamil (UTF-8) initialisation for the jQuery UI date picker plugin. */
1178
+ /* Written by S A Sureshkumar (saskumar@live.com). */
1179
+ jQuery(function($){
1180
+ $.datepicker.regional['ta'] = {
1181
+ closeText: 'மூடு',
1182
+ prevText: 'முன்னையது',
1183
+ nextText: 'அடுத்தது',
1184
+ currentText: 'இன்று',
1185
+ monthNames: ['தை','மாசி','பங்குனி','சித்திரை','வைகாசி','ஆனி',
1186
+ 'ஆடி','ஆவணி','புரட்டாசி','ஐப்பசி','கார்த்திகை','மார்கழி'],
1187
+ monthNamesShort: ['தை','மாசி','பங்','சித்','வைகா','ஆனி',
1188
+ 'ஆடி','ஆவ','புர','ஐப்','கார்','மார்'],
1189
+ dayNames: ['ஞாயிற்றுக்கிழமை','திங்கட்கிழமை','செவ்வாய்க்கிழமை','புதன்கிழமை','வியாழக்கிழமை','வெள்ளிக்கிழமை','சனிக்கிழமை'],
1190
+ dayNamesShort: ['ஞாயிறு','திங்கள்','செவ்வாய்','புதன்','வியாழன்','வெள்ளி','சனி'],
1191
+ dayNamesMin: ['ஞா','தி','செ','பு','வி','வெ','ச'],
1192
+ weekHeader: 'Не',
1193
+ dateFormat: 'dd/mm/yy',
1194
+ firstDay: 1,
1195
+ isRTL: false,
1196
+ showMonthAfterYear: false,
1197
+ yearSuffix: ''};
1198
+ $.datepicker.setDefaults($.datepicker.regional['ta']);
1199
+ });
1200
+ /* Thai initialisation for the jQuery UI date picker plugin. */
1201
+ /* Written by pipo (pipo@sixhead.com). */
1202
+ jQuery(function($){
1203
+ $.datepicker.regional['th'] = {
1204
+ closeText: 'ปิด',
1205
+ prevText: '&laquo;&nbsp;ย้อน',
1206
+ nextText: 'ถัดไป&nbsp;&raquo;',
1207
+ currentText: 'วันนี้',
1208
+ monthNames: ['มกราคม','กุมภาพันธ์','มีนาคม','เมษายน','พฤษภาคม','มิถุนายน',
1209
+ 'กรกฎาคม','สิงหาคม','กันยายน','ตุลาคม','พฤศจิกายน','ธันวาคม'],
1210
+ monthNamesShort: ['ม.ค.','ก.พ.','มี.ค.','เม.ย.','พ.ค.','มิ.ย.',
1211
+ 'ก.ค.','ส.ค.','ก.ย.','ต.ค.','พ.ย.','ธ.ค.'],
1212
+ dayNames: ['อาทิตย์','จันทร์','อังคาร','พุธ','พฤหัสบดี','ศุกร์','เสาร์'],
1213
+ dayNamesShort: ['อา.','จ.','อ.','พ.','พฤ.','ศ.','ส.'],
1214
+ dayNamesMin: ['อา.','จ.','อ.','พ.','พฤ.','ศ.','ส.'],
1215
+ weekHeader: 'Wk',
1216
+ dateFormat: 'dd/mm/yy',
1217
+ firstDay: 0,
1218
+ isRTL: false,
1219
+ showMonthAfterYear: false,
1220
+ yearSuffix: ''};
1221
+ $.datepicker.setDefaults($.datepicker.regional['th']);
1222
+ });/* Tajiki (UTF-8) initialisation for the jQuery UI date picker plugin. */
1223
+ /* Written by Abdurahmon Saidov (saidovab@gmail.com). */
1224
+ jQuery(function($){
1225
+ $.datepicker.regional['tj'] = {
1226
+ closeText: 'Идома',
1227
+ prevText: '&#x3c;Қафо',
1228
+ nextText: 'Пеш&#x3e;',
1229
+ currentText: 'Имрӯз',
1230
+ monthNames: ['Январ','Феврал','Март','Апрел','Май','Июн',
1231
+ 'Июл','Август','Сентябр','Октябр','Ноябр','Декабр'],
1232
+ monthNamesShort: ['Янв','Фев','Мар','Апр','Май','Июн',
1233
+ 'Июл','Авг','Сен','Окт','Ноя','Дек'],
1234
+ dayNames: ['якшанбе','душанбе','сешанбе','чоршанбе','панҷшанбе','ҷумъа','шанбе'],
1235
+ dayNamesShort: ['якш','душ','сеш','чор','пан','ҷум','шан'],
1236
+ dayNamesMin: ['Як','Дш','Сш','Чш','Пш','Ҷм','Шн'],
1237
+ weekHeader: 'Хф',
1238
+ dateFormat: 'dd.mm.yy',
1239
+ firstDay: 1,
1240
+ isRTL: false,
1241
+ showMonthAfterYear: false,
1242
+ yearSuffix: ''};
1243
+ $.datepicker.setDefaults($.datepicker.regional['tj']);
1244
+ });/* Turkish initialisation for the jQuery UI date picker plugin. */
1245
+ /* Written by Izzet Emre Erkan (kara@karalamalar.net). */
1246
+ jQuery(function($){
1247
+ $.datepicker.regional['tr'] = {
1248
+ closeText: 'kapat',
1249
+ prevText: '&#x3c;geri',
1250
+ nextText: 'ileri&#x3e',
1251
+ currentText: 'bugün',
1252
+ monthNames: ['Ocak','Şubat','Mart','Nisan','Mayıs','Haziran',
1253
+ 'Temmuz','Ağustos','Eylül','Ekim','Kasım','Aralık'],
1254
+ monthNamesShort: ['Oca','Şub','Mar','Nis','May','Haz',
1255
+ 'Tem','Ağu','Eyl','Eki','Kas','Ara'],
1256
+ dayNames: ['Pazar','Pazartesi','Salı','Çarşamba','Perşembe','Cuma','Cumartesi'],
1257
+ dayNamesShort: ['Pz','Pt','Sa','Ça','Pe','Cu','Ct'],
1258
+ dayNamesMin: ['Pz','Pt','Sa','Ça','Pe','Cu','Ct'],
1259
+ weekHeader: 'Hf',
1260
+ dateFormat: 'dd.mm.yy',
1261
+ firstDay: 1,
1262
+ isRTL: false,
1263
+ showMonthAfterYear: false,
1264
+ yearSuffix: ''};
1265
+ $.datepicker.setDefaults($.datepicker.regional['tr']);
1266
+ });/* Ukrainian (UTF-8) initialisation for the jQuery UI date picker plugin. */
1267
+ /* Written by Maxim Drogobitskiy (maxdao@gmail.com). */
1268
+ jQuery(function($){
1269
+ $.datepicker.regional['uk'] = {
1270
+ closeText: 'Закрити',
1271
+ prevText: '&#x3c;',
1272
+ nextText: '&#x3e;',
1273
+ currentText: 'Сьогодні',
1274
+ monthNames: ['Січень','Лютий','Березень','Квітень','Травень','Червень',
1275
+ 'Липень','Серпень','Вересень','Жовтень','Листопад','Грудень'],
1276
+ monthNamesShort: ['Січ','Лют','Бер','Кві','Тра','Чер',
1277
+ 'Лип','Сер','Вер','Жов','Лис','Гру'],
1278
+ dayNames: ['неділя','понеділок','вівторок','середа','четвер','п’ятниця','субота'],
1279
+ dayNamesShort: ['нед','пнд','вів','срд','чтв','птн','сбт'],
1280
+ dayNamesMin: ['Нд','Пн','Вт','Ср','Чт','Пт','Сб'],
1281
+ weekHeader: 'Не',
1282
+ dateFormat: 'dd/mm/yy',
1283
+ firstDay: 1,
1284
+ isRTL: false,
1285
+ showMonthAfterYear: false,
1286
+ yearSuffix: ''};
1287
+ $.datepicker.setDefaults($.datepicker.regional['uk']);
1288
+ });/* Vietnamese initialisation for the jQuery UI date picker plugin. */
1289
+ /* Translated by Le Thanh Huy (lthanhhuy@cit.ctu.edu.vn). */
1290
+ jQuery(function($){
1291
+ $.datepicker.regional['vi'] = {
1292
+ closeText: 'Đóng',
1293
+ prevText: '&#x3c;Trước',
1294
+ nextText: 'Tiếp&#x3e;',
1295
+ currentText: 'Hôm nay',
1296
+ monthNames: ['Tháng Một', 'Tháng Hai', 'Tháng Ba', 'Tháng Tư', 'Tháng Năm', 'Tháng Sáu',
1297
+ 'Tháng Bảy', 'Tháng Tám', 'Tháng Chín', 'Tháng Mười', 'Tháng Mười Một', 'Tháng Mười Hai'],
1298
+ monthNamesShort: ['Tháng 1', 'Tháng 2', 'Tháng 3', 'Tháng 4', 'Tháng 5', 'Tháng 6',
1299
+ 'Tháng 7', 'Tháng 8', 'Tháng 9', 'Tháng 10', 'Tháng 11', 'Tháng 12'],
1300
+ dayNames: ['Chủ Nhật', 'Thứ Hai', 'Thứ Ba', 'Thứ Tư', 'Thứ Năm', 'Thứ Sáu', 'Thứ Bảy'],
1301
+ dayNamesShort: ['CN', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7'],
1302
+ dayNamesMin: ['CN', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7'],
1303
+ weekHeader: 'Tu',
1304
+ dateFormat: 'dd/mm/yy',
1305
+ firstDay: 0,
1306
+ isRTL: false,
1307
+ showMonthAfterYear: false,
1308
+ yearSuffix: ''};
1309
+ $.datepicker.setDefaults($.datepicker.regional['vi']);
1310
+ });
1311
+ /* Chinese initialisation for the jQuery UI date picker plugin. */
1312
+ /* Written by Cloudream (cloudream@gmail.com). */
1313
+ jQuery(function($){
1314
+ $.datepicker.regional['zh-CN'] = {
1315
+ closeText: '关闭',
1316
+ prevText: '&#x3c;上月',
1317
+ nextText: '下月&#x3e;',
1318
+ currentText: '今天',
1319
+ monthNames: ['一月','二月','三月','四月','五月','六月',
1320
+ '七月','八月','九月','十月','十一月','十二月'],
1321
+ monthNamesShort: ['一','二','三','四','五','六',
1322
+ '七','八','九','十','十一','十二'],
1323
+ dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'],
1324
+ dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'],
1325
+ dayNamesMin: ['日','一','二','三','四','五','六'],
1326
+ weekHeader: '周',
1327
+ dateFormat: 'yy-mm-dd',
1328
+ firstDay: 1,
1329
+ isRTL: false,
1330
+ showMonthAfterYear: true,
1331
+ yearSuffix: '年'};
1332
+ $.datepicker.setDefaults($.datepicker.regional['zh-CN']);
1333
+ });
1334
+ /* Chinese initialisation for the jQuery UI date picker plugin. */
1335
+ /* Written by SCCY (samuelcychan@gmail.com). */
1336
+ jQuery(function($){
1337
+ $.datepicker.regional['zh-HK'] = {
1338
+ closeText: '關閉',
1339
+ prevText: '&#x3c;上月',
1340
+ nextText: '下月&#x3e;',
1341
+ currentText: '今天',
1342
+ monthNames: ['一月','二月','三月','四月','五月','六月',
1343
+ '七月','八月','九月','十月','十一月','十二月'],
1344
+ monthNamesShort: ['一','二','三','四','五','六',
1345
+ '七','八','九','十','十一','十二'],
1346
+ dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'],
1347
+ dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'],
1348
+ dayNamesMin: ['日','一','二','三','四','五','六'],
1349
+ weekHeader: '周',
1350
+ dateFormat: 'dd-mm-yy',
1351
+ firstDay: 0,
1352
+ isRTL: false,
1353
+ showMonthAfterYear: true,
1354
+ yearSuffix: '年'};
1355
+ $.datepicker.setDefaults($.datepicker.regional['zh-HK']);
1356
+ });
1357
+ /* Chinese initialisation for the jQuery UI date picker plugin. */
1358
+ /* Written by Ressol (ressol@gmail.com). */
1359
+ jQuery(function($){
1360
+ $.datepicker.regional['zh-TW'] = {
1361
+ closeText: '關閉',
1362
+ prevText: '&#x3c;上月',
1363
+ nextText: '下月&#x3e;',
1364
+ currentText: '今天',
1365
+ monthNames: ['一月','二月','三月','四月','五月','六月',
1366
+ '七月','八月','九月','十月','十一月','十二月'],
1367
+ monthNamesShort: ['一','二','三','四','五','六',
1368
+ '七','八','九','十','十一','十二'],
1369
+ dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'],
1370
+ dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'],
1371
+ dayNamesMin: ['日','一','二','三','四','五','六'],
1372
+ weekHeader: '周',
1373
+ dateFormat: 'yy/mm/dd',
1374
+ firstDay: 1,
1375
+ isRTL: false,
1376
+ showMonthAfterYear: true,
1377
+ yearSuffix: '年'};
1378
+ $.datepicker.setDefaults($.datepicker.regional['zh-TW']);
1379
+ });
js/i18n/jquery.ui.datepicker-af.js ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Afrikaans initialisation for the jQuery UI date picker plugin. */
2
+ /* Written by Renier Pretorius. */
3
+ jQuery(function($){
4
+ $.datepicker.regional['af'] = {
5
+ closeText: 'Selekteer',
6
+ prevText: 'Vorige',
7
+ nextText: 'Volgende',
8
+ currentText: 'Vandag',
9
+ monthNames: ['Januarie','Februarie','Maart','April','Mei','Junie',
10
+ 'Julie','Augustus','September','Oktober','November','Desember'],
11
+ monthNamesShort: ['Jan', 'Feb', 'Mrt', 'Apr', 'Mei', 'Jun',
12
+ 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Des'],
13
+ dayNames: ['Sondag', 'Maandag', 'Dinsdag', 'Woensdag', 'Donderdag', 'Vrydag', 'Saterdag'],
14
+ dayNamesShort: ['Son', 'Maa', 'Din', 'Woe', 'Don', 'Vry', 'Sat'],
15
+ dayNamesMin: ['So','Ma','Di','Wo','Do','Vr','Sa'],
16
+ weekHeader: 'Wk',
17
+ dateFormat: 'dd/mm/yy',
18
+ firstDay: 1,
19
+ isRTL: false,
20
+ showMonthAfterYear: false,
21
+ yearSuffix: ''};
22
+ $.datepicker.setDefaults($.datepicker.regional['af']);
23
+ });
js/i18n/jquery.ui.datepicker-ar-DZ.js ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Algerian Arabic Translation for jQuery UI date picker plugin. (can be used for Tunisia)*/
2
+ /* Mohamed Cherif BOUCHELAGHEM -- cherifbouchelaghem@yahoo.fr */
3
+
4
+ jQuery(function($){
5
+ $.datepicker.regional['ar-DZ'] = {
6
+ closeText: 'إغلاق',
7
+ prevText: '&#x3c;السابق',
8
+ nextText: 'التالي&#x3e;',
9
+ currentText: 'اليوم',
10
+ monthNames: ['جانفي', 'فيفري', 'مارس', 'أفريل', 'ماي', 'جوان',
11
+ 'جويلية', 'أوت', 'سبتمبر','أكتوبر', 'نوفمبر', 'ديسمبر'],
12
+ monthNamesShort: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'],
13
+ dayNames: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
14
+ dayNamesShort: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
15
+ dayNamesMin: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
16
+ weekHeader: 'أسبوع',
17
+ dateFormat: 'dd/mm/yy',
18
+ firstDay: 6,
19
+ isRTL: true,
20
+ showMonthAfterYear: false,
21
+ yearSuffix: ''};
22
+ $.datepicker.setDefaults($.datepicker.regional['ar-DZ']);
23
+ });
js/i18n/jquery.ui.datepicker-ar.js ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Arabic Translation for jQuery UI date picker plugin. */
2
+ /* Khaled Alhourani -- me@khaledalhourani.com */
3
+ /* NOTE: monthNames are the original months names and they are the Arabic names, not the new months name فبراير - يناير and there isn't any Arabic roots for these months */
4
+ jQuery(function($){
5
+ $.datepicker.regional['ar'] = {
6
+ closeText: 'إغلاق',
7
+ prevText: '&#x3c;السابق',
8
+ nextText: 'التالي&#x3e;',
9
+ currentText: 'اليوم',
10
+ monthNames: ['كانون الثاني', 'شباط', 'آذار', 'نيسان', 'مايو', 'حزيران',
11
+ 'تموز', 'آب', 'أيلول', 'تشرين الأول', 'تشرين الثاني', 'كانون الأول'],
12
+ monthNamesShort: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'],
13
+ dayNames: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
14
+ dayNamesShort: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
15
+ dayNamesMin: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
16
+ weekHeader: 'أسبوع',
17
+ dateFormat: 'dd/mm/yy',
18
+ firstDay: 6,
19
+ isRTL: true,
20
+ showMonthAfterYear: false,
21
+ yearSuffix: ''};
22
+ $.datepicker.setDefaults($.datepicker.regional['ar']);
23
+ });
js/i18n/jquery.ui.datepicker-az.js ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Azerbaijani (UTF-8) initialisation for the jQuery UI date picker plugin. */
2
+ /* Written by Jamil Najafov (necefov33@gmail.com). */
3
+ jQuery(function($) {
4
+ $.datepicker.regional['az'] = {
5
+ closeText: 'Bağla',
6
+ prevText: '&#x3c;Geri',
7
+ nextText: 'İrəli&#x3e;',
8
+ currentText: 'Bugün',
9
+ monthNames: ['Yanvar','Fevral','Mart','Aprel','May','İyun',
10
+ 'İyul','Avqust','Sentyabr','Oktyabr','Noyabr','Dekabr'],
11
+ monthNamesShort: ['Yan','Fev','Mar','Apr','May','İyun',
12
+ 'İyul','Avq','Sen','Okt','Noy','Dek'],
13
+ dayNames: ['Bazar','Bazar ertəsi','Çərşənbə axşamı','Çərşənbə','Cümə axşamı','Cümə','Şənbə'],
14
+ dayNamesShort: ['B','Be','Ça','Ç','Ca','C','Ş'],
15
+ dayNamesMin: ['B','B','Ç','С','Ç','C','Ş'],
16
+ weekHeader: 'Hf',
17
+ dateFormat: 'dd.mm.yy',
18
+ firstDay: 1,
19
+ isRTL: false,
20
+ showMonthAfterYear: false,
21
+ yearSuffix: ''};
22
+ $.datepicker.setDefaults($.datepicker.regional['az']);
23
+ });
js/i18n/jquery.ui.datepicker-bg.js ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Bulgarian initialisation for the jQuery UI date picker plugin. */
2
+ /* Written by Stoyan Kyosev (http://svest.org). */
3
+ jQuery(function($){
4
+ $.datepicker.regional['bg'] = {
5
+ closeText: 'затвори',
6
+ prevText: '&#x3c;назад',
7
+ nextText: 'напред&#x3e;',
8
+ nextBigText: '&#x3e;&#x3e;',
9
+ currentText: 'днес',
10
+ monthNames: ['Януари','Февруари','Март','Април','Май','Юни',
11
+ 'Юли','Август','Септември','Октомври','Ноември','Декември'],
12
+ monthNamesShort: ['Яну','Фев','Мар','Апр','Май','Юни',
13
+ 'Юли','Авг','Сеп','Окт','Нов','Дек'],
14
+ dayNames: ['Неделя','Понеделник','Вторник','Сряда','Четвъртък','Петък','Събота'],
15
+ dayNamesShort: ['Нед','Пон','Вто','Сря','Чет','Пет','Съб'],
16
+ dayNamesMin: ['Не','По','Вт','Ср','Че','Пе','Съ'],
17
+ weekHeader: 'Wk',
18
+ dateFormat: 'dd.mm.yy',
19
+ firstDay: 1,
20
+ isRTL: false,
21
+ showMonthAfterYear: false,
22
+ yearSuffix: ''};
23
+ $.datepicker.setDefaults($.datepicker.regional['bg']);
24
+ });
js/i18n/jquery.ui.datepicker-bs.js ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Bosnian i18n for the jQuery UI date picker plugin. */
2
+ /* Written by Kenan Konjo. */
3
+ jQuery(function($){
4
+ $.datepicker.regional['bs'] = {
5
+ closeText: 'Zatvori',
6
+ prevText: '&#x3c;',
7
+ nextText: '&#x3e;',
8
+ currentText: 'Danas',
9
+ monthNames: ['Januar','Februar','Mart','April','Maj','Juni',
10
+ 'Juli','August','Septembar','Oktobar','Novembar','Decembar'],
11
+ monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun',
12
+ 'Jul','Aug','Sep','Okt','Nov','Dec'],
13
+ dayNames: ['Nedelja','Ponedeljak','Utorak','Srijeda','Četvrtak','Petak','Subota'],
14
+ dayNamesShort: ['Ned','Pon','Uto','Sri','Čet','Pet','Sub'],
15
+ dayNamesMin: ['Ne','Po','Ut','Sr','Če','Pe','Su'],
16
+ weekHeader: 'Wk',
17
+ dateFormat: 'dd.mm.yy',
18
+ firstDay: 1,
19
+ isRTL: false,
20
+ showMonthAfterYear: false,
21
+ yearSuffix: ''};
22
+ $.datepicker.setDefaults($.datepicker.regional['bs']);
23
+ });
js/i18n/jquery.ui.datepicker-ca.js ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Inicialització en català per a l'extenció 'calendar' per jQuery. */
2
+ /* Writers: (joan.leon@gmail.com). */
3
+ jQuery(function($){
4
+ $.datepicker.regional['ca'] = {
5
+ closeText: 'Tancar',
6
+ prevText: '&#x3c;Ant',
7
+ nextText: 'Seg&#x3e;',
8
+ currentText: 'Avui',
9
+ monthNames: ['Gener','Febrer','Mar&ccedil;','Abril','Maig','Juny',
10
+ 'Juliol','Agost','Setembre','Octubre','Novembre','Desembre'],
11
+ monthNamesShort: ['Gen','Feb','Mar','Abr','Mai','Jun',
12
+ 'Jul','Ago','Set','Oct','Nov','Des'],
13
+ dayNames: ['Diumenge','Dilluns','Dimarts','Dimecres','Dijous','Divendres','Dissabte'],
14
+ dayNamesShort: ['Dug','Dln','Dmt','Dmc','Djs','Dvn','Dsb'],
15
+ dayNamesMin: ['Dg','Dl','Dt','Dc','Dj','Dv','Ds'],
16
+ weekHeader: 'Sm',
17
+ dateFormat: 'dd/mm/yy',
18
+ firstDay: 1,
19
+ isRTL: false,
20
+ showMonthAfterYear: false,
21
+ yearSuffix: ''};
22
+ $.datepicker.setDefaults($.datepicker.regional['ca']);
23
+ });
js/i18n/jquery.ui.datepicker-cs.js ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Czech initialisation for the jQuery UI date picker plugin. */
2
+ /* Written by Tomas Muller (tomas@tomas-muller.net). */
3
+ jQuery(function($){
4
+ $.datepicker.regional['cs'] = {
5
+ closeText: 'Zavřít',
6
+ prevText: '&#x3c;Dříve',
7
+ nextText: 'Později&#x3e;',
8
+ currentText: 'Nyní',
9
+ monthNames: ['leden','únor','březen','duben','květen','červen',
10
+ 'červenec','srpen','září','říjen','listopad','prosinec'],
11
+ monthNamesShort: ['led','úno','bře','dub','kvě','čer',
12
+ 'čvc','srp','zář','říj','lis','pro'],
13
+ dayNames: ['neděle', 'pondělí', 'úterý', 'středa', 'čtvrtek', 'pátek', 'sobota'],
14
+ dayNamesShort: ['ne', 'po', 'út', 'st', 'čt', 'pá', 'so'],
15
+ dayNamesMin: ['ne','po','út','st','čt','pá','so'],
16
+ weekHeader: 'Týd',
17
+ dateFormat: 'dd.mm.yy',
18
+ firstDay: 1,
19
+ isRTL: false,
20
+ showMonthAfterYear: false,
21
+ yearSuffix: ''};
22
+ $.datepicker.setDefaults($.datepicker.regional['cs']);
23
+ });
js/i18n/jquery.ui.datepicker-da.js ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Danish initialisation for the jQuery UI date picker plugin. */
2
+ /* Written by Jan Christensen ( deletestuff@gmail.com). */
3
+ jQuery(function($){
4
+ $.datepicker.regional['da'] = {
5
+ closeText: 'Luk',
6
+ prevText: '&#x3c;Forrige',
7
+ nextText: 'Næste&#x3e;',
8
+ currentText: 'Idag',
9
+ monthNames: ['Januar','Februar','Marts','April','Maj','Juni',
10
+ 'Juli','August','September','Oktober','November','December'],
11
+ monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun',
12
+ 'Jul','Aug','Sep','Okt','Nov','Dec'],
13
+ dayNames: ['Søndag','Mandag','Tirsdag','Onsdag','Torsdag','Fredag','Lørdag'],
14
+ dayNamesShort: ['Søn','Man','Tir','Ons','Tor','Fre','Lør'],
15
+ dayNamesMin: ['Sø','Ma','Ti','On','To','Fr','Lø'],
16
+ weekHeader: 'Uge',
17
+ dateFormat: 'dd-mm-yy',
18
+ firstDay: 1,
19
+ isRTL: false,
20
+ showMonthAfterYear: false,
21
+ yearSuffix: ''};
22
+ $.datepicker.setDefaults($.datepicker.regional['da']);
23
+ });
js/i18n/jquery.ui.datepicker-de.js ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* German initialisation for the jQuery UI date picker plugin. */
2
+ /* Written by Milian Wolff (mail@milianw.de). */
3
+ jQuery(function($){
4
+ $.datepicker.regional['de'] = {
5
+ closeText: 'schließen',
6
+ prevText: '&#x3c;zurück',
7
+ nextText: 'Vor&#x3e;',
8
+ currentText: 'heute',
9
+ monthNames: ['Januar','Februar','März','April','Mai','Juni',
10
+ 'Juli','August','September','Oktober','November','Dezember'],
11
+ monthNamesShort: ['Jan','Feb','Mär','Apr','Mai','Jun',
12
+ 'Jul','Aug','Sep','Okt','Nov','Dez'],
13
+ dayNames: ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'],
14
+ dayNamesShort: ['So','Mo','Di','Mi','Do','Fr','Sa'],
15
+ dayNamesMin: ['So','Mo','Di','Mi','Do','Fr','Sa'],
16
+ weekHeader: 'Wo',
17
+ dateFormat: 'dd.mm.yy',
18
+ firstDay: 1,
19
+ isRTL: false,
20
+ showMonthAfterYear: false,
21
+ yearSuffix: ''};
22
+ $.datepicker.setDefaults($.datepicker.regional['de']);
23
+ });
js/i18n/jquery.ui.datepicker-el.js ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Greek (el) initialisation for the jQuery UI date picker plugin. */
2
+ /* Written by Alex Cicovic (http://www.alexcicovic.com) */
3
+ jQuery(function($){
4
+ $.datepicker.regional['el'] = {
5
+ closeText: 'Κλείσιμο',
6
+ prevText: 'Προηγούμενος',
7
+ nextText: 'Επόμενος',
8
+ currentText: 'Τρέχων Μήνας',
9
+ monthNames: ['Ιανουάριος','Φεβρουάριος','Μάρτιος','Απρίλιος','Μάιος','Ιούνιος',
10
+ 'Ιούλιος','Αύγουστος','Σεπτέμβριος','Οκτώβριος','Νοέμβριος','Δεκέμβριος'],
11
+ monthNamesShort: ['Ιαν','Φεβ','Μαρ','Απρ','Μαι','Ιουν',
12
+ 'Ιουλ','Αυγ','Σεπ','Οκτ','Νοε','Δεκ'],
13
+ dayNames: ['Κυριακή','Δευτέρα','Τρίτη','Τετάρτη','Πέμπτη','Παρασκευή','Σάββατο'],
14
+ dayNamesShort: ['Κυρ','Δευ','Τρι','Τετ','Πεμ','Παρ','Σαβ'],
15
+ dayNamesMin: ['Κυ','Δε','Τρ','Τε','Πε','Πα','Σα'],
16
+ weekHeader: 'Εβδ',
17
+ dateFormat: 'dd/mm/yy',
18
+ firstDay: 1,
19
+ isRTL: false,
20
+ showMonthAfterYear: false,
21
+ yearSuffix: ''};
22
+ $.datepicker.setDefaults($.datepicker.regional['el']);
23
+ });
js/i18n/jquery.ui.datepicker-en-AU.js ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* English/Australia initialisation for the jQuery UI date picker plugin. */
2
+ /* Based on the en-GB initialisation. */
3
+ jQuery(function($){
4
+ $.datepicker.regional['en-AU'] = {
5
+ closeText: 'Done',
6
+ prevText: 'Prev',
7
+ nextText: 'Next',
8
+ currentText: 'Today',
9
+ monthNames: ['January','February','March','April','May','June',
10
+ 'July','August','September','October','November','December'],
11
+ monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
12
+ 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
13
+ dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
14
+ dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
15
+ dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'],
16
+ weekHeader: 'Wk',
17
+ dateFormat: 'dd/mm/yy',
18
+ firstDay: 1,
19
+ isRTL: false,
20
+ showMonthAfterYear: false,
21
+ yearSuffix: ''};
22
+ $.datepicker.setDefaults($.datepicker.regional['en-AU']);
23
+ });
js/i18n/jquery.ui.datepicker-en-GB.js ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* English/UK initialisation for the jQuery UI date picker plugin. */
2
+ /* Written by Stuart. */
3
+ jQuery(function($){
4
+ $.datepicker.regional['en-GB'] = {
5
+ closeText: 'Done',
6
+ prevText: 'Prev',
7
+ nextText: 'Next',
8
+ currentText: 'Today',
9
+ monthNames: ['January','February','March','April','May','June',
10
+ 'July','August','September','October','November','December'],
11
+ monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
12
+ 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
13
+ dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
14
+ dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
15
+ dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'],
16
+ weekHeader: 'Wk',
17
+ dateFormat: 'dd/mm/yy',
18
+ firstDay: 1,
19
+ isRTL: false,
20
+ showMonthAfterYear: false,
21
+ yearSuffix: ''};
22
+ $.datepicker.setDefaults($.datepicker.regional['en-GB']);
23
+ });
js/i18n/jquery.ui.datepicker-en-NZ.js ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* English/New Zealand initialisation for the jQuery UI date picker plugin. */
2
+ /* Based on the en-GB initialisation. */
3
+ jQuery(function($){
4
+ $.datepicker.regional['en-NZ'] = {
5
+ closeText: 'Done',
6
+ prevText: 'Prev',
7
+ nextText: 'Next',
8
+ currentText: 'Today',
9
+ monthNames: ['January','February','March','April','May','June',
10
+ 'July','August','September','October','November','December'],
11
+ monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
12
+ 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
13
+ dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
14
+ dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
15
+ dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'],
16
+ weekHeader: 'Wk',
17
+ dateFormat: 'dd/mm/yy',
18
+ firstDay: 1,
19
+ isRTL: false,
20
+ showMonthAfterYear: false,
21
+ yearSuffix: ''};
22
+ $.datepicker.setDefaults($.datepicker.regional['en-NZ']);
23
+ });
js/i18n/jquery.ui.datepicker-eo.js ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Esperanto initialisation for the jQuery UI date picker plugin. */
2
+ /* Written by Olivier M. (olivierweb@ifrance.com). */
3
+ jQuery(function($){
4
+ $.datepicker.regional['eo'] = {
5
+ closeText: 'Fermi',
6
+ prevText: '&lt;Anta',
7
+ nextText: 'Sekv&gt;',
8
+ currentText: 'Nuna',
9
+ monthNames: ['Januaro','Februaro','Marto','Aprilo','Majo','Junio',
10
+ 'Julio','Aŭgusto','Septembro','Oktobro','Novembro','Decembro'],
11
+ monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun',
12
+ 'Jul','Aŭg','Sep','Okt','Nov','Dec'],
13
+ dayNames: ['Dimanĉo','Lundo','Mardo','Merkredo','Ĵaŭdo','Vendredo','Sabato'],
14
+ dayNamesShort: ['Dim','Lun','Mar','Mer','Ĵaŭ','Ven','Sab'],
15
+ dayNamesMin: ['Di','Lu','Ma','Me','Ĵa','Ve','Sa'],
16
+ weekHeader: 'Sb',
17
+ dateFormat: 'dd/mm/yy',
18
+ firstDay: 0,
19
+ isRTL: false,
20
+ showMonthAfterYear: false,
21
+ yearSuffix: ''};
22
+ $.datepicker.setDefaults($.datepicker.regional['eo']);
23
+ });
js/i18n/jquery.ui.datepicker-es.js ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Inicialización en español para la extensión 'UI date picker' para jQuery. */
2
+ /* Traducido por Vester (xvester@gmail.com). */
3
+ jQuery(function($){
4
+ $.datepicker.regional['es'] = {
5
+ closeText: 'Cerrar',
6
+ prevText: '&#x3c;Ant',
7
+ nextText: 'Sig&#x3e;',
8
+ currentText: 'Hoy',
9
+ monthNames: ['Enero','Febrero','Marzo','Abril','Mayo','Junio',
10
+ 'Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'],
11
+ monthNamesShort: ['Ene','Feb','Mar','Abr','May','Jun',
12
+ 'Jul','Ago','Sep','Oct','Nov','Dic'],
13
+ dayNames: ['Domingo','Lunes','Martes','Mi&eacute;rcoles','Jueves','Viernes','S&aacute;bado'],
14
+ dayNamesShort: ['Dom','Lun','Mar','Mi&eacute;','Juv','Vie','S&aacute;b'],
15
+ dayNamesMin: ['Do','Lu','Ma','Mi','Ju','Vi','S&aacute;'],
16
+ weekHeader: 'Sm',
17
+ dateFormat: 'dd/mm/yy',
18
+ firstDay: 1,
19
+ isRTL: false,
20
+ showMonthAfterYear: false,
21
+ yearSuffix: ''};
22
+ $.datepicker.setDefaults($.datepicker.regional['es']);
23
+ });
js/i18n/jquery.ui.datepicker-et.js ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Estonian initialisation for the jQuery UI date picker plugin. */
2
+ /* Written by Mart Sõmermaa (mrts.pydev at gmail com). */
3
+ jQuery(function($){
4
+ $.datepicker.regional['et'] = {
5
+ closeText: 'Sulge',
6
+ prevText: 'Eelnev',
7
+ nextText: 'Järgnev',
8
+ currentText: 'Täna',
9
+ monthNames: ['Jaanuar','Veebruar','Märts','Aprill','Mai','Juuni',
10
+ 'Juuli','August','September','Oktoober','November','Detsember'],
11
+ monthNamesShort: ['Jaan', 'Veebr', 'Märts', 'Apr', 'Mai', 'Juuni',
12
+ 'Juuli', 'Aug', 'Sept', 'Okt', 'Nov', 'Dets'],
13
+ dayNames: ['Pühapäev', 'Esmaspäev', 'Teisipäev', 'Kolmapäev', 'Neljapäev', 'Reede', 'Laupäev'],
14
+ dayNamesShort: ['Pühap', 'Esmasp', 'Teisip', 'Kolmap', 'Neljap', 'Reede', 'Laup'],
15
+ dayNamesMin: ['P','E','T','K','N','R','L'],
16
+ weekHeader: 'Sm',
17
+ dateFormat: 'dd.mm.yy',
18
+ firstDay: 1,
19
+ isRTL: false,
20
+ showMonthAfterYear: false,
21
+ yearSuffix: ''};
22
+ $.datepicker.setDefaults($.datepicker.regional['et']);
23
+ });
js/i18n/jquery.ui.datepicker-eu.js ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Euskarako oinarria 'UI date picker' jquery-ko extentsioarentzat */
2
+ /* Karrikas-ek itzulia (karrikas@karrikas.com) */
3
+ jQuery(function($){
4
+ $.datepicker.regional['eu'] = {
5
+ closeText: 'Egina',
6
+ prevText: '&#x3c;Aur',
7
+ nextText: 'Hur&#x3e;',
8
+ currentText: 'Gaur',
9
+ monthNames: ['Urtarrila','Otsaila','Martxoa','Apirila','Maiatza','Ekaina',
10
+ 'Uztaila','Abuztua','Iraila','Urria','Azaroa','Abendua'],
11
+ monthNamesShort: ['Urt','Ots','Mar','Api','Mai','Eka',
12
+ 'Uzt','Abu','Ira','Urr','Aza','Abe'],
13
+ dayNames: ['Igandea','Astelehena','Asteartea','Asteazkena','Osteguna','Ostirala','Larunbata'],
14
+ dayNamesShort: ['Iga','Ast','Ast','Ast','Ost','Ost','Lar'],
15
+ dayNamesMin: ['Ig','As','As','As','Os','Os','La'],
16
+ weekHeader: 'Wk',
17
+ dateFormat: 'yy/mm/dd',
18
+ firstDay: 1,
19
+ isRTL: false,
20
+ showMonthAfterYear: false,
21
+ yearSuffix: ''};
22
+ $.datepicker.setDefaults($.datepicker.regional['eu']);
23
+ });
js/i18n/jquery.ui.datepicker-fa.js ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Persian (Farsi) Translation for the jQuery UI date picker plugin. */
2
+ /* Javad Mowlanezhad -- jmowla@gmail.com */
3
+ /* Jalali calendar should supported soon! (Its implemented but I have to test it) */
4
+ jQuery(function($) {
5
+ $.datepicker.regional['fa'] = {
6
+ closeText: 'بستن',
7
+ prevText: '&#x3c;قبلي',
8
+ nextText: 'بعدي&#x3e;',
9
+ currentText: 'امروز',
10
+ monthNames: ['فروردين','ارديبهشت','خرداد','تير','مرداد','شهريور',
11
+ 'مهر','آبان','آذر','دي','بهمن','اسفند'],
12
+ monthNamesShort: ['1','2','3','4','5','6','7','8','9','10','11','12'],
13
+ dayNames: ['يکشنبه','دوشنبه','سه‌شنبه','چهارشنبه','پنجشنبه','جمعه','شنبه'],
14
+ dayNamesShort: ['ي','د','س','چ','پ','ج', 'ش'],
15
+ dayNamesMin: ['ي','د','س','چ','پ','ج', 'ش'],
16
+ weekHeader: 'هف',
17
+ dateFormat: 'yy/mm/dd',
18
+ firstDay: 6,
19
+ isRTL: true,
20
+ showMonthAfterYear: false,
21
+ yearSuffix: ''};
22
+ $.datepicker.setDefaults($.datepicker.regional['fa']);
23
+ });
js/i18n/jquery.ui.datepicker-fi.js ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Finnish initialisation for the jQuery UI date picker plugin. */
2
+ /* Written by Harri Kilpi� (harrikilpio@gmail.com). */
3
+ jQuery(function($){
4
+ $.datepicker.regional['fi'] = {
5
+ closeText: 'Sulje',
6
+ prevText: '&laquo;Edellinen',
7
+ nextText: 'Seuraava&raquo;',
8
+ currentText: 'T&auml;n&auml;&auml;n',
9
+ monthNames: ['Tammikuu','Helmikuu','Maaliskuu','Huhtikuu','Toukokuu','Kes&auml;kuu',
10
+ 'Hein&auml;kuu','Elokuu','Syyskuu','Lokakuu','Marraskuu','Joulukuu'],
11
+ monthNamesShort: ['Tammi','Helmi','Maalis','Huhti','Touko','Kes&auml;',
12
+ 'Hein&auml;','Elo','Syys','Loka','Marras','Joulu'],
13
+ dayNamesShort: ['Su','Ma','Ti','Ke','To','Pe','Su'],
14
+ dayNames: ['Sunnuntai','Maanantai','Tiistai','Keskiviikko','Torstai','Perjantai','Lauantai'],
15
+ dayNamesMin: ['Su','Ma','Ti','Ke','To','Pe','La'],
16
+ weekHeader: 'Vk',
17
+ dateFormat: 'dd.mm.yy',
18
+ firstDay: 1,
19
+ isRTL: false,
20
+ showMonthAfterYear: false,
21
+ yearSuffix: ''};
22
+ $.datepicker.setDefaults($.datepicker.regional['fi']);
23
+ });
js/i18n/jquery.ui.datepicker-fo.js ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Faroese initialisation for the jQuery UI date picker plugin */
2
+ /* Written by Sverri Mohr Olsen, sverrimo@gmail.com */
3
+ jQuery(function($){
4
+ $.datepicker.regional['fo'] = {
5
+ closeText: 'Lat aftur',
6
+ prevText: '&#x3c;Fyrra',
7
+ nextText: 'Næsta&#x3e;',
8
+ currentText: 'Í dag',
9
+ monthNames: ['Januar','Februar','Mars','Apríl','Mei','Juni',
10
+ 'Juli','August','September','Oktober','November','Desember'],
11
+ monthNamesShort: ['Jan','Feb','Mar','Apr','Mei','Jun',
12
+ 'Jul','Aug','Sep','Okt','Nov','Des'],
13
+ dayNames: ['Sunnudagur','Mánadagur','Týsdagur','Mikudagur','Hósdagur','Fríggjadagur','Leyardagur'],
14
+ dayNamesShort: ['Sun','Mán','Týs','Mik','Hós','Frí','Ley'],
15
+ dayNamesMin: ['Su','Má','Tý','Mi','Hó','Fr','Le'],
16
+ weekHeader: 'Vk',
17
+ dateFormat: 'dd-mm-yy',
18
+ firstDay: 0,
19
+ isRTL: false,
20
+ showMonthAfterYear: false,
21
+ yearSuffix: ''};
22
+ $.datepicker.setDefaults($.datepicker.regional['fo']);
23
+ });
js/i18n/jquery.ui.datepicker-fr-CH.js ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Swiss-French initialisation for the jQuery UI date picker plugin. */
2
+ /* Written Martin Voelkle (martin.voelkle@e-tc.ch). */
3
+ jQuery(function($){
4
+ $.datepicker.regional['fr-CH'] = {
5
+ closeText: 'Fermer',
6
+ prevText: '&#x3c;Préc',
7
+ nextText: 'Suiv&#x3e;',
8
+ currentText: 'Courant',
9
+ monthNames: ['Janvier','Février','Mars','Avril','Mai','Juin',
10
+ 'Juillet','Août','Septembre','Octobre','Novembre','Décembre'],
11
+ monthNamesShort: ['Jan','Fév','Mar','Avr','Mai','Jun',
12
+ 'Jul','Aoû','Sep','Oct','Nov','Déc'],
13
+ dayNames: ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'],
14
+ dayNamesShort: ['Dim','Lun','Mar','Mer','Jeu','Ven','Sam'],
15
+ dayNamesMin: ['Di','Lu','Ma','Me','Je','Ve','Sa'],
16
+ weekHeader: 'Sm',
17
+ dateFormat: 'dd.mm.yy',
18
+ firstDay: 1,
19
+ isRTL: false,
20
+ showMonthAfterYear: false,
21
+ yearSuffix: ''};
22
+ $.datepicker.setDefaults($.datepicker.regional['fr-CH']);
23
+ });
js/i18n/jquery.ui.datepicker-fr.js ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+ jQuery(function($){
6
+ $.datepicker.regional['fr'] = {
7
+ closeText: 'Fermer',
8
+ prevText: 'Précédent',
9
+ nextText: 'Suivant',
10
+ currentText: 'Aujourd\'hui',
11
+ monthNames: ['Janvier','Février','Mars','Avril','Mai','Juin',
12
+ 'Juillet','Août','Septembre','Octobre','Novembre','Décembre'],
13
+ monthNamesShort: ['Janv.','Févr.','Mars','Avril','Mai','Juin',
14
+ 'Juil.','Août','Sept.','Oct.','Nov.','Déc.'],
15
+ dayNames: ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'],
16
+ dayNamesShort: ['Dim.','Lun.','Mar.','Mer.','Jeu.','Ven.','Sam.'],
17
+ dayNamesMin: ['D','L','M','M','J','V','S'],
18
+ weekHeader: 'Sem.',
19
+ dateFormat: 'dd/mm/yy',
20
+ firstDay: 1,
21
+ isRTL: false,
22
+ showMonthAfterYear: false,
23
+ yearSuffix: ''};
24
+ $.datepicker.setDefaults($.datepicker.regional['fr']);
25
+ });
js/i18n/jquery.ui.datepicker-gl.js ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Galician localization for 'UI date picker' jQuery extension. */
2
+ /* Translated by Jorge Barreiro <yortx.barry@gmail.com>. */
3
+ jQuery(function($){
4
+ $.datepicker.regional['gl'] = {
5
+ closeText: 'Pechar',
6
+ prevText: '&#x3c;Ant',
7
+ nextText: 'Seg&#x3e;',
8
+ currentText: 'Hoxe',
9
+ monthNames: ['Xaneiro','Febreiro','Marzo','Abril','Maio','Xuño',
10
+ 'Xullo','Agosto','Setembro','Outubro','Novembro','Decembro'],
11
+ monthNamesShort: ['Xan','Feb','Mar','Abr','Mai','Xuñ',
12
+ 'Xul','Ago','Set','Out','Nov','Dec'],
13
+ dayNames: ['Domingo','Luns','Martes','M&eacute;rcores','Xoves','Venres','S&aacute;bado'],
14
+ dayNamesShort: ['Dom','Lun','Mar','M&eacute;r','Xov','Ven','S&aacute;b'],
15
+ dayNamesMin: ['Do','Lu','Ma','M&eacute;','Xo','Ve','S&aacute;'],
16
+ weekHeader: 'Sm',
17
+ dateFormat: 'dd/mm/yy',
18
+ firstDay: 1,
19
+ isRTL: false,
20
+ showMonthAfterYear: false,
21
+ yearSuffix: ''};
22
+ $.datepicker.setDefaults($.datepicker.regional['gl']);
23
+ });
js/i18n/jquery.ui.datepicker-he.js ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Hebrew initialisation for the UI Datepicker extension. */
2
+ /* Written by Amir Hardon (ahardon at gmail dot com). */
3
+ jQuery(function($){
4
+ $.datepicker.regional['he'] = {
5
+ closeText: 'סגור',
6
+ prevText: '&#x3c;הקודם',
7
+ nextText: 'הבא&#x3e;',
8
+ currentText: 'היום',
9
+ monthNames: ['ינואר','פברואר','מרץ','אפריל','מאי','יוני',
10
+ 'יולי','אוגוסט','ספטמבר','אוקטובר','נובמבר','דצמבר'],
11
+ monthNamesShort: ['1','2','3','4','5','6',
12
+ '7','8','9','10','11','12'],
13
+ dayNames: ['ראשון','שני','שלישי','רביעי','חמישי','שישי','שבת'],
14
+ dayNamesShort: ['א\'','ב\'','ג\'','ד\'','ה\'','ו\'','שבת'],
15
+ dayNamesMin: ['א\'','ב\'','ג\'','ד\'','ה\'','ו\'','שבת'],
16
+ weekHeader: 'Wk',
17
+ dateFormat: 'dd/mm/yy',
18
+ firstDay: 0,
19
+ isRTL: true,
20
+ showMonthAfterYear: false,
21
+ yearSuffix: ''};
22
+ $.datepicker.setDefaults($.datepicker.regional['he']);
23
+ });
js/i18n/jquery.ui.datepicker-hr.js ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Croatian i18n for the jQuery UI date picker plugin. */
2
+ /* Written by Vjekoslav Nesek. */
3
+ jQuery(function($){
4
+ $.datepicker.regional['hr'] = {
5
+ closeText: 'Zatvori',
6
+ prevText: '&#x3c;',
7
+ nextText: '&#x3e;',
8
+ currentText: 'Danas',
9
+ monthNames: ['Siječanj','Veljača','Ožujak','Travanj','Svibanj','Lipanj',
10
+ 'Srpanj','Kolovoz','Rujan','Listopad','Studeni','Prosinac'],
11
+ monthNamesShort: ['Sij','Velj','Ožu','Tra','Svi','Lip',
12
+ 'Srp','Kol','Ruj','Lis','Stu','Pro'],
13
+ dayNames: ['Nedjelja','Ponedjeljak','Utorak','Srijeda','Četvrtak','Petak','Subota'],
14
+ dayNamesShort: ['Ned','Pon','Uto','Sri','Čet','Pet','Sub'],
15
+ dayNamesMin: ['Ne','Po','Ut','Sr','Če','Pe','Su'],
16
+ weekHeader: 'Tje',
17
+ dateFormat: 'dd.mm.yy.',
18
+ firstDay: 1,
19
+ isRTL: false,
20
+ showMonthAfterYear: false,
21
+ yearSuffix: ''};
22
+ $.datepicker.setDefaults($.datepicker.regional['hr']);
23
+ });
js/i18n/jquery.ui.datepicker-hu.js ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Hungarian initialisation for the jQuery UI date picker plugin. */
2
+ /* Written by Istvan Karaszi (jquery@spam.raszi.hu). */
3
+ jQuery(function($){
4
+ $.datepicker.regional['hu'] = {
5
+ closeText: 'bezárás',
6
+ prevText: '&laquo;&nbsp;vissza',
7
+ nextText: 'előre&nbsp;&raquo;',
8
+ currentText: 'ma',
9
+ monthNames: ['Január', 'Február', 'Március', 'Április', 'Május', 'Június',
10
+ 'Július', 'Augusztus', 'Szeptember', 'Október', 'November', 'December'],
11
+ monthNamesShort: ['Jan', 'Feb', 'Már', 'Ápr', 'Máj', 'Jún',
12
+ 'Júl', 'Aug', 'Szep', 'Okt', 'Nov', 'Dec'],
13
+ dayNames: ['Vasárnap', 'Hétfö', 'Kedd', 'Szerda', 'Csütörtök', 'Péntek', 'Szombat'],
14
+ dayNamesShort: ['Vas', 'Hét', 'Ked', 'Sze', 'Csü', 'Pén', 'Szo'],
15
+ dayNamesMin: ['V', 'H', 'K', 'Sze', 'Cs', 'P', 'Szo'],
16
+ weekHeader: 'Hé',
17
+ dateFormat: 'yy-mm-dd',
18
+ firstDay: 1,
19
+ isRTL: false,
20
+ showMonthAfterYear: true,
21
+ yearSuffix: ''};
22
+ $.datepicker.setDefaults($.datepicker.regional['hu']);
23
+ });
js/i18n/jquery.ui.datepicker-hy.js ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Armenian(UTF-8) initialisation for the jQuery UI date picker plugin. */
2
+ /* Written by Levon Zakaryan (levon.zakaryan@gmail.com)*/
3
+ jQuery(function($){
4
+ $.datepicker.regional['hy'] = {
5
+ closeText: 'Փակել',
6
+ prevText: '&#x3c;Նախ.',
7
+ nextText: 'Հաջ.&#x3e;',
8
+ currentText: 'Այսօր',
9
+ monthNames: ['Հունվար','Փետրվար','Մարտ','Ապրիլ','Մայիս','Հունիս',
10
+ 'Հուլիս','Օգոստոս','Սեպտեմբեր','Հոկտեմբեր','Նոյեմբեր','Դեկտեմբեր'],
11
+ monthNamesShort: ['Հունվ','Փետր','Մարտ','Ապր','Մայիս','Հունիս',
12
+ 'Հուլ','Օգս','Սեպ','Հոկ','Նոյ','Դեկ'],
13
+ dayNames: ['կիրակի','եկուշաբթի','երեքշաբթի','չորեքշաբթի','հինգշաբթի','ուրբաթ','շաբաթ'],
14
+ dayNamesShort: ['կիր','երկ','երք','չրք','հնգ','ուրբ','շբթ'],
15
+ dayNamesMin: ['կիր','երկ','երք','չրք','հնգ','ուրբ','շբթ'],
16
+ weekHeader: 'ՇԲՏ',
17
+ dateFormat: 'dd.mm.yy',
18
+ firstDay: 1,
19
+ isRTL: false,
20
+ showMonthAfterYear: false,
21
+ yearSuffix: ''};
22
+ $.datepicker.setDefaults($.datepicker.regional['hy']);
23
+ });
js/i18n/jquery.ui.datepicker-id.js ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Indonesian initialisation for the jQuery UI date picker plugin. */
2
+ /* Written by Deden Fathurahman (dedenf@gmail.com). */
3
+ jQuery(function($){
4
+ $.datepicker.regional['id'] = {
5
+ closeText: 'Tutup',
6
+ prevText: '&#x3c;mundur',
7
+ nextText: 'maju&#x3e;',
8
+ currentText: 'hari ini',
9
+ monthNames: ['Januari','Februari','Maret','April','Mei','Juni',
10
+ 'Juli','Agustus','September','Oktober','Nopember','Desember'],
11
+ monthNamesShort: ['Jan','Feb','Mar','Apr','Mei','Jun',
12
+ 'Jul','Agus','Sep','Okt','Nop','Des'],
13
+ dayNames: ['Minggu','Senin','Selasa','Rabu','Kamis','Jumat','Sabtu'],
14
+ dayNamesShort: ['Min','Sen','Sel','Rab','kam','Jum','Sab'],
15
+ dayNamesMin: ['Mg','Sn','Sl','Rb','Km','jm','Sb'],
16
+ weekHeader: 'Mg',
17
+ dateFormat: 'dd/mm/yy',
18
+ firstDay: 0,
19
+ isRTL: false,
20
+ showMonthAfterYear: false,
21
+ yearSuffix: ''};
22
+ $.datepicker.setDefaults($.datepicker.regional['id']);
23
+ });
js/i18n/jquery.ui.datepicker-is.js ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Icelandic initialisation for the jQuery UI date picker plugin. */
2
+ /* Written by Haukur H. Thorsson (haukur@eskill.is). */
3
+ jQuery(function($){
4
+ $.datepicker.regional['is'] = {
5
+ closeText: 'Loka',
6
+ prevText: '&#x3c; Fyrri',
7
+ nextText: 'N&aelig;sti &#x3e;',
8
+ currentText: '&Iacute; dag',
9
+ monthNames: ['Jan&uacute;ar','Febr&uacute;ar','Mars','Apr&iacute;l','Ma&iacute','J&uacute;n&iacute;',
10
+ 'J&uacute;l&iacute;','&Aacute;g&uacute;st','September','Okt&oacute;ber','N&oacute;vember','Desember'],
11
+ monthNamesShort: ['Jan','Feb','Mar','Apr','Ma&iacute;','J&uacute;n',
12
+ 'J&uacute;l','&Aacute;g&uacute;','Sep','Okt','N&oacute;v','Des'],
13
+ dayNames: ['Sunnudagur','M&aacute;nudagur','&THORN;ri&eth;judagur','Mi&eth;vikudagur','Fimmtudagur','F&ouml;studagur','Laugardagur'],
14
+ dayNamesShort: ['Sun','M&aacute;n','&THORN;ri','Mi&eth;','Fim','F&ouml;s','Lau'],
15
+ dayNamesMin: ['Su','M&aacute;','&THORN;r','Mi','Fi','F&ouml;','La'],
16
+ weekHeader: 'Vika',
17
+ dateFormat: 'dd/mm/yy',
18
+ firstDay: 0,
19
+ isRTL: false,
20
+ showMonthAfterYear: false,
21
+ yearSuffix: ''};
22
+ $.datepicker.setDefaults($.datepicker.regional['is']);
23
+ });
js/i18n/jquery.ui.datepicker-it.js ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Italian initialisation for the jQuery UI date picker plugin. */
2
+ /* Written by Antonello Pasella (antonello.pasella@gmail.com). */
3
+ jQuery(function($){
4
+ $.datepicker.regional['it'] = {
5
+ closeText: 'Chiudi',
6
+ prevText: '&#x3c;Prec',
7
+ nextText: 'Succ&#x3e;',
8
+ currentText: 'Oggi',
9
+ monthNames: ['Gennaio','Febbraio','Marzo','Aprile','Maggio','Giugno',
10
+ 'Luglio','Agosto','Settembre','Ottobre','Novembre','Dicembre'],
11
+ monthNamesShort: ['Gen','Feb','Mar','Apr','Mag','Giu',
12
+ 'Lug','Ago','Set','Ott','Nov','Dic'],
13
+ dayNames: ['Domenica','Luned&#236','Marted&#236','Mercoled&#236','Gioved&#236','Venerd&#236','Sabato'],
14
+ dayNamesShort: ['Dom','Lun','Mar','Mer','Gio','Ven','Sab'],
15
+ dayNamesMin: ['Do','Lu','Ma','Me','Gi','Ve','Sa'],
16
+ weekHeader: 'Sm',
17
+ dateFormat: 'dd/mm/yy',
18
+ firstDay: 1,
19
+ isRTL: false,
20
+ showMonthAfterYear: false,
21
+ yearSuffix: ''};
22
+ $.datepicker.setDefaults($.datepicker.regional['it']);
23
+ });
js/i18n/jquery.ui.datepicker-ja.js ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Japanese initialisation for the jQuery UI date picker plugin. */
2
+ /* Written by Kentaro SATO (kentaro@ranvis.com). */
3
+ jQuery(function($){
4
+ $.datepicker.regional['ja'] = {
5
+ closeText: '閉じる',
6
+ prevText: '&#x3c;前',
7
+ nextText: '次&#x3e;',
8
+ currentText: '今日',
9
+ monthNames: ['1月','2月','3月','4月','5月','6月',
10
+ '7月','8月','9月','10月','11月','12月'],
11
+ monthNamesShort: ['1月','2月','3月','4月','5月','6月',
12
+ '7月','8月','9月','10月','11月','12月'],
13
+ dayNames: ['日曜日','月曜日','火曜日','水曜日','木曜日','金曜日','土曜日'],
14
+ dayNamesShort: ['日','月','火','水','木','金','土'],
15
+ dayNamesMin: ['日','月','火','水','木','金','土'],
16
+ weekHeader: '週',
17
+ dateFormat: 'yy/mm/dd',
18
+ firstDay: 0,
19
+ isRTL: false,
20
+ showMonthAfterYear: true,
21
+ yearSuffix: '年'};
22
+ $.datepicker.setDefaults($.datepicker.regional['ja']);
23
+ });
js/i18n/jquery.ui.datepicker-ko.js ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Korean initialisation for the jQuery calendar extension. */
2
+ /* Written by DaeKwon Kang (ncrash.dk@gmail.com). */
3
+ jQuery(function($){
4
+ $.datepicker.regional['ko'] = {
5
+ closeText: '닫기',
6
+ prevText: '이전달',
7
+ nextText: '다음달',
8
+ currentText: '오늘',
9
+ monthNames: ['1월(JAN)','2월(FEB)','3월(MAR)','4월(APR)','5월(MAY)','6월(JUN)',
10
+ '7월(JUL)','8월(AUG)','9월(SEP)','10월(OCT)','11월(NOV)','12월(DEC)'],
11
+ monthNamesShort: ['1월(JAN)','2월(FEB)','3월(MAR)','4월(APR)','5월(MAY)','6월(JUN)',
12
+ '7월(JUL)','8월(AUG)','9월(SEP)','10월(OCT)','11월(NOV)','12월(DEC)'],
13
+ dayNames: ['일','월','화','수','목','금','토'],
14
+ dayNamesShort: ['일','월','화','수','목','금','토'],
15
+ dayNamesMin: ['일','월','화','수','목','금','토'],
16
+ weekHeader: 'Wk',
17
+ dateFormat: 'yy-mm-dd',
18
+ firstDay: 0,
19
+ isRTL: false,
20
+ showMonthAfterYear: false,
21
+ yearSuffix: '년'};
22
+ $.datepicker.setDefaults($.datepicker.regional['ko']);
23
+ });
js/i18n/jquery.ui.datepicker-kz.js ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Kazakh (UTF-8) initialisation for the jQuery UI date picker plugin. */
2
+ /* Written by Dmitriy Karasyov (dmitriy.karasyov@gmail.com). */
3
+ jQuery(function($){
4
+ $.datepicker.regional['kz'] = {
5
+ closeText: 'Жабу',
6
+ prevText: '&#x3c;Алдыңғы',
7
+ nextText: 'Келесі&#x3e;',
8
+ currentText: 'Бүгін',
9
+ monthNames: ['Қаңтар','Ақпан','Наурыз','Сәуір','Мамыр','Маусым',
10
+ 'Шілде','Тамыз','Қыркүйек','Қазан','Қараша','Желтоқсан'],
11
+ monthNamesShort: ['Қаң','Ақп','Нау','Сәу','Мам','Мау',
12
+ 'Шіл','Там','Қыр','Қаз','Қар','Жел'],
13
+ dayNames: ['Жексенбі','Дүйсенбі','Сейсенбі','Сәрсенбі','Бейсенбі','Жұма','Сенбі'],
14
+ dayNamesShort: ['жкс','дсн','ссн','срс','бсн','жма','снб'],
15
+ dayNamesMin: ['Жк','Дс','Сс','Ср','Бс','Жм','Сн'],
16
+ weekHeader: 'Не',
17
+ dateFormat: 'dd.mm.yy',
18
+ firstDay: 1,
19
+ isRTL: false,
20
+ showMonthAfterYear: false,
21
+ yearSuffix: ''};
22
+ $.datepicker.setDefaults($.datepicker.regional['kz']);
23
+ });
js/i18n/jquery.ui.datepicker-lt.js ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Lithuanian (UTF-8) initialisation for the jQuery UI date picker plugin. */
2
+ /* @author Arturas Paleicikas <arturas@avalon.lt> */
3
+ jQuery(function($){
4
+ $.datepicker.regional['lt'] = {
5
+ closeText: 'Uždaryti',
6
+ prevText: '&#x3c;Atgal',
7
+ nextText: 'Pirmyn&#x3e;',
8
+ currentText: 'Šiandien',
9
+ monthNames: ['Sausis','Vasaris','Kovas','Balandis','Gegužė','Birželis',
10
+ 'Liepa','Rugpjūtis','Rugsėjis','Spalis','Lapkritis','Gruodis'],
11
+ monthNamesShort: ['Sau','Vas','Kov','Bal','Geg','Bir',
12
+ 'Lie','Rugp','Rugs','Spa','Lap','Gru'],
13
+ dayNames: ['sekmadienis','pirmadienis','antradienis','trečiadienis','ketvirtadienis','penktadienis','šeštadienis'],
14
+ dayNamesShort: ['sek','pir','ant','tre','ket','pen','šeš'],
15
+ dayNamesMin: ['Se','Pr','An','Tr','Ke','Pe','Še'],
16
+ weekHeader: 'Wk',
17
+ dateFormat: 'yy-mm-dd',
18
+ firstDay: 1,
19
+ isRTL: false,
20
+ showMonthAfterYear: false,
21
+ yearSuffix: ''};
22
+ $.datepicker.setDefaults($.datepicker.regional['lt']);
23
+ });
js/i18n/jquery.ui.datepicker-lv.js ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Latvian (UTF-8) initialisation for the jQuery UI date picker plugin. */
2
+ /* @author Arturas Paleicikas <arturas.paleicikas@metasite.net> */
3
+ jQuery(function($){
4
+ $.datepicker.regional['lv'] = {
5
+ closeText: 'Aizvērt',
6
+ prevText: 'Iepr',
7
+ nextText: 'Nāka',
8
+ currentText: 'Šodien',
9
+ monthNames: ['Janvāris','Februāris','Marts','Aprīlis','Maijs','Jūnijs',
10
+ 'Jūlijs','Augusts','Septembris','Oktobris','Novembris','Decembris'],
11
+ monthNamesShort: ['Jan','Feb','Mar','Apr','Mai','Jūn',
12
+ 'Jūl','Aug','Sep','Okt','Nov','Dec'],
13
+ dayNames: ['svētdiena','pirmdiena','otrdiena','trešdiena','ceturtdiena','piektdiena','sestdiena'],
14
+ dayNamesShort: ['svt','prm','otr','tre','ctr','pkt','sst'],
15
+ dayNamesMin: ['Sv','Pr','Ot','Tr','Ct','Pk','Ss'],
16
+ weekHeader: 'Nav',
17
+ dateFormat: 'dd-mm-yy',
18
+ firstDay: 1,
19
+ isRTL: false,
20
+ showMonthAfterYear: false,
21
+ yearSuffix: ''};
22
+ $.datepicker.setDefaults($.datepicker.regional['lv']);
23
+ });
js/i18n/jquery.ui.datepicker-ml.js ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Malayalam (UTF-8) initialisation for the jQuery UI date picker plugin. */
2
+ /* Written by Saji Nediyanchath (saji89@gmail.com). */
3
+ jQuery(function($){
4
+ $.datepicker.regional['ml'] = {
5
+ closeText: 'ശരി',
6
+ prevText: 'മുന്നത്തെ',
7
+ nextText: 'അടുത്തത് ',
8
+ currentText: 'ഇന്ന്',
9
+ monthNames: ['ജനുവരി','ഫെബ്രുവരി','മാര്‍ച്ച്','ഏപ്രില്‍','മേയ്','ജൂണ്‍',
10
+ 'ജൂലൈ','ആഗസ്റ്റ്','സെപ്റ്റംബര്‍','ഒക്ടോബര്‍','നവംബര്‍','ഡിസംബര്‍'],
11
+ monthNamesShort: ['ജനു', 'ഫെബ്', 'മാര്‍', 'ഏപ്രി', 'മേയ്', 'ജൂണ്‍',
12
+ 'ജൂലാ', 'ആഗ', 'സെപ്', 'ഒക്ടോ', 'നവം', 'ഡിസ'],
13
+ dayNames: ['ഞായര്‍', 'തിങ്കള്‍', 'ചൊവ്വ', 'ബുധന്‍', 'വ്യാഴം', 'വെള്ളി', 'ശനി'],
14
+ dayNamesShort: ['ഞായ', 'തിങ്ക', 'ചൊവ്വ', 'ബുധ', 'വ്യാഴം', 'വെള്ളി', 'ശനി'],
15
+ dayNamesMin: ['ഞാ','തി','ചൊ','ബു','വ്യാ','വെ','ശ'],
16
+ weekHeader: 'ആ',
17
+ dateFormat: 'dd/mm/yy',
18
+ firstDay: 1,
19
+ isRTL: false,
20
+ showMonthAfterYear: false,
21
+ yearSuffix: ''};
22
+ $.datepicker.setDefaults($.datepicker.regional['ml']);
23
+ });
js/i18n/jquery.ui.datepicker-ms.js ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Malaysian initialisation for the jQuery UI date picker plugin. */
2
+ /* Written by Mohd Nawawi Mohamad Jamili (nawawi@ronggeng.net). */
3
+ jQuery(function($){
4
+ $.datepicker.regional['ms'] = {
5
+ closeText: 'Tutup',
6
+ prevText: '&#x3c;Sebelum',
7
+ nextText: 'Selepas&#x3e;',
8
+ currentText: 'hari ini',
9
+ monthNames: ['Januari','Februari','Mac','April','Mei','Jun',
10
+ 'Julai','Ogos','September','Oktober','November','Disember'],
11
+ monthNamesShort: ['Jan','Feb','Mac','Apr','Mei','Jun',
12
+ 'Jul','Ogo','Sep','Okt','Nov','Dis'],
13
+ dayNames: ['Ahad','Isnin','Selasa','Rabu','Khamis','Jumaat','Sabtu'],
14
+ dayNamesShort: ['Aha','Isn','Sel','Rab','kha','Jum','Sab'],
15
+ dayNamesMin: ['Ah','Is','Se','Ra','Kh','Ju','Sa'],
16
+ weekHeader: 'Mg',
17
+ dateFormat: 'dd/mm/yy',
18
+ firstDay: 0,
19
+ isRTL: false,
20
+ showMonthAfterYear: false,
21
+ yearSuffix: ''};
22
+ $.datepicker.setDefaults($.datepicker.regional['ms']);
23
+ });
js/i18n/jquery.ui.datepicker-nl.js ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Dutch (UTF-8) initialisation for the jQuery UI date picker plugin. */
2
+ /* Written by Mathias Bynens <http://mathiasbynens.be/> */
3
+ jQuery(function($){
4
+ $.datepicker.regional.nl = {
5
+ closeText: 'Sluiten',
6
+ prevText: '←',
7
+ nextText: '→',
8
+ currentText: 'Vandaag',
9
+ monthNames: ['januari', 'februari', 'maart', 'april', 'mei', 'juni',
10
+ 'juli', 'augustus', 'september', 'oktober', 'november', 'december'],
11
+ monthNamesShort: ['jan', 'feb', 'maa', 'apr', 'mei', 'jun',
12
+ 'jul', 'aug', 'sep', 'okt', 'nov', 'dec'],
13
+ dayNames: ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag'],
14
+ dayNamesShort: ['zon', 'maa', 'din', 'woe', 'don', 'vri', 'zat'],
15
+ dayNamesMin: ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'],
16
+ weekHeader: 'Wk',
17
+ dateFormat: 'dd-mm-yy',
18
+ firstDay: 1,
19
+ isRTL: false,
20
+ showMonthAfterYear: false,
21
+ yearSuffix: ''};
22
+ $.datepicker.setDefaults($.datepicker.regional.nl);
23
+ });
js/i18n/jquery.ui.datepicker-no.js ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Norwegian initialisation for the jQuery UI date picker plugin. */
2
+ /* Written by Naimdjon Takhirov (naimdjon@gmail.com). */
3
+
4
+ jQuery(function($){
5
+ $.datepicker.regional['no'] = {
6
+ closeText: 'Lukk',
7
+ prevText: '&laquo;Forrige',
8
+ nextText: 'Neste&raquo;',
9
+ currentText: 'I dag',
10
+ monthNames: ['januar','februar','mars','april','mai','juni','juli','august','september','oktober','november','desember'],
11
+ monthNamesShort: ['jan','feb','mar','apr','mai','jun','jul','aug','sep','okt','nov','des'],
12
+ dayNamesShort: ['søn','man','tir','ons','tor','fre','lør'],
13
+ dayNames: ['søndag','mandag','tirsdag','onsdag','torsdag','fredag','lørdag'],
14
+ dayNamesMin: ['sø','ma','ti','on','to','fr','lø'],
15
+ weekHeader: 'Uke',
16
+ dateFormat: 'dd.mm.yy',
17
+ firstDay: 1,
18
+ isRTL: false,
19
+ showMonthAfterYear: false,
20
+ yearSuffix: ''
21
+ };
22
+ $.datepicker.setDefaults($.datepicker.regional['no']);
23
+ });
js/i18n/jquery.ui.datepicker-pl.js ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Polish initialisation for the jQuery UI date picker plugin. */
2
+ /* Written by Jacek Wysocki (jacek.wysocki@gmail.com). */
3
+ jQuery(function($){
4
+ $.datepicker.regional['pl'] = {
5
+ closeText: 'Zamknij',
6
+ prevText: '&#x3c;Poprzedni',
7
+ nextText: 'Następny&#x3e;',
8
+ currentText: 'Dziś',
9
+ monthNames: ['Styczeń','Luty','Marzec','Kwiecień','Maj','Czerwiec',
10
+ 'Lipiec','Sierpień','Wrzesień','Październik','Listopad','Grudzień'],
11
+ monthNamesShort: ['Sty','Lu','Mar','Kw','Maj','Cze',
12
+ 'Lip','Sie','Wrz','Pa','Lis','Gru'],
13
+ dayNames: ['Niedziela','Poniedziałek','Wtorek','Środa','Czwartek','Piątek','Sobota'],
14
+ dayNamesShort: ['Nie','Pn','Wt','Śr','Czw','Pt','So'],
15
+ dayNamesMin: ['N','Pn','Wt','Śr','Cz','Pt','So'],
16
+ weekHeader: 'Tydz',
17
+ dateFormat: 'dd.mm.yy',
18
+ firstDay: 1,
19
+ isRTL: false,
20
+ showMonthAfterYear: false,
21
+ yearSuffix: ''};
22
+ $.datepicker.setDefaults($.datepicker.regional['pl']);
23
+ });
js/i18n/jquery.ui.datepicker-pt-BR.js ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Brazilian initialisation for the jQuery UI date picker plugin. */
2
+ /* Written by Leonildo Costa Silva (leocsilva@gmail.com). */
3
+ jQuery(function($){
4
+ $.datepicker.regional['pt-BR'] = {
5
+ closeText: 'Fechar',
6
+ prevText: '&#x3c;Anterior',
7
+ nextText: 'Pr&oacute;ximo&#x3e;',
8
+ currentText: 'Hoje',
9
+ monthNames: ['Janeiro','Fevereiro','Mar&ccedil;o','Abril','Maio','Junho',
10
+ 'Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'],
11
+ monthNamesShort: ['Jan','Fev','Mar','Abr','Mai','Jun',
12
+ 'Jul','Ago','Set','Out','Nov','Dez'],
13
+ dayNames: ['Domingo','Segunda-feira','Ter&ccedil;a-feira','Quarta-feira','Quinta-feira','Sexta-feira','S&aacute;bado'],
14
+ dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','S&aacute;b'],
15
+ dayNamesMin: ['Dom','Seg','Ter','Qua','Qui','Sex','S&aacute;b'],
16
+ weekHeader: 'Sm',
17
+ dateFormat: 'dd/mm/yy',
18
+ firstDay: 0,
19
+ isRTL: false,
20
+ showMonthAfterYear: false,
21
+ yearSuffix: ''};
22
+ $.datepicker.setDefaults($.datepicker.regional['pt-BR']);
23
+ });
js/i18n/jquery.ui.datepicker-pt.js ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Portuguese initialisation for the jQuery UI date picker plugin. */
2
+ jQuery(function($){
3
+ $.datepicker.regional['pt'] = {
4
+ closeText: 'Fechar',
5
+ prevText: '&#x3c;Anterior',
6
+ nextText: 'Seguinte',
7
+ currentText: 'Hoje',
8
+ monthNames: ['Janeiro','Fevereiro','Mar&ccedil;o','Abril','Maio','Junho',
9
+ 'Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'],
10
+ monthNamesShort: ['Jan','Fev','Mar','Abr','Mai','Jun',
11
+ 'Jul','Ago','Set','Out','Nov','Dez'],
12
+ dayNames: ['Domingo','Segunda-feira','Ter&ccedil;a-feira','Quarta-feira','Quinta-feira','Sexta-feira','S&aacute;bado'],
13
+ dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','S&aacute;b'],
14
+ dayNamesMin: ['Dom','Seg','Ter','Qua','Qui','Sex','S&aacute;b'],
15
+ weekHeader: 'Sem',
16
+ dateFormat: 'dd/mm/yy',
17
+ firstDay: 0,
18
+ isRTL: false,
19
+ showMonthAfterYear: false,
20
+ yearSuffix: ''};
21
+ $.datepicker.setDefaults($.datepicker.regional['pt']);
22
+ });
js/i18n/jquery.ui.datepicker-rm.js ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Romansh initialisation for the jQuery UI date picker plugin. */
2
+ /* Written by Yvonne Gienal (yvonne.gienal@educa.ch). */
3
+ jQuery(function($){
4
+ $.datepicker.regional['rm'] = {
5
+ closeText: 'Serrar',
6
+ prevText: '&#x3c;Suandant',
7
+ nextText: 'Precedent&#x3e;',
8
+ currentText: 'Actual',
9
+ monthNames: ['Schaner','Favrer','Mars','Avrigl','Matg','Zercladur', 'Fanadur','Avust','Settember','October','November','December'],
10
+ monthNamesShort: ['Scha','Fev','Mar','Avr','Matg','Zer', 'Fan','Avu','Sett','Oct','Nov','Dec'],
11
+ dayNames: ['Dumengia','Glindesdi','Mardi','Mesemna','Gievgia','Venderdi','Sonda'],
12
+ dayNamesShort: ['Dum','Gli','Mar','Mes','Gie','Ven','Som'],
13
+ dayNamesMin: ['Du','Gl','Ma','Me','Gi','Ve','So'],
14
+ weekHeader: 'emna',
15
+ dateFormat: 'dd/mm/yy',
16
+ firstDay: 1,
17
+ isRTL: false,
18
+ showMonthAfterYear: false,
19
+ yearSuffix: ''};
20
+ $.datepicker.setDefaults($.datepicker.regional['rm']);
21
+ });
js/i18n/jquery.ui.datepicker-ro.js ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+ jQuery(function($){
7
+ $.datepicker.regional['ro'] = {
8
+ closeText: 'Închide',
9
+ prevText: '&laquo; Luna precedentă',
10
+ nextText: 'Luna următoare &raquo;',
11
+ currentText: 'Azi',
12
+ monthNames: ['Ianuarie','Februarie','Martie','Aprilie','Mai','Iunie',
13
+ 'Iulie','August','Septembrie','Octombrie','Noiembrie','Decembrie'],
14
+ monthNamesShort: ['Ian', 'Feb', 'Mar', 'Apr', 'Mai', 'Iun',
15
+ 'Iul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
16
+ dayNames: ['Duminică', 'Luni', 'Marţi', 'Miercuri', 'Joi', 'Vineri', 'Sâmbătă'],
17
+ dayNamesShort: ['Dum', 'Lun', 'Mar', 'Mie', 'Joi', 'Vin', 'Sâm'],
18
+ dayNamesMin: ['Du','Lu','Ma','Mi','Jo','Vi','Sâ'],
19
+ weekHeader: 'Săpt',
20
+ dateFormat: 'dd.mm.yy',
21
+ firstDay: 1,
22
+ isRTL: false,
23
+ showMonthAfterYear: false,
24
+ yearSuffix: ''};
25
+ $.datepicker.setDefaults($.datepicker.regional['ro']);
26
+ });
js/i18n/jquery.ui.datepicker-ru.js ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Russian (UTF-8) initialisation for the jQuery UI date picker plugin. */
2
+ /* Written by Andrew Stromnov (stromnov@gmail.com). */
3
+ jQuery(function($){
4
+ $.datepicker.regional['ru'] = {
5
+ closeText: 'Закрыть',
6
+ prevText: '&#x3c;Пред',
7
+ nextText: 'След&#x3e;',
8
+ currentText: 'Сегодня',
9
+ monthNames: ['Январь','Февраль','Март','Апрель','Май','Июнь',
10
+ 'Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'],
11
+ monthNamesShort: ['Янв','Фев','Мар','Апр','Май','Июн',
12
+ 'Июл','Авг','Сен','Окт','Ноя','Дек'],
13
+ dayNames: ['воскресенье','понедельник','вторник','среда','четверг','пятница','суббота'],
14
+ dayNamesShort: ['вск','пнд','втр','срд','чтв','птн','сбт'],
15
+ dayNamesMin: ['Вс','Пн','Вт','Ср','Чт','Пт','Сб'],
16
+ weekHeader: 'Нед',
17
+ dateFormat: 'dd.mm.yy',
18
+ firstDay: 1,
19
+ isRTL: false,
20
+ showMonthAfterYear: false,
21
+ yearSuffix: ''};
22
+ $.datepicker.setDefaults($.datepicker.regional['ru']);
23
+ });
js/i18n/jquery.ui.datepicker-sk.js ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Slovak initialisation for the jQuery UI date picker plugin. */
2
+ /* Written by Vojtech Rinik (vojto@hmm.sk). */
3
+ jQuery(function($){
4
+ $.datepicker.regional['sk'] = {
5
+ closeText: 'Zavrieť',
6
+ prevText: '&#x3c;Predchádzajúci',
7
+ nextText: 'Nasledujúci&#x3e;',
8
+ currentText: 'Dnes',
9
+ monthNames: ['Január','Február','Marec','Apríl','Máj','Jún',
10
+ 'Júl','August','September','Október','November','December'],
11
+ monthNamesShort: ['Jan','Feb','Mar','Apr','Máj','Jún',
12
+ 'Júl','Aug','Sep','Okt','Nov','Dec'],
13
+ dayNames: ['Nedeľa','Pondelok','Utorok','Streda','Štvrtok','Piatok','Sobota'],
14
+ dayNamesShort: ['Ned','Pon','Uto','Str','Štv','Pia','Sob'],
15
+ dayNamesMin: ['Ne','Po','Ut','St','Št','Pia','So'],
16
+ weekHeader: 'Ty',
17
+ dateFormat: 'dd.mm.yy',
18
+ firstDay: 1,
19
+ isRTL: false,
20
+ showMonthAfterYear: false,
21
+ yearSuffix: ''};
22
+ $.datepicker.setDefaults($.datepicker.regional['sk']);
23
+ });
js/i18n/jquery.ui.datepicker-sl.js ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Slovenian initialisation for the jQuery UI date picker plugin. */
2
+ /* Written by Jaka Jancar (jaka@kubje.org). */
3
+ /* c = &#x10D;, s = &#x161; z = &#x17E; C = &#x10C; S = &#x160; Z = &#x17D; */
4
+ jQuery(function($){
5
+ $.datepicker.regional['sl'] = {
6
+ closeText: 'Zapri',
7
+ prevText: '&lt;Prej&#x161;nji',
8
+ nextText: 'Naslednji&gt;',
9
+ currentText: 'Trenutni',
10
+ monthNames: ['Januar','Februar','Marec','April','Maj','Junij',
11
+ 'Julij','Avgust','September','Oktober','November','December'],
12
+ monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun',
13
+ 'Jul','Avg','Sep','Okt','Nov','Dec'],
14
+ dayNames: ['Nedelja','Ponedeljek','Torek','Sreda','&#x10C;etrtek','Petek','Sobota'],
15
+ dayNamesShort: ['Ned','Pon','Tor','Sre','&#x10C;et','Pet','Sob'],
16
+ dayNamesMin: ['Ne','Po','To','Sr','&#x10C;e','Pe','So'],
17
+ weekHeader: 'Teden',
18
+ dateFormat: 'dd.mm.yy',
19
+ firstDay: 1,
20
+ isRTL: false,
21
+ showMonthAfterYear: false,
22
+ yearSuffix: ''};
23
+ $.datepicker.setDefaults($.datepicker.regional['sl']);
24
+ });
js/i18n/jquery.ui.datepicker-sq.js ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Albanian initialisation for the jQuery UI date picker plugin. */
2
+ /* Written by Flakron Bytyqi (flakron@gmail.com). */
3
+ jQuery(function($){
4
+ $.datepicker.regional['sq'] = {
5
+ closeText: 'mbylle',
6
+ prevText: '&#x3c;mbrapa',
7
+ nextText: 'Përpara&#x3e;',
8
+ currentText: 'sot',
9
+ monthNames: ['Janar','Shkurt','Mars','Prill','Maj','Qershor',
10
+ 'Korrik','Gusht','Shtator','Tetor','Nëntor','Dhjetor'],
11
+ monthNamesShort: ['Jan','Shk','Mar','Pri','Maj','Qer',
12
+ 'Kor','Gus','Sht','Tet','Nën','Dhj'],
13
+ dayNames: ['E Diel','E Hënë','E Martë','E Mërkurë','E Enjte','E Premte','E Shtune'],
14
+ dayNamesShort: ['Di','Hë','Ma','Më','En','Pr','Sh'],
15
+ dayNamesMin: ['Di','Hë','Ma','Më','En','Pr','Sh'],
16
+ weekHeader: 'Ja',
17
+ dateFormat: 'dd.mm.yy',
18
+ firstDay: 1,
19
+ isRTL: false,
20
+ showMonthAfterYear: false,
21
+ yearSuffix: ''};
22
+ $.datepicker.setDefaults($.datepicker.regional['sq']);
23
+ });
js/i18n/jquery.ui.datepicker-sr-SR.js ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Serbian i18n for the jQuery UI date picker plugin. */
2
+ /* Written by Dejan Dimić. */
3
+ jQuery(function($){
4
+ $.datepicker.regional['sr-SR'] = {
5
+ closeText: 'Zatvori',
6
+ prevText: '&#x3c;',
7
+ nextText: '&#x3e;',
8
+ currentText: 'Danas',
9
+ monthNames: ['Januar','Februar','Mart','April','Maj','Jun',
10
+ 'Jul','Avgust','Septembar','Oktobar','Novembar','Decembar'],
11
+ monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun',
12
+ 'Jul','Avg','Sep','Okt','Nov','Dec'],
13
+ dayNames: ['Nedelja','Ponedeljak','Utorak','Sreda','Četvrtak','Petak','Subota'],
14
+ dayNamesShort: ['Ned','Pon','Uto','Sre','Čet','Pet','Sub'],
15
+ dayNamesMin: ['Ne','Po','Ut','Sr','Če','Pe','Su'],
16
+ weekHeader: 'Sed',
17
+ dateFormat: 'dd/mm/yy',
18
+ firstDay: 1,
19
+ isRTL: false,
20
+ showMonthAfterYear: false,
21
+ yearSuffix: ''};
22
+ $.datepicker.setDefaults($.datepicker.regional['sr-SR']);
23
+ });
js/i18n/jquery.ui.datepicker-sr.js ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Serbian i18n for the jQuery UI date picker plugin. */
2
+ /* Written by Dejan Dimić. */
3
+ jQuery(function($){
4
+ $.datepicker.regional['sr'] = {
5
+ closeText: 'Затвори',
6
+ prevText: '&#x3c;',
7
+ nextText: '&#x3e;',
8
+ currentText: 'Данас',
9
+ monthNames: ['Јануар','Фебруар','Март','Април','Мај','Јун',
10
+ 'Јул','Август','Септембар','Октобар','Новембар','Децембар'],
11
+ monthNamesShort: ['Јан','Феб','Мар','Апр','Мај','Јун',
12
+ 'Јул','Авг','Сеп','Окт','Нов','Дец'],
13
+ dayNames: ['Недеља','Понедељак','Уторак','Среда','Четвртак','Петак','Субота'],
14
+ dayNamesShort: ['Нед','Пон','Уто','Сре','Чет','Пет','Суб'],
15
+ dayNamesMin: ['Не','По','Ут','Ср','Че','Пе','Су'],
16
+ weekHeader: 'Сед',
17
+ dateFormat: 'dd/mm/yy',
18
+ firstDay: 1,
19
+ isRTL: false,
20
+ showMonthAfterYear: false,
21
+ yearSuffix: ''};
22
+ $.datepicker.setDefaults($.datepicker.regional['sr']);
23
+ });
js/i18n/jquery.ui.datepicker-sv.js ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Swedish initialisation for the jQuery UI date picker plugin. */
2
+ /* Written by Anders Ekdahl ( anders@nomadiz.se). */
3
+ jQuery(function($){
4
+ $.datepicker.regional['sv'] = {
5
+ closeText: 'Stäng',
6
+ prevText: '&laquo;Förra',
7
+ nextText: 'Nästa&raquo;',
8
+ currentText: 'Idag',
9
+ monthNames: ['Januari','Februari','Mars','April','Maj','Juni',
10
+ 'Juli','Augusti','September','Oktober','November','December'],
11
+ monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun',
12
+ 'Jul','Aug','Sep','Okt','Nov','Dec'],
13
+ dayNamesShort: ['Sön','Mån','Tis','Ons','Tor','Fre','Lör'],
14
+ dayNames: ['Söndag','Måndag','Tisdag','Onsdag','Torsdag','Fredag','Lördag'],
15
+ dayNamesMin: ['Sö','Må','Ti','On','To','Fr','Lö'],
16
+ weekHeader: 'Ve',
17
+ dateFormat: 'yy-mm-dd',
18
+ firstDay: 1,
19
+ isRTL: false,
20
+ showMonthAfterYear: false,
21
+ yearSuffix: ''};
22
+ $.datepicker.setDefaults($.datepicker.regional['sv']);
23
+ });
js/i18n/jquery.ui.datepicker-ta.js ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Tamil (UTF-8) initialisation for the jQuery UI date picker plugin. */
2
+ /* Written by S A Sureshkumar (saskumar@live.com). */
3
+ jQuery(function($){
4
+ $.datepicker.regional['ta'] = {
5
+ closeText: 'மூடு',
6
+ prevText: 'முன்னையது',
7
+ nextText: 'அடுத்தது',
8
+ currentText: 'இன்று',
9
+ monthNames: ['தை','மாசி','பங்குனி','சித்திரை','வைகாசி','ஆனி',
10
+ 'ஆடி','ஆவணி','புரட்டாசி','ஐப்பசி','கார்த்திகை','மார்கழி'],
11
+ monthNamesShort: ['தை','மாசி','பங்','சித்','வைகா','ஆனி',
12
+ 'ஆடி','ஆவ','புர','ஐப்','கார்','மார்'],
13
+ dayNames: ['ஞாயிற்றுக்கிழமை','திங்கட்கிழமை','செவ்வாய்க்கிழமை','புதன்கிழமை','வியாழக்கிழமை','வெள்ளிக்கிழமை','சனிக்கிழமை'],
14
+ dayNamesShort: ['ஞாயிறு','திங்கள்','செவ்வாய்','புதன்','வியாழன்','வெள்ளி','சனி'],
15
+ dayNamesMin: ['ஞா','தி','செ','பு','வி','வெ','ச'],
16
+ weekHeader: 'Не',
17
+ dateFormat: 'dd/mm/yy',
18
+ firstDay: 1,
19
+ isRTL: false,
20
+ showMonthAfterYear: false,
21
+ yearSuffix: ''};
22
+ $.datepicker.setDefaults($.datepicker.regional['ta']);
23
+ });
js/i18n/jquery.ui.datepicker-th.js ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Thai initialisation for the jQuery UI date picker plugin. */
2
+ /* Written by pipo (pipo@sixhead.com). */
3
+ jQuery(function($){
4
+ $.datepicker.regional['th'] = {
5
+ closeText: 'ปิด',
6
+ prevText: '&laquo;&nbsp;ย้อน',
7
+ nextText: 'ถัดไป&nbsp;&raquo;',
8
+ currentText: 'วันนี้',
9
+ monthNames: ['มกราคม','กุมภาพันธ์','มีนาคม','เมษายน','พฤษภาคม','มิถุนายน',
10
+ 'กรกฎาคม','สิงหาคม','กันยายน','ตุลาคม','พฤศจิกายน','ธันวาคม'],
11
+ monthNamesShort: ['ม.ค.','ก.พ.','มี.ค.','เม.ย.','พ.ค.','มิ.ย.',
12
+ 'ก.ค.','ส.ค.','ก.ย.','ต.ค.','พ.ย.','ธ.ค.'],
13
+ dayNames: ['อาทิตย์','จันทร์','อังคาร','พุธ','พฤหัสบดี','ศุกร์','เสาร์'],
14
+ dayNamesShort: ['อา.','จ.','อ.','พ.','พฤ.','ศ.','ส.'],
15
+ dayNamesMin: ['อา.','จ.','อ.','พ.','พฤ.','ศ.','ส.'],
16
+ weekHeader: 'Wk',
17
+ dateFormat: 'dd/mm/yy',
18
+ firstDay: 0,
19
+ isRTL: false,
20
+ showMonthAfterYear: false,
21
+ yearSuffix: ''};
22
+ $.datepicker.setDefaults($.datepicker.regional['th']);
23
+ });
js/i18n/jquery.ui.datepicker-tj.js ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Tajiki (UTF-8) initialisation for the jQuery UI date picker plugin. */
2
+ /* Written by Abdurahmon Saidov (saidovab@gmail.com). */
3
+ jQuery(function($){
4
+ $.datepicker.regional['tj'] = {
5
+ closeText: 'Идома',
6
+ prevText: '&#x3c;Қафо',
7
+ nextText: 'Пеш&#x3e;',
8
+ currentText: 'Имрӯз',
9
+ monthNames: ['Январ','Феврал','Март','Апрел','Май','Июн',
10
+ 'Июл','Август','Сентябр','Октябр','Ноябр','Декабр'],
11
+ monthNamesShort: ['Янв','Фев','Мар','Апр','Май','Июн',
12
+ 'Июл','Авг','Сен','Окт','Ноя','Дек'],
13
+ dayNames: ['якшанбе','душанбе','сешанбе','чоршанбе','панҷшанбе','ҷумъа','шанбе'],
14
+ dayNamesShort: ['якш','душ','сеш','чор','пан','ҷум','шан'],
15
+ dayNamesMin: ['Як','Дш','Сш','Чш','Пш','Ҷм','Шн'],
16
+ weekHeader: 'Хф',
17
+ dateFormat: 'dd.mm.yy',
18
+ firstDay: 1,
19
+ isRTL: false,
20
+ showMonthAfterYear: false,
21
+ yearSuffix: ''};
22
+ $.datepicker.setDefaults($.datepicker.regional['tj']);
23
+ });
js/i18n/jquery.ui.datepicker-tr.js ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Turkish initialisation for the jQuery UI date picker plugin. */
2
+ /* Written by Izzet Emre Erkan (kara@karalamalar.net). */
3
+ jQuery(function($){
4
+ $.datepicker.regional['tr'] = {
5
+ closeText: 'kapat',
6
+ prevText: '&#x3c;geri',
7
+ nextText: 'ileri&#x3e',
8
+ currentText: 'bugün',
9
+ monthNames: ['Ocak','Şubat','Mart','Nisan','Mayıs','Haziran',
10
+ 'Temmuz','Ağustos','Eylül','Ekim','Kasım','Aralık'],
11
+ monthNamesShort: ['Oca','Şub','Mar','Nis','May','Haz',
12
+ 'Tem','Ağu','Eyl','Eki','Kas','Ara'],
13
+ dayNames: ['Pazar','Pazartesi','Salı','Çarşamba','Perşembe','Cuma','Cumartesi'],
14
+ dayNamesShort: ['Pz','Pt','Sa','Ça','Pe','Cu','Ct'],
15
+ dayNamesMin: ['Pz','Pt','Sa','Ça','Pe','Cu','Ct'],
16
+ weekHeader: 'Hf',
17
+ dateFormat: 'dd.mm.yy',
18
+ firstDay: 1,
19
+ isRTL: false,
20
+ showMonthAfterYear: false,
21
+ yearSuffix: ''};
22
+ $.datepicker.setDefaults($.datepicker.regional['tr']);
23
+ });
js/i18n/jquery.ui.datepicker-uk.js ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Ukrainian (UTF-8) initialisation for the jQuery UI date picker plugin. */
2
+ /* Written by Maxim Drogobitskiy (maxdao@gmail.com). */
3
+ jQuery(function($){
4
+ $.datepicker.regional['uk'] = {
5
+ closeText: 'Закрити',
6
+ prevText: '&#x3c;',
7
+ nextText: '&#x3e;',
8
+ currentText: 'Сьогодні',
9
+ monthNames: ['Січень','Лютий','Березень','Квітень','Травень','Червень',
10
+ 'Липень','Серпень','Вересень','Жовтень','Листопад','Грудень'],
11
+ monthNamesShort: ['Січ','Лют','Бер','Кві','Тра','Чер',
12
+ 'Лип','Сер','Вер','Жов','Лис','Гру'],
13
+ dayNames: ['неділя','понеділок','вівторок','середа','четвер','п’ятниця','субота'],
14
+ dayNamesShort: ['нед','пнд','вів','срд','чтв','птн','сбт'],
15
+ dayNamesMin: ['Нд','Пн','Вт','Ср','Чт','Пт','Сб'],
16
+ weekHeader: 'Не',
17
+ dateFormat: 'dd/mm/yy',
18
+ firstDay: 1,
19
+ isRTL: false,
20
+ showMonthAfterYear: false,
21
+ yearSuffix: ''};
22
+ $.datepicker.setDefaults($.datepicker.regional['uk']);
23
+ });
js/i18n/jquery.ui.datepicker-vi.js ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Vietnamese initialisation for the jQuery UI date picker plugin. */
2
+ /* Translated by Le Thanh Huy (lthanhhuy@cit.ctu.edu.vn). */
3
+ jQuery(function($){
4
+ $.datepicker.regional['vi'] = {
5
+ closeText: 'Đóng',
6
+ prevText: '&#x3c;Trước',
7
+ nextText: 'Tiếp&#x3e;',
8
+ currentText: 'Hôm nay',
9
+ monthNames: ['Tháng Một', 'Tháng Hai', 'Tháng Ba', 'Tháng Tư', 'Tháng Năm', 'Tháng Sáu',
10
+ 'Tháng Bảy', 'Tháng Tám', 'Tháng Chín', 'Tháng Mười', 'Tháng Mười Một', 'Tháng Mười Hai'],
11
+ monthNamesShort: ['Tháng 1', 'Tháng 2', 'Tháng 3', 'Tháng 4', 'Tháng 5', 'Tháng 6',
12
+ 'Tháng 7', 'Tháng 8', 'Tháng 9', 'Tháng 10', 'Tháng 11', 'Tháng 12'],
13
+ dayNames: ['Chủ Nhật', 'Thứ Hai', 'Thứ Ba', 'Thứ Tư', 'Thứ Năm', 'Thứ Sáu', 'Thứ Bảy'],
14
+ dayNamesShort: ['CN', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7'],
15
+ dayNamesMin: ['CN', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7'],
16
+ weekHeader: 'Tu',
17
+ dateFormat: 'dd/mm/yy',
18
+ firstDay: 0,
19
+ isRTL: false,
20
+ showMonthAfterYear: false,
21
+ yearSuffix: ''};
22
+ $.datepicker.setDefaults($.datepicker.regional['vi']);
23
+ });
js/i18n/jquery.ui.datepicker-zh-CN.js ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Chinese initialisation for the jQuery UI date picker plugin. */
2
+ /* Written by Cloudream (cloudream@gmail.com). */
3
+ jQuery(function($){
4
+ $.datepicker.regional['zh-CN'] = {
5
+ closeText: '关闭',
6
+ prevText: '&#x3c;上月',
7
+ nextText: '下月&#x3e;',
8
+ currentText: '今天',
9
+ monthNames: ['一月','二月','三月','四月','五月','六月',
10
+ '七月','八月','九月','十月','十一月','十二月'],
11
+ monthNamesShort: ['一','二','三','四','五','六',
12
+ '七','八','九','十','十一','十二'],
13
+ dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'],
14
+ dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'],
15
+ dayNamesMin: ['日','一','二','三','四','五','六'],
16
+ weekHeader: '周',
17
+ dateFormat: 'yy-mm-dd',
18
+ firstDay: 1,
19
+ isRTL: false,
20
+ showMonthAfterYear: true,
21
+ yearSuffix: '年'};
22
+ $.datepicker.setDefaults($.datepicker.regional['zh-CN']);
23
+ });
js/i18n/jquery.ui.datepicker-zh-HK.js ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Chinese initialisation for the jQuery UI date picker plugin. */
2
+ /* Written by SCCY (samuelcychan@gmail.com). */
3
+ jQuery(function($){
4
+ $.datepicker.regional['zh-HK'] = {
5
+ closeText: '關閉',
6
+ prevText: '&#x3c;上月',
7
+ nextText: '下月&#x3e;',
8
+ currentText: '今天',
9
+ monthNames: ['一月','二月','三月','四月','五月','六月',
10
+ '七月','八月','九月','十月','十一月','十二月'],
11
+ monthNamesShort: ['一','二','三','四','五','六',
12
+ '七','八','九','十','十一','十二'],
13
+ dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'],
14
+ dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'],
15
+ dayNamesMin: ['日','一','二','三','四','五','六'],
16
+ weekHeader: '周',
17
+ dateFormat: 'dd-mm-yy',
18
+ firstDay: 0,
19
+ isRTL: false,
20
+ showMonthAfterYear: true,
21
+ yearSuffix: '年'};
22
+ $.datepicker.setDefaults($.datepicker.regional['zh-HK']);
23
+ });
js/i18n/jquery.ui.datepicker-zh-TW.js ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Chinese initialisation for the jQuery UI date picker plugin. */
2
+ /* Written by Ressol (ressol@gmail.com). */
3
+ jQuery(function($){
4
+ $.datepicker.regional['zh-TW'] = {
5
+ closeText: '關閉',
6
+ prevText: '&#x3c;上月',
7
+ nextText: '下月&#x3e;',
8
+ currentText: '今天',
9
+ monthNames: ['一月','二月','三月','四月','五月','六月',
10
+ '七月','八月','九月','十月','十一月','十二月'],
11
+ monthNamesShort: ['一','二','三','四','五','六',
12
+ '七','八','九','十','十一','十二'],
13
+ dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'],
14
+ dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'],
15
+ dayNamesMin: ['日','一','二','三','四','五','六'],
16
+ weekHeader: '周',
17
+ dateFormat: 'yy/mm/dd',
18
+ firstDay: 1,
19
+ isRTL: false,
20
+ showMonthAfterYear: true,
21
+ yearSuffix: '年'};
22
+ $.datepicker.setDefaults($.datepicker.regional['zh-TW']);
23
+ });
js/mailchimp.js CHANGED
@@ -20,7 +20,7 @@
20
  }
21
  function mc_success(data){
22
  // Re-enable the submit button
23
- $('#mc_signup_submit').attr("disabled","");
24
 
25
  // Put the response in the message div
26
  $('#mc_message').html(data);
@@ -33,5 +33,6 @@
33
  });
34
  $('#mc_submit_type').val('js');
35
  }
 
36
  }
37
  })(jQuery);
20
  }
21
  function mc_success(data){
22
  // Re-enable the submit button
23
+ $('#mc_signup_submit').removeAttr("disabled");
24
 
25
  // Put the response in the message div
26
  $('#mc_message').html(data);
33
  });
34
  $('#mc_submit_type').val('js');
35
  }
36
+ $.scrollTo('#mc_signup', {offset: {top: -28}});
37
  }
38
  })(jQuery);
js/scrollTo.js ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * jQuery.ScrollTo - Easy element scrolling using jQuery.
3
+ * Copyright (c) 2007-2009 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
4
+ * Dual licensed under MIT and GPL.
5
+ * Date: 5/25/2009
6
+ * @author Ariel Flesler
7
+ * @version 1.4.2
8
+ *
9
+ * http://flesler.blogspot.com/2007/10/jqueryscrollto.html
10
+ */
11
+ ;(function(d){var k=d.scrollTo=function(a,i,e){d(window).scrollTo(a,i,e)};k.defaults={axis:'xy',duration:parseFloat(d.fn.jquery)>=1.3?0:1};k.window=function(a){return d(window)._scrollable()};d.fn._scrollable=function(){return this.map(function(){var a=this,i=!a.nodeName||d.inArray(a.nodeName.toLowerCase(),['iframe','#document','html','body'])!=-1;if(!i)return a;var e=(a.contentWindow||a).document||a.ownerDocument||a;return d.browser.safari||e.compatMode=='BackCompat'?e.body:e.documentElement})};d.fn.scrollTo=function(n,j,b){if(typeof j=='object'){b=j;j=0}if(typeof b=='function')b={onAfter:b};if(n=='max')n=9e9;b=d.extend({},k.defaults,b);j=j||b.speed||b.duration;b.queue=b.queue&&b.axis.length>1;if(b.queue)j/=2;b.offset=p(b.offset);b.over=p(b.over);return this._scrollable().each(function(){var q=this,r=d(q),f=n,s,g={},u=r.is('html,body');switch(typeof f){case'number':case'string':if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(f)){f=p(f);break}f=d(f,this);case'object':if(f.is||f.style)s=(f=d(f)).offset()}d.each(b.axis.split(''),function(a,i){var e=i=='x'?'Left':'Top',h=e.toLowerCase(),c='scroll'+e,l=q[c],m=k.max(q,i);if(s){g[c]=s[h]+(u?0:l-r.offset()[h]);if(b.margin){g[c]-=parseInt(f.css('margin'+e))||0;g[c]-=parseInt(f.css('border'+e+'Width'))||0}g[c]+=b.offset[h]||0;if(b.over[h])g[c]+=f[i=='x'?'width':'height']()*b.over[h]}else{var o=f[h];g[c]=o.slice&&o.slice(-1)=='%'?parseFloat(o)/100*m:o}if(/^\d+$/.test(g[c]))g[c]=g[c]<=0?0:Math.min(g[c],m);if(!a&&b.queue){if(l!=g[c])t(b.onAfterFirst);delete g[c]}});t(b.onAfter);function t(a){r.animate(g,j,b.easing,a&&function(){a.call(this,n,b)})}}).end()};k.max=function(a,i){var e=i=='x'?'Width':'Height',h='scroll'+e;if(!d(a).is('html,body'))return a[h]-d(a)[e.toLowerCase()]();var c='client'+e,l=a.ownerDocument.documentElement,m=a.ownerDocument.body;return Math.max(l[h],m[h])-Math.min(l[c],m[c])};function p(a){return typeof a=='object'?a:{top:a,left:a}}})(jQuery);
mailchimp.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: MailChimp
4
  Plugin URI: http://www.mailchimp.com/plugins/mailchimp-wordpress-plugin/
5
  Description: The MailChimp plugin allows you to quickly and easily add a signup form for your MailChimp list.
6
- Version: 1.2.4
7
  Author: MailChimp and Crowd Favorite
8
  Author URI: http://mailchimp.com/api/
9
  */
@@ -25,7 +25,7 @@ Author URI: http://mailchimp.com/api/
25
  */
26
 
27
  // Version constant for easy CSS refreshes
28
- define('MCSF_VER', '1.2.4');
29
 
30
  // What's our permission (capability) threshold
31
  define('MCSF_CAP_THRESHOLD', 'edit_plugins');
@@ -44,9 +44,6 @@ include_once('mailchimp_widget.php');
44
  // includes the backwards compatibility functions
45
  include_once('mailchimp_compat.php');
46
 
47
-
48
-
49
-
50
  /**
51
  * Do the following plugin setup steps here
52
  *
@@ -57,13 +54,22 @@ include_once('mailchimp_compat.php');
57
  */
58
  function mailchimpSF_plugin_init() {
59
  // Internationalize the plugin
60
- load_plugin_textdomain( 'mailchimp_i18n', MCSF_LANG_DIR.'po/');
61
-
 
 
62
  // Bring in our appropriate JS and CSS resources
63
  mailchimpSF_load_resources();
64
  }
65
  add_action( 'init', 'mailchimpSF_plugin_init' );
66
 
 
 
 
 
 
 
 
67
  /**
68
  * Loads the appropriate JS and CSS resources depending on
69
  * settings and context (admin or not)
@@ -74,6 +80,7 @@ function mailchimpSF_load_resources() {
74
  // JS
75
  if (get_option('mc_use_javascript') == 'on') {
76
  if (!is_admin()) {
 
77
  wp_enqueue_script('mailchimpSF_main_js', MCSF_URL.'js/mailchimp.js', array('jquery', 'jquery-form'), MCSF_VER);
78
  // some javascript to get ajax version submitting to the proper location
79
  global $wp_scripts;
@@ -83,10 +90,14 @@ function mailchimpSF_load_resources() {
83
  }
84
  }
85
 
86
- // CSS
87
- if (is_admin() && $_GET['page'] == 'mailchimpSF_options') {
88
- wp_enqueue_style('mailchimpSF_admin_css', MCSF_URL.'css/admin.css');
 
 
89
  }
 
 
90
  else {
91
  wp_enqueue_style('mailchimpSF_main_css', home_url('?mcsf_action=main_css&ver='.MCSF_VER));
92
  wp_enqueue_style('mailchimpSF_ie_css', MCSF_URL.'css/ie.css');
@@ -95,6 +106,55 @@ function mailchimpSF_load_resources() {
95
  }
96
  }
97
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
98
  /**
99
  * Handles requests that as light-weight a load as possible.
100
  * typically, JS or CSS
@@ -163,7 +223,7 @@ if (get_option('mc_custom_style')=='on'){
163
  width:100%;
164
  }
165
  #mc_display_rewards {}
166
- #mc_interests_header {
167
  font-weight:bold;
168
  }
169
  div.mc_interest{
@@ -177,6 +237,19 @@ if (get_option('mc_custom_style')=='on'){
177
  .mc_signup_submit {
178
  text-align:center;
179
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
180
  <?php
181
  }
182
 
@@ -255,7 +328,20 @@ function mailchimpSF_request_handler() {
255
  }
256
  add_action('init', 'mailchimpSF_request_handler');
257
 
258
-
 
 
 
 
 
 
 
 
 
 
 
 
 
259
 
260
  /**
261
  * Checks to see if we're storing a password, if so, we need
@@ -264,11 +350,23 @@ add_action('init', 'mailchimpSF_request_handler');
264
  * @return bool
265
  **/
266
  function mailchimpSF_needs_upgrade() {
267
- $ig = get_option('mc_interest_groups');
268
- return get_option('mc_show_interest_groups') == 'on' && (!is_array($ig['groups']) || !is_array($ig['groups'][0]));
 
 
 
 
 
 
 
 
 
 
 
269
  }
270
 
271
  /**
 
272
  * MCAPIv1.2 -> MCAPIv1.3 - update interest groups
273
  * 2011-02-09 - old password upgrade code deleted as 0.5 is way old
274
  */
@@ -276,10 +374,8 @@ function mailchimpSF_do_upgrade() {
276
  //left in just for good measure
277
  delete_option('mc_password');
278
  $api = new mailchimpSF_MCAPI(get_option('mc_apikey'));
279
- $ig = $api->listInterestGroupings(get_option('mc_list_id'));
280
- $ig = $ig[0];
281
- update_option('mc_interest_groups', $ig);
282
-
283
  }
284
 
285
  /**
@@ -306,7 +402,7 @@ function mailchimpSF_set_api_key($api_key = '') {
306
  $delete_setup = true;
307
  foreach($lists as $list) {
308
  if ($list['id'] == $cur_list_id) {
309
- $list_id = $_POST['mc_list_id'];
310
  $delete_setup = false;
311
  }
312
  }
@@ -327,11 +423,6 @@ function mailchimpSF_set_api_key($api_key = '') {
327
  if ($delete_setup){
328
  mailchimpSF_delete_setup();
329
  }
330
-
331
- //set these for the form fields below
332
- $user = $_REQUEST['mc_username'];
333
-
334
- // return compact('user', 'delete_setup', 'list_id')
335
  }
336
 
337
  /**
@@ -341,11 +432,18 @@ function mailchimpSF_delete_setup() {
341
  delete_option('mc_user_id');
342
  delete_option('mc_rewards');
343
  delete_option('mc_use_javascript');
 
344
  delete_option('mc_use_unsub_link');
345
  delete_option('mc_list_id');
346
  delete_option('mc_list_name');
 
 
 
 
 
 
 
347
  delete_option('mc_interest_groups');
348
- delete_option('mc_show_interest_groups');
349
  $mv = get_option('mc_merge_vars');
350
  if (is_array($mv)){
351
  foreach($mv as $var){
@@ -370,6 +468,7 @@ function mailchimpSF_reset_list_settings() {
370
 
371
  delete_option('mc_use_javascript');
372
  delete_option('mc_use_unsub_link');
 
373
 
374
  delete_option('mc_header_content');
375
  delete_option('mc_subheader_content');
@@ -421,6 +520,7 @@ function mailchimpSF_set_form_defaults($list_name = '') {
421
  update_option('mc_header_content',__( 'Sign up for', 'mailchimp_i18n' ).' '.$list_name);
422
  update_option('mc_submit_text',__( 'Subscribe', 'mailchimp_i18n' ));
423
 
 
424
  update_option('mc_custom_style','on');
425
  update_option('mc_use_javascript','on');
426
  update_option('mc_use_unsub_link','off');
@@ -433,8 +533,6 @@ function mailchimpSF_set_form_defaults($list_name = '') {
433
  update_option('mc_form_border_color','C4D3EA');
434
  update_option('mc_form_background','EEF3F8');
435
  update_option('mc_form_text_color','555555');
436
-
437
- update_option('mc_show_interest_groups', 'on' );
438
  }
439
 
440
  /**
@@ -462,6 +560,16 @@ function mailchimpSF_save_general_form_settings() {
462
  mailchimpSF_global_msg($msg);
463
  }
464
 
 
 
 
 
 
 
 
 
 
 
465
  if (isset($_POST['mc_use_unsub_link'])){
466
  update_option('mc_use_unsub_link', 'on');
467
  $msg = '<p class="success_msg">'.__('Unsubscribe link turned On!', 'mailchimp_i18n').'</p>';
@@ -486,7 +594,7 @@ function mailchimpSF_save_general_form_settings() {
486
  update_option('mc_submit_text', $submit_text);
487
 
488
  // Set Custom Style option
489
- update_option('mc_custom_style', (isset($_POST['mc_custom_style'])) ? 'on' : 'off');
490
 
491
  //we told them not to put these things we are replacing in, but let's just make sure they are listening...
492
  update_option('mc_header_border_width',str_replace('px','',$_POST['mc_header_border_width']) );
@@ -499,7 +607,17 @@ function mailchimpSF_save_general_form_settings() {
499
  update_option('mc_form_background',str_replace('#','',$_POST['mc_form_background']));
500
  update_option('mc_form_text_color', str_replace('#','',$_POST['mc_form_text_color']));
501
 
502
- update_option('mc_show_interest_groups', (isset($_POST['mc_show_interest_groups'])) ? 'on' : 'off');
 
 
 
 
 
 
 
 
 
 
503
 
504
  $mv = get_option('mc_merge_vars');
505
  if (is_array($mv)) {
@@ -528,49 +646,68 @@ function mailchimpSF_change_list_if_necessary($api_key) {
528
  $lists = $api->lists(array(),0,100);
529
  $lists = $lists['data'];
530
 
531
- /* If our incoming list ID (the one chosen in the select dropdown)
532
- is in our array of lists, the set it to be the active list */
533
- foreach($lists as $list) {
534
- if ($list['id'] == $_POST['mc_list_id']) {
535
- $list_id = $_POST['mc_list_id'];
536
- $list_name = $list['name'];
 
 
 
 
537
  }
538
- }
539
 
540
- $orig_list = get_option('mc_list_id');
541
- if ($list_id != '') {
542
- update_option('mc_list_id', $list_id);
543
- update_option('mc_list_name', $list_name);
 
 
544
 
545
- // See if the user changed the list
546
- if ($orig_list != $list_id){
547
- // The user changed the list, Reset the Form Defaults
548
- mailchimpSF_set_form_defaults($list_name);
549
- }
 
550
 
551
- // Grab the merge vars and interest groups
552
- $mv = $api->listMergeVars($list_id);
553
- $ig = $api->listInterestGroupings($list_id);
554
- $ig = $ig[0];
555
- update_option('mc_merge_vars', $mv);
556
- foreach($mv as $var){
557
- $opt = 'mc_mv_'.$var['tag'];
558
- //turn them all on by default
559
- if ($orig_list != $list_id){
560
- update_option($opt, 'on' );
561
- }
562
- }
563
- update_option('mc_interest_groups', $ig);
564
-
565
- $msg = '<p class="success_msg">'.
566
- sprintf(
567
- __('Success! Loaded and saved the info for %d Merge Variables and %d Interest Groups from your list', 'mailchimp_i18n'),
568
- count($mv),
569
- count($ig['groups'])
570
- ).
571
- ' "'.$list_name.'"<br/><br/>'.
572
- __('Now you should either Turn On the MailChimp Widget or change your options below, then turn it on.', 'mailchimp_i18n').'</p>';
573
- mailchimpSF_global_msg($msg);
 
 
 
 
 
 
 
 
 
 
 
 
 
574
  }
575
  }
576
 
@@ -578,13 +715,6 @@ function mailchimpSF_change_list_if_necessary($api_key) {
578
  * Outputs the Settings/Options page
579
  */
580
  function mailchimpSF_setup_page() {
581
-
582
- // See if we need an upgrade
583
- if (mailchimpSF_needs_upgrade()) {
584
- // remove password option if it's set
585
- mailchimpSF_do_upgrade();
586
- }
587
-
588
  ?>
589
  <div class="wrap">
590
 
@@ -635,7 +765,7 @@ if (get_option('mc_apikey') == '') {
635
  <tr valign="top">
636
  <th scope="row"><?php esc_html_e('API Key', 'mailchimp_i18n'); ?>:</th>
637
  <td>
638
- <input name="mc_apikey" type="text" id="mc_apikey" class="code" value="<?php echo esc_attr($apikey); ?>" size="32" />
639
  <br/>
640
  <a href="http://admin.mailchimp.com/account/api-key-popup" target="_blank">get your API Key here</a>
641
  </td>
@@ -791,6 +921,12 @@ if (get_option('mc_list_id') == '') return;
791
  <td><input name="mc_use_javascript" type="checkbox" <?php checked(get_option('mc_use_javascript'), 'on'); ?> id="mc_use_javascript" class="code" />
792
  <em><label for="mc_use_javascript"><?php esc_html_e('turning this on will use fancy javascript submission and should degrade gracefully for users not using javascript. It is optional and can be turned on or off at any time.', 'mailchimp_i18n'); ?></label></em>
793
  </td>
 
 
 
 
 
 
794
  </tr>
795
  <tr valign="top">
796
  <th scope="row"><?php esc_html_e('Include Unsubscribe link?', 'mailchimp_i18n'); ?>:</th>
@@ -922,49 +1058,63 @@ if (count($mv) == 0 || !is_array($mv)){
922
 
923
  <?php
924
  // Interest Groups Table
925
- $ig = get_option('mc_interest_groups');
926
-
927
- if (!is_array($ig) || empty($ig) || $ig == 'N') {
928
- ?>
929
- <em><?php esc_html_e('No Interest Groups Setup for this List', 'mailchimp_i18n'); ?></em>
930
- <?php
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
931
  }
932
  else {
933
  ?>
934
- <table class='widefat'>
935
- <tr valign="top">
936
- <th width="75px">
937
- <label for="mc_show_interest_groups"><?php esc_html_e('Show?', 'mailchimp_i18n'); ?></label>
938
- </th>
939
- <th>
940
- <input name="mc_show_interest_groups" id="mc_show_interest_groups" type="checkbox" id="mc_show_interest_groups" class="code"<?php checked('on', get_option('mc_show_interest_groups')); ?> />
941
- </th>
942
- </tr>
943
- <tr valign="top">
944
- <th><?php esc_html_e('Name', 'mailchimp_i18n'); ?>:</th>
945
- <th><?php echo esc_html($ig['name']); ?></th>
946
- </tr>
947
- <tr valign="top">
948
- <th><?php esc_html_e('Input Type', 'mailchimp_i18n'); ?>:</th>
949
- <td><?php echo esc_html($ig['form_field']); ?></td>
950
- </tr>
951
- <tr valign="top">
952
- <th><?php esc_html_e('Options', 'mailchimp_i18n'); ?>:</th>
953
- <td>
954
- <ul>
955
- <?php
956
- foreach($ig['groups'] as $interest){
957
- ?>
958
- <li><?php echo esc_html($interest['name']); ?></li>
959
- <?php
960
- }
961
- ?>
962
- </ul>
963
- </td>
964
- </tr>
965
- </table>
966
- <?php
967
  }
 
968
  ?>
969
  <p class="submit">
970
  <input type="submit" value="<?php esc_attr_e('Update Subscribe Form Settings', 'mailchimp_i18n'); ?>" class="button" />
@@ -998,58 +1148,93 @@ add_shortcode('mailchimpsf_form', 'mailchimpSF_shortcode');
998
  * @return bool
999
  */
1000
  function mailchimpSF_signup_submit() {
1001
- $mv = get_option('mc_merge_vars');
1002
- $ig = get_option('mc_interest_groups');
 
 
1003
 
1004
  $success = true;
1005
  $listId = get_option('mc_list_id');
1006
- $email = $_POST['mc_mv_EMAIL'];
1007
  $merge = $errs = array(); // Set up some vars
1008
 
1009
  // Loop through our Merge Vars, and if they're empty, but required, then print an error, and mark as failed
1010
  foreach($mv as $var) {
1011
  $opt = 'mc_mv_'.$var['tag'];
1012
- if ($var['req'] == 'Y' && trim($_POST[$opt]) == '') {
 
 
 
 
 
 
 
1013
  $success = false;
1014
  $errs[] = sprintf(__("You must fill in %s.", 'mailchimp_i18n'), esc_html($var['name']));
1015
  }
1016
  else {
1017
  if ($var['tag'] != 'EMAIL') {
1018
- $merge[$var['tag']] = $_POST[$opt];
1019
  }
1020
- }
 
 
 
 
1021
  }
1022
 
1023
  // Head back to the beginning of the merge vars array
1024
  reset($mv);
1025
 
1026
-
1027
- if (get_option('mc_show_interest_groups')=='on') {
1028
- switch ($ig['form_field']) {
1029
- case 'select':
1030
- case 'dropdown':
1031
- case 'radio':
1032
- $merge['INTERESTS'] = str_replace(',', '\,', $_POST['interests']);
1033
- break;
1034
- case 'checkbox':
1035
- if (isset($_POST['interests'])) {
1036
- foreach ($_POST['interests'] as $i => $nothing) {
1037
- $merge['INTERESTS'] .= str_replace(',', '\,', $i).',';
1038
  }
1039
- }
1040
- break;
1041
- default:
1042
- // Nothing
1043
- break;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1044
  }
1045
  }
1046
-
1047
-
1048
  // If we're good
1049
- if ($success) {
1050
  // Clear out empty merge vars
 
1051
  foreach ($merge as $k => $v) {
1052
- if (trim($v) === '') {
 
 
 
1053
  unset($merge[$k]);
1054
  }
1055
  }
@@ -1059,35 +1244,65 @@ function mailchimpSF_signup_submit() {
1059
  $merge = '';
1060
  }
1061
 
1062
- $api = new mailchimpSF_MCAPI(get_option('mc_apikey'));
1063
- $retval = $api->listSubscribe( $listId, $email, $merge);
1064
- if (!$retval) {
1065
- switch($api->errorCode) {
1066
- case '214' :
1067
- $errs[] = __("That email address is already subscribed to the list", 'mailchimp_i18n').'.';
1068
- break;
1069
- case '250' :
1070
- list($field, $rest) = explode(' ', $api->errorMessage, 2);
1071
- $errs[] = sprintf(__("You must fill in %s.", 'mailchimp_i18n'), esc_html($field));
1072
- break;
1073
- case '254' :
1074
- list($i1, $i2, $i3, $field, $rest) = explode(' ',$api->errorMessage,5);
1075
- $errs[] = sprintf(__("%s has invalid content.", 'mailchimp_i18n'), esc_html($field));
1076
- break;
1077
- case '270' :
1078
- $errs[] = __("An invalid Interest Group was selected", 'mailchimp_i18n').'.';
1079
- break;
1080
- case '502' :
1081
- $errs[] = __("That email address is invalid", 'mailchimp_i18n').'.';
1082
- break;
1083
- default:
1084
- $errs[] = $api->errorCode.":".$api->errorMessage;
1085
- break;
1086
- }
1087
- $success = false;
1088
  }
1089
  else {
1090
- $msg = "<strong class='mc_success_msg'>".esc_html(__("Success, you've been signed up! Please look for our confirmation email!", 'mailchimp_i18n'))."</strong>";
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1091
  }
1092
  }
1093
 
@@ -1099,6 +1314,9 @@ function mailchimpSF_signup_submit() {
1099
  }
1100
  $msg .= '</span>';
1101
  }
 
 
 
1102
 
1103
  // Set our global message
1104
  mailchimpSF_global_msg($msg);
@@ -1150,12 +1368,13 @@ function mailchimpSF_where_am_i() {
1150
  break;
1151
  }
1152
  }
 
1153
  // Define our complete filesystem path
1154
  define('MCSF_DIR', $mscf_dir);
1155
 
1156
  /* Lang location needs to be relative *from* ABSPATH,
1157
  so strip it out of our language dir location */
1158
- define('MCSF_LANG_DIR', str_replace(ABSPATH, '', MCSF_DIR));
1159
 
1160
  // Define our complete URL to the plugin folder
1161
  define('MCSF_URL', $mscf_url);
3
  Plugin Name: MailChimp
4
  Plugin URI: http://www.mailchimp.com/plugins/mailchimp-wordpress-plugin/
5
  Description: The MailChimp plugin allows you to quickly and easily add a signup form for your MailChimp list.
6
+ Version: 1.2.5
7
  Author: MailChimp and Crowd Favorite
8
  Author URI: http://mailchimp.com/api/
9
  */
25
  */
26
 
27
  // Version constant for easy CSS refreshes
28
+ define('MCSF_VER', '1.2.5');
29
 
30
  // What's our permission (capability) threshold
31
  define('MCSF_CAP_THRESHOLD', 'edit_plugins');
44
  // includes the backwards compatibility functions
45
  include_once('mailchimp_compat.php');
46
 
 
 
 
47
  /**
48
  * Do the following plugin setup steps here
49
  *
54
  */
55
  function mailchimpSF_plugin_init() {
56
  // Internationalize the plugin
57
+ $textdomain = 'mailchimp_i18n';
58
+ $locale = apply_filters( 'plugin_locale', get_locale(), $textdomain);
59
+ load_textdomain('mailchimp_i18n', MCSF_LANG_DIR.$textdomain.'-'.$locale.'.mo');
60
+
61
  // Bring in our appropriate JS and CSS resources
62
  mailchimpSF_load_resources();
63
  }
64
  add_action( 'init', 'mailchimpSF_plugin_init' );
65
 
66
+ function mailchimpSD_plugin_action_links($links) {
67
+ $settings_link = '<a href="'. admin_url('options-general.php?page=mailchimpSF_options').'">'.__('Settings', 'mailchimp_i18n' ).'</a>';
68
+ array_unshift($links, $settings_link);
69
+ return $links;
70
+ }
71
+ add_filter('plugin_action_links', 'mailchimpSD_plugin_action_links', 10, 1);
72
+
73
  /**
74
  * Loads the appropriate JS and CSS resources depending on
75
  * settings and context (admin or not)
80
  // JS
81
  if (get_option('mc_use_javascript') == 'on') {
82
  if (!is_admin()) {
83
+ wp_enqueue_script('jquery_scrollto', MCSF_URL.'js/scrollTo.js', array('jquery'), MCSF_VER);
84
  wp_enqueue_script('mailchimpSF_main_js', MCSF_URL.'js/mailchimp.js', array('jquery', 'jquery-form'), MCSF_VER);
85
  // some javascript to get ajax version submitting to the proper location
86
  global $wp_scripts;
90
  }
91
  }
92
 
93
+ if (get_option('mc_use_datepicker') == 'on' && !is_admin()) {
94
+ // Datepicker theme
95
+ wp_enqueue_style('flick', MCSF_URL.'/css/flick/flick.css');
96
+ // Datepicker JS
97
+ wp_enqueue_script('datepicker', MCSF_URL.'/js/datepicker.js', array('jquery','jquery-ui-core'));
98
  }
99
+
100
+ // CSS
101
  else {
102
  wp_enqueue_style('mailchimpSF_main_css', home_url('?mcsf_action=main_css&ver='.MCSF_VER));
103
  wp_enqueue_style('mailchimpSF_ie_css', MCSF_URL.'css/ie.css');
106
  }
107
  }
108
 
109
+
110
+ /**
111
+ * Loads resources for the MailChimp admin page
112
+ *
113
+ * @return void
114
+ */
115
+ function mc_admin_page_load_resources() {
116
+ wp_enqueue_style('mailchimpSF_admin_css', MCSF_URL.'css/admin.css');
117
+ }
118
+ add_action('load-settings_page_mailchimpSF_options', 'mc_admin_page_load_resources');
119
+
120
+
121
+ /**
122
+ * Loads jQuery Datepicker for the date-pick class
123
+ **/
124
+ function mc_datepicker_load() {
125
+ ?>
126
+ <script type="text/javascript">
127
+ jQuery(function($) {
128
+ $('.date-pick').datepicker({
129
+ autoFocusNextInput: true,
130
+ constrainInput: false,
131
+ changeMonth: true,
132
+ changeYear: true,
133
+ beforeShow: function(input, inst) { $('#ui-datepicker-div').addClass('show'); },
134
+ dateFormat: 'yy/mm/dd',
135
+ });
136
+
137
+ d = new Date();
138
+ $('.birthdate-pick').datepicker({
139
+ autoFocusNextInput: true,
140
+ constrainInput: false,
141
+ changeMonth: true,
142
+ changeYear: false,
143
+ minDate: new Date(d.getFullYear(), 1-1, 1),
144
+ maxDate: new Date(d.getFullYear(), 12-1, 31),
145
+ beforeShow: function(input, inst) { $('#ui-datepicker-div').removeClass('show'); },
146
+ dateFormat: 'mm/dd',
147
+ });
148
+
149
+
150
+ });
151
+ </script>
152
+ <?php
153
+ }
154
+ if (get_option('mc_use_datepicker') == 'on' && !is_admin()) {
155
+ add_action('wp_head', 'mc_datepicker_load');
156
+ }
157
+
158
  /**
159
  * Handles requests that as light-weight a load as possible.
160
  * typically, JS or CSS
223
  width:100%;
224
  }
225
  #mc_display_rewards {}
226
+ .mc_interests_header {
227
  font-weight:bold;
228
  }
229
  div.mc_interest{
237
  .mc_signup_submit {
238
  text-align:center;
239
  }
240
+ ul.mc_list {
241
+ list-style-type: none;
242
+ }
243
+ ul.mc_list li {
244
+ font-size: 12px;
245
+ }
246
+ .ui-datepicker-year {
247
+ display: none;
248
+ }
249
+ #ui-datepicker-div.show .ui-datepicker-year {
250
+ display: inline;
251
+ padding-left: 3px
252
+ }
253
  <?php
254
  }
255
 
328
  }
329
  add_action('init', 'mailchimpSF_request_handler');
330
 
331
+ /**
332
+ * Upgrades data if it needs to. Checks on admin_init
333
+ *
334
+ * @return void
335
+ */
336
+ function mailchimpSF_upgrade() {
337
+ // See if we need an upgrade
338
+ if (mailchimpSF_needs_upgrade()) {
339
+ // remove password option if it's set (0.5)
340
+ // Update interest group data
341
+ mailchimpSF_do_upgrade();
342
+ }
343
+ }
344
+ add_action('admin_init', 'mailchimpSF_upgrade');
345
 
346
  /**
347
  * Checks to see if we're storing a password, if so, we need
350
  * @return bool
351
  **/
352
  function mailchimpSF_needs_upgrade() {
353
+ $igs = get_option('mc_interest_groups');
354
+
355
+ /* True if:
356
+ * The option is set in the database AND
357
+ * The option is empty (no interest groups) OR the option is an array and the first element has an 'id' element in it
358
+ * False otherwise
359
+ */
360
+ if ($igs !== false && (empty($igs) || (is_array($igs) && isset($igs[0]['id']))) ) {
361
+ return false;
362
+ }
363
+ else {
364
+ return true;
365
+ }
366
  }
367
 
368
  /**
369
+ * 1.2.4 -> 1.2.5 - Update to support multiple interest groups
370
  * MCAPIv1.2 -> MCAPIv1.3 - update interest groups
371
  * 2011-02-09 - old password upgrade code deleted as 0.5 is way old
372
  */
374
  //left in just for good measure
375
  delete_option('mc_password');
376
  $api = new mailchimpSF_MCAPI(get_option('mc_apikey'));
377
+ $igs = $api->listInterestGroupings(get_option('mc_list_id'));
378
+ update_option('mc_interest_groups', $igs);
 
 
379
  }
380
 
381
  /**
402
  $delete_setup = true;
403
  foreach($lists as $list) {
404
  if ($list['id'] == $cur_list_id) {
405
+ $list_id = isset($_POST['mc_list_id']) ? $_POST['mc_list_id'] : '';
406
  $delete_setup = false;
407
  }
408
  }
423
  if ($delete_setup){
424
  mailchimpSF_delete_setup();
425
  }
 
 
 
 
 
426
  }
427
 
428
  /**
432
  delete_option('mc_user_id');
433
  delete_option('mc_rewards');
434
  delete_option('mc_use_javascript');
435
+ delete_option('mc_use_datepicker');
436
  delete_option('mc_use_unsub_link');
437
  delete_option('mc_list_id');
438
  delete_option('mc_list_name');
439
+ $igs = get_option('mc_interest_groups');
440
+ if (is_array($igs)) {
441
+ foreach ($igs as $ig) {
442
+ $opt = 'mc_show_interest_groups_'.$ig['id'];
443
+ delete_option($opt);
444
+ }
445
+ }
446
  delete_option('mc_interest_groups');
 
447
  $mv = get_option('mc_merge_vars');
448
  if (is_array($mv)){
449
  foreach($mv as $var){
468
 
469
  delete_option('mc_use_javascript');
470
  delete_option('mc_use_unsub_link');
471
+ delete_option('mc_use_datepicker');
472
 
473
  delete_option('mc_header_content');
474
  delete_option('mc_subheader_content');
520
  update_option('mc_header_content',__( 'Sign up for', 'mailchimp_i18n' ).' '.$list_name);
521
  update_option('mc_submit_text',__( 'Subscribe', 'mailchimp_i18n' ));
522
 
523
+ update_option('mc_use_datepicker', 'on');
524
  update_option('mc_custom_style','on');
525
  update_option('mc_use_javascript','on');
526
  update_option('mc_use_unsub_link','off');
533
  update_option('mc_form_border_color','C4D3EA');
534
  update_option('mc_form_background','EEF3F8');
535
  update_option('mc_form_text_color','555555');
 
 
536
  }
537
 
538
  /**
560
  mailchimpSF_global_msg($msg);
561
  }
562
 
563
+ if (isset($_POST['mc_use_datepicker'])){
564
+ update_option('mc_use_datepicker', 'on');
565
+ $msg = '<p class="success_msg">'.__('Datepicker turned On!', 'mailchimp_i18n').'</p>';
566
+ mailchimpSF_global_msg($msg);
567
+ } else if (get_option('mc_use_datepicker')!='off') {
568
+ update_option('mc_use_datepicker', 'off');
569
+ $msg = '<p class="success_msg">'.__('Datepicker turned Off!', 'mailchimp_i18n').'</p>';
570
+ mailchimpSF_global_msg($msg);
571
+ }
572
+
573
  if (isset($_POST['mc_use_unsub_link'])){
574
  update_option('mc_use_unsub_link', 'on');
575
  $msg = '<p class="success_msg">'.__('Unsubscribe link turned On!', 'mailchimp_i18n').'</p>';
594
  update_option('mc_submit_text', $submit_text);
595
 
596
  // Set Custom Style option
597
+ update_option('mc_custom_style', isset($_POST['mc_custom_style']) ? 'on' : 'off');
598
 
599
  //we told them not to put these things we are replacing in, but let's just make sure they are listening...
600
  update_option('mc_header_border_width',str_replace('px','',$_POST['mc_header_border_width']) );
607
  update_option('mc_form_background',str_replace('#','',$_POST['mc_form_background']));
608
  update_option('mc_form_text_color', str_replace('#','',$_POST['mc_form_text_color']));
609
 
610
+ $igs = get_option('mc_interest_groups');
611
+ if (is_array($igs)) {
612
+ foreach($igs as $var){
613
+ $opt = 'mc_show_interest_groups_'.$var['id'];
614
+ if (isset($_POST[$opt])){
615
+ update_option($opt,'on');
616
+ } else {
617
+ update_option($opt,'off');
618
+ }
619
+ }
620
+ }
621
 
622
  $mv = get_option('mc_merge_vars');
623
  if (is_array($mv)) {
646
  $lists = $api->lists(array(),0,100);
647
  $lists = $lists['data'];
648
 
649
+ if (is_array($lists) && !empty($lists) && isset($_POST['mc_list_id'])) {
650
+
651
+ /* If our incoming list ID (the one chosen in the select dropdown)
652
+ is in our array of lists, the set it to be the active list */
653
+ foreach($lists as $key => $list) {
654
+ if ($list['id'] == $_POST['mc_list_id']) {
655
+ $list_id = $_POST['mc_list_id'];
656
+ $list_name = $list['name'];
657
+ $list_key = $key;
658
+ }
659
  }
 
660
 
661
+ $orig_list = get_option('mc_list_id');
662
+ if ($list_id != '') {
663
+ update_option('mc_list_id', $list_id);
664
+ update_option('mc_list_name', $list_name);
665
+ update_option('mc_email_type_option', $lists[$list_key]['email_type_option']);
666
+
667
 
668
+ // See if the user changed the list
669
+ if ($orig_list != $list_id){
670
+ // The user changed the list, Reset the Form Defaults
671
+ mailchimpSF_set_form_defaults($list_name);
672
+ }
673
+ // email_type_option
674
 
675
+ // Grab the merge vars and interest groups
676
+ $mv = $api->listMergeVars($list_id);
677
+ $igs = $api->listInterestGroupings($list_id);
678
+
679
+ update_option('mc_merge_vars', $mv);
680
+ foreach($mv as $var){
681
+ $opt = 'mc_mv_'.$var['tag'];
682
+ //turn them all on by default
683
+ if ($orig_list != $list_id) {
684
+ update_option($opt, 'on' );
685
+ }
686
+ }
687
+ update_option('mc_interest_groups', $igs);
688
+ if (is_array($igs)) {
689
+ foreach ($igs as $var){
690
+ $opt = 'mc_show_interest_groups_'.$var['id'];
691
+ //turn them all on by default
692
+ if ($orig_list != $list_id) {
693
+ update_option($opt, 'on' );
694
+ }
695
+ }
696
+ }
697
+ $igs_text = ' ';
698
+ if (is_array($igs)) {
699
+ $igs_text .= sprintf(__('and %s Sets of Interest Groups', 'mailchimp_i18n'), count($igs));
700
+ }
701
+
702
+ $msg = '<p class="success_msg">'.
703
+ sprintf(
704
+ __('Success! Loaded and saved the info for %d Merge Variables', 'mailchimp_i18n').$igs_text,
705
+ count($mv)
706
+ ).' '.
707
+ __('from your list').' "'.$list_name.'"<br/><br/>'.
708
+ __('Now you should either Turn On the MailChimp Widget or change your options below, then turn it on.', 'mailchimp_i18n').'</p>';
709
+ mailchimpSF_global_msg($msg);
710
+ }
711
  }
712
  }
713
 
715
  * Outputs the Settings/Options page
716
  */
717
  function mailchimpSF_setup_page() {
 
 
 
 
 
 
 
718
  ?>
719
  <div class="wrap">
720
 
765
  <tr valign="top">
766
  <th scope="row"><?php esc_html_e('API Key', 'mailchimp_i18n'); ?>:</th>
767
  <td>
768
+ <input name="mc_apikey" type="text" id="mc_apikey" class="code" value="<?php echo esc_attr($api_key); ?>" size="32" />
769
  <br/>
770
  <a href="http://admin.mailchimp.com/account/api-key-popup" target="_blank">get your API Key here</a>
771
  </td>
921
  <td><input name="mc_use_javascript" type="checkbox" <?php checked(get_option('mc_use_javascript'), 'on'); ?> id="mc_use_javascript" class="code" />
922
  <em><label for="mc_use_javascript"><?php esc_html_e('turning this on will use fancy javascript submission and should degrade gracefully for users not using javascript. It is optional and can be turned on or off at any time.', 'mailchimp_i18n'); ?></label></em>
923
  </td>
924
+ </tr>
925
+ <tr valign="top">
926
+ <th scope="row"><?php esc_html_e('Use Javascript Datepicker?', 'mailchimp_i18n'); ?>:</th>
927
+ <td><input name="mc_use_datepicker" type="checkbox" <?php checked(get_option('mc_use_datepicker'), 'on'); ?> id="mc_use_datepicker" class="code" />
928
+ <em><label for="mc_use_datepicker"><?php esc_html_e('turning this on will use the jQuery UI Datepicker for dates.', 'mailchimp_i18n'); ?></label></em>
929
+ </td>
930
  </tr>
931
  <tr valign="top">
932
  <th scope="row"><?php esc_html_e('Include Unsubscribe link?', 'mailchimp_i18n'); ?>:</th>
1058
 
1059
  <?php
1060
  // Interest Groups Table
1061
+ $igs = get_option('mc_interest_groups');
1062
+ if (is_array($igs) && !isset($igs['id'])) {
1063
+ // Determines whether or not to continue processing. Only false if there was an error.
1064
+ $continue = true;
1065
+ foreach ($igs as $ig) {
1066
+ if ($continue) {
1067
+ if (!is_array($ig) || empty($ig) || $ig == 'N' ) {
1068
+ ?>
1069
+ <em><?php esc_html_e('No Interest Groups Setup for this List', 'mailchimp_i18n'); ?></em>
1070
+ <?php
1071
+ $continue = false;
1072
+ }
1073
+ else {
1074
+ ?>
1075
+ <table class='widefat'>
1076
+ <tr valign="top">
1077
+ <th width="75px">
1078
+ <label for="<?php echo esc_attr('mc_show_interest_groups_'.$ig['id']); ?>"><?php esc_html_e('Show?', 'mailchimp_i18n'); ?></label>
1079
+ </th>
1080
+ <th>
1081
+ <input name="<?php echo esc_attr('mc_show_interest_groups_'.$ig['id']); ?>" id="<?php echo esc_attr('mc_show_interest_groups_'.$ig['id']); ?>" type="checkbox" class="code"<?php checked('on', get_option('mc_show_interest_groups_'.$ig['id'])); ?> />
1082
+ </th>
1083
+ </tr>
1084
+ <tr valign="top">
1085
+ <th><?php esc_html_e('Name', 'mailchimp_i18n'); ?>:</th>
1086
+ <th><?php echo esc_html($ig['name']); ?></th>
1087
+ </tr>
1088
+ <tr valign="top">
1089
+ <th><?php esc_html_e('Input Type', 'mailchimp_i18n'); ?>:</th>
1090
+ <td><?php echo esc_html($ig['form_field']); ?></td>
1091
+ </tr>
1092
+ <tr valign="top">
1093
+ <th><?php esc_html_e('Options', 'mailchimp_i18n'); ?>:</th>
1094
+ <td>
1095
+ <ul>
1096
+ <?php
1097
+ foreach($ig['groups'] as $interest){
1098
+ ?>
1099
+ <li><?php echo esc_html($interest['name']); ?></li>
1100
+ <?php
1101
+ }
1102
+ ?>
1103
+ </ul>
1104
+ </td>
1105
+ </tr>
1106
+ </table>
1107
+ <?php
1108
+ }
1109
+ }
1110
+ }
1111
  }
1112
  else {
1113
  ?>
1114
+ <em><?php esc_html_e('Error retrieving interest groups. Please re-import the list.', 'mailchimp_i18n'); ?></em>
1115
+ <?php
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1116
  }
1117
+
1118
  ?>
1119
  <p class="submit">
1120
  <input type="submit" value="<?php esc_attr_e('Update Subscribe Form Settings', 'mailchimp_i18n'); ?>" class="button" />
1148
  * @return bool
1149
  */
1150
  function mailchimpSF_signup_submit() {
1151
+ $mv = get_option('mc_merge_vars', array());
1152
+ $mv_tag_keys = array();
1153
+
1154
+ $igs = get_option('mc_interest_groups', array());
1155
 
1156
  $success = true;
1157
  $listId = get_option('mc_list_id');
1158
+ $email = isset($_POST['mc_mv_EMAIL']) ? strip_tags(stripslashes($_POST['mc_mv_EMAIL'])) : '';
1159
  $merge = $errs = array(); // Set up some vars
1160
 
1161
  // Loop through our Merge Vars, and if they're empty, but required, then print an error, and mark as failed
1162
  foreach($mv as $var) {
1163
  $opt = 'mc_mv_'.$var['tag'];
1164
+
1165
+ $opt_val = isset($_POST[$opt]) ? $_POST[$opt] : '';
1166
+
1167
+ if (is_array($opt_val)) {
1168
+ $opt_val = implode('', $opt_val);
1169
+ }
1170
+
1171
+ if ($var['req'] == 'Y' && trim($opt_val) == '') {
1172
  $success = false;
1173
  $errs[] = sprintf(__("You must fill in %s.", 'mailchimp_i18n'), esc_html($var['name']));
1174
  }
1175
  else {
1176
  if ($var['tag'] != 'EMAIL') {
1177
+ $merge[$var['tag']] = $opt_val;
1178
  }
1179
+ }
1180
+
1181
+ // We also want to create an array where the keys are the tags for easier validation later
1182
+ $mv_tag_keys[$var['tag']] = $var;
1183
+
1184
  }
1185
 
1186
  // Head back to the beginning of the merge vars array
1187
  reset($mv);
1188
 
1189
+ foreach ($igs as $ig) {
1190
+ if (get_option('mc_show_interest_groups_'.$ig['id']) == 'on') {
1191
+ $groupings = array();
1192
+ switch ($ig['form_field']) {
1193
+ case 'select':
1194
+ case 'dropdown':
1195
+ case 'radio':
1196
+ if (isset($_POST['group'][$ig['id']])) {
1197
+ $groupings = array(
1198
+ 'id' => $ig['id'],
1199
+ 'groups' => str_replace(',', '\,', $_POST['group'][$ig['id']]),
1200
+ );
1201
  }
1202
+ break;
1203
+ case 'checkboxes':
1204
+ case 'checkbox':
1205
+ if (isset($_POST['group'][$ig['id']])) {
1206
+ foreach ($_POST['group'][$ig['id']] as $i => $value) {
1207
+ $groups .= str_replace(',', '\,', $value).',';
1208
+
1209
+ }
1210
+ $groupings = array(
1211
+ 'id' => $ig['id'],
1212
+ 'groups' => $groups,
1213
+ );
1214
+ }
1215
+ break;
1216
+ default:
1217
+ // Nothing
1218
+ break;
1219
+ }
1220
+ if (!isset($merge['GROUPINGS']) || !is_array($merge['GROUPINGS'])) {
1221
+ $merge['GROUPINGS'] = array();
1222
+ }
1223
+ if (!empty($groupings)) {
1224
+ $merge['GROUPINGS'][] = $groupings;
1225
+ }
1226
  }
1227
  }
1228
+
 
1229
  // If we're good
1230
+ if ($success) {
1231
  // Clear out empty merge vars
1232
+
1233
  foreach ($merge as $k => $v) {
1234
+ if (is_array($v) && empty($v)) {
1235
+ unset($merge[$k]);
1236
+ }
1237
+ else if (!is_array($v) && trim($v) === '') {
1238
  unset($merge[$k]);
1239
  }
1240
  }
1244
  $merge = '';
1245
  }
1246
 
1247
+ if (isset($_POST['email_type']) && in_array($_POST['email_type'], array('text', 'html', 'mobile'))) {
1248
+ $email_type = $_POST['email_type'];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1249
  }
1250
  else {
1251
+ $email_type = 'html';
1252
+ }
1253
+
1254
+ // Custom validation based on type
1255
+ if (is_array($merge) && !empty($merge)) {
1256
+ foreach ($merge as $merge_key => $merge_value) {
1257
+ if ($merge_key !== 'GROUPINGS') {
1258
+ switch ($mv_tag_keys[$merge_key]['field_type']) {
1259
+ case 'phone':
1260
+ $phone = implode($merge_value, '');
1261
+ if (!empty($phone)) {
1262
+ if (preg_match('/[^0-9]/', $phone)) {
1263
+ $errs[] = sprintf(__("%s must consist of only numbers", 'mailchimp_i18n'), esc_html($mv_tag_keys[$merge_key]['name']));
1264
+ $success = false;
1265
+ }
1266
+ }
1267
+ break;
1268
+
1269
+ default:
1270
+ break;
1271
+ }
1272
+ }
1273
+ }
1274
+ }
1275
+ if ($success) {
1276
+ $api = new mailchimpSF_MCAPI(get_option('mc_apikey'));
1277
+ $retval = $api->listSubscribe( $listId, $email, $merge, $email_type);
1278
+ if (!$retval) {
1279
+ switch($api->errorCode) {
1280
+ case '105' :
1281
+ $errs[] = __("Please try again later", 'mailchimp_i18n').'.';
1282
+ break;
1283
+ case '214' :
1284
+ $errs[] = __("That email address is already subscribed to the list", 'mailchimp_i18n').'.';
1285
+ break;
1286
+ case '250' :
1287
+ list($field, $rest) = explode(' ', $api->errorMessage, 2);
1288
+ $errs[] = sprintf(__("You must fill in %s.", 'mailchimp_i18n'), esc_html($mv_tag_keys[$field]['name']));
1289
+ break;
1290
+ case '254' :
1291
+ list($i1, $i2, $i3, $field, $rest) = explode(' ',$api->errorMessage,5);
1292
+ $errs[] = sprintf(__("%s has invalid content.", 'mailchimp_i18n'), esc_html($mv_tag_keys[$field]['name']));
1293
+ break;
1294
+ case '270' :
1295
+ $errs[] = __("An invalid Interest Group was selected", 'mailchimp_i18n').'.';
1296
+ break;
1297
+ case '502' :
1298
+ $errs[] = __("That email address is invalid", 'mailchimp_i18n').'.';
1299
+ break;
1300
+ default:
1301
+ $errs[] = $api->errorCode.":".$api->errorMessage;
1302
+ break;
1303
+ }
1304
+ $success = false;
1305
+ }
1306
  }
1307
  }
1308
 
1314
  }
1315
  $msg .= '</span>';
1316
  }
1317
+ else {
1318
+ $msg = "<strong class='mc_success_msg'>".esc_html(__("Success, you've been signed up! Please look for our confirmation email!", 'mailchimp_i18n'))."</strong>";
1319
+ }
1320
 
1321
  // Set our global message
1322
  mailchimpSF_global_msg($msg);
1368
  break;
1369
  }
1370
  }
1371
+
1372
  // Define our complete filesystem path
1373
  define('MCSF_DIR', $mscf_dir);
1374
 
1375
  /* Lang location needs to be relative *from* ABSPATH,
1376
  so strip it out of our language dir location */
1377
+ define('MCSF_LANG_DIR', trailingslashit(MCSF_DIR).'po/');
1378
 
1379
  // Define our complete URL to the plugin folder
1380
  define('MCSF_URL', $mscf_url);
mailchimp_widget.php CHANGED
@@ -6,8 +6,8 @@ function mailchimpSF_signup_form($args = array()) {
6
  extract($args);
7
 
8
  $mv = get_option('mc_merge_vars');
9
- $ig = get_option('mc_interest_groups');
10
-
11
  // See if we have valid Merge Vars
12
  if (!is_array($mv)){
13
  echo $before_widget;
@@ -24,16 +24,18 @@ function mailchimpSF_signup_form($args = array()) {
24
  $uid = get_option('mc_user_id');
25
  $list_name = get_option('mc_list_name');
26
 
27
- echo $before_widget;
 
 
28
 
29
  $header = get_option('mc_header_content');
30
  // See if we have custom header content
31
  if (!empty($header)) {
32
  // See if we need to wrap the header content in our own div
33
  if (strlen($header) == strlen(strip_tags($header))){
34
- echo $before_title ? $before_title : '<div class="mc_custom_border_hdr">';
35
  echo $header; // don't escape $header b/c it may have HTML allowed
36
- echo $after_title ? $after_title : '</div><!-- /mc_custom_border_hdr -->';
37
  }
38
  else {
39
  echo $header; // don't escape $header b/c it may have HTML allowed
@@ -82,32 +84,17 @@ function mailchimpSF_signup_form($args = array()) {
82
 
83
  // Loop over our vars, and output the ones that are set to display
84
  foreach($mv as $var) {
85
- $opt = 'mc_mv_'.$var['tag'];
86
- // See if that var is set as required, or turned on (for display)
87
- if ($var['req'] || get_option($opt) == 'on') {
88
- ?>
89
- <div class="mc_merge_var">
90
- <label for="<?php echo esc_attr($opt); ?>" class="mc_var_label"><?php echo esc_html($var['name']); ?>
91
- <?php
92
- if ($var['req'] && $num_fields > 1) {
93
- ?>
94
- <span class="mc_required">*</span>
95
- <?php
96
- }
97
- ?>
98
- </label>
99
-
100
- <br />
101
-
102
- <input type="text" size="18" value="" name="<?php echo esc_attr($opt); ?>" id="<?php echo esc_attr($opt); ?>" class="mc_input"/>
103
- </div><!-- /mc_merge_var -->
104
- <?php
105
  }
106
  }
107
 
108
 
109
  // Show an explanation of the * if there's more than one field
110
- if ($num_fields > 1){
111
  ?>
112
  <div id="mc-indicates-required">
113
  * = <?php esc_html_e('required field', 'mailchimp_i18n'); ?>
@@ -117,63 +104,50 @@ function mailchimpSF_signup_form($args = array()) {
117
 
118
 
119
  // Show our Interest groups fields if we have them, and they're set to on
120
- if ($ig && get_option('mc_show_interest_groups') == 'on') {
121
- ?>
122
-
123
- <div id="mc_interests_header">
124
- <?php echo esc_html($ig['name']); ?>
125
- </div><!-- /mc_interests_header -->
126
-
127
- <div class="mc_interest">
128
-
129
- <?php
130
- $i=0; // Set our counter
131
- switch ($ig['form_field']) {
132
- case 'checkbox':
133
- case 'checkboxes':
134
- foreach($ig['groups'] as $interest){
135
- $interest = $interest['name'];
136
- ?>
137
- <input type="checkbox" name="<?php echo esc_attr('interests['.$interest.']'); ?>" id="<?php echo esc_attr('mc_interest_'.$i); ?>" class="mc_interest"/>
138
- <label for="<?php echo esc_attr('mc_interest_'.$i); ?>" class="mc_interest_label"> <?php echo esc_html($interest); ?></label>
139
- <br/>
140
- <?php
141
- $i++;
142
- }
143
- break;
144
- case 'radio':
145
- foreach($ig['groups'] as $interest){
146
- $interest = $interest['name'];
147
- ?>
148
- <input type="radio" name="interests" id="<?php echo esc_attr('mc_interest_'.$i); ?>" class="mc_interest" value="<?php echo esc_attr($interest); ?>"/>
149
- <label for="<?php echo esc_attr('mc_interest_'.$i); ?>" class="mc_interest_label"> <?php echo esc_html($interest); ?></label>
150
- <br/>
151
- <?php
152
- $i++;
153
  }
154
- break;
155
- case 'select':
156
- case 'dropdown':
157
  ?>
158
- <select name="interests">
159
- <option value=""></option>
160
- <?php
161
- foreach($ig['groups'] as $interest){
162
- $interest = $interest['name'];
163
- ?>
164
- <option value="<?php echo esc_attr($interest); ?>"><?php echo esc_html($interest); ?></option>
165
- <?php
166
- }
167
- ?>
168
- </select>
169
- <?php
170
- break;
171
- }
172
- ?>
173
-
174
- </div><!-- /mc_interest -->
175
 
176
- <?php
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
177
  }
178
  ?>
179
 
@@ -202,13 +176,206 @@ function mailchimpSF_signup_form($args = array()) {
202
  <?php
203
  }
204
  ?>
 
205
  </div><!-- /mc_form_inside -->
206
  </form><!-- /mc_signup_form -->
207
  </div><!-- /mc_signup_container -->
208
  <?php
209
- echo $after_widget;
 
 
210
  }
211
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
212
 
213
  /**
214
  * MailChimp Subscribe Box widget class
@@ -223,7 +390,208 @@ class mailchimpSF_Widget extends WP_Widget {
223
  }
224
 
225
  function widget( $args, $instance ) {
 
 
 
226
  mailchimpSF_signup_form(array_merge($args, $instance));
227
  }
228
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
229
  ?>
6
  extract($args);
7
 
8
  $mv = get_option('mc_merge_vars');
9
+ $igs = get_option('mc_interest_groups');
10
+
11
  // See if we have valid Merge Vars
12
  if (!is_array($mv)){
13
  echo $before_widget;
24
  $uid = get_option('mc_user_id');
25
  $list_name = get_option('mc_list_name');
26
 
27
+ if (!empty($before_widget)) {
28
+ echo $before_widget;
29
+ }
30
 
31
  $header = get_option('mc_header_content');
32
  // See if we have custom header content
33
  if (!empty($header)) {
34
  // See if we need to wrap the header content in our own div
35
  if (strlen($header) == strlen(strip_tags($header))){
36
+ echo !empty($before_title) ? $before_title : '<div class="mc_custom_border_hdr">';
37
  echo $header; // don't escape $header b/c it may have HTML allowed
38
+ echo !empty($after_title) ? $after_title : '</div><!-- /mc_custom_border_hdr -->';
39
  }
40
  else {
41
  echo $header; // don't escape $header b/c it may have HTML allowed
84
 
85
  // Loop over our vars, and output the ones that are set to display
86
  foreach($mv as $var) {
87
+ if (!$var['public']) {
88
+ echo '<div style="display:none;">'.mailchimp_form_field($var, $num_fields).'</div>';
89
+ }
90
+ else {
91
+ echo mailchimp_form_field($var, $num_fields);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
92
  }
93
  }
94
 
95
 
96
  // Show an explanation of the * if there's more than one field
97
+ if ($num_fields > 1) {
98
  ?>
99
  <div id="mc-indicates-required">
100
  * = <?php esc_html_e('required field', 'mailchimp_i18n'); ?>
104
 
105
 
106
  // Show our Interest groups fields if we have them, and they're set to on
107
+ if (is_array($igs) && !empty($igs)) {
108
+ foreach ($igs as $ig) {
109
+ if (is_array($ig) && isset($ig['id'])) {
110
+ if ($igs && get_option('mc_show_interest_groups_'.$ig['id']) == 'on') {
111
+ if ($ig['form_field'] != 'hidden') {
112
+ ?>
113
+ <div class="mc_interests_header">
114
+ <?php echo esc_html($ig['name']); ?>
115
+ </div><!-- /mc_interests_header -->
116
+ <div class="mc_interest">
117
+ <?php
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
118
  }
119
+ else {
 
 
120
  ?>
121
+ <div class="mc_interest" style="display: none;">
122
+ <?php
123
+ }
124
+ ?>
125
+
126
+ <?php
127
+ mailchimp_interest_group_field($ig);
128
+ ?>
129
+ </div><!-- /mc_interest -->
 
 
 
 
 
 
 
 
130
 
131
+ <?php
132
+ }
133
+ }
134
+ }
135
+ }
136
+
137
+ if (get_option('mc_email_type_option')) {
138
+ ?>
139
+ <div class="mergeRow">
140
+ <label><?php _e('Preferred Format', 'mailchimp_i18n'); ?></label>
141
+ <div class="field-group groups">
142
+ <ul class="mc_list">
143
+ <li><input type="radio" name="email_type" id="email_type_html" value="html" checked="checked"><label for="email_type_html"><?php _e('HTML', 'mailchimp_i18n'); ?></label></li>
144
+ <li><input type="radio" name="email_type" id="email_type_text" value="text"><label for="email_type_text"><?php _e('Text', 'mailchimp_i18n'); ?></label></li>
145
+ <li><input type="radio" name="email_type" id="email_type_mobile" value="mobile"><label for="email_type_mobile"><?php _e('Mobile', 'mailchimp_i18n'); ?></label></li>
146
+ </ul>
147
+ </div>
148
+ </div>
149
+
150
+ <?php
151
  }
152
  ?>
153
 
176
  <?php
177
  }
178
  ?>
179
+
180
  </div><!-- /mc_form_inside -->
181
  </form><!-- /mc_signup_form -->
182
  </div><!-- /mc_signup_container -->
183
  <?php
184
+ if (!empty($before_widget)) {
185
+ echo $after_widget;
186
+ }
187
  }
188
 
189
+ /**
190
+ * Generate and display markup for Interest Groups
191
+ * @param array $ig Set of Interest Groups to generate markup for
192
+ * @return void
193
+ */
194
+ function mailchimp_interest_group_field($ig) {
195
+ if (!is_array($ig)) {
196
+ return;
197
+ }
198
+ $html = '';
199
+ $set_name = 'group['.$ig['id'].']';
200
+ switch ($ig['form_field']) {
201
+ case 'checkbox':
202
+ case 'checkboxes':
203
+ $i = 1;
204
+ foreach($ig['groups'] as $interest){
205
+ $interest = $interest['name'];
206
+ $html .= '
207
+ <input type="checkbox" name="'.esc_attr($set_name.'['.$i.']').'" id="'.esc_attr('mc_interest_'.$ig['id'].'_'.$interest).'" class="mc_interest" value="'.esc_attr($interest).'" />
208
+ <label for="'. esc_attr('mc_interest_'.$ig['id'].'_'.$interest).'" class="mc_interest_label">'.esc_html($interest).'</label>
209
+ <br/>';
210
+ $i++;
211
+ }
212
+ break;
213
+ case 'radio':
214
+ foreach($ig['groups'] as $interest){
215
+ $interest = $interest['name'];
216
+ $html .= '
217
+ <input type="radio" name="'.esc_attr($set_name).'" id="'.esc_attr('mc_interest_'.$ig['id'].'_'.$interest).'" class="mc_interest" value="'.esc_attr($interest).'"/>
218
+ <label for="'.esc_attr('mc_interest_'.$ig['id'].'_'.$interest).'" class="mc_interest_label">'.esc_html($interest).'</label>
219
+ <br/>';
220
+ }
221
+ break;
222
+ case 'select':
223
+ case 'dropdown':
224
+ $html .= '
225
+ <select name="'.esc_attr($set_name).'">
226
+ <option value=""></option>';
227
+ foreach($ig['groups'] as $interest){
228
+ $interest = $interest['name'];
229
+ $html .= '
230
+ <option value="'.esc_attr($interest).'">'.esc_html($interest).'</option>';
231
+ }
232
+ $html .= '
233
+ </select>';
234
+ break;
235
+ case 'hidden':
236
+ foreach($ig['groups'] as $interest) {
237
+ $interest = $interest['name'];
238
+ $html .= '
239
+ <input type="checkbox" name="'.esc_attr($set_name.'['.$i.']').'" id="'.esc_attr('mc_interest_'.$ig['id'].'_'.$interest).'" class="mc_interest" value="'.esc_attr($interest).'" />
240
+ <label for="'. esc_attr('mc_interest_'.$ig['id'].'_'.$interest).'" class="mc_interest_label">'.esc_html($interest).'</label>';
241
+ }
242
+ break;
243
+ }
244
+ echo $html;
245
+ }
246
+
247
+ /**
248
+ * Generate and display markup for form fields
249
+ * @param array $var Array containing informaoin about the field
250
+ * @param int $num_fields The number of fields total we'll be generating markup for. Used in calculating required text logic
251
+ * @return void
252
+ */
253
+ function mailchimp_form_field($var, $num_fields) {
254
+ $opt = 'mc_mv_'.$var['tag'];
255
+ $html = '';
256
+ // See if that var is set as required, or turned on (for display)
257
+ if ($var['req'] || get_option($opt) == 'on') {
258
+ $label = '<label for="'.esc_attr($opt).'" class="mc_var_label">'.esc_html($var['name']);
259
+ if ($var['req'] && $num_fields > 1) {
260
+ $label .= '<span class="mc_required">*</span>';
261
+ }
262
+ $label .= '</label>';
263
+
264
+ $html .= '
265
+ <div class="mc_merge_var">
266
+ '.$label;
267
+
268
+ switch ($var['field_type']) {
269
+ case 'date':
270
+ $html .= '
271
+ <input type="text" size="18" value="'.esc_attr($var['default']).'" name="'.esc_attr($opt).'" id="'.esc_attr($opt).'" class="date-pick mc_input"/>';
272
+ break;
273
+ case 'radio':
274
+ if (is_array($var['choices'])) {
275
+ $html .= '
276
+ <ul class="mc_list">';
277
+ foreach ($var['choices'] as $key => $value) {
278
+ $html .= '
279
+ <li>
280
+ <input type="radio" id="'.esc_attr($opt.'_'.$key).'" name="'.esc_attr($opt).'" class="mc_radio" value="'.$value.'"'.checked($var['default'], $value, false).' />
281
+ <label for="'.esc_attr($opt.'_'.$key).'" class="mc_radio_label">'.esc_html($value).'</label>
282
+ </li>';
283
+ }
284
+ $html .= '
285
+ </ul>';
286
+ }
287
+ break;
288
+ case 'dropdown':
289
+ if (is_array($var['choices'])) {
290
+ $html .= '
291
+ <br /><select id="'.esc_attr($opt).'" name="'.esc_attr($opt).'" class="mc_select">';
292
+ foreach ($var['choices'] as $value) {
293
+ $html .= '
294
+ <option value="'.esc_attr($value).'"'.selected($value, $var['default'], false).'>'.esc_html($value).'</option>';
295
+ }
296
+ $html .= '
297
+ </select>';
298
+ }
299
+ break;
300
+ case 'birthday':
301
+ $html .= '
302
+ <input type="text" size="18" value="'.esc_attr($var['default']).'" name="'.esc_attr($opt).'" id="'.esc_attr($opt).'" class="birthdate-pick mc_input"/>';
303
+ break;
304
+ case 'birthday-old':
305
+ $days = range(1, 31);
306
+ $months = array(__('January', 'mailchimp_i18n'), __('February', 'mailchimp_i18n'), __('March', 'mailchimp_i18n'), __('April', 'mailchimp_i18n'), __('May', 'mailchimp_i18n'), __('June', 'mailchimp_i18n'), __('July', 'mailchimp_i18n'), __('August', 'mailchimp_i18n'), __('September', 'mailchimp_i18n'), __('October', 'mailchimp_i18n'), __('November', 'mailchimp_i18n'), __('December', 'mailchimp_i18n'), );
307
+
308
+ $html .= '
309
+ <br /><select id="'.esc_attr($opt).'" name="'.esc_attr($opt.'[month]').'" class="mc_select">';
310
+ foreach ($months as $month_key => $month) {
311
+ $html .= '
312
+ <option value="'.$month_key.'">'.$month.'</option>';
313
+ }
314
+ $html .= '
315
+ </select>';
316
+
317
+ $html .= '
318
+ <select id="'.esc_attr($opt).'" name="'.esc_attr($opt.'[day]').'" class="mc_select">';
319
+ foreach ($days as $day) {
320
+ $html .= '
321
+ <option value="'.$day.'">'.$day.'</option>';
322
+ }
323
+ $html .= '
324
+ </select>';
325
+ break;
326
+ case 'address':
327
+ $countries = mailchimp_country_list();
328
+ $html .= '
329
+ <br />
330
+ <label for="'.esc_attr($opt.'-addr1').'" class="mc_address_label">'.__('Street Address', 'mailchimp_i18n').'</label> <br />
331
+ <input type="text" size="18" value="" name="'.esc_attr($opt.'[addr1]').'" id="'.esc_attr($opt.'-addr1').'" class="mc_input" /> <br />
332
+ <label for="'.esc_attr($opt.'-addr2').'" class="mc_address_label">'.__('Address Line 2', 'mailchimp_i18n').'</label> <br />
333
+ <input type="text" size="18" value="" name="'.esc_attr($opt.'[addr2]').'" id="'.esc_attr($opt.'-addr2').'" class="mc_input" /> <br />
334
+ <label for="'.esc_attr($opt.'-city').'" class="mc_address_label">'.__('City', 'mailchimp_i18n').'</label> <br />
335
+ <input type="text" size="18" value="" name="'.esc_attr($opt.'[city]').'" id="'.esc_attr($opt.'-city').'" class="mc_input" /> <br />
336
+ <label for="'.esc_attr($opt.'-state').'" class="mc_address_label">'.__('State', 'mailchimp_i18n').'</label> <br />
337
+ <input type="text" size="18" value="" name="'.esc_attr($opt.'[state]').'" id="'.esc_attr($opt.'-state').'" class="mc_input" /> <br />
338
+ <label for="'.esc_attr($opt.'-zip').'" class="mc_address_label">'.__('Zip / Postal', 'mailchimp_i18n').'</label> <br />
339
+ <input type="text" size="18" value="" maxlength="5" name="'.esc_attr($opt.'[zip]').'" id="'.esc_attr($opt.'-zip').'" class="mc_input" /> <br />
340
+ <label for="'.esc_attr($opt.'-country').'" class="mc_address_label">'.__('Country', 'mailchimp_i18n').'</label> <br />
341
+ <select name="'.esc_attr($opt.'[country]').'" id="'.esc_attr($opt.'-country').'">';
342
+ foreach ($countries as $country_code => $country_name) {
343
+ $html .= '
344
+ <option value="'.esc_attr($country_code).'"'.selected($country_code, $var['defaultcountry'], false).'>'.esc_html($country_name).'</option>';
345
+ }
346
+ $html .= '
347
+ </select>';
348
+ break;
349
+ case 'zip':
350
+ $html .= '
351
+ <input type="text" size="18" maxlength="5" value="" name="'.esc_attr($opt).'" id="'.esc_attr($opt).'" class="mc_input" />';
352
+ break;
353
+ case 'phone':
354
+ $html .= '<br />
355
+ &#40; <input type="text" size="3" maxlength="3" value="" name="'.esc_attr($opt.'[area]').'" id="'.esc_attr($opt.'-area').'" class="mc_input mc_phone" /> &#41; &ndash;
356
+ <input type="text" size="3" maxlength="3" value="" name="'.esc_attr($opt.'[detail1]').'" id="'.esc_attr($opt.'-detail1').'" class="mc_input mc_phone" /> &ndash;
357
+ <input type="text" size="4" maxlength="4" value="" name="'.esc_attr($opt.'[detail2]').'" id="'.esc_attr($opt.'-detail2').'" class="mc_input mc_phone" />
358
+ ';
359
+ break;
360
+ case 'email':
361
+ case 'url':
362
+ case 'imageurl':
363
+ case 'text':
364
+ case 'number':
365
+ default:
366
+ $html .= '
367
+ <input type="text" size="18" value="'.esc_html($var['default']).'" name="'.esc_attr($opt).'" id="'.esc_attr($opt).'" class="mc_input"/>';
368
+ break;
369
+ }
370
+ if (!empty($var['helptext'])) {
371
+ $html .= '<span class="mc_help">'.esc_html($var['helptext']).'</span>';
372
+ }
373
+ $html .= '
374
+ </div><!-- /mc_merge_var -->';
375
+ }
376
+
377
+ return $html;
378
+ }
379
 
380
  /**
381
  * MailChimp Subscribe Box widget class
390
  }
391
 
392
  function widget( $args, $instance ) {
393
+ if (!is_array($instance)) {
394
+ $instance = array();
395
+ }
396
  mailchimpSF_signup_form(array_merge($args, $instance));
397
  }
398
  }
399
+
400
+ function mailchimp_country_list() {
401
+ return array(
402
+ '164' => __('USA', 'mailchimp_i18n'),
403
+ '286' => __('Aaland Islands', 'mailchimp_i18n'),
404
+ '274' => __('Afghanistan', 'mailchimp_i18n'),
405
+ '2' => __('Albania', 'mailchimp_i18n'),
406
+ '3' => __('Algeria', 'mailchimp_i18n'),
407
+ '178' => __('American Samoa', 'mailchimp_i18n'),
408
+ '4' => __('Andorra', 'mailchimp_i18n'),
409
+ '5' => __('Angola', 'mailchimp_i18n'),
410
+ '176' => __('Anguilla', 'mailchimp_i18n'),
411
+ '175' => __('Antigua And Barbuda', 'mailchimp_i18n'),
412
+ '6' => __('Argentina', 'mailchimp_i18n'),
413
+ '7' => __('Armenia', 'mailchimp_i18n'),
414
+ '179' => __('Aruba', 'mailchimp_i18n'),
415
+ '8' => __('Australia', 'mailchimp_i18n'),
416
+ '9' => __('Austria', 'mailchimp_i18n'),
417
+ '10' => __('Azerbaijan', 'mailchimp_i18n'),
418
+ '11' => __('Bahamas', 'mailchimp_i18n'),
419
+ '12' => __('Bahrain', 'mailchimp_i18n'),
420
+ '13' => __('Bangladesh', 'mailchimp_i18n'),
421
+ '14' => __('Barbados', 'mailchimp_i18n'),
422
+ '15' => __('Belarus', 'mailchimp_i18n'),
423
+ '16' => __('Belgium', 'mailchimp_i18n'),
424
+ '17' => __('Belize', 'mailchimp_i18n'),
425
+ '18' => __('Benin', 'mailchimp_i18n'),
426
+ '19' => __('Bermuda', 'mailchimp_i18n'),
427
+ '20' => __('Bhutan', 'mailchimp_i18n'),
428
+ '21' => __('Bolivia', 'mailchimp_i18n'),
429
+ '22' => __('Bosnia and Herzegovina', 'mailchimp_i18n'),
430
+ '23' => __('Botswana', 'mailchimp_i18n'),
431
+ '24' => __('Brazil', 'mailchimp_i18n'),
432
+ '180' => __('Brunei Darussalam', 'mailchimp_i18n'),
433
+ '25' => __('Bulgaria', 'mailchimp_i18n'),
434
+ '26' => __('Burkina Faso', 'mailchimp_i18n'),
435
+ '27' => __('Burundi', 'mailchimp_i18n'),
436
+ '28' => __('Cambodia', 'mailchimp_i18n'),
437
+ '29' => __('Cameroon', 'mailchimp_i18n'),
438
+ '30' => __('Canada', 'mailchimp_i18n'),
439
+ '31' => __('Cape Verde', 'mailchimp_i18n'),
440
+ '32' => __('Cayman Islands', 'mailchimp_i18n'),
441
+ '33' => __('Central African Republic', 'mailchimp_i18n'),
442
+ '34' => __('Chad', 'mailchimp_i18n'),
443
+ '35' => __('Chile', 'mailchimp_i18n'),
444
+ '36' => __('China', 'mailchimp_i18n'),
445
+ '37' => __('Colombia', 'mailchimp_i18n'),
446
+ '38' => __('Congo', 'mailchimp_i18n'),
447
+ '183' => __('Cook Islands', 'mailchimp_i18n'),
448
+ '268' => __('Costa Rica', 'mailchimp_i18n'),
449
+ '275' => __('Cote D\'Ivoire', 'mailchimp_i18n'),
450
+ '40' => __('Croatia', 'mailchimp_i18n'),
451
+ '276' => __('Cuba', 'mailchimp_i18n'),
452
+ '41' => __('Cyprus', 'mailchimp_i18n'),
453
+ '42' => __('Czech Republic', 'mailchimp_i18n'),
454
+ '43' => __('Denmark', 'mailchimp_i18n'),
455
+ '44' => __('Djibouti', 'mailchimp_i18n'),
456
+ '289' => __('Dominica', 'mailchimp_i18n'),
457
+ '187' => __('Dominican Republic', 'mailchimp_i18n'),
458
+ '233' => __('East Timor', 'mailchimp_i18n'),
459
+ '45' => __('Ecuador', 'mailchimp_i18n'),
460
+ '46' => __('Egypt', 'mailchimp_i18n'),
461
+ '47' => __('El Salvador', 'mailchimp_i18n'),
462
+ '48' => __('Equatorial Guinea', 'mailchimp_i18n'),
463
+ '49' => __('Eritrea', 'mailchimp_i18n'),
464
+ '50' => __('Estonia', 'mailchimp_i18n'),
465
+ '51' => __('Ethiopia', 'mailchimp_i18n'),
466
+ '191' => __('Faroe Islands', 'mailchimp_i18n'),
467
+ '52' => __('Fiji', 'mailchimp_i18n'),
468
+ '53' => __('Finland', 'mailchimp_i18n'),
469
+ '54' => __('France', 'mailchimp_i18n'),
470
+ '277' => __('French Polynesia', 'mailchimp_i18n'),
471
+ '59' => __('Germany', 'mailchimp_i18n'),
472
+ '60' => __('Ghana', 'mailchimp_i18n'),
473
+ '194' => __('Gibraltar', 'mailchimp_i18n'),
474
+ '61' => __('Greece', 'mailchimp_i18n'),
475
+ '195' => __('Greenland', 'mailchimp_i18n'),
476
+ '192' => __('Grenada', 'mailchimp_i18n'),
477
+ '62' => __('Guam', 'mailchimp_i18n'),
478
+ '198' => __('Guatemala', 'mailchimp_i18n'),
479
+ '270' => __('Guernsey', 'mailchimp_i18n'),
480
+ '65' => __('Guyana', 'mailchimp_i18n'),
481
+ '200' => __('Haiti', 'mailchimp_i18n'),
482
+ '66' => __('Honduras', 'mailchimp_i18n'),
483
+ '67' => __('Hong Kong', 'mailchimp_i18n'),
484
+ '68' => __('Hungary', 'mailchimp_i18n'),
485
+ '69' => __('Iceland', 'mailchimp_i18n'),
486
+ '70' => __('India', 'mailchimp_i18n'),
487
+ '71' => __('Indonesia', 'mailchimp_i18n'),
488
+ '278' => __('Iran', 'mailchimp_i18n'),
489
+ '279' => __('Iraq', 'mailchimp_i18n'),
490
+ '74' => __('Ireland', 'mailchimp_i18n'),
491
+ '75' => __('Israel', 'mailchimp_i18n'),
492
+ '76' => __('Italy', 'mailchimp_i18n'),
493
+ '202' => __('Jamaica', 'mailchimp_i18n'),
494
+ '78' => __('Japan', 'mailchimp_i18n'),
495
+ '288' => __('Jersey (Channel Islands)', 'mailchimp_i18n'),
496
+ '79' => __('Jordan', 'mailchimp_i18n'),
497
+ '80' => __('Kazakhstan', 'mailchimp_i18n'),
498
+ '81' => __('Kenya', 'mailchimp_i18n'),
499
+ '82' => __('Kuwait', 'mailchimp_i18n'),
500
+ '83' => __('Kyrgyzstan', 'mailchimp_i18n'),
501
+ '84' => __('Lao People\'s Democratic Republic', 'mailchimp_i18n'),
502
+ '85' => __('Latvia', 'mailchimp_i18n'),
503
+ '86' => __('Lebanon', 'mailchimp_i18n'),
504
+ '281' => __('Libya', 'mailchimp_i18n'),
505
+ '90' => __('Liechtenstein', 'mailchimp_i18n'),
506
+ '91' => __('Lithuania', 'mailchimp_i18n'),
507
+ '92' => __('Luxembourg', 'mailchimp_i18n'),
508
+ '208' => __('Macau', 'mailchimp_i18n'),
509
+ '93' => __('Macedonia', 'mailchimp_i18n'),
510
+ '94' => __('Madagascar', 'mailchimp_i18n'),
511
+ '95' => __('Malawi', 'mailchimp_i18n'),
512
+ '96' => __('Malaysia', 'mailchimp_i18n'),
513
+ '97' => __('Maldives', 'mailchimp_i18n'),
514
+ '98' => __('Mali', 'mailchimp_i18n'),
515
+ '99' => __('Malta', 'mailchimp_i18n'),
516
+ '212' => __('Mauritius', 'mailchimp_i18n'),
517
+ '101' => __('Mexico', 'mailchimp_i18n'),
518
+ '102' => __('Moldova, Republic of', 'mailchimp_i18n'),
519
+ '103' => __('Monaco', 'mailchimp_i18n'),
520
+ '104' => __('Mongolia', 'mailchimp_i18n'),
521
+ '290' => __('Montenegro', 'mailchimp_i18n'),
522
+ '105' => __('Morocco', 'mailchimp_i18n'),
523
+ '106' => __('Mozambique', 'mailchimp_i18n'),
524
+ '242' => __('Myanmar', 'mailchimp_i18n'),
525
+ '107' => __('Namibia', 'mailchimp_i18n'),
526
+ '108' => __('Nepal', 'mailchimp_i18n'),
527
+ '109' => __('Netherlands', 'mailchimp_i18n'),
528
+ '110' => __('Netherlands Antilles', 'mailchimp_i18n'),
529
+ '213' => __('New Caledonia', 'mailchimp_i18n'),
530
+ '111' => __('New Zealand', 'mailchimp_i18n'),
531
+ '112' => __('Nicaragua', 'mailchimp_i18n'),
532
+ '113' => __('Niger', 'mailchimp_i18n'),
533
+ '114' => __('Nigeria', 'mailchimp_i18n'),
534
+ '272' => __('North Korea', 'mailchimp_i18n'),
535
+ '116' => __('Norway', 'mailchimp_i18n'),
536
+ '117' => __('Oman', 'mailchimp_i18n'),
537
+ '118' => __('Pakistan', 'mailchimp_i18n'),
538
+ '222' => __('Palau', 'mailchimp_i18n'),
539
+ '282' => __('Palestine', 'mailchimp_i18n'),
540
+ '119' => __('Panama', 'mailchimp_i18n'),
541
+ '219' => __('Papua New Guinea', 'mailchimp_i18n'),
542
+ '120' => __('Paraguay', 'mailchimp_i18n'),
543
+ '121' => __('Peru', 'mailchimp_i18n'),
544
+ '122' => __('Philippines', 'mailchimp_i18n'),
545
+ '123' => __('Poland', 'mailchimp_i18n'),
546
+ '124' => __('Portugal', 'mailchimp_i18n'),
547
+ '126' => __('Qatar', 'mailchimp_i18n'),
548
+ '58' => __('Republic of Georgia', 'mailchimp_i18n'),
549
+ '128' => __('Romania', 'mailchimp_i18n'),
550
+ '129' => __('Russia', 'mailchimp_i18n'),
551
+ '130' => __('Rwanda', 'mailchimp_i18n'),
552
+ '205' => __('Saint Kitts and Nevis', 'mailchimp_i18n'),
553
+ '206' => __('Saint Lucia', 'mailchimp_i18n'),
554
+ '132' => __('Samoa (Independent)', 'mailchimp_i18n'),
555
+ '227' => __('San Marino', 'mailchimp_i18n'),
556
+ '133' => __('Saudi Arabia', 'mailchimp_i18n'),
557
+ '134' => __('Senegal', 'mailchimp_i18n'),
558
+ '266' => __('Serbia', 'mailchimp_i18n'),
559
+ '135' => __('Seychelles', 'mailchimp_i18n'),
560
+ '137' => __('Singapore', 'mailchimp_i18n'),
561
+ '138' => __('Slovakia', 'mailchimp_i18n'),
562
+ '139' => __('Slovenia', 'mailchimp_i18n'),
563
+ '223' => __('Solomon Islands', 'mailchimp_i18n'),
564
+ '141' => __('South Africa', 'mailchimp_i18n'),
565
+ '142' => __('South Korea', 'mailchimp_i18n'),
566
+ '143' => __('Spain', 'mailchimp_i18n'),
567
+ '144' => __('Sri Lanka', 'mailchimp_i18n'),
568
+ '293' => __('Sudan', 'mailchimp_i18n'),
569
+ '146' => __('Suriname', 'mailchimp_i18n'),
570
+ '147' => __('Swaziland', 'mailchimp_i18n'),
571
+ '148' => __('Sweden', 'mailchimp_i18n'),
572
+ '149' => __('Switzerland', 'mailchimp_i18n'),
573
+ '152' => __('Taiwan', 'mailchimp_i18n'),
574
+ '153' => __('Tanzania', 'mailchimp_i18n'),
575
+ '154' => __('Thailand', 'mailchimp_i18n'),
576
+ '155' => __('Togo', 'mailchimp_i18n'),
577
+ '232' => __('Tonga', 'mailchimp_i18n'),
578
+ '234' => __('Trinidad and Tobago', 'mailchimp_i18n'),
579
+ '156' => __('Tunisia', 'mailchimp_i18n'),
580
+ '157' => __('Turkey', 'mailchimp_i18n'),
581
+ '287' => __('Turks &amp; Caicos Islands', 'mailchimp_i18n'),
582
+ '159' => __('Uganda', 'mailchimp_i18n'),
583
+ '161' => __('Ukraine', 'mailchimp_i18n'),
584
+ '162' => __('United Arab Emirates', 'mailchimp_i18n'),
585
+ '262' => __('United Kingdom', 'mailchimp_i18n'),
586
+ '163' => __('Uruguay', 'mailchimp_i18n'),
587
+ '239' => __('Vanuatu', 'mailchimp_i18n'),
588
+ '166' => __('Vatican City State (Holy See)', 'mailchimp_i18n'),
589
+ '167' => __('Venezuela', 'mailchimp_i18n'),
590
+ '168' => __('Vietnam', 'mailchimp_i18n'),
591
+ '169' => __('Virgin Islands (British)', 'mailchimp_i18n'),
592
+ '238' => __('Virgin Islands (U.S.)', 'mailchimp_i18n'),
593
+ '173' => __('Zambia', 'mailchimp_i18n'),
594
+ '174' => __('Zimbabwe', 'mailchimp_i18n'),
595
+ );
596
+ }
597
  ?>
miniMCAPI.class.php CHANGED
@@ -318,9 +318,9 @@ class mailchimpSF_MCAPI {
318
 
319
  ob_start();
320
  if ($this->secure){
321
- $sock = fsockopen("ssl://".$host, 443, $errno, $errstr, 30);
322
  } else {
323
- $sock = fsockopen($host, 80, $errno, $errstr, 30);
324
  }
325
  if(!$sock) {
326
  $this->errorMessage = "Could not connect (ERR $errno: $errstr)";
318
 
319
  ob_start();
320
  if ($this->secure){
321
+ $sock = @fsockopen("ssl://".$host, 443, $errno, $errstr, 30);
322
  } else {
323
+ $sock = @fsockopen($host, 80, $errno, $errstr, 30);
324
  }
325
  if(!$sock) {
326
  $this->errorMessage = "Could not connect (ERR $errno: $errstr)";
po/mailchimp_i18n-es_CL.mo ADDED
Binary file
po/mailchimp_i18n-es_CL.po ADDED
@@ -0,0 +1,345 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # SOME DESCRIPTIVE TITLE.
2
+ # Copyright (C) YEAR MailChimp API Support Team
3
+ # This file is distributed under the same license as the PACKAGE package.
4
+ # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5
+ #
6
+ msgid ""
7
+ msgstr ""
8
+ "Project-Id-Version: MailChimp 1.1.5\n"
9
+ "Report-Msgid-Bugs-To: http://wordpress.org/tag/mailchimp\n"
10
+ "POT-Creation-Date: 2009-07-15 14:23-0400\n"
11
+ "PO-Revision-Date: 2011-09-12 17:51-0300\n"
12
+ "Last-Translator: Tomas Genotipo <tomas.nader@genotipo.cl>\n"
13
+ "Language-Team: MailChimp API <api@mailchimp.com>\n"
14
+ "MIME-Version: 1.0\n"
15
+ "Content-Type: text/plain; charset=UTF-8\n"
16
+ "Content-Transfer-Encoding: 8bit\n"
17
+
18
+ #: mailchimp_includes.php:27
19
+ #: mailchimp_includes.php:62
20
+ msgid "You must fill in %s."
21
+ msgstr "Debes llenar %s."
22
+
23
+ #: mailchimp_includes.php:59
24
+ msgid "That email address is already subscribed to the list"
25
+ msgstr "Esta casilla de correo ya está suscrita a la lista"
26
+
27
+ #: mailchimp_includes.php:66
28
+ #, php-format
29
+ msgid "%s has invalid content"
30
+ msgstr "%s posee contenido no válido"
31
+
32
+ #: mailchimp_includes.php:68
33
+ msgid "An invalid Interest Group was selected"
34
+ msgstr "Se ha seleccionado un Grupo de Interés no válido"
35
+
36
+ #: mailchimp_includes.php:69
37
+ msgid "That email address is invalid"
38
+ msgstr "Esta dirección de correo no es válida"
39
+
40
+ #: mailchimp_includes.php:75
41
+ msgid "Success, you've been signed up! Please look for our confirmation email!"
42
+ msgstr "Exito, te has suscrito! Te hemos enviado un correo de confirmación!"
43
+
44
+ #: mailchimp_includes.php:131
45
+ msgid "required field"
46
+ msgstr "Campo obligatorio"
47
+
48
+ #: mailchimp_includes.php:168
49
+ msgid "unsubscribe from list"
50
+ msgstr "Darse de baja de la lista"
51
+
52
+ #: mailchimp_includes.php:171
53
+ msgid "powered by"
54
+ msgstr "Potenciado por"
55
+
56
+ #: mailchimp.php:135
57
+ msgid "MailChimp Setup"
58
+ msgstr "Mailchimp - Configuración"
59
+
60
+ #: mailchimp.php:150
61
+ msgid "While upgrading the plugin setup, we were unable to login to your account. You will need to login again and setup your list."
62
+ msgstr "Mientras se actualiza la configuración del plugin, no hemos podido acceder a su cuenta. Usted tendrá que ingresar nuevamente y configurar su lista."
63
+
64
+ #: mailchimp.php:156
65
+ msgid "MailChimp List Setup"
66
+ msgstr "Mailchimp List - Configuración"
67
+
68
+ #: mailchimp.php:166
69
+ msgid "Success! We were able to verify your username & password! Let's continue, shall we?"
70
+ msgstr "Exito! Hemos podido verificar su nombre de usuario y contraseña! Continuamos?"
71
+
72
+ #: mailchimp.php:178
73
+ msgid "Uh-oh, we were unable to login and verify your username & password. Please check them and try again!"
74
+ msgstr "Oh-oh, no pudimos entrar al sistema y verificar su nombre de usuario y contraseña. Por favor reviselos y vuelva a intentarlo!"
75
+
76
+ #: mailchimp.php:179
77
+ msgid "The server said:"
78
+ msgstr "El servidor ha dicho:"
79
+
80
+ #: mailchimp.php:222
81
+ msgid "Sign up for"
82
+ msgstr "Regístrate para"
83
+
84
+ #: mailchimp.php:223
85
+ msgid "Subscribe"
86
+ msgstr "Suscribir"
87
+
88
+ #: mailchimp.php:253
89
+ #, php-format
90
+ msgid "Success! Loaded and saved the info for %d Merge Variables and %d Interest Groups from your list"
91
+ msgstr "Éxito! Cargada y guardada la información de las Variables Fusionadas de %d y los Grupos de Interés de %d, de su lista"
92
+
93
+ #: mailchimp.php:256
94
+ msgid "Now you should either Turn On the MailChimp Widget or change your options below, then turn it on."
95
+ msgstr "Ahora usted debe activar el MailChimp Widget, o cambiar sus opciones debajo y luego activarlo."
96
+
97
+ #: mailchimp.php:284
98
+ msgid "Successfully Reset your List selection... Now you get to pick again!"
99
+ msgstr "Exitosamente reiniciada su selección en la lista... Ahora debe seleccionar nuevamente"
100
+
101
+ #: mailchimp.php:290
102
+ msgid "Monkey Rewards turned On!"
103
+ msgstr "Monkey Rewards activados!"
104
+
105
+ #: mailchimp.php:294
106
+ msgid "Monkey Rewards turned Off!"
107
+ msgstr "Monkey Rewards desactivados!"
108
+
109
+ #: mailchimp.php:299
110
+ msgid "Fancy Javascript submission turned On!"
111
+ msgstr "Solicitud de Fancy Javascript activada!"
112
+
113
+ #: mailchimp.php:303
114
+ msgid "Fancy Javascript submission turned Off!"
115
+ msgstr "Solicitud de Fancy Javascript desactivada!"
116
+
117
+ #: mailchimp.php:309
118
+ msgid "Unsubscribe link turned On!"
119
+ msgstr "Link para darse de baja activado!"
120
+
121
+ #: mailchimp.php:313
122
+ msgid "Unsubscribe link turned Off!"
123
+ msgstr "Link para darse de baja desactivado!"
124
+
125
+ #: mailchimp.php:359
126
+ msgid "Successfully Updated your List Subscribe Form Settings!"
127
+ msgstr "Configuración del formulario de la lista de suscripción actualizada exitosamente"
128
+
129
+ #: mailchimp.php:372
130
+ msgid "Login Info"
131
+ msgstr "Información de inicio de sesión"
132
+
133
+ #: mailchimp.php:373
134
+ msgid "To start using the MailChimp plugin, we first need to login and get your API Key. Please enter your MailChimp username and password below."
135
+ msgstr "Para comenzar a usar el plugin MailChimp, primero necesitamos que inicie sesión y obtenga su API Key. Por favor ingrese abajo su nombre de usuario de MailChimp y contraseña debajo."
136
+
137
+ #: mailchimp.php:375
138
+ msgid "Don't have a MailChimp account? <a href='http://www.mailchimp.com/tryit.phtml' target='_blank'>Try one for Free</a>!"
139
+ msgstr "No posees una cuenta en MailChimp? <a href='http://www.mailchimp.com/tryit.phtml' target='_blank'>Consigue una gratis</a>!"
140
+
141
+ #: mailchimp.php:379
142
+ msgid "Username"
143
+ msgstr "Nombre de usuario"
144
+
145
+ #: mailchimp.php:383
146
+ msgid "Password"
147
+ msgstr "Contraseña"
148
+
149
+ #: mailchimp.php:389
150
+ msgid "Save & Check"
151
+ msgstr "Guardar y Comprobar"
152
+
153
+ #: mailchimp.php:394
154
+ msgid "Notes"
155
+ msgstr "Notas"
156
+
157
+ #: mailchimp.php:395
158
+ msgid "Changing your settings at MailChimp.com may cause this to stop working."
159
+ msgstr "Cambiar su configuración en MailChimp.com puede hacer que esto deje de funcionar"
160
+
161
+ #: mailchimp.php:396
162
+ msgid "If you change your login to a different account, the info you have setup below will be erased."
163
+ msgstr "Si cambia su acceso (login) a una cuenta diferente, la información que ha configurado será borrada."
164
+
165
+ #: mailchimp.php:397
166
+ msgid "If any of that happens, no biggie - just reconfigure your login and the items below..."
167
+ msgstr "Si algo de eso sucede, no hay problema - simplemente reconfigure su acceso (login) y los siguientes Ítems ..."
168
+
169
+ #: mailchimp.php:403
170
+ msgid "Logged in as"
171
+ msgstr "Conectado como"
172
+
173
+ #: mailchimp.php:407
174
+ msgid "Logout"
175
+ msgstr "Salir"
176
+
177
+ #: mailchimp.php:421
178
+ msgid "Your Lists"
179
+ msgstr "Sus Listas"
180
+
181
+ #: mailchimp.php:423
182
+ msgid "Please select the List you wish to create a Signup Form for."
183
+ msgstr "Por favor, seleccione la lista que desea crear como Formulario de registro"
184
+
185
+ #: mailchimp.php:432
186
+ #, php-format
187
+ msgid "Uh-oh, you don't have any lists defined! Please visit %s, login, and setup a list before using this tool!"
188
+ msgstr "Oh-oh, no tiene ninguna lista definida! Por favor visite %s, ingrese, y configure una lista antes de usar esta herramienta!"
189
+
190
+ #: mailchimp.php:437
191
+ msgid "Select A List"
192
+ msgstr "Eliga una lista"
193
+
194
+ #: mailchimp.php:450
195
+ msgid "Update List"
196
+ msgstr "Actualizar lista"
197
+
198
+ #: mailchimp.php:453
199
+ msgid "Note:"
200
+ msgstr "Nota:"
201
+
202
+ #: mailchimp.php:453
203
+ msgid "Updating your list will not cause settings below to be lost. Changing to a new list will."
204
+ msgstr "Actualizar su lista no causará que la configuración abajo se pierda. Cambiar a una nueva lista si lo hará."
205
+
206
+ #: mailchimp.php:471
207
+ msgid "Reset List Options and Select again"
208
+ msgstr "Reiniciar las Opciones de la Lista y Seleccionar nuevamente"
209
+
210
+ #: mailchimp.php:474
211
+ msgid "Subscribe Form Widget Settings for this List"
212
+ msgstr "Configuraciones del Widget de Formulario de Suscripción para esta lista"
213
+
214
+ #: mailchimp.php:475
215
+ msgid "Selected MailChimp List"
216
+ msgstr "Lista MailChimp Seleccionada"
217
+
218
+ #: mailchimp.php:496
219
+ #: mailchimp.php:569
220
+ #: mailchimp.php:630
221
+ msgid "Update Subscribe Form Settings"
222
+ msgstr "Actualizar la Configuración del Formulario"
223
+
224
+ #: mailchimp.php:499
225
+ msgid "Monkey Rewards"
226
+ msgstr "Monkey Rewards"
227
+
228
+ #: mailchimp.php:501
229
+ msgid "turning this on will place a \"powered by MailChimp\" link in your form that will earn you credits with us. It is optional and can be turned on or off at any time."
230
+ msgstr "Activar esto ubicará un link \"Implementado gracias a Mailchimp\" en su formulario, con lo que le otorgaremos créditos. Es opcional y puede ser desactivado en cualquier momento."
231
+
232
+ #: mailchimp.php:505
233
+ msgid "Use Javascript Support?"
234
+ msgstr "Usar Soporte Javascript"
235
+
236
+ #: mailchimp.php:507
237
+ msgid "turning this on will use fancy javascript submission and should degrade gracefully for users not using javascript. It is optional and can be turned on or off at any time."
238
+ msgstr "Activar esto hará que se solicite al usuario aceptar el uso de código Javascript, y debería facilitarse para los no usuarios de Javascript. Es opcional y puede ser desactivado en cualquier momento."
239
+
240
+ #: mailchimp.php:511
241
+ msgid "Include Unsubscribe link?"
242
+ msgstr "Incluir enlace para Darse de Baja?"
243
+
244
+ #: mailchimp.php:513
245
+ msgid "turning this on will add a link to your host unsubscribe form"
246
+ msgstr "Activar esto añadirá un enlace a su formulario para darse de baja"
247
+
248
+ #: mailchimp.php:517
249
+ msgid "Header content"
250
+ msgstr "Contenido de la Cabecera (Header)"
251
+
252
+ #: mailchimp.php:520
253
+ msgid "You can fill this with your own Text, HTML markup (including image links), or Nothing!"
254
+ msgstr "Puede completar esto con su propio Texto, Código HTML (Incluyendo en laces de imágenes), o Nada!"
255
+
256
+ #: mailchimp.php:525
257
+ msgid "Submit Button text"
258
+ msgstr "Texto del boton Enviar"
259
+
260
+ #: mailchimp.php:532
261
+ msgid "Custom Styling"
262
+ msgstr "Estilo personalizado"
263
+
264
+ #: mailchimp.php:536
265
+ msgid "Turned On?"
266
+ msgstr "Activar?"
267
+
268
+ #: mailchimp.php:537
269
+ msgid "Header Settings (only applies if there are no HTML tags in the Header Content area above)"
270
+ msgstr "Configuración del encabezado (Sólo se aplica si no existen etiquetas HTML en el Contenido del Encabezado arriba)"
271
+
272
+ #: mailchimp.php:538
273
+ #: mailchimp.php:552
274
+ msgid "Border Width"
275
+ msgstr "Ancho del Borde"
276
+
277
+ #: mailchimp.php:539
278
+ #: mailchimp.php:553
279
+ msgid "Set to 0 for no border, do not enter <strong>px</strong>!"
280
+ msgstr "Dejar 0 para \"sin bordes\"- No escribir <strong>px</strong>!"
281
+
282
+ #: mailchimp.php:541
283
+ #: mailchimp.php:555
284
+ msgid "Border Color"
285
+ msgstr "COlor del Borde"
286
+
287
+ #: mailchimp.php:542
288
+ #: mailchimp.php:545
289
+ #: mailchimp.php:548
290
+ #: mailchimp.php:556
291
+ #: mailchimp.php:559
292
+ #: mailchimp.php:562
293
+ msgid "do not enter initial <strong>#</strong>"
294
+ msgstr "No escribir inicial <strong>#</strong>"
295
+
296
+ #: mailchimp.php:551
297
+ msgid "Form Settings"
298
+ msgstr "Configuración del formulario"
299
+
300
+ #: mailchimp.php:571
301
+ msgid "Merge Variables Included"
302
+ msgstr "Fusionar las Variables incluidas"
303
+
304
+ #: mailchimp.php:574
305
+ msgid "No Merge Variables found."
306
+ msgstr "No fusionar las variables encontradas"
307
+
308
+ #: mailchimp.php:580
309
+ #: mailchimp.php:614
310
+ msgid "Name"
311
+ msgstr "Nombre"
312
+
313
+ #: mailchimp.php:581
314
+ msgid "Tag"
315
+ msgstr "EtiquetA"
316
+
317
+ #: mailchimp.php:582
318
+ msgid "Required?"
319
+ msgstr "Obligatorio?"
320
+
321
+ #: mailchimp.php:583
322
+ msgid "Include?"
323
+ msgstr "Incluir?"
324
+
325
+ #: mailchimp.php:603
326
+ msgid "Interest Groups"
327
+ msgstr "Grupos de Interés"
328
+
329
+ #: mailchimp.php:605
330
+ msgid "No Interest Groups Setup for this List"
331
+ msgstr "No hay Configuración de Grupos de Interés para esta lista"
332
+
333
+ #: mailchimp.php:610
334
+ msgid "Show?"
335
+ msgstr "Mostrar?"
336
+
337
+ #: mailchimp.php:617
338
+ msgid "Input Type"
339
+ msgstr "Tipo de entrada"
340
+
341
+ #: mailchimp.php:620
342
+ msgid "Options"
343
+ msgstr "Opciones"
344
+
345
+
po/mailchimp_i18n-es_ES.mo ADDED
Binary file
po/mailchimp_i18n-es_ES.po ADDED
@@ -0,0 +1,345 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # SOME DESCRIPTIVE TITLE.
2
+ # Copyright (C) YEAR MailChimp API Support Team
3
+ # This file is distributed under the same license as the PACKAGE package.
4
+ # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5
+ #
6
+ msgid ""
7
+ msgstr ""
8
+ "Project-Id-Version: MailChimp 1.1.5\n"
9
+ "Report-Msgid-Bugs-To: http://wordpress.org/tag/mailchimp\n"
10
+ "POT-Creation-Date: 2009-07-15 14:23-0400\n"
11
+ "PO-Revision-Date: 2011-09-19 10:06-0500\n"
12
+ "Last-Translator: MailChimp API <api@mailchimp.com>\n"
13
+ "Language-Team: LANGUAGE <LL@li.org>\n"
14
+ "Language: \n"
15
+ "MIME-Version: 1.0\n"
16
+ "Content-Type: text/plain; charset=UTF-8\n"
17
+ "Content-Transfer-Encoding: 8bit\n"
18
+
19
+ #: mailchimp_includes.php:27
20
+ #: mailchimp_includes.php:62
21
+ msgid "You must fill in %s."
22
+ msgstr "Debe llenar el campo %s"
23
+
24
+ #: mailchimp_includes.php:59
25
+ msgid "That email address is already subscribed to the list"
26
+ msgstr "Esa cuenta de correo ya está subscripta a la lista"
27
+
28
+ #: mailchimp_includes.php:66
29
+ #, php-format
30
+ msgid "%s has invalid content"
31
+ msgstr "%s tiene contenido inválido"
32
+
33
+ #: mailchimp_includes.php:68
34
+ msgid "An invalid Interest Group was selected"
35
+ msgstr "Un Grupo de Interés inválido ha sido seleccionado"
36
+
37
+ #: mailchimp_includes.php:69
38
+ msgid "That email address is invalid"
39
+ msgstr "La cuenta de correo ingresada no es válida"
40
+
41
+ #: mailchimp_includes.php:75
42
+ msgid "Success, you've been signed up! Please look for our confirmation email!"
43
+ msgstr "Exitos! Has sido registrado! Ahora verifica que te ha llegado el correo de confirmación a tu casilla!"
44
+
45
+ #: mailchimp_includes.php:131
46
+ msgid "required field"
47
+ msgstr "campo obligatorio"
48
+
49
+ #: mailchimp_includes.php:168
50
+ msgid "unsubscribe from list"
51
+ msgstr "Desubscribirse de la lista"
52
+
53
+ #: mailchimp_includes.php:171
54
+ msgid "powered by"
55
+ msgstr "powered by"
56
+
57
+ #: mailchimp.php:135
58
+ msgid "MailChimp Setup"
59
+ msgstr "Configuración Mailchimp"
60
+
61
+ #: mailchimp.php:150
62
+ msgid "While upgrading the plugin setup, we were unable to login to your account. You will need to login again and setup your list."
63
+ msgstr "Mientras se actualizaba la configuración del plugin, no pudimos registrar y verificar tu cuenta. Necesitas ingresar nuevamente y configurar tu lista."
64
+
65
+ #: mailchimp.php:156
66
+ msgid "MailChimp List Setup"
67
+ msgstr "Configuración de Lista Mailchimp"
68
+
69
+ #: mailchimp.php:166
70
+ msgid "Success! We were able to verify your username & password! Let's continue, shall we?"
71
+ msgstr "Exitos! Pudimos verificar tu nombre de usuario y clave! Continuemos, si?"
72
+
73
+ #: mailchimp.php:178
74
+ msgid "Uh-oh, we were unable to login and verify your username & password. Please check them and try again!"
75
+ msgstr "Oh-oh, no pudimos ingresarte y verificar tu nombre de usuario y clave. Por favor chequea la información de acceso e intenta nuevamente!"
76
+
77
+ #: mailchimp.php:179
78
+ msgid "The server said:"
79
+ msgstr "El servidor dijo:"
80
+
81
+ #: mailchimp.php:222
82
+ msgid "Sign up for"
83
+ msgstr "Registrarse para"
84
+
85
+ #: mailchimp.php:223
86
+ msgid "Subscribe"
87
+ msgstr "Subscribirse"
88
+
89
+ #: mailchimp.php:253
90
+ #, php-format
91
+ msgid "Success! Loaded and saved the info for %d Merge Variables and %d Interest Groups from your list"
92
+ msgstr "Exito! Se ha cargado y guardado la información para %d Variables de Fusión y %d de Interés "
93
+
94
+ #: mailchimp.php:256
95
+ msgid "Now you should either Turn On the MailChimp Widget or change your options below, then turn it on."
96
+ msgstr "Ahora debiera Activar el Widget Mailchimp o cambiar sus opciones abajo, y luego activarlo."
97
+
98
+ #: mailchimp.php:284
99
+ msgid "Successfully Reset your List selection... Now you get to pick again!"
100
+ msgstr "Ha reseteado su selección de Lista... Ahora puede elegir nuevamente!"
101
+
102
+ #: mailchimp.php:290
103
+ msgid "Monkey Rewards turned On!"
104
+ msgstr "Monkey Rewards Activado!"
105
+
106
+ #: mailchimp.php:294
107
+ msgid "Monkey Rewards turned Off!"
108
+ msgstr "Monkey Rewards Desactivado!"
109
+
110
+ #: mailchimp.php:299
111
+ msgid "Fancy Javascript submission turned On!"
112
+ msgstr "Uso de Javascript en el formulario Activado"
113
+
114
+ #: mailchimp.php:303
115
+ msgid "Fancy Javascript submission turned Off!"
116
+ msgstr "Uso de Javascript en el formulario Desactivado"
117
+
118
+ #: mailchimp.php:309
119
+ msgid "Unsubscribe link turned On!"
120
+ msgstr "Enlace de Desubscripción Activado!"
121
+
122
+ #: mailchimp.php:313
123
+ msgid "Unsubscribe link turned Off!"
124
+ msgstr "Enlace de Desubscripción Desactivado!"
125
+
126
+ #: mailchimp.php:359
127
+ msgid "Successfully Updated your List Subscribe Form Settings!"
128
+ msgstr "Ha actualizado la configuración del Formulario de Subscripción de manera exitosa!"
129
+
130
+ #: mailchimp.php:372
131
+ msgid "Login Info"
132
+ msgstr "Informaciónh de Ingreso"
133
+
134
+ #: mailchimp.php:373
135
+ msgid "To start using the MailChimp plugin, we first need to login and get your API Key. Please enter your MailChimp username and password below."
136
+ msgstr "Para comenzar a usar el plugin de Mailchimp, primero necesitas ingresar al sitio y obtener tu clave API. Por favor ingresa tu nombre de usuario y clave abajo."
137
+
138
+ #: mailchimp.php:375
139
+ msgid "Don't have a MailChimp account? <a href='http://www.mailchimp.com/tryit.phtml' target='_blank'>Try one for Free</a>!"
140
+ msgstr "No tienes una cuenta en Mailchimp? <a href='http://www.mailchimp.com/tryit.phtml' target='_blank'>Registra una de forma gratuita</a>!"
141
+
142
+ #: mailchimp.php:379
143
+ msgid "Username"
144
+ msgstr "Nombre de Usuario"
145
+
146
+ #: mailchimp.php:383
147
+ msgid "Password"
148
+ msgstr "Clave"
149
+
150
+ #: mailchimp.php:389
151
+ msgid "Save & Check"
152
+ msgstr "Guardar & Chequear"
153
+
154
+ #: mailchimp.php:394
155
+ msgid "Notes"
156
+ msgstr "Notas"
157
+
158
+ #: mailchimp.php:395
159
+ msgid "Changing your settings at MailChimp.com may cause this to stop working."
160
+ msgstr "Camiar su configuración en Mailchimp.com provocará que esto deje de funcionar."
161
+
162
+ #: mailchimp.php:396
163
+ msgid "If you change your login to a different account, the info you have setup below will be erased."
164
+ msgstr "Si cambias tu ingreso a otra cuenta diferente, la información que has configurado abajo será eliminada"
165
+
166
+ #: mailchimp.php:397
167
+ msgid "If any of that happens, no biggie - just reconfigure your login and the items below..."
168
+ msgstr "Si eso sucede, no te preocupes - simplemente reconfigura tu ingreso y los items que se encuentran abajo..."
169
+
170
+ #: mailchimp.php:403
171
+ msgid "Logged in as"
172
+ msgstr "Registrado como"
173
+
174
+ #: mailchimp.php:407
175
+ msgid "Logout"
176
+ msgstr "Cerra Sesión"
177
+
178
+ #: mailchimp.php:421
179
+ msgid "Your Lists"
180
+ msgstr "Sus Listas"
181
+
182
+ #: mailchimp.php:423
183
+ msgid "Please select the List you wish to create a Signup Form for."
184
+ msgstr "Por favor seleccion la Lista para la que desea crear un Formulario de Subscripción"
185
+
186
+ #: mailchimp.php:432
187
+ #, php-format
188
+ msgid "Uh-oh, you don't have any lists defined! Please visit %s, login, and setup a list before using this tool!"
189
+ msgstr "Oh-oh, no tienes listas definidas! Por favor visite %s, ingrese con su cuenta y configure una lista antes de utilizar esta herramienta!"
190
+
191
+ #: mailchimp.php:437
192
+ msgid "Select A List"
193
+ msgstr "Seleccionar Una Lista"
194
+
195
+ #: mailchimp.php:450
196
+ msgid "Update List"
197
+ msgstr "Actualizar Lista"
198
+
199
+ #: mailchimp.php:453
200
+ msgid "Note:"
201
+ msgstr "Nota:"
202
+
203
+ #: mailchimp.php:453
204
+ msgid "Updating your list will not cause settings below to be lost. Changing to a new list will."
205
+ msgstr "Actualizar su lista no causará que la configuración actual se pierda. Cambiar a una lista sí lo hará."
206
+
207
+ #: mailchimp.php:471
208
+ msgid "Reset List Options and Select again"
209
+ msgstr "Resetear Opciones de Lista y Seleccionar nuevamente"
210
+
211
+ #: mailchimp.php:474
212
+ msgid "Subscribe Form Widget Settings for this List"
213
+ msgstr "Configuración de Opciones de Widget de Formulario de Subscripción para esta Lista"
214
+
215
+ #: mailchimp.php:475
216
+ msgid "Selected MailChimp List"
217
+ msgstr "Lista Mailchimp Seleccionada"
218
+
219
+ #: mailchimp.php:496
220
+ #: mailchimp.php:569
221
+ #: mailchimp.php:630
222
+ msgid "Update Subscribe Form Settings"
223
+ msgstr "Actualizar Opciones de Formulario de Subscripción"
224
+
225
+ #: mailchimp.php:499
226
+ msgid "Monkey Rewards"
227
+ msgstr "Monkey Rewards"
228
+
229
+ #: mailchimp.php:501
230
+ msgid "turning this on will place a \"powered by MailChimp\" link in your form that will earn you credits with us. It is optional and can be turned on or off at any time."
231
+ msgstr "activar esta opción incluirá el enlace \"powered by MailChimp\" en su formulario lo cual hará que sume créditos con nosotros. Es opcional y puede ser activado y desactivado en cualquier momento."
232
+
233
+ #: mailchimp.php:505
234
+ msgid "Use Javascript Support?"
235
+ msgstr "Usar Soporte Javascript?"
236
+
237
+ #: mailchimp.php:507
238
+ msgid "turning this on will use fancy javascript submission and should degrade gracefully for users not using javascript. It is optional and can be turned on or off at any time."
239
+ msgstr "activar esta opción evitará el uso de javascript en el formulario y debiera degradarse adecuadamente para usuarios que no utilicen javascript. Es opcional y puede ser activado y desactivado en cualquier momento."
240
+
241
+ #: mailchimp.php:511
242
+ msgid "Include Unsubscribe link?"
243
+ msgstr "Incluir enlace de Sesubscripción"
244
+
245
+ #: mailchimp.php:513
246
+ msgid "turning this on will add a link to your host unsubscribe form"
247
+ msgstr "activar esta opción agregará un enlance al formulario de desubscripción"
248
+
249
+ #: mailchimp.php:517
250
+ msgid "Header content"
251
+ msgstr "Contenido de la Cabecera"
252
+
253
+ #: mailchimp.php:520
254
+ msgid "You can fill this with your own Text, HTML markup (including image links), or Nothing!"
255
+ msgstr "Puede llenar esta área con su propio Texto, código HTML (incluyendo imágenes), o nada! "
256
+
257
+ #: mailchimp.php:525
258
+ msgid "Submit Button text"
259
+ msgstr "Texto para botón de aceptar"
260
+
261
+ #: mailchimp.php:532
262
+ msgid "Custom Styling"
263
+ msgstr "Estilo Personalizado"
264
+
265
+ #: mailchimp.php:536
266
+ msgid "Turned On?"
267
+ msgstr "Activado?"
268
+
269
+ #: mailchimp.php:537
270
+ msgid "Header Settings (only applies if there are no HTML tags in the Header Content area above)"
271
+ msgstr "Configuración de Cabecera (sólo aplica si no hay etiquetas de HMTL en el área encima de la Cabecera)"
272
+
273
+ #: mailchimp.php:538
274
+ #: mailchimp.php:552
275
+ msgid "Border Width"
276
+ msgstr "Ancho de Borde"
277
+
278
+ #: mailchimp.php:539
279
+ #: mailchimp.php:553
280
+ msgid "Set to 0 for no border, do not enter <strong>px</strong>!"
281
+ msgstr "Ingrese 0 para no tener border, no ingrese <strong>px</strong>!"
282
+
283
+ #: mailchimp.php:541
284
+ #: mailchimp.php:555
285
+ msgid "Border Color"
286
+ msgstr "Color de Borde"
287
+
288
+ #: mailchimp.php:542
289
+ #: mailchimp.php:545
290
+ #: mailchimp.php:548
291
+ #: mailchimp.php:556
292
+ #: mailchimp.php:559
293
+ #: mailchimp.php:562
294
+ msgid "do not enter initial <strong>#</strong>"
295
+ msgstr "No ingrese <strong>#</strong> al principio"
296
+
297
+ #: mailchimp.php:551
298
+ msgid "Form Settings"
299
+ msgstr "Configuración de Formulario"
300
+
301
+ #: mailchimp.php:571
302
+ msgid "Merge Variables Included"
303
+ msgstr "Variables de Fusión incluídas"
304
+
305
+ #: mailchimp.php:574
306
+ msgid "No Merge Variables found."
307
+ msgstr "No hay Variable de Fusión"
308
+
309
+ #: mailchimp.php:580
310
+ #: mailchimp.php:614
311
+ msgid "Name"
312
+ msgstr "Nombre"
313
+
314
+ #: mailchimp.php:581
315
+ msgid "Tag"
316
+ msgstr "Etiqueta"
317
+
318
+ #: mailchimp.php:582
319
+ msgid "Required?"
320
+ msgstr "Obligatorio?"
321
+
322
+ #: mailchimp.php:583
323
+ msgid "Include?"
324
+ msgstr "Incluir?"
325
+
326
+ #: mailchimp.php:603
327
+ msgid "Interest Groups"
328
+ msgstr "Grupos de Interés"
329
+
330
+ #: mailchimp.php:605
331
+ msgid "No Interest Groups Setup for this List"
332
+ msgstr "No hay Grupos de Interés creados para esta lista"
333
+
334
+ #: mailchimp.php:610
335
+ msgid "Show?"
336
+ msgstr "Mostrar?"
337
+
338
+ #: mailchimp.php:617
339
+ msgid "Input Type"
340
+ msgstr "Tipo de entrada"
341
+
342
+ #: mailchimp.php:620
343
+ msgid "Options"
344
+ msgstr "Opciones"
345
+
po/mailchimp_i18n-tr_TR.mo ADDED
Binary file
po/mailchimp_i18n-tr_TR.po ADDED
@@ -0,0 +1,344 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # SOME DESCRIPTIVE TITLE.
2
+ # Copyright (C) YEAR MailChimp API Support Team
3
+ # This file is distributed under the same license as the PACKAGE package.
4
+ # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5
+ #
6
+ msgid ""
7
+ msgstr ""
8
+ "Project-Id-Version: MailChimp 1.1.5\n"
9
+ "Report-Msgid-Bugs-To: http://wordpress.org/tag/mailchimp\n"
10
+ "POT-Creation-Date: 2009-07-15 14:23-0400\n"
11
+ "PO-Revision-Date: 2011-09-14 07:51-0500\n"
12
+ "Last-Translator: MailChimp API <api@mailchimp.com>\n"
13
+ "Language-Team: <LL@li.org>\n"
14
+ "MIME-Version: 1.0\n"
15
+ "Content-Type: text/plain; charset=UTF-8\n"
16
+ "Content-Transfer-Encoding: 8bit\n"
17
+
18
+ #: mailchimp_includes.php:27
19
+ #: mailchimp_includes.php:62
20
+ msgid "You must fill in %s."
21
+ msgstr "Doldurmalısınız %s."
22
+
23
+ #: mailchimp_includes.php:59
24
+ msgid "That email address is already subscribed to the list"
25
+ msgstr "Bu mail adresi listemizde mevcut"
26
+
27
+ #: mailchimp_includes.php:66
28
+ #, php-format
29
+ msgid "%s has invalid content"
30
+ msgstr "%s geçersiz bir içeriğe sahip"
31
+
32
+ #: mailchimp_includes.php:68
33
+ msgid "An invalid Interest Group was selected"
34
+ msgstr "Geçersiz bir ilgi alanı grubu seçildi"
35
+
36
+ #: mailchimp_includes.php:69
37
+ msgid "That email address is invalid"
38
+ msgstr "Bu posta adresi geçersiz"
39
+
40
+ #: mailchimp_includes.php:75
41
+ msgid "Success, you've been signed up! Please look for our confirmation email!"
42
+ msgstr "Başarılı, kayıt oldunuz! Lütfen onay için posta kutunuzu kontrol edin!"
43
+
44
+ #: mailchimp_includes.php:131
45
+ msgid "required field"
46
+ msgstr "doldurulması zorunludur"
47
+
48
+ #: mailchimp_includes.php:168
49
+ msgid "unsubscribe from list"
50
+ msgstr "Liste aboneliğinden çıkış"
51
+
52
+ #: mailchimp_includes.php:171
53
+ msgid "powered by"
54
+ msgstr "tarafından desteklenmektedir"
55
+
56
+ #: mailchimp.php:135
57
+ msgid "MailChimp Setup"
58
+ msgstr "MailChimp Kurulumu"
59
+
60
+ #: mailchimp.php:150
61
+ msgid "While upgrading the plugin setup, we were unable to login to your account. You will need to login again and setup your list."
62
+ msgstr "Eklenti güncellemesi sırasında hesabınıza giriş yapamadık. Tekrar giriş yaparak listenizi kurmalısınız."
63
+
64
+ #: mailchimp.php:156
65
+ msgid "MailChimp List Setup"
66
+ msgstr "MailChimp Liste Kurulumu"
67
+
68
+ #: mailchimp.php:166
69
+ msgid "Success! We were able to verify your username & password! Let's continue, shall we?"
70
+ msgstr "Başarılı! Kullanıcı adı & parolanızı doğrulayabildik! Devam edelim, olur mu?"
71
+
72
+ #: mailchimp.php:178
73
+ msgid "Uh-oh, we were unable to login and verify your username & password. Please check them and try again!"
74
+ msgstr "Uh-oh, kullanıcı adı & parolanızı doğrulayamadık ve giriş yapamadık. Lütfen tekrar kontrol edin!"
75
+
76
+ #: mailchimp.php:179
77
+ msgid "The server said:"
78
+ msgstr "Sunucu der ki:"
79
+
80
+ #: mailchimp.php:222
81
+ msgid "Sign up for"
82
+ msgstr "Bunun için kayıt olun"
83
+
84
+ #: mailchimp.php:223
85
+ msgid "Subscribe"
86
+ msgstr "Abone ol"
87
+
88
+ #: mailchimp.php:253
89
+ #, php-format
90
+ msgid "Success! Loaded and saved the info for %d Merge Variables and %d Interest Groups from your list"
91
+ msgstr "Başarılı! Gereken bilgi yüklendi ve kayıt edildi %d değişkenleri birleştir ve %d İlgi alanı Grupları listesinden."
92
+
93
+ #: mailchimp.php:256
94
+ msgid "Now you should either Turn On the MailChimp Widget or change your options below, then turn it on."
95
+ msgstr "Şimdi MailChimp Widget'i etkinleştirmeli veya alttaki ayarları değiştirmelisiniz, sonrada açın."
96
+
97
+ #: mailchimp.php:284
98
+ msgid "Successfully Reset your List selection... Now you get to pick again!"
99
+ msgstr "Liste seçimleriniz Başarıyla Sıfırlandı... Şimde tekrar seçim yapın!"
100
+
101
+ #: mailchimp.php:290
102
+ msgid "Monkey Rewards turned On!"
103
+ msgstr "Maymun Ödülleri açıldı!"
104
+
105
+ #: mailchimp.php:294
106
+ msgid "Monkey Rewards turned Off!"
107
+ msgstr "Maymun Ödülleri kapatıldı!"
108
+
109
+ #: mailchimp.php:299
110
+ msgid "Fancy Javascript submission turned On!"
111
+ msgstr "Cancanlı Javascript gönderimi açıldı!"
112
+
113
+ #: mailchimp.php:303
114
+ msgid "Fancy Javascript submission turned Off!"
115
+ msgstr "Cancanlı Javascript gönderimi kapatıldı!"
116
+
117
+ #: mailchimp.php:309
118
+ msgid "Unsubscribe link turned On!"
119
+ msgstr "Abonelikten vazgeç linki açıldı!"
120
+
121
+ #: mailchimp.php:313
122
+ msgid "Unsubscribe link turned Off!"
123
+ msgstr "Abonelikten vazgeç linki kapatıldı"
124
+
125
+ #: mailchimp.php:359
126
+ msgid "Successfully Updated your List Subscribe Form Settings!"
127
+ msgstr "Abone Form Liste Ayarlarınız Başarıyla Güncellendi!"
128
+
129
+ #: mailchimp.php:372
130
+ msgid "Login Info"
131
+ msgstr "Giriş Bilgisi"
132
+
133
+ #: mailchimp.php:373
134
+ msgid "To start using the MailChimp plugin, we first need to login and get your API Key. Please enter your MailChimp username and password below."
135
+ msgstr "MailChimp eklentisini kullanmaya başlamak için giriş yapmanıza ve API anahtarı almanıza ihtiyacımız var. Lütfen aşağıya MailChimp kullanıcı adı ve parolanızı girin."
136
+
137
+ #: mailchimp.php:375
138
+ msgid "Don't have a MailChimp account? <a href='http://www.mailchimp.com/tryit.phtml' target='_blank'>Try one for Free</a>!"
139
+ msgstr "MailChimp hesabınız yokmu? <a href='http://www.mailchimp.com/tryit.phtml' target='_blank'>Ücretsiz Deneyin</a>!"
140
+
141
+ #: mailchimp.php:379
142
+ msgid "Username"
143
+ msgstr "Kullanıcı adı"
144
+
145
+ #: mailchimp.php:383
146
+ msgid "Password"
147
+ msgstr "Parola"
148
+
149
+ #: mailchimp.php:389
150
+ msgid "Save & Check"
151
+ msgstr "Kayıt & Kontrol"
152
+
153
+ #: mailchimp.php:394
154
+ msgid "Notes"
155
+ msgstr "Notlar"
156
+
157
+ #: mailchimp.php:395
158
+ msgid "Changing your settings at MailChimp.com may cause this to stop working."
159
+ msgstr "MailChimp.com'da ki ayarlarınızın değişmesi çalışmayı durdurmasına neden olabilir."
160
+
161
+ #: mailchimp.php:396
162
+ msgid "If you change your login to a different account, the info you have setup below will be erased."
163
+ msgstr "Eğer girişinizi başka bir hesap ile değiştirirseniz, kurulumunuzdaki bilgiler silinecektir."
164
+
165
+ #: mailchimp.php:397
166
+ msgid "If any of that happens, no biggie - just reconfigure your login and the items below..."
167
+ msgstr "Herhangi birşey olursa, önemsemeyin - sadece giriş ve alt öğeleri yeniden yapılandırın..."
168
+
169
+ #: mailchimp.php:403
170
+ msgid "Logged in as"
171
+ msgstr "Olarak oturum açıldı"
172
+
173
+ #: mailchimp.php:407
174
+ msgid "Logout"
175
+ msgstr "Çıkış"
176
+
177
+ #: mailchimp.php:421
178
+ msgid "Your Lists"
179
+ msgstr "Listeniz"
180
+
181
+ #: mailchimp.php:423
182
+ msgid "Please select the List you wish to create a Signup Form for."
183
+ msgstr "Lütfen oluşturmak istediğiniz Üye Kayıt Formunu seçin."
184
+
185
+ #: mailchimp.php:432
186
+ #, php-format
187
+ msgid "Uh-oh, you don't have any lists defined! Please visit %s, login, and setup a list before using this tool!"
188
+ msgstr "Uh-oh, herhangi bir liste tanımlamadınız! Lütfen ziyaret edin%s, giriş, ve bu aracı kullanmadan önce bir liste oluşturun."
189
+
190
+ #: mailchimp.php:437
191
+ msgid "Select A List"
192
+ msgstr "Bir Liste Seç"
193
+
194
+ #: mailchimp.php:450
195
+ msgid "Update List"
196
+ msgstr "Listeyi Güncelle"
197
+
198
+ #: mailchimp.php:453
199
+ msgid "Note:"
200
+ msgstr "Not:"
201
+
202
+ #: mailchimp.php:453
203
+ msgid "Updating your list will not cause settings below to be lost. Changing to a new list will."
204
+ msgstr "Listenizi güncellemek alt ayarların kaybolmasına neden olmaz. Yeni bir listeyle değiştirirseniz olur."
205
+
206
+ #: mailchimp.php:471
207
+ msgid "Reset List Options and Select again"
208
+ msgstr "Liste Ayarlarını Sıfırla ve tekrar Seç"
209
+
210
+ #: mailchimp.php:474
211
+ msgid "Subscribe Form Widget Settings for this List"
212
+ msgstr "Bu Liste için Abone Formu Widget Ayarları"
213
+
214
+ #: mailchimp.php:475
215
+ msgid "Selected MailChimp List"
216
+ msgstr "Seçilen MailChimp Listesi"
217
+
218
+ #: mailchimp.php:496
219
+ #: mailchimp.php:569
220
+ #: mailchimp.php:630
221
+ msgid "Update Subscribe Form Settings"
222
+ msgstr "Abone Form Ayarlarını Güncelle"
223
+
224
+ #: mailchimp.php:499
225
+ msgid "Monkey Rewards"
226
+ msgstr "Maymun Ödülleri"
227
+
228
+ #: mailchimp.php:501
229
+ msgid "turning this on will place a \"powered by MailChimp\" link in your form that will earn you credits with us. It is optional and can be turned on or off at any time."
230
+ msgstr "Bunu açmanız formunuza bizimle kredi kazanabileceğiniz \"powered by MailChimp\" linki ekler. Bu isteğe bağlıdır ve her zaman açık veya kapalı olarak değişebilir."
231
+
232
+ #: mailchimp.php:505
233
+ msgid "Use Javascript Support?"
234
+ msgstr "Javascript Desteği Kullanılsın mı?"
235
+
236
+ #: mailchimp.php:507
237
+ msgid "turning this on will use fancy javascript submission and should degrade gracefully for users not using javascript. It is optional and can be turned on or off at any time."
238
+ msgstr "Bunu açmanız cancanlı javascript gönderimini kullanır ve javascript kullanmayanları nazikçe küçük düşürür. Bu isteğe bağlıdır ve her zaman açık veya kapalı olarak değişebilir."
239
+
240
+ #: mailchimp.php:511
241
+ msgid "Include Unsubscribe link?"
242
+ msgstr "Abonelikten Vazgeçme linki Eklensin mi?"
243
+
244
+ #: mailchimp.php:513
245
+ msgid "turning this on will add a link to your host unsubscribe form"
246
+ msgstr "bunu açmak sunucunuza bir abonelikten vazgeçme form linki ekleyecektir"
247
+
248
+ #: mailchimp.php:517
249
+ msgid "Header content"
250
+ msgstr "Başlık içeriği"
251
+
252
+ #: mailchimp.php:520
253
+ msgid "You can fill this with your own Text, HTML markup (including image links), or Nothing!"
254
+ msgstr "Buraya kendi Yazınızı ekleyebilir, HTML biçimi (resim linki ekleme), yada hiçbir şey!"
255
+
256
+ #: mailchimp.php:525
257
+ msgid "Submit Button text"
258
+ msgstr "Kabul Buton yazısı"
259
+
260
+ #: mailchimp.php:532
261
+ msgid "Custom Styling"
262
+ msgstr "Kişisel Stil"
263
+
264
+ #: mailchimp.php:536
265
+ msgid "Turned On?"
266
+ msgstr "Açılsın mı?"
267
+
268
+ #: mailchimp.php:537
269
+ msgid "Header Settings (only applies if there are no HTML tags in the Header Content area above)"
270
+ msgstr "Başlık Ayarları (yalnızca yukarıdaki Üstbilgi İçerik alanında herhangi bir HTML etiketi yoksa geçerlidir)"
271
+
272
+ #: mailchimp.php:538
273
+ #: mailchimp.php:552
274
+ msgid "Border Width"
275
+ msgstr "Kenarlık Eni"
276
+
277
+ #: mailchimp.php:539
278
+ #: mailchimp.php:553
279
+ msgid "Set to 0 for no border, do not enter <strong>px</strong>!"
280
+ msgstr "Kenarlıksız için 0 gir, girme <strong>px</strong>!"
281
+
282
+ #: mailchimp.php:541
283
+ #: mailchimp.php:555
284
+ msgid "Border Color"
285
+ msgstr "Kenarlık Rengi"
286
+
287
+ #: mailchimp.php:542
288
+ #: mailchimp.php:545
289
+ #: mailchimp.php:548
290
+ #: mailchimp.php:556
291
+ #: mailchimp.php:559
292
+ #: mailchimp.php:562
293
+ msgid "do not enter initial <strong>#</strong>"
294
+ msgstr "başına girme <strong>#</strong>"
295
+
296
+ #: mailchimp.php:551
297
+ msgid "Form Settings"
298
+ msgstr "Form Ayarları"
299
+
300
+ #: mailchimp.php:571
301
+ msgid "Merge Variables Included"
302
+ msgstr "Birleşen Değişkenler Eklendi"
303
+
304
+ #: mailchimp.php:574
305
+ msgid "No Merge Variables found."
306
+ msgstr "Birleşen Değişken bulunamadı."
307
+
308
+ #: mailchimp.php:580
309
+ #: mailchimp.php:614
310
+ msgid "Name"
311
+ msgstr "İsim"
312
+
313
+ #: mailchimp.php:581
314
+ msgid "Tag"
315
+ msgstr "Etiket"
316
+
317
+ #: mailchimp.php:582
318
+ msgid "Required?"
319
+ msgstr "Gerekli?"
320
+
321
+ #: mailchimp.php:583
322
+ msgid "Include?"
323
+ msgstr "Ekle?"
324
+
325
+ #: mailchimp.php:603
326
+ msgid "Interest Groups"
327
+ msgstr "İlgi Alanı Grupları"
328
+
329
+ #: mailchimp.php:605
330
+ msgid "No Interest Groups Setup for this List"
331
+ msgstr "Bu Liste için İlgi Alanı Grupları Kurulmadı"
332
+
333
+ #: mailchimp.php:610
334
+ msgid "Show?"
335
+ msgstr "Göster?"
336
+
337
+ #: mailchimp.php:617
338
+ msgid "Input Type"
339
+ msgstr "Giriş Tipi"
340
+
341
+ #: mailchimp.php:620
342
+ msgid "Options"
343
+ msgstr "Seçenekler"
344
+
readme.txt CHANGED
@@ -2,8 +2,8 @@
2
  Contributors: mc_jesse, crowdfavorite
3
  Tags: mailchimp, email, newsletter, signup, marketing, plugin, widget
4
  Requires at least: 2.8
5
- Tested up to: 3.1
6
- Stable tag: 1.2.4
7
 
8
  == Description ==
9
 
@@ -19,14 +19,14 @@ This section describes how to install the plugin and get started using it.
19
 
20
  = Version 2.8+ =
21
  1. Unzip our archive and upload the entire `mailchimp` directory to your `/wp-content/plugins/` directory
22
- 1. Activate the plugin through the 'Plugins' menu in WordPress
23
- 1. Go to Settings and look for "MailChimp Setup" in the menu
24
- 1. Enter your MailChimp API Key and let the plugin verify it.
25
- 1. Select One of your lists to have your visitors subscribe to.
26
- 1. (optionally) Turn on or off the Monkey Rewards option
27
- 1. (optionally) Turn your Merge Vars and Interest Groups `on` and `off`
28
- 1. Finally, go to Appearance->Widgets and drag the `MailChimp Widget` widget into one of your Widget Areas
29
- 1. And you are DONE!
30
 
31
  = Advanced =
32
  If you have a custom coded sidebar or something else special going on where you can't simply enable the widget through the Wordpress GUI, all you need to do is:
@@ -61,6 +61,8 @@ Currently we have the plugin configured so it can be easily translated and the f
61
  * de_DE - German in Germany (thanks to Michael Jaekel for contributing)
62
  * el_GR - Modern Greek in Greece (thanks to Ιωάννης Δημοφέρλιας (John Dimoferlias) for contributing)
63
  * en_US - English in the U.S.
 
 
64
  * et_ET - Estonian in Estonia (thanks to [Helen Urbanik](http://www.motomaania.ee/) for contributing)
65
  * fr_FR - French in France (thanks to [Maxime Toulliou](http://www.maximetoulliou.com/) for contributing)
66
  * hu_HU - Hungarian in Hungary (thanks to Okostobi for contributing)
@@ -72,6 +74,7 @@ Currently we have the plugin configured so it can be easily translated and the f
72
  * pt_PT - Portuguese in Portugal (thanks to [Tiago Faria](http://xroot.org) for contributing)
73
  * ru_RU - Russian in the Russian Federation (thanks to [Илья](http://fatcow.com) for contributing)
74
  * sv_SE - Swedish in Sweden (thanks to [Sebastian Johnsson](http://www.agiley.se/) for contributing)
 
75
 
76
  If your language is not listed above, feel free to create a translation. Here are the basic steps:
77
 
@@ -112,8 +115,20 @@ Maybe! Look in the /po/ directory in our plugin package and see if your language
112
  4. Configuring extra fields on your Signup Form (optional)
113
  5. An example Signup Form Widget
114
 
 
 
 
 
 
115
  == Changelog ==
116
 
 
 
 
 
 
 
 
117
  = 1.2.4 =
118
  * Version bump for proper listing on wordpress.org
119
 
2
  Contributors: mc_jesse, crowdfavorite
3
  Tags: mailchimp, email, newsletter, signup, marketing, plugin, widget
4
  Requires at least: 2.8
5
+ Tested up to: 3.2.1
6
+ Stable tag: 1.2.5
7
 
8
  == Description ==
9
 
19
 
20
  = Version 2.8+ =
21
  1. Unzip our archive and upload the entire `mailchimp` directory to your `/wp-content/plugins/` directory
22
+ 2. Activate the plugin through the 'Plugins' menu in WordPress
23
+ 3. Go to Settings and look for "MailChimp Setup" in the menu
24
+ 4. Enter your MailChimp API Key and let the plugin verify it.
25
+ 5. Select One of your lists to have your visitors subscribe to.
26
+ 6. (optionally) Turn on or off the Monkey Rewards option
27
+ 7. (optionally) Turn your Merge Vars and Interest Groups `on` and `off`
28
+ 8. Finally, go to Appearance->Widgets and drag the `MailChimp Widget` widget into one of your Widget Areas
29
+ 9. And you are DONE!
30
 
31
  = Advanced =
32
  If you have a custom coded sidebar or something else special going on where you can't simply enable the widget through the Wordpress GUI, all you need to do is:
61
  * de_DE - German in Germany (thanks to Michael Jaekel for contributing)
62
  * el_GR - Modern Greek in Greece (thanks to Ιωάννης Δημοφέρλιας (John Dimoferlias) for contributing)
63
  * en_US - English in the U.S.
64
+ * es_CL - Spanish in Chile (thanks to Tomás Nader for contributing)
65
+ * es_ES - Spanish in Spain (thanks to [Claudia Mansilla](http://cricava.com/) for contributing)
66
  * et_ET - Estonian in Estonia (thanks to [Helen Urbanik](http://www.motomaania.ee/) for contributing)
67
  * fr_FR - French in France (thanks to [Maxime Toulliou](http://www.maximetoulliou.com/) for contributing)
68
  * hu_HU - Hungarian in Hungary (thanks to Okostobi for contributing)
74
  * pt_PT - Portuguese in Portugal (thanks to [Tiago Faria](http://xroot.org) for contributing)
75
  * ru_RU - Russian in the Russian Federation (thanks to [Илья](http://fatcow.com) for contributing)
76
  * sv_SE - Swedish in Sweden (thanks to [Sebastian Johnsson](http://www.agiley.se/) for contributing)
77
+ * tr_TR - Turkish in Turkey (thanks to [Hakan E.](http://kazancexpert.com/) for contributing)
78
 
79
  If your language is not listed above, feel free to create a translation. Here are the basic steps:
80
 
115
  4. Configuring extra fields on your Signup Form (optional)
116
  5. An example Signup Form Widget
117
 
118
+ == Upgrade Notice ==
119
+
120
+ = 1.2.5 =
121
+ Added support for multiple interest groups, field formatting based on type and date picker.
122
+
123
  == Changelog ==
124
 
125
+ = 1.2.5 =
126
+ * Field formatting based on type
127
+ * Support for multiple interest groups (a data upgrade procedure must be run by visiting the WordPress dashboard)
128
+ * Added jQuery datepicker option to be used with dates.
129
+ * Added a handful of new translations
130
+ * Fixing various PHP notices and deprecated functions (props Jeffry Ghazally)
131
+
132
  = 1.2.4 =
133
  * Version bump for proper listing on wordpress.org
134