WP SEO Structured Data Schema - Version 2.5.8

Version Description

  • Fix Javascript issue
  • Update Contact Type

=

Download this release

Release Info

Developer kcseopro
Plugin Icon 128x128 WP SEO Structured Data Schema
Version 2.5.8
Comparing to
See all releases

Code changes from version 2.5.7 to 2.5.8

README.txt CHANGED
@@ -3,8 +3,8 @@ Contributors: kcseopro
3
  Donate link:
4
  Tags: seo, schema, structured data, rich snippets, microdata, json-ld, search engine optimization, local seo, google, sitelinks, schema.org, microformat, serp
5
  Requires at least: 4.5
6
- Tested up to: 5.1
7
- Stable tag: 2.5.7
8
  License: GPLv3
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
@@ -114,6 +114,10 @@ You'll find the [FAQ on WPSEMPlugins.com](https://wpsemplugins.com/wordpress-seo
114
 
115
  == Changelog ==
116
 
 
 
 
 
117
  == 2.5.7 =
118
  * Add Time for post
119
  * Event Start & End Time
3
  Donate link:
4
  Tags: seo, schema, structured data, rich snippets, microdata, json-ld, search engine optimization, local seo, google, sitelinks, schema.org, microformat, serp
5
  Requires at least: 4.5
6
+ Tested up to: 5.2
7
+ Stable tag: 2.5.8
8
  License: GPLv3
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
114
 
115
  == Changelog ==
116
 
117
+ == 2.5.8 =
118
+ * Fix Javascript issue
119
+ * Update Contact Type
120
+
121
  == 2.5.7 =
122
  * Add Time for post
123
  * Event Start & End Time
assets/css/admin.css CHANGED
@@ -136,7 +136,7 @@
136
  }
137
 
138
  .rt-tab-container .field-container input.kcseo-date {
139
- width: auto;
140
  }
141
 
142
  /* tab */
@@ -219,9 +219,11 @@ ul.rt-tab-nav li a:focus {
219
  border: 1px solid #e7e7e7;
220
  padding: 20px;
221
  }
 
222
  .rt-tab-container .rt-tab-content:not(.active) {
223
  display: none;
224
  }
 
225
  div#rt-schema-tab-holder:after {
226
  clear: both;
227
  content: ".";
@@ -287,30 +289,35 @@ p.description.kco-telephone > span {
287
  .field-container .field-label span {
288
  margin-left: 5px;
289
  }
 
290
  p.description .required,
291
  .field-container .field-label span.required {
292
  color: red;
293
  }
 
294
  .field-container .field-label span.recommended {
295
  color: #721c24;
296
  }
 
297
  /* tooltip */
298
 
299
- [data-kcseo-tooltip]{
300
  position: relative;
301
  }
302
- [data-kcseo-tooltip]:hover::after{
 
303
  position: absolute;
304
  left: 50%;
305
  bottom: 100%;
306
  content: attr(data-kcseo-tooltip);
307
- background: rgba(0,0,0,.8);
308
  color: #fff;
309
  padding: .5em 1em;
310
  border-radius: 7px;
311
  transform: translateX(-50%);
312
  transition: all ease-in-out 250ms;
313
  }
 
314
  .schema-holder .ui-tabs .ui-tabs-nav .ui-tabs-anchor {
315
  padding: .5em 0.6em;
316
  font-size: 14px;
136
  }
137
 
138
  .rt-tab-container .field-container input.kcseo-date {
139
+ width: 120px;
140
  }
141
 
142
  /* tab */
219
  border: 1px solid #e7e7e7;
220
  padding: 20px;
221
  }
222
+
223
  .rt-tab-container .rt-tab-content:not(.active) {
224
  display: none;
225
  }
226
+
227
  div#rt-schema-tab-holder:after {
228
  clear: both;
229
  content: ".";
289
  .field-container .field-label span {
290
  margin-left: 5px;
291
  }
292
+
293
  p.description .required,
294
  .field-container .field-label span.required {
295
  color: red;
296
  }
297
+
298
  .field-container .field-label span.recommended {
299
  color: #721c24;
300
  }
301
+
302
  /* tooltip */
303
 
304
+ [data-kcseo-tooltip] {
305
  position: relative;
306
  }
307
+
308
+ [data-kcseo-tooltip]:hover::after {
309
  position: absolute;
310
  left: 50%;
311
  bottom: 100%;
312
  content: attr(data-kcseo-tooltip);
313
+ background: rgba(0, 0, 0, .8);
314
  color: #fff;
315
  padding: .5em 1em;
316
  border-radius: 7px;
317
  transform: translateX(-50%);
318
  transition: all ease-in-out 250ms;
319
  }
320
+
321
  .schema-holder .ui-tabs .ui-tabs-nav .ui-tabs-anchor {
322
  padding: .5em 0.6em;
323
  font-size: 14px;
assets/js/admin.js CHANGED
@@ -1,14 +1,6 @@
1
  (function ($) {
2
  'use strict';
3
 
4
- $(function () {
5
- if ($.fn.datetimepicker && $(".kcseo-date").length) {
6
- $('.kcseo-date').datetimepicker({
7
- format: _kcseo.date_format + ' ' + _kcseo.time_format
8
- });
9
- }
10
- });
11
-
12
  wpSeoShowHideType();
13
  $("#site_type, #_schema_aggregate_rating_schema_type").change(function () {
14
  wpSeoShowHideType();
@@ -116,10 +108,10 @@
116
  });
117
 
118
  function wpSeoShowHideType() {
119
- if($('#_schema_aggregate_rating_schema_type').length){
120
  var id = $("#_schema_aggregate_rating_schema_type option:selected").val();
121
  }
122
- if($('#site_type').length){
123
  var id = $("#site_type option:selected").val();
124
  }
125
 
@@ -134,9 +126,9 @@
134
  $(".form-table tr.business-info,.form-table tr.all-type-data, .aggregate-except-organization-holder").show();
135
  }
136
 
137
- if($.inArray(id, ['FoodEstablishment', 'Bakery','BarOrPub','Brewery','CafeOrCoffeeShop','FastFoodRestaurant','IceCreamShop','Restaurant','Winery']) >= 0){
138
  $(".form-table tr.restaurant").show();
139
- }else {
140
  $(".form-table tr.restaurant").hide();
141
  }
142
  }
@@ -178,7 +170,7 @@
178
  function AjaxCall(element, action, arg, handle) {
179
  var data;
180
  if (action) data = "action=" + action;
181
- if (arg) data = arg + "&action=" + action;
182
  if (arg && !action) data = arg;
183
  data = data;
184
 
1
  (function ($) {
2
  'use strict';
3
 
 
 
 
 
 
 
 
 
4
  wpSeoShowHideType();
5
  $("#site_type, #_schema_aggregate_rating_schema_type").change(function () {
6
  wpSeoShowHideType();
108
  });
109
 
110
  function wpSeoShowHideType() {
111
+ if ($('#_schema_aggregate_rating_schema_type').length) {
112
  var id = $("#_schema_aggregate_rating_schema_type option:selected").val();
113
  }
114
+ if ($('#site_type').length) {
115
  var id = $("#site_type option:selected").val();
116
  }
117
 
126
  $(".form-table tr.business-info,.form-table tr.all-type-data, .aggregate-except-organization-holder").show();
127
  }
128
 
129
+ if ($.inArray(id, ['FoodEstablishment', 'Bakery', 'BarOrPub', 'Brewery', 'CafeOrCoffeeShop', 'FastFoodRestaurant', 'IceCreamShop', 'Restaurant', 'Winery']) >= 0) {
130
  $(".form-table tr.restaurant").show();
131
+ } else {
132
  $(".form-table tr.restaurant").hide();
133
  }
134
  }
170
  function AjaxCall(element, action, arg, handle) {
171
  var data;
172
  if (action) data = "action=" + action;
173
+ if (arg) data = arg + "&action=" + action;
174
  if (arg && !action) data = arg;
175
  data = data;
176
 
assets/vendor/datepicker/jquery.datetimepicker.full.js DELETED
@@ -1,2911 +0,0 @@
1
- /*!
2
- * @copyright Copyright © Kartik Visweswaran, Krajee.com, 2014 - 2016
3
- * @version 1.3.4
4
- *
5
- * Date formatter utility library that allows formatting date/time variables or Date objects using PHP DateTime format.
6
- * @see http://php.net/manual/en/function.date.php
7
- *
8
- * For more JQuery plugins visit http://plugins.krajee.com
9
- * For more Yii related demos visit http://demos.krajee.com
10
- */var DateFormatter;!function(){"use strict";var t,e,r,n,a,u,i;u=864e5,i=3600,t=function(t,e){return"string"==typeof t&&"string"==typeof e&&t.toLowerCase()===e.toLowerCase()},e=function(t,r,n){var a=n||"0",u=t.toString();return u.length<r?e(a+u,r):u},r=function(t){var e,n;for(t=t||{},e=1;e<arguments.length;e++)if(n=arguments[e])for(var a in n)n.hasOwnProperty(a)&&("object"==typeof n[a]?r(t[a],n[a]):t[a]=n[a]);return t},n=function(t,e){for(var r=0;r<e.length;r++)if(e[r].toLowerCase()===t.toLowerCase())return r;return-1},a={dateSettings:{days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],meridiem:["AM","PM"],ordinal:function(t){var e=t%10,r={1:"st",2:"nd",3:"rd"};return 1!==Math.floor(t%100/10)&&r[e]?r[e]:"th"}},separators:/[ \-+\/\.T:@]/g,validParts:/[dDjlNSwzWFmMntLoYyaABgGhHisueTIOPZcrU]/g,intParts:/[djwNzmnyYhHgGis]/g,tzParts:/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,tzClip:/[^-+\dA-Z]/g},DateFormatter=function(t){var e=this,n=r(a,t);e.dateSettings=n.dateSettings,e.separators=n.separators,e.validParts=n.validParts,e.intParts=n.intParts,e.tzParts=n.tzParts,e.tzClip=n.tzClip},DateFormatter.prototype={constructor:DateFormatter,getMonth:function(t){var e,r=this;return e=n(t,r.dateSettings.monthsShort)+1,0===e&&(e=n(t,r.dateSettings.months)+1),e},parseDate:function(e,r){var n,a,u,i,s,o,c,f,l,h,d=this,g=!1,m=!1,p=d.dateSettings,y={date:null,year:null,month:null,day:null,hour:0,min:0,sec:0};if(!e)return null;if(e instanceof Date)return e;if("U"===r)return u=parseInt(e),u?new Date(1e3*u):e;switch(typeof e){case"number":return new Date(e);case"string":break;default:return null}if(n=r.match(d.validParts),!n||0===n.length)throw new Error("Invalid date format definition.");for(a=e.replace(d.separators,"\x00").split("\x00"),u=0;u<a.length;u++)switch(i=a[u],s=parseInt(i),n[u]){case"y":case"Y":if(!s)return null;l=i.length,y.year=2===l?parseInt((70>s?"20":"19")+i):s,g=!0;break;case"m":case"n":case"M":case"F":if(isNaN(s)){if(o=d.getMonth(i),!(o>0))return null;y.month=o}else{if(!(s>=1&&12>=s))return null;y.month=s}g=!0;break;case"d":case"j":if(!(s>=1&&31>=s))return null;y.day=s,g=!0;break;case"g":case"h":if(c=n.indexOf("a")>-1?n.indexOf("a"):n.indexOf("A")>-1?n.indexOf("A"):-1,h=a[c],c>-1)f=t(h,p.meridiem[0])?0:t(h,p.meridiem[1])?12:-1,s>=1&&12>=s&&f>-1?y.hour=s+f-1:s>=0&&23>=s&&(y.hour=s);else{if(!(s>=0&&23>=s))return null;y.hour=s}m=!0;break;case"G":case"H":if(!(s>=0&&23>=s))return null;y.hour=s,m=!0;break;case"i":if(!(s>=0&&59>=s))return null;y.min=s,m=!0;break;case"s":if(!(s>=0&&59>=s))return null;y.sec=s,m=!0}if(g===!0&&y.year&&y.month&&y.day)y.date=new Date(y.year,y.month-1,y.day,y.hour,y.min,y.sec,0);else{if(m!==!0)return null;y.date=new Date(0,0,0,y.hour,y.min,y.sec,0)}return y.date},guessDate:function(t,e){if("string"!=typeof t)return t;var r,n,a,u,i,s,o=this,c=t.replace(o.separators,"\x00").split("\x00"),f=/^[djmn]/g,l=e.match(o.validParts),h=new Date,d=0;if(!f.test(l[0]))return t;for(a=0;a<c.length;a++){if(d=2,i=c[a],s=parseInt(i.substr(0,2)),isNaN(s))return null;switch(a){case 0:"m"===l[0]||"n"===l[0]?h.setMonth(s-1):h.setDate(s);break;case 1:"m"===l[0]||"n"===l[0]?h.setDate(s):h.setMonth(s-1);break;case 2:if(n=h.getFullYear(),r=i.length,d=4>r?r:4,n=parseInt(4>r?n.toString().substr(0,4-r)+i:i.substr(0,4)),!n)return null;h.setFullYear(n);break;case 3:h.setHours(s);break;case 4:h.setMinutes(s);break;case 5:h.setSeconds(s)}u=i.substr(d),u.length>0&&c.splice(a+1,0,u)}return h},parseFormat:function(t,r){var n,a=this,s=a.dateSettings,o=/\\?(.?)/gi,c=function(t,e){return n[t]?n[t]():e};return n={d:function(){return e(n.j(),2)},D:function(){return s.daysShort[n.w()]},j:function(){return r.getDate()},l:function(){return s.days[n.w()]},N:function(){return n.w()||7},w:function(){return r.getDay()},z:function(){var t=new Date(n.Y(),n.n()-1,n.j()),e=new Date(n.Y(),0,1);return Math.round((t-e)/u)},W:function(){var t=new Date(n.Y(),n.n()-1,n.j()-n.N()+3),r=new Date(t.getFullYear(),0,4);return e(1+Math.round((t-r)/u/7),2)},F:function(){return s.months[r.getMonth()]},m:function(){return e(n.n(),2)},M:function(){return s.monthsShort[r.getMonth()]},n:function(){return r.getMonth()+1},t:function(){return new Date(n.Y(),n.n(),0).getDate()},L:function(){var t=n.Y();return t%4===0&&t%100!==0||t%400===0?1:0},o:function(){var t=n.n(),e=n.W(),r=n.Y();return r+(12===t&&9>e?1:1===t&&e>9?-1:0)},Y:function(){return r.getFullYear()},y:function(){return n.Y().toString().slice(-2)},a:function(){return n.A().toLowerCase()},A:function(){var t=n.G()<12?0:1;return s.meridiem[t]},B:function(){var t=r.getUTCHours()*i,n=60*r.getUTCMinutes(),a=r.getUTCSeconds();return e(Math.floor((t+n+a+i)/86.4)%1e3,3)},g:function(){return n.G()%12||12},G:function(){return r.getHours()},h:function(){return e(n.g(),2)},H:function(){return e(n.G(),2)},i:function(){return e(r.getMinutes(),2)},s:function(){return e(r.getSeconds(),2)},u:function(){return e(1e3*r.getMilliseconds(),6)},e:function(){var t=/\((.*)\)/.exec(String(r))[1];return t||"Coordinated Universal Time"},I:function(){var t=new Date(n.Y(),0),e=Date.UTC(n.Y(),0),r=new Date(n.Y(),6),a=Date.UTC(n.Y(),6);return t-e!==r-a?1:0},O:function(){var t=r.getTimezoneOffset(),n=Math.abs(t);return(t>0?"-":"+")+e(100*Math.floor(n/60)+n%60,4)},P:function(){var t=n.O();return t.substr(0,3)+":"+t.substr(3,2)},T:function(){var t=(String(r).match(a.tzParts)||[""]).pop().replace(a.tzClip,"");return t||"UTC"},Z:function(){return 60*-r.getTimezoneOffset()},c:function(){return"Y-m-d\\TH:i:sP".replace(o,c)},r:function(){return"D, d M Y H:i:s O".replace(o,c)},U:function(){return r.getTime()/1e3||0}},c(t,t)},formatDate:function(t,e){var r,n,a,u,i,s=this,o="",c="\\";if("string"==typeof t&&(t=s.parseDate(t,e),!t))return null;if(t instanceof Date){for(a=e.length,r=0;a>r;r++)i=e.charAt(r),"S"!==i&&i!==c&&(r>0&&e.charAt(r-1)===c?o+=i:(u=s.parseFormat(i,t),r!==a-1&&s.intParts.test(i)&&"S"===e.charAt(r+1)&&(n=parseInt(u)||0,u+=s.dateSettings.ordinal(n)),o+=u));return o}return""}}}();/**
11
- * @preserve jQuery DateTimePicker
12
- * @homepage http://xdsoft.net/jqplugins/datetimepicker/
13
- * @author Chupurnov Valeriy (<chupurnov@gmail.com>)
14
- */
15
-
16
- /**
17
- * @param {jQuery} $
18
- */
19
- var datetimepickerFactory = function ($) {
20
- 'use strict';
21
-
22
- var default_options = {
23
- i18n: {
24
- ar: { // Arabic
25
- months: [
26
- "كانون الثاني", "شباط", "آذار", "نيسان", "مايو", "حزيران", "تموز", "آب", "أيلول", "تشرين الأول", "تشرين الثاني", "كانون الأول"
27
- ],
28
- dayOfWeekShort: [
29
- "ن", "ث", "ع", "خ", "ج", "س", "ح"
30
- ],
31
- dayOfWeek: ["الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت", "الأحد"]
32
- },
33
- ro: { // Romanian
34
- months: [
35
- "Ianuarie", "Februarie", "Martie", "Aprilie", "Mai", "Iunie", "Iulie", "August", "Septembrie", "Octombrie", "Noiembrie", "Decembrie"
36
- ],
37
- dayOfWeekShort: [
38
- "Du", "Lu", "Ma", "Mi", "Jo", "Vi", "Sâ"
39
- ],
40
- dayOfWeek: ["Duminică", "Luni", "Marţi", "Miercuri", "Joi", "Vineri", "Sâmbătă"]
41
- },
42
- id: { // Indonesian
43
- months: [
44
- "Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli", "Agustus", "September", "Oktober", "November", "Desember"
45
- ],
46
- dayOfWeekShort: [
47
- "Min", "Sen", "Sel", "Rab", "Kam", "Jum", "Sab"
48
- ],
49
- dayOfWeek: ["Minggu", "Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu"]
50
- },
51
- is: { // Icelandic
52
- months: [
53
- "Janúar", "Febrúar", "Mars", "Apríl", "Maí", "Júní", "Júlí", "Ágúst", "September", "Október", "Nóvember", "Desember"
54
- ],
55
- dayOfWeekShort: [
56
- "Sun", "Mán", "Þrið", "Mið", "Fim", "Fös", "Lau"
57
- ],
58
- dayOfWeek: ["Sunnudagur", "Mánudagur", "Þriðjudagur", "Miðvikudagur", "Fimmtudagur", "Föstudagur", "Laugardagur"]
59
- },
60
- bg: { // Bulgarian
61
- months: [
62
- "Януари", "Февруари", "Март", "Април", "Май", "Юни", "Юли", "Август", "Септември", "Октомври", "Ноември", "Декември"
63
- ],
64
- dayOfWeekShort: [
65
- "Нд", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб"
66
- ],
67
- dayOfWeek: ["Неделя", "Понеделник", "Вторник", "Сряда", "Четвъртък", "Петък", "Събота"]
68
- },
69
- fa: { // Persian/Farsi
70
- months: [
71
- 'فروردین', 'اردیبهشت', 'خرداد', 'تیر', 'مرداد', 'شهریور', 'مهر', 'آبان', 'آذر', 'دی', 'بهمن', 'اسفند'
72
- ],
73
- dayOfWeekShort: [
74
- 'یکشنبه', 'دوشنبه', 'سه شنبه', 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه'
75
- ],
76
- dayOfWeek: ["یک‌شنبه", "دوشنبه", "سه‌شنبه", "چهارشنبه", "پنج‌شنبه", "جمعه", "شنبه", "یک‌شنبه"]
77
- },
78
- ru: { // Russian
79
- months: [
80
- 'Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'
81
- ],
82
- dayOfWeekShort: [
83
- "Вс", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб"
84
- ],
85
- dayOfWeek: ["Воскресенье", "Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота"]
86
- },
87
- uk: { // Ukrainian
88
- months: [
89
- 'Січень', 'Лютий', 'Березень', 'Квітень', 'Травень', 'Червень', 'Липень', 'Серпень', 'Вересень', 'Жовтень', 'Листопад', 'Грудень'
90
- ],
91
- dayOfWeekShort: [
92
- "Ндл", "Пнд", "Втр", "Срд", "Чтв", "Птн", "Сбт"
93
- ],
94
- dayOfWeek: ["Неділя", "Понеділок", "Вівторок", "Середа", "Четвер", "П'ятниця", "Субота"]
95
- },
96
- en: { // English
97
- months: [
98
- "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
99
- ],
100
- dayOfWeekShort: [
101
- "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"
102
- ],
103
- dayOfWeek: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
104
- },
105
- el: { // Ελληνικά
106
- months: [
107
- "Ιανουάριος", "Φεβρουάριος", "Μάρτιος", "Απρίλιος", "Μάιος", "Ιούνιος", "Ιούλιος", "Αύγουστος", "Σεπτέμβριος", "Οκτώβριος", "Νοέμβριος", "Δεκέμβριος"
108
- ],
109
- dayOfWeekShort: [
110
- "Κυρ", "Δευ", "Τρι", "Τετ", "Πεμ", "Παρ", "Σαβ"
111
- ],
112
- dayOfWeek: ["Κυριακή", "Δευτέρα", "Τρίτη", "Τετάρτη", "Πέμπτη", "Παρασκευή", "Σάββατο"]
113
- },
114
- de: { // German
115
- months: [
116
- 'Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'
117
- ],
118
- dayOfWeekShort: [
119
- "So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"
120
- ],
121
- dayOfWeek: ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"]
122
- },
123
- nl: { // Dutch
124
- months: [
125
- "januari", "februari", "maart", "april", "mei", "juni", "juli", "augustus", "september", "oktober", "november", "december"
126
- ],
127
- dayOfWeekShort: [
128
- "zo", "ma", "di", "wo", "do", "vr", "za"
129
- ],
130
- dayOfWeek: ["zondag", "maandag", "dinsdag", "woensdag", "donderdag", "vrijdag", "zaterdag"]
131
- },
132
- tr: { // Turkish
133
- months: [
134
- "Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık"
135
- ],
136
- dayOfWeekShort: [
137
- "Paz", "Pts", "Sal", "Çar", "Per", "Cum", "Cts"
138
- ],
139
- dayOfWeek: ["Pazar", "Pazartesi", "Salı", "Çarşamba", "Perşembe", "Cuma", "Cumartesi"]
140
- },
141
- fr: { //French
142
- months: [
143
- "Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"
144
- ],
145
- dayOfWeekShort: [
146
- "Dim", "Lun", "Mar", "Mer", "Jeu", "Ven", "Sam"
147
- ],
148
- dayOfWeek: ["dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"]
149
- },
150
- es: { // Spanish
151
- months: [
152
- "Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"
153
- ],
154
- dayOfWeekShort: [
155
- "Dom", "Lun", "Mar", "Mié", "Jue", "Vie", "Sáb"
156
- ],
157
- dayOfWeek: ["Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado"]
158
- },
159
- th: { // Thai
160
- months: [
161
- 'มกราคม', 'กุมภาพันธ์', 'มีนาคม', 'เมษายน', 'พฤษภาคม', 'มิถุนายน', 'กรกฎาคม', 'สิงหาคม', 'กันยายน', 'ตุลาคม', 'พฤศจิกายน', 'ธันวาคม'
162
- ],
163
- dayOfWeekShort: [
164
- 'อา.', 'จ.', 'อ.', 'พ.', 'พฤ.', 'ศ.', 'ส.'
165
- ],
166
- dayOfWeek: ["อาทิตย์", "จันทร์", "อังคาร", "พุธ", "พฤหัส", "ศุกร์", "เสาร์", "อาทิตย์"]
167
- },
168
- pl: { // Polish
169
- months: [
170
- "styczeń", "luty", "marzec", "kwiecień", "maj", "czerwiec", "lipiec", "sierpień", "wrzesień", "październik", "listopad", "grudzień"
171
- ],
172
- dayOfWeekShort: [
173
- "nd", "pn", "wt", "śr", "cz", "pt", "sb"
174
- ],
175
- dayOfWeek: ["niedziela", "poniedziałek", "wtorek", "środa", "czwartek", "piątek", "sobota"]
176
- },
177
- pt: { // Portuguese
178
- months: [
179
- "Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"
180
- ],
181
- dayOfWeekShort: [
182
- "Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sab"
183
- ],
184
- dayOfWeek: ["Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado"]
185
- },
186
- ch: { // Simplified Chinese
187
- months: [
188
- "一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"
189
- ],
190
- dayOfWeekShort: [
191
- "日", "一", "二", "三", "四", "五", "六"
192
- ]
193
- },
194
- se: { // Swedish
195
- months: [
196
- "Januari", "Februari", "Mars", "April", "Maj", "Juni", "Juli", "Augusti", "September", "Oktober", "November", "December"
197
- ],
198
- dayOfWeekShort: [
199
- "Sön", "Mån", "Tis", "Ons", "Tor", "Fre", "Lör"
200
- ]
201
- },
202
- km: { // Khmer (ភាសាខ្មែរ)
203
- months: [
204
- "មករា​", "កុម្ភៈ", "មិនា​", "មេសា​", "ឧសភា​", "មិថុនា​", "កក្កដា​", "សីហា​", "កញ្ញា​", "តុលា​", "វិច្ឆិកា", "ធ្នូ​"
205
- ],
206
- dayOfWeekShort: ["អាទិ​", "ច័ន្ទ​", "អង្គារ​", "ពុធ​", "ព្រហ​​", "សុក្រ​", "សៅរ៍"],
207
- dayOfWeek: ["អាទិត្យ​", "ច័ន្ទ​", "អង្គារ​", "ពុធ​", "ព្រហស្បតិ៍​", "សុក្រ​", "សៅរ៍"]
208
- },
209
- kr: { // Korean
210
- months: [
211
- "1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"
212
- ],
213
- dayOfWeekShort: [
214
- "일", "월", "화", "수", "목", "금", "토"
215
- ],
216
- dayOfWeek: ["일요일", "월요일", "화요일", "수요일", "목요일", "금요일", "토요일"]
217
- },
218
- it: { // Italian
219
- months: [
220
- "Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"
221
- ],
222
- dayOfWeekShort: [
223
- "Dom", "Lun", "Mar", "Mer", "Gio", "Ven", "Sab"
224
- ],
225
- dayOfWeek: ["Domenica", "Lunedì", "Martedì", "Mercoledì", "Giovedì", "Venerdì", "Sabato"]
226
- },
227
- da: { // Dansk
228
- months: [
229
- "Januar", "Februar", "Marts", "April", "Maj", "Juni", "Juli", "August", "September", "Oktober", "November", "December"
230
- ],
231
- dayOfWeekShort: [
232
- "Søn", "Man", "Tir", "Ons", "Tor", "Fre", "Lør"
233
- ],
234
- dayOfWeek: ["søndag", "mandag", "tirsdag", "onsdag", "torsdag", "fredag", "lørdag"]
235
- },
236
- no: { // Norwegian
237
- months: [
238
- "Januar", "Februar", "Mars", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Desember"
239
- ],
240
- dayOfWeekShort: [
241
- "Søn", "Man", "Tir", "Ons", "Tor", "Fre", "Lør"
242
- ],
243
- dayOfWeek: ['Søndag', 'Mandag', 'Tirsdag', 'Onsdag', 'Torsdag', 'Fredag', 'Lørdag']
244
- },
245
- ja: { // Japanese
246
- months: [
247
- "1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"
248
- ],
249
- dayOfWeekShort: [
250
- "日", "月", "火", "水", "木", "金", "土"
251
- ],
252
- dayOfWeek: ["日曜", "月曜", "火曜", "水曜", "木曜", "金曜", "土曜"]
253
- },
254
- vi: { // Vietnamese
255
- months: [
256
- "Tháng 1", "Tháng 2", "Tháng 3", "Tháng 4", "Tháng 5", "Tháng 6", "Tháng 7", "Tháng 8", "Tháng 9", "Tháng 10", "Tháng 11", "Tháng 12"
257
- ],
258
- dayOfWeekShort: [
259
- "CN", "T2", "T3", "T4", "T5", "T6", "T7"
260
- ],
261
- dayOfWeek: ["Chủ nhật", "Thứ hai", "Thứ ba", "Thứ tư", "Thứ năm", "Thứ sáu", "Thứ bảy"]
262
- },
263
- sl: { // Slovenščina
264
- months: [
265
- "Januar", "Februar", "Marec", "April", "Maj", "Junij", "Julij", "Avgust", "September", "Oktober", "November", "December"
266
- ],
267
- dayOfWeekShort: [
268
- "Ned", "Pon", "Tor", "Sre", "Čet", "Pet", "Sob"
269
- ],
270
- dayOfWeek: ["Nedelja", "Ponedeljek", "Torek", "Sreda", "Četrtek", "Petek", "Sobota"]
271
- },
272
- cs: { // Čeština
273
- months: [
274
- "Leden", "Únor", "Březen", "Duben", "Květen", "Červen", "Červenec", "Srpen", "Září", "Říjen", "Listopad", "Prosinec"
275
- ],
276
- dayOfWeekShort: [
277
- "Ne", "Po", "Út", "St", "Čt", "Pá", "So"
278
- ]
279
- },
280
- hu: { // Hungarian
281
- months: [
282
- "Január", "Február", "Március", "Április", "Május", "Június", "Július", "Augusztus", "Szeptember", "Október", "November", "December"
283
- ],
284
- dayOfWeekShort: [
285
- "Va", "Hé", "Ke", "Sze", "Cs", "Pé", "Szo"
286
- ],
287
- dayOfWeek: ["vasárnap", "hétfő", "kedd", "szerda", "csütörtök", "péntek", "szombat"]
288
- },
289
- az: { //Azerbaijanian (Azeri)
290
- months: [
291
- "Yanvar", "Fevral", "Mart", "Aprel", "May", "Iyun", "Iyul", "Avqust", "Sentyabr", "Oktyabr", "Noyabr", "Dekabr"
292
- ],
293
- dayOfWeekShort: [
294
- "B", "Be", "Ça", "Ç", "Ca", "C", "Ş"
295
- ],
296
- dayOfWeek: ["Bazar", "Bazar ertəsi", "Çərşənbə axşamı", "Çərşənbə", "Cümə axşamı", "Cümə", "Şənbə"]
297
- },
298
- bs: { //Bosanski
299
- months: [
300
- "Januar", "Februar", "Mart", "April", "Maj", "Jun", "Jul", "Avgust", "Septembar", "Oktobar", "Novembar", "Decembar"
301
- ],
302
- dayOfWeekShort: [
303
- "Ned", "Pon", "Uto", "Sri", "Čet", "Pet", "Sub"
304
- ],
305
- dayOfWeek: ["Nedjelja","Ponedjeljak", "Utorak", "Srijeda", "Četvrtak", "Petak", "Subota"]
306
- },
307
- ca: { //Català
308
- months: [
309
- "Gener", "Febrer", "Març", "Abril", "Maig", "Juny", "Juliol", "Agost", "Setembre", "Octubre", "Novembre", "Desembre"
310
- ],
311
- dayOfWeekShort: [
312
- "Dg", "Dl", "Dt", "Dc", "Dj", "Dv", "Ds"
313
- ],
314
- dayOfWeek: ["Diumenge", "Dilluns", "Dimarts", "Dimecres", "Dijous", "Divendres", "Dissabte"]
315
- },
316
- 'en-GB': { //English (British)
317
- months: [
318
- "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
319
- ],
320
- dayOfWeekShort: [
321
- "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"
322
- ],
323
- dayOfWeek: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
324
- },
325
- et: { //"Eesti"
326
- months: [
327
- "Jaanuar", "Veebruar", "Märts", "Aprill", "Mai", "Juuni", "Juuli", "August", "September", "Oktoober", "November", "Detsember"
328
- ],
329
- dayOfWeekShort: [
330
- "P", "E", "T", "K", "N", "R", "L"
331
- ],
332
- dayOfWeek: ["Pühapäev", "Esmaspäev", "Teisipäev", "Kolmapäev", "Neljapäev", "Reede", "Laupäev"]
333
- },
334
- eu: { //Euskara
335
- months: [
336
- "Urtarrila", "Otsaila", "Martxoa", "Apirila", "Maiatza", "Ekaina", "Uztaila", "Abuztua", "Iraila", "Urria", "Azaroa", "Abendua"
337
- ],
338
- dayOfWeekShort: [
339
- "Ig.", "Al.", "Ar.", "Az.", "Og.", "Or.", "La."
340
- ],
341
- dayOfWeek: ['Igandea', 'Astelehena', 'Asteartea', 'Asteazkena', 'Osteguna', 'Ostirala', 'Larunbata']
342
- },
343
- fi: { //Finnish (Suomi)
344
- months: [
345
- "Tammikuu", "Helmikuu", "Maaliskuu", "Huhtikuu", "Toukokuu", "Kesäkuu", "Heinäkuu", "Elokuu", "Syyskuu", "Lokakuu", "Marraskuu", "Joulukuu"
346
- ],
347
- dayOfWeekShort: [
348
- "Su", "Ma", "Ti", "Ke", "To", "Pe", "La"
349
- ],
350
- dayOfWeek: ["sunnuntai", "maanantai", "tiistai", "keskiviikko", "torstai", "perjantai", "lauantai"]
351
- },
352
- gl: { //Galego
353
- months: [
354
- "Xan", "Feb", "Maz", "Abr", "Mai", "Xun", "Xul", "Ago", "Set", "Out", "Nov", "Dec"
355
- ],
356
- dayOfWeekShort: [
357
- "Dom", "Lun", "Mar", "Mer", "Xov", "Ven", "Sab"
358
- ],
359
- dayOfWeek: ["Domingo", "Luns", "Martes", "Mércores", "Xoves", "Venres", "Sábado"]
360
- },
361
- hr: { //Hrvatski
362
- months: [
363
- "Siječanj", "Veljača", "Ožujak", "Travanj", "Svibanj", "Lipanj", "Srpanj", "Kolovoz", "Rujan", "Listopad", "Studeni", "Prosinac"
364
- ],
365
- dayOfWeekShort: [
366
- "Ned", "Pon", "Uto", "Sri", "Čet", "Pet", "Sub"
367
- ],
368
- dayOfWeek: ["Nedjelja", "Ponedjeljak", "Utorak", "Srijeda", "Četvrtak", "Petak", "Subota"]
369
- },
370
- ko: { //Korean (한국어)
371
- months: [
372
- "1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"
373
- ],
374
- dayOfWeekShort: [
375
- "일", "월", "화", "수", "목", "금", "토"
376
- ],
377
- dayOfWeek: ["일요일", "월요일", "화요일", "수요일", "목요일", "금요일", "토요일"]
378
- },
379
- lt: { //Lithuanian (lietuvių)
380
- months: [
381
- "Sausio", "Vasario", "Kovo", "Balandžio", "Gegužės", "Birželio", "Liepos", "Rugpjūčio", "Rugsėjo", "Spalio", "Lapkričio", "Gruodžio"
382
- ],
383
- dayOfWeekShort: [
384
- "Sek", "Pir", "Ant", "Tre", "Ket", "Pen", "Šeš"
385
- ],
386
- dayOfWeek: ["Sekmadienis", "Pirmadienis", "Antradienis", "Trečiadienis", "Ketvirtadienis", "Penktadienis", "Šeštadienis"]
387
- },
388
- lv: { //Latvian (Latviešu)
389
- months: [
390
- "Janvāris", "Februāris", "Marts", "Aprīlis ", "Maijs", "Jūnijs", "Jūlijs", "Augusts", "Septembris", "Oktobris", "Novembris", "Decembris"
391
- ],
392
- dayOfWeekShort: [
393
- "Sv", "Pr", "Ot", "Tr", "Ct", "Pk", "St"
394
- ],
395
- dayOfWeek: ["Svētdiena", "Pirmdiena", "Otrdiena", "Trešdiena", "Ceturtdiena", "Piektdiena", "Sestdiena"]
396
- },
397
- mk: { //Macedonian (Македонски)
398
- months: [
399
- "јануари", "февруари", "март", "април", "мај", "јуни", "јули", "август", "септември", "октомври", "ноември", "декември"
400
- ],
401
- dayOfWeekShort: [
402
- "нед", "пон", "вто", "сре", "чет", "пет", "саб"
403
- ],
404
- dayOfWeek: ["Недела", "Понеделник", "Вторник", "Среда", "Четврток", "Петок", "Сабота"]
405
- },
406
- mn: { //Mongolian (Монгол)
407
- months: [
408
- "1-р сар", "2-р сар", "3-р сар", "4-р сар", "5-р сар", "6-р сар", "7-р сар", "8-р сар", "9-р сар", "10-р сар", "11-р сар", "12-р сар"
409
- ],
410
- dayOfWeekShort: [
411
- "Дав", "Мяг", "Лха", "Пүр", "Бсн", "Бям", "Ням"
412
- ],
413
- dayOfWeek: ["Даваа", "Мягмар", "Лхагва", "Пүрэв", "Баасан", "Бямба", "Ням"]
414
- },
415
- 'pt-BR': { //Português(Brasil)
416
- months: [
417
- "Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"
418
- ],
419
- dayOfWeekShort: [
420
- "Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sáb"
421
- ],
422
- dayOfWeek: ["Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado"]
423
- },
424
- sk: { //Slovenčina
425
- months: [
426
- "Január", "Február", "Marec", "Apríl", "Máj", "Jún", "Júl", "August", "September", "Október", "November", "December"
427
- ],
428
- dayOfWeekShort: [
429
- "Ne", "Po", "Ut", "St", "Št", "Pi", "So"
430
- ],
431
- dayOfWeek: ["Nedeľa", "Pondelok", "Utorok", "Streda", "Štvrtok", "Piatok", "Sobota"]
432
- },
433
- sq: { //Albanian (Shqip)
434
- months: [
435
- "Janar", "Shkurt", "Mars", "Prill", "Maj", "Qershor", "Korrik", "Gusht", "Shtator", "Tetor", "Nëntor", "Dhjetor"
436
- ],
437
- dayOfWeekShort: [
438
- "Die", "Hën", "Mar", "Mër", "Enj", "Pre", "Shtu"
439
- ],
440
- dayOfWeek: ["E Diel", "E Hënë", "E Martē", "E Mërkurë", "E Enjte", "E Premte", "E Shtunë"]
441
- },
442
- 'sr-YU': { //Serbian (Srpski)
443
- months: [
444
- "Januar", "Februar", "Mart", "April", "Maj", "Jun", "Jul", "Avgust", "Septembar", "Oktobar", "Novembar", "Decembar"
445
- ],
446
- dayOfWeekShort: [
447
- "Ned", "Pon", "Uto", "Sre", "čet", "Pet", "Sub"
448
- ],
449
- dayOfWeek: ["Nedelja","Ponedeljak", "Utorak", "Sreda", "Četvrtak", "Petak", "Subota"]
450
- },
451
- sr: { //Serbian Cyrillic (Српски)
452
- months: [
453
- "јануар", "фебруар", "март", "април", "мај", "јун", "јул", "август", "септембар", "октобар", "новембар", "децембар"
454
- ],
455
- dayOfWeekShort: [
456
- "нед", "пон", "уто", "сре", "чет", "пет", "суб"
457
- ],
458
- dayOfWeek: ["Недеља","Понедељак", "Уторак", "Среда", "Четвртак", "Петак", "Субота"]
459
- },
460
- sv: { //Svenska
461
- months: [
462
- "Januari", "Februari", "Mars", "April", "Maj", "Juni", "Juli", "Augusti", "September", "Oktober", "November", "December"
463
- ],
464
- dayOfWeekShort: [
465
- "Sön", "Mån", "Tis", "Ons", "Tor", "Fre", "Lör"
466
- ],
467
- dayOfWeek: ["Söndag", "Måndag", "Tisdag", "Onsdag", "Torsdag", "Fredag", "Lördag"]
468
- },
469
- 'zh-TW': { //Traditional Chinese (繁體中文)
470
- months: [
471
- "一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"
472
- ],
473
- dayOfWeekShort: [
474
- "日", "一", "二", "三", "四", "五", "六"
475
- ],
476
- dayOfWeek: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"]
477
- },
478
- zh: { //Simplified Chinese (简体中文)
479
- months: [
480
- "一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"
481
- ],
482
- dayOfWeekShort: [
483
- "日", "一", "二", "三", "四", "五", "六"
484
- ],
485
- dayOfWeek: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"]
486
- },
487
- ug:{ // Uyghur(ئۇيغۇرچە)
488
- months: [
489
- "1-ئاي","2-ئاي","3-ئاي","4-ئاي","5-ئاي","6-ئاي","7-ئاي","8-ئاي","9-ئاي","10-ئاي","11-ئاي","12-ئاي"
490
- ],
491
- dayOfWeek: [
492
- "يەكشەنبە", "دۈشەنبە","سەيشەنبە","چارشەنبە","پەيشەنبە","جۈمە","شەنبە"
493
- ]
494
- },
495
- he: { //Hebrew (עברית)
496
- months: [
497
- 'ינואר', 'פברואר', 'מרץ', 'אפריל', 'מאי', 'יוני', 'יולי', 'אוגוסט', 'ספטמבר', 'אוקטובר', 'נובמבר', 'דצמבר'
498
- ],
499
- dayOfWeekShort: [
500
- 'א\'', 'ב\'', 'ג\'', 'ד\'', 'ה\'', 'ו\'', 'שבת'
501
- ],
502
- dayOfWeek: ["ראשון", "שני", "שלישי", "רביעי", "חמישי", "שישי", "שבת", "ראשון"]
503
- },
504
- hy: { // Armenian
505
- months: [
506
- "Հունվար", "Փետրվար", "Մարտ", "Ապրիլ", "Մայիս", "Հունիս", "Հուլիս", "Օգոստոս", "Սեպտեմբեր", "Հոկտեմբեր", "Նոյեմբեր", "Դեկտեմբեր"
507
- ],
508
- dayOfWeekShort: [
509
- "Կի", "Երկ", "Երք", "Չոր", "Հնգ", "Ուրբ", "Շբթ"
510
- ],
511
- dayOfWeek: ["Կիրակի", "Երկուշաբթի", "Երեքշաբթի", "Չորեքշաբթի", "Հինգշաբթի", "Ուրբաթ", "Շաբաթ"]
512
- },
513
- kg: { // Kyrgyz
514
- months: [
515
- 'Үчтүн айы', 'Бирдин айы', 'Жалган Куран', 'Чын Куран', 'Бугу', 'Кулжа', 'Теке', 'Баш Оона', 'Аяк Оона', 'Тогуздун айы', 'Жетинин айы', 'Бештин айы'
516
- ],
517
- dayOfWeekShort: [
518
- "Жек", "Дүй", "Шей", "Шар", "Бей", "Жум", "Ише"
519
- ],
520
- dayOfWeek: [
521
- "Жекшемб", "Дүйшөмб", "Шейшемб", "Шаршемб", "Бейшемби", "Жума", "Ишенб"
522
- ]
523
- },
524
- rm: { // Romansh
525
- months: [
526
- "Schaner", "Favrer", "Mars", "Avrigl", "Matg", "Zercladur", "Fanadur", "Avust", "Settember", "October", "November", "December"
527
- ],
528
- dayOfWeekShort: [
529
- "Du", "Gli", "Ma", "Me", "Gie", "Ve", "So"
530
- ],
531
- dayOfWeek: [
532
- "Dumengia", "Glindesdi", "Mardi", "Mesemna", "Gievgia", "Venderdi", "Sonda"
533
- ]
534
- },
535
- ka: { // Georgian
536
- months: [
537
- 'იანვარი', 'თებერვალი', 'მარტი', 'აპრილი', 'მაისი', 'ივნისი', 'ივლისი', 'აგვისტო', 'სექტემბერი', 'ოქტომბერი', 'ნოემბერი', 'დეკემბერი'
538
- ],
539
- dayOfWeekShort: [
540
- "კვ", "ორშ", "სამშ", "ოთხ", "ხუთ", "პარ", "შაბ"
541
- ],
542
- dayOfWeek: ["კვირა", "ორშაბათი", "სამშაბათი", "ოთხშაბათი", "ხუთშაბათი", "პარასკევი", "შაბათი"]
543
- }
544
- },
545
-
546
- ownerDocument: document,
547
- contentWindow: window,
548
-
549
- value: '',
550
- rtl: false,
551
-
552
- format: 'Y/m/d H:i',
553
- formatTime: 'H:i',
554
- formatDate: 'Y/m/d',
555
-
556
- startDate: false, // new Date(), '1986/12/08', '-1970/01/05','-1970/01/05',
557
- step: 60,
558
- monthChangeSpinner: true,
559
-
560
- closeOnDateSelect: false,
561
- closeOnTimeSelect: true,
562
- closeOnWithoutClick: true,
563
- closeOnInputClick: true,
564
- openOnFocus: true,
565
-
566
- timepicker: true,
567
- datepicker: true,
568
- weeks: false,
569
-
570
- defaultTime: false, // use formatTime format (ex. '10:00' for formatTime: 'H:i')
571
- defaultDate: false, // use formatDate format (ex new Date() or '1986/12/08' or '-1970/01/05' or '-1970/01/05')
572
-
573
- minDate: false,
574
- maxDate: false,
575
- minTime: false,
576
- maxTime: false,
577
- minDateTime: false,
578
- maxDateTime: false,
579
-
580
- allowTimes: [],
581
- opened: false,
582
- initTime: true,
583
- inline: false,
584
- theme: '',
585
- touchMovedThreshold: 5,
586
-
587
- onSelectDate: function () {},
588
- onSelectTime: function () {},
589
- onChangeMonth: function () {},
590
- onGetWeekOfYear: function () {},
591
- onChangeYear: function () {},
592
- onChangeDateTime: function () {},
593
- onShow: function () {},
594
- onClose: function () {},
595
- onGenerate: function () {},
596
-
597
- withoutCopyright: true,
598
- inverseButton: false,
599
- hours12: false,
600
- next: 'xdsoft_next',
601
- prev : 'xdsoft_prev',
602
- dayOfWeekStart: 0,
603
- parentID: 'body',
604
- timeHeightInTimePicker: 25,
605
- timepickerScrollbar: true,
606
- todayButton: true,
607
- prevButton: true,
608
- nextButton: true,
609
- defaultSelect: true,
610
-
611
- scrollMonth: true,
612
- scrollTime: true,
613
- scrollInput: true,
614
-
615
- lazyInit: false,
616
- mask: false,
617
- validateOnBlur: true,
618
- allowBlank: true,
619
- yearStart: 1950,
620
- yearEnd: 2050,
621
- monthStart: 0,
622
- monthEnd: 11,
623
- style: '',
624
- id: '',
625
- fixed: false,
626
- roundTime: 'round', // ceil, floor
627
- className: '',
628
- weekends: [],
629
- highlightedDates: [],
630
- highlightedPeriods: [],
631
- allowDates : [],
632
- allowDateRe : null,
633
- disabledDates : [],
634
- disabledWeekDays: [],
635
- yearOffset: 0,
636
- beforeShowDay: null,
637
-
638
- enterLikeTab: true,
639
- showApplyButton: false,
640
- insideParent: false,
641
- };
642
-
643
- var dateHelper = null,
644
- defaultDateHelper = null,
645
- globalLocaleDefault = 'en',
646
- globalLocale = 'en';
647
-
648
- var dateFormatterOptionsDefault = {
649
- meridiem: ['AM', 'PM']
650
- };
651
-
652
- var initDateFormatter = function(){
653
- var locale = default_options.i18n[globalLocale],
654
- opts = {
655
- days: locale.dayOfWeek,
656
- daysShort: locale.dayOfWeekShort,
657
- months: locale.months,
658
- monthsShort: $.map(locale.months, function(n){ return n.substring(0, 3) })
659
- };
660
-
661
- if (typeof DateFormatter === 'function') {
662
- dateHelper = defaultDateHelper = new DateFormatter({
663
- dateSettings: $.extend({}, dateFormatterOptionsDefault, opts)
664
- });
665
- }
666
- };
667
-
668
- var dateFormatters = {
669
- moment: {
670
- default_options:{
671
- format: 'YYYY/MM/DD HH:mm',
672
- formatDate: 'YYYY/MM/DD',
673
- formatTime: 'HH:mm',
674
- },
675
- formatter: {
676
- parseDate: function (date, format) {
677
- if(isFormatStandard(format)){
678
- return defaultDateHelper.parseDate(date, format);
679
- }
680
- var d = moment(date, format);
681
- return d.isValid() ? d.toDate() : false;
682
- },
683
-
684
- formatDate: function (date, format) {
685
- if(isFormatStandard(format)){
686
- return defaultDateHelper.formatDate(date, format);
687
- }
688
- return moment(date).format(format);
689
- },
690
-
691
- formatMask: function(format){
692
- return format
693
- .replace(/Y{4}/g, '9999')
694
- .replace(/Y{2}/g, '99')
695
- .replace(/M{2}/g, '19')
696
- .replace(/D{2}/g, '39')
697
- .replace(/H{2}/g, '29')
698
- .replace(/m{2}/g, '59')
699
- .replace(/s{2}/g, '59');
700
- },
701
- }
702
- }
703
- }
704
-
705
- // for locale settings
706
- $.datetimepicker = {
707
- setLocale: function(locale){
708
- var newLocale = default_options.i18n[locale] ? locale : globalLocaleDefault;
709
- if (globalLocale !== newLocale) {
710
- globalLocale = newLocale;
711
- // reinit date formatter
712
- initDateFormatter();
713
- }
714
- },
715
-
716
- setDateFormatter: function(dateFormatter) {
717
- if(typeof dateFormatter === 'string' && dateFormatters.hasOwnProperty(dateFormatter)){
718
- var df = dateFormatters[dateFormatter];
719
- $.extend(default_options, df.default_options);
720
- dateHelper = df.formatter;
721
- }
722
- else {
723
- dateHelper = dateFormatter;
724
- }
725
- },
726
- };
727
-
728
- var standardFormats = {
729
- RFC_2822: 'D, d M Y H:i:s O',
730
- ATOM: 'Y-m-d\TH:i:sP',
731
- ISO_8601: 'Y-m-d\TH:i:sO',
732
- RFC_822: 'D, d M y H:i:s O',
733
- RFC_850: 'l, d-M-y H:i:s T',
734
- RFC_1036: 'D, d M y H:i:s O',
735
- RFC_1123: 'D, d M Y H:i:s O',
736
- RSS: 'D, d M Y H:i:s O',
737
- W3C: 'Y-m-d\TH:i:sP'
738
- }
739
-
740
- var isFormatStandard = function(format){
741
- return Object.values(standardFormats).indexOf(format) === -1 ? false : true;
742
- }
743
-
744
- $.extend($.datetimepicker, standardFormats);
745
-
746
- // first init date formatter
747
- initDateFormatter();
748
-
749
- // fix for ie8
750
- if (!window.getComputedStyle) {
751
- window.getComputedStyle = function (el) {
752
- this.el = el;
753
- this.getPropertyValue = function (prop) {
754
- var re = /(-([a-z]))/g;
755
- if (prop === 'float') {
756
- prop = 'styleFloat';
757
- }
758
- if (re.test(prop)) {
759
- prop = prop.replace(re, function (a, b, c) {
760
- return c.toUpperCase();
761
- });
762
- }
763
- return el.currentStyle[prop] || null;
764
- };
765
- return this;
766
- };
767
- }
768
- if (!Array.prototype.indexOf) {
769
- Array.prototype.indexOf = function (obj, start) {
770
- var i, j;
771
- for (i = (start || 0), j = this.length; i < j; i += 1) {
772
- if (this[i] === obj) { return i; }
773
- }
774
- return -1;
775
- };
776
- }
777
-
778
- Date.prototype.countDaysInMonth = function () {
779
- return new Date(this.getFullYear(), this.getMonth() + 1, 0).getDate();
780
- };
781
-
782
- $.fn.xdsoftScroller = function (options, percent) {
783
- return this.each(function () {
784
- var timeboxparent = $(this),
785
- pointerEventToXY = function (e) {
786
- var out = {x: 0, y: 0},
787
- touch;
788
- if (e.type === 'touchstart' || e.type === 'touchmove' || e.type === 'touchend' || e.type === 'touchcancel') {
789
- touch = e.originalEvent.touches[0] || e.originalEvent.changedTouches[0];
790
- out.x = touch.clientX;
791
- out.y = touch.clientY;
792
- } else if (e.type === 'mousedown' || e.type === 'mouseup' || e.type === 'mousemove' || e.type === 'mouseover' || e.type === 'mouseout' || e.type === 'mouseenter' || e.type === 'mouseleave') {
793
- out.x = e.clientX;
794
- out.y = e.clientY;
795
- }
796
- return out;
797
- },
798
- timebox,
799
- parentHeight,
800
- height,
801
- scrollbar,
802
- scroller,
803
- maximumOffset = 100,
804
- start = false,
805
- startY = 0,
806
- startTop = 0,
807
- h1 = 0,
808
- touchStart = false,
809
- startTopScroll = 0,
810
- calcOffset = function () {};
811
-
812
- if (percent === 'hide') {
813
- timeboxparent.find('.xdsoft_scrollbar').hide();
814
- return;
815
- }
816
-
817
- if (!$(this).hasClass('xdsoft_scroller_box')) {
818
- timebox = timeboxparent.children().eq(0);
819
- parentHeight = timeboxparent[0].clientHeight;
820
- height = timebox[0].offsetHeight;
821
- scrollbar = $('<div class="xdsoft_scrollbar"></div>');
822
- scroller = $('<div class="xdsoft_scroller"></div>');
823
- scrollbar.append(scroller);
824
-
825
- timeboxparent.addClass('xdsoft_scroller_box').append(scrollbar);
826
- calcOffset = function calcOffset(event) {
827
- var offset = pointerEventToXY(event).y - startY + startTopScroll;
828
- if (offset < 0) {
829
- offset = 0;
830
- }
831
- if (offset + scroller[0].offsetHeight > h1) {
832
- offset = h1 - scroller[0].offsetHeight;
833
- }
834
- timeboxparent.trigger('scroll_element.xdsoft_scroller', [maximumOffset ? offset / maximumOffset : 0]);
835
- };
836
-
837
- scroller
838
- .on('touchstart.xdsoft_scroller mousedown.xdsoft_scroller', function (event) {
839
- if (!parentHeight) {
840
- timeboxparent.trigger('resize_scroll.xdsoft_scroller', [percent]);
841
- }
842
-
843
- startY = pointerEventToXY(event).y;
844
- startTopScroll = parseInt(scroller.css('margin-top'), 10);
845
- h1 = scrollbar[0].offsetHeight;
846
-
847
- if (event.type === 'mousedown' || event.type === 'touchstart') {
848
- if (options.ownerDocument) {
849
- $(options.ownerDocument.body).addClass('xdsoft_noselect');
850
- }
851
- $([options.ownerDocument.body, options.contentWindow]).on('touchend mouseup.xdsoft_scroller', function arguments_callee() {
852
- $([options.ownerDocument.body, options.contentWindow]).off('touchend mouseup.xdsoft_scroller', arguments_callee)
853
- .off('mousemove.xdsoft_scroller', calcOffset)
854
- .removeClass('xdsoft_noselect');
855
- });
856
- $(options.ownerDocument.body).on('mousemove.xdsoft_scroller', calcOffset);
857
- } else {
858
- touchStart = true;
859
- event.stopPropagation();
860
- event.preventDefault();
861
- }
862
- })
863
- .on('touchmove', function (event) {
864
- if (touchStart) {
865
- event.preventDefault();
866
- calcOffset(event);
867
- }
868
- })
869
- .on('touchend touchcancel', function () {
870
- touchStart = false;
871
- startTopScroll = 0;
872
- });
873
-
874
- timeboxparent
875
- .on('scroll_element.xdsoft_scroller', function (event, percentage) {
876
- if (!parentHeight) {
877
- timeboxparent.trigger('resize_scroll.xdsoft_scroller', [percentage, true]);
878
- }
879
- percentage = percentage > 1 ? 1 : (percentage < 0 || isNaN(percentage)) ? 0 : percentage;
880
-
881
- scroller.css('margin-top', maximumOffset * percentage);
882
-
883
- setTimeout(function () {
884
- timebox.css('marginTop', -parseInt((timebox[0].offsetHeight - parentHeight) * percentage, 10));
885
- }, 10);
886
- })
887
- .on('resize_scroll.xdsoft_scroller', function (event, percentage, noTriggerScroll) {
888
- var percent, sh;
889
- parentHeight = timeboxparent[0].clientHeight;
890
- height = timebox[0].offsetHeight;
891
- percent = parentHeight / height;
892
- sh = percent * scrollbar[0].offsetHeight;
893
- if (percent > 1) {
894
- scroller.hide();
895
- } else {
896
- scroller.show();
897
- scroller.css('height', parseInt(sh > 10 ? sh : 10, 10));
898
- maximumOffset = scrollbar[0].offsetHeight - scroller[0].offsetHeight;
899
- if (noTriggerScroll !== true) {
900
- timeboxparent.trigger('scroll_element.xdsoft_scroller', [percentage || Math.abs(parseInt(timebox.css('marginTop'), 10)) / (height - parentHeight)]);
901
- }
902
- }
903
- });
904
-
905
- timeboxparent.on('mousewheel', function (event) {
906
- var top = Math.abs(parseInt(timebox.css('marginTop'), 10));
907
-
908
- top = top - (event.deltaY * 20);
909
- if (top < 0) {
910
- top = 0;
911
- }
912
-
913
- timeboxparent.trigger('scroll_element.xdsoft_scroller', [top / (height - parentHeight)]);
914
- event.stopPropagation();
915
- return false;
916
- });
917
-
918
- timeboxparent.on('touchstart', function (event) {
919
- start = pointerEventToXY(event);
920
- startTop = Math.abs(parseInt(timebox.css('marginTop'), 10));
921
- });
922
-
923
- timeboxparent.on('touchmove', function (event) {
924
- if (start) {
925
- event.preventDefault();
926
- var coord = pointerEventToXY(event);
927
- timeboxparent.trigger('scroll_element.xdsoft_scroller', [(startTop - (coord.y - start.y)) / (height - parentHeight)]);
928
- }
929
- });
930
-
931
- timeboxparent.on('touchend touchcancel', function () {
932
- start = false;
933
- startTop = 0;
934
- });
935
- }
936
- timeboxparent.trigger('resize_scroll.xdsoft_scroller', [percent]);
937
- });
938
- };
939
-
940
- $.fn.datetimepicker = function (opt, opt2) {
941
- var result = this,
942
- KEY0 = 48,
943
- KEY9 = 57,
944
- _KEY0 = 96,
945
- _KEY9 = 105,
946
- CTRLKEY = 17,
947
- CMDKEY = 91,
948
- DEL = 46,
949
- ENTER = 13,
950
- ESC = 27,
951
- BACKSPACE = 8,
952
- ARROWLEFT = 37,
953
- ARROWUP = 38,
954
- ARROWRIGHT = 39,
955
- ARROWDOWN = 40,
956
- TAB = 9,
957
- F5 = 116,
958
- AKEY = 65,
959
- CKEY = 67,
960
- VKEY = 86,
961
- ZKEY = 90,
962
- YKEY = 89,
963
- ctrlDown = false,
964
- cmdDown = false,
965
- options = ($.isPlainObject(opt) || !opt) ? $.extend(true, {}, default_options, opt) : $.extend(true, {}, default_options),
966
-
967
- lazyInitTimer = 0,
968
- createDateTimePicker,
969
- destroyDateTimePicker,
970
-
971
- lazyInit = function (input) {
972
- input
973
- .on('open.xdsoft focusin.xdsoft mousedown.xdsoft touchstart', function initOnActionCallback() {
974
- if (input.is(':disabled') || input.data('xdsoft_datetimepicker')) {
975
- return;
976
- }
977
- clearTimeout(lazyInitTimer);
978
- lazyInitTimer = setTimeout(function () {
979
-
980
- if (!input.data('xdsoft_datetimepicker')) {
981
- createDateTimePicker(input);
982
- }
983
- input
984
- .off('open.xdsoft focusin.xdsoft mousedown.xdsoft touchstart', initOnActionCallback)
985
- .trigger('open.xdsoft');
986
- }, 100);
987
- });
988
- };
989
-
990
- createDateTimePicker = function (input) {
991
- var datetimepicker = $('<div class="xdsoft_datetimepicker xdsoft_noselect"></div>'),
992
- xdsoft_copyright = $('<div class="xdsoft_copyright"><a target="_blank" href="http://xdsoft.net/jqplugins/datetimepicker/">xdsoft.net</a></div>'),
993
- datepicker = $('<div class="xdsoft_datepicker active"></div>'),
994
- month_picker = $('<div class="xdsoft_monthpicker"><button type="button" class="xdsoft_prev"></button><button type="button" class="xdsoft_today_button"></button>' +
995
- '<div class="xdsoft_label xdsoft_month"><span></span><i></i></div>' +
996
- '<div class="xdsoft_label xdsoft_year"><span></span><i></i></div>' +
997
- '<button type="button" class="xdsoft_next"></button></div>'),
998
- calendar = $('<div class="xdsoft_calendar"></div>'),
999
- timepicker = $('<div class="xdsoft_timepicker active"><button type="button" class="xdsoft_prev"></button><div class="xdsoft_time_box"></div><button type="button" class="xdsoft_next"></button></div>'),
1000
- timeboxparent = timepicker.find('.xdsoft_time_box').eq(0),
1001
- timebox = $('<div class="xdsoft_time_variant"></div>'),
1002
- applyButton = $('<button type="button" class="xdsoft_save_selected blue-gradient-button">Save Selected</button>'),
1003
-
1004
- monthselect = $('<div class="xdsoft_select xdsoft_monthselect"><div></div></div>'),
1005
- yearselect = $('<div class="xdsoft_select xdsoft_yearselect"><div></div></div>'),
1006
- triggerAfterOpen = false,
1007
- XDSoft_datetime,
1008
-
1009
- xchangeTimer,
1010
- timerclick,
1011
- current_time_index,
1012
- setPos,
1013
- timer = 0,
1014
- _xdsoft_datetime,
1015
- forEachAncestorOf;
1016
-
1017
- if (options.id) {
1018
- datetimepicker.attr('id', options.id);
1019
- }
1020
- if (options.style) {
1021
- datetimepicker.attr('style', options.style);
1022
- }
1023
- if (options.weeks) {
1024
- datetimepicker.addClass('xdsoft_showweeks');
1025
- }
1026
- if (options.rtl) {
1027
- datetimepicker.addClass('xdsoft_rtl');
1028
- }
1029
-
1030
- datetimepicker.addClass('xdsoft_' + options.theme);
1031
- datetimepicker.addClass(options.className);
1032
-
1033
- month_picker
1034
- .find('.xdsoft_month span')
1035
- .after(monthselect);
1036
- month_picker
1037
- .find('.xdsoft_year span')
1038
- .after(yearselect);
1039
-
1040
- month_picker
1041
- .find('.xdsoft_month,.xdsoft_year')
1042
- .on('touchstart mousedown.xdsoft', function (event) {
1043
- var select = $(this).find('.xdsoft_select').eq(0),
1044
- val = 0,
1045
- top = 0,
1046
- visible = select.is(':visible'),
1047
- items,
1048
- i;
1049
-
1050
- month_picker
1051
- .find('.xdsoft_select')
1052
- .hide();
1053
- if (_xdsoft_datetime.currentTime) {
1054
- val = _xdsoft_datetime.currentTime[$(this).hasClass('xdsoft_month') ? 'getMonth' : 'getFullYear']();
1055
- }
1056
-
1057
- select[visible ? 'hide' : 'show']();
1058
- for (items = select.find('div.xdsoft_option'), i = 0; i < items.length; i += 1) {
1059
- if (items.eq(i).data('value') === val) {
1060
- break;
1061
- } else {
1062
- top += items[0].offsetHeight;
1063
- }
1064
- }
1065
-
1066
- select.xdsoftScroller(options, top / (select.children()[0].offsetHeight - (select[0].clientHeight)));
1067
- event.stopPropagation();
1068
- return false;
1069
- });
1070
-
1071
- var handleTouchMoved = function (event) {
1072
- var evt = event.originalEvent;
1073
- var touchPosition = evt.touches ? evt.touches[0] : evt;
1074
- this.touchStartPosition = this.touchStartPosition || touchPosition;
1075
- var xMovement = Math.abs(this.touchStartPosition.clientX - touchPosition.clientX);
1076
- var yMovement = Math.abs(this.touchStartPosition.clientY - touchPosition.clientY);
1077
- var distance = Math.sqrt(xMovement * xMovement + yMovement * yMovement);
1078
- if(distance > options.touchMovedThreshold) {
1079
- this.touchMoved = true;
1080
- }
1081
- }
1082
-
1083
- month_picker
1084
- .find('.xdsoft_select')
1085
- .xdsoftScroller(options)
1086
- .on('touchstart mousedown.xdsoft', function (event) {
1087
- var evt = event.originalEvent;
1088
- this.touchMoved = false;
1089
- this.touchStartPosition = evt.touches ? evt.touches[0] : evt;
1090
- event.stopPropagation();
1091
- event.preventDefault();
1092
- })
1093
- .on('touchmove', '.xdsoft_option', handleTouchMoved)
1094
- .on('touchend mousedown.xdsoft', '.xdsoft_option', function () {
1095
- if (!this.touchMoved) {
1096
- if (_xdsoft_datetime.currentTime === undefined || _xdsoft_datetime.currentTime === null) {
1097
- _xdsoft_datetime.currentTime = _xdsoft_datetime.now();
1098
- }
1099
-
1100
- var year = _xdsoft_datetime.currentTime.getFullYear();
1101
- if (_xdsoft_datetime && _xdsoft_datetime.currentTime) {
1102
- _xdsoft_datetime.currentTime[$(this).parent().parent().hasClass('xdsoft_monthselect') ? 'setMonth' : 'setFullYear']($(this).data('value'));
1103
- }
1104
-
1105
- $(this).parent().parent().hide();
1106
-
1107
- datetimepicker.trigger('xchange.xdsoft');
1108
- if (options.onChangeMonth && $.isFunction(options.onChangeMonth)) {
1109
- options.onChangeMonth.call(datetimepicker, _xdsoft_datetime.currentTime, datetimepicker.data('input'));
1110
- }
1111
-
1112
- if (year !== _xdsoft_datetime.currentTime.getFullYear() && $.isFunction(options.onChangeYear)) {
1113
- options.onChangeYear.call(datetimepicker, _xdsoft_datetime.currentTime, datetimepicker.data('input'));
1114
- }
1115
- }
1116
- });
1117
-
1118
- datetimepicker.getValue = function () {
1119
- return _xdsoft_datetime.getCurrentTime();
1120
- };
1121
-
1122
- datetimepicker.setOptions = function (_options) {
1123
- var highlightedDates = {};
1124
-
1125
- options = $.extend(true, {}, options, _options);
1126
-
1127
- if (_options.allowTimes && $.isArray(_options.allowTimes) && _options.allowTimes.length) {
1128
- options.allowTimes = $.extend(true, [], _options.allowTimes);
1129
- }
1130
-
1131
- if (_options.weekends && $.isArray(_options.weekends) && _options.weekends.length) {
1132
- options.weekends = $.extend(true, [], _options.weekends);
1133
- }
1134
-
1135
- if (_options.allowDates && $.isArray(_options.allowDates) && _options.allowDates.length) {
1136
- options.allowDates = $.extend(true, [], _options.allowDates);
1137
- }
1138
-
1139
- if (_options.allowDateRe && Object.prototype.toString.call(_options.allowDateRe)==="[object String]") {
1140
- options.allowDateRe = new RegExp(_options.allowDateRe);
1141
- }
1142
-
1143
- if (_options.highlightedDates && $.isArray(_options.highlightedDates) && _options.highlightedDates.length) {
1144
- $.each(_options.highlightedDates, function (index, value) {
1145
- var splitData = $.map(value.split(','), $.trim),
1146
- exDesc,
1147
- hDate = new HighlightedDate(dateHelper.parseDate(splitData[0], options.formatDate), splitData[1], splitData[2]), // date, desc, style
1148
- keyDate = dateHelper.formatDate(hDate.date, options.formatDate);
1149
- if (highlightedDates[keyDate] !== undefined) {
1150
- exDesc = highlightedDates[keyDate].desc;
1151
- if (exDesc && exDesc.length && hDate.desc && hDate.desc.length) {
1152
- highlightedDates[keyDate].desc = exDesc + "\n" + hDate.desc;
1153
- }
1154
- } else {
1155
- highlightedDates[keyDate] = hDate;
1156
- }
1157
- });
1158
-
1159
- options.highlightedDates = $.extend(true, [], highlightedDates);
1160
- }
1161
-
1162
- if (_options.highlightedPeriods && $.isArray(_options.highlightedPeriods) && _options.highlightedPeriods.length) {
1163
- highlightedDates = $.extend(true, [], options.highlightedDates);
1164
- $.each(_options.highlightedPeriods, function (index, value) {
1165
- var dateTest, // start date
1166
- dateEnd,
1167
- desc,
1168
- hDate,
1169
- keyDate,
1170
- exDesc,
1171
- style;
1172
- if ($.isArray(value)) {
1173
- dateTest = value[0];
1174
- dateEnd = value[1];
1175
- desc = value[2];
1176
- style = value[3];
1177
- }
1178
- else {
1179
- var splitData = $.map(value.split(','), $.trim);
1180
- dateTest = dateHelper.parseDate(splitData[0], options.formatDate);
1181
- dateEnd = dateHelper.parseDate(splitData[1], options.formatDate);
1182
- desc = splitData[2];
1183
- style = splitData[3];
1184
- }
1185
-
1186
- while (dateTest <= dateEnd) {
1187
- hDate = new HighlightedDate(dateTest, desc, style);
1188
- keyDate = dateHelper.formatDate(dateTest, options.formatDate);
1189
- dateTest.setDate(dateTest.getDate() + 1);
1190
- if (highlightedDates[keyDate] !== undefined) {
1191
- exDesc = highlightedDates[keyDate].desc;
1192
- if (exDesc && exDesc.length && hDate.desc && hDate.desc.length) {
1193
- highlightedDates[keyDate].desc = exDesc + "\n" + hDate.desc;
1194
- }
1195
- } else {
1196
- highlightedDates[keyDate] = hDate;
1197
- }
1198
- }
1199
- });
1200
-
1201
- options.highlightedDates = $.extend(true, [], highlightedDates);
1202
- }
1203
-
1204
- if (_options.disabledDates && $.isArray(_options.disabledDates) && _options.disabledDates.length) {
1205
- options.disabledDates = $.extend(true, [], _options.disabledDates);
1206
- }
1207
-
1208
- if (_options.disabledWeekDays && $.isArray(_options.disabledWeekDays) && _options.disabledWeekDays.length) {
1209
- options.disabledWeekDays = $.extend(true, [], _options.disabledWeekDays);
1210
- }
1211
-
1212
- if ((options.open || options.opened) && (!options.inline)) {
1213
- input.trigger('open.xdsoft');
1214
- }
1215
-
1216
- if (options.inline) {
1217
- triggerAfterOpen = true;
1218
- datetimepicker.addClass('xdsoft_inline');
1219
- input.after(datetimepicker).hide();
1220
- }
1221
-
1222
- if (options.inverseButton) {
1223
- options.next = 'xdsoft_prev';
1224
- options.prev = 'xdsoft_next';
1225
- }
1226
-
1227
- if (options.datepicker) {
1228
- datepicker.addClass('active');
1229
- } else {
1230
- datepicker.removeClass('active');
1231
- }
1232
-
1233
- if (options.timepicker) {
1234
- timepicker.addClass('active');
1235
- } else {
1236
- timepicker.removeClass('active');
1237
- }
1238
-
1239
- if (options.value) {
1240
- _xdsoft_datetime.setCurrentTime(options.value);
1241
- if (input && input.val) {
1242
- input.val(_xdsoft_datetime.str);
1243
- }
1244
- }
1245
-
1246
- if (isNaN(options.dayOfWeekStart)) {
1247
- options.dayOfWeekStart = 0;
1248
- } else {
1249
- options.dayOfWeekStart = parseInt(options.dayOfWeekStart, 10) % 7;
1250
- }
1251
-
1252
- if (!options.timepickerScrollbar) {
1253
- timeboxparent.xdsoftScroller(options, 'hide');
1254
- }
1255
-
1256
- if (options.minDate && /^[\+\-](.*)$/.test(options.minDate)) {
1257
- options.minDate = dateHelper.formatDate(_xdsoft_datetime.strToDateTime(options.minDate), options.formatDate);
1258
- }
1259
-
1260
- if (options.maxDate && /^[\+\-](.*)$/.test(options.maxDate)) {
1261
- options.maxDate = dateHelper.formatDate(_xdsoft_datetime.strToDateTime(options.maxDate), options.formatDate);
1262
- }
1263
-
1264
- if (options.minDateTime && /^\+(.*)$/.test(options.minDateTime)) {
1265
- options.minDateTime = _xdsoft_datetime.strToDateTime(options.minDateTime).dateFormat(options.formatDate);
1266
- }
1267
-
1268
- if (options.maxDateTime && /^\+(.*)$/.test(options.maxDateTime)) {
1269
- options.maxDateTime = _xdsoft_datetime.strToDateTime(options.maxDateTime).dateFormat(options.formatDate);
1270
- }
1271
-
1272
- applyButton.toggle(options.showApplyButton);
1273
-
1274
- month_picker
1275
- .find('.xdsoft_today_button')
1276
- .css('visibility', !options.todayButton ? 'hidden' : 'visible');
1277
-
1278
- month_picker
1279
- .find('.' + options.prev)
1280
- .css('visibility', !options.prevButton ? 'hidden' : 'visible');
1281
-
1282
- month_picker
1283
- .find('.' + options.next)
1284
- .css('visibility', !options.nextButton ? 'hidden' : 'visible');
1285
-
1286
- setMask(options);
1287
-
1288
- if (options.validateOnBlur) {
1289
- input
1290
- .off('blur.xdsoft')
1291
- .on('blur.xdsoft', function () {
1292
- if (options.allowBlank && (!$.trim($(this).val()).length ||
1293
- (typeof options.mask === "string" && $.trim($(this).val()) === options.mask.replace(/[0-9]/g, '_')))) {
1294
- $(this).val(null);
1295
- datetimepicker.data('xdsoft_datetime').empty();
1296
- } else {
1297
- var d = dateHelper.parseDate($(this).val(), options.format);
1298
- if (d) { // parseDate() may skip some invalid parts like date or time, so make it clear for user: show parsed date/time
1299
- $(this).val(dateHelper.formatDate(d, options.format));
1300
- } else {
1301
- var splittedHours = +([$(this).val()[0], $(this).val()[1]].join('')),
1302
- splittedMinutes = +([$(this).val()[2], $(this).val()[3]].join(''));
1303
-
1304
- // parse the numbers as 0312 => 03:12
1305
- if (!options.datepicker && options.timepicker && splittedHours >= 0 && splittedHours < 24 && splittedMinutes >= 0 && splittedMinutes < 60) {
1306
- $(this).val([splittedHours, splittedMinutes].map(function (item) {
1307
- return item > 9 ? item : '0' + item;
1308
- }).join(':'));
1309
- } else {
1310
- $(this).val(dateHelper.formatDate(_xdsoft_datetime.now(), options.format));
1311
- }
1312
- }
1313
- datetimepicker.data('xdsoft_datetime').setCurrentTime($(this).val());
1314
- }
1315
-
1316
- datetimepicker.trigger('changedatetime.xdsoft');
1317
- datetimepicker.trigger('close.xdsoft');
1318
- });
1319
- }
1320
- options.dayOfWeekStartPrev = (options.dayOfWeekStart === 0) ? 6 : options.dayOfWeekStart - 1;
1321
-
1322
- datetimepicker
1323
- .trigger('xchange.xdsoft')
1324
- .trigger('afterOpen.xdsoft');
1325
- };
1326
-
1327
- datetimepicker
1328
- .data('options', options)
1329
- .on('touchstart mousedown.xdsoft', function (event) {
1330
- event.stopPropagation();
1331
- event.preventDefault();
1332
- yearselect.hide();
1333
- monthselect.hide();
1334
- return false;
1335
- });
1336
-
1337
- //scroll_element = timepicker.find('.xdsoft_time_box');
1338
- timeboxparent.append(timebox);
1339
- timeboxparent.xdsoftScroller(options);
1340
-
1341
- datetimepicker.on('afterOpen.xdsoft', function () {
1342
- timeboxparent.xdsoftScroller(options);
1343
- });
1344
-
1345
- datetimepicker
1346
- .append(datepicker)
1347
- .append(timepicker);
1348
-
1349
- if (options.withoutCopyright !== true) {
1350
- datetimepicker
1351
- .append(xdsoft_copyright);
1352
- }
1353
-
1354
- datepicker
1355
- .append(month_picker)
1356
- .append(calendar)
1357
- .append(applyButton);
1358
-
1359
- if (options.insideParent) {
1360
- $(input).parent().append(datetimepicker);
1361
- } else {
1362
- $(options.parentID).append(datetimepicker);
1363
- }
1364
-
1365
- XDSoft_datetime = function () {
1366
- var _this = this;
1367
- _this.now = function (norecursion) {
1368
- var d = new Date(),
1369
- date,
1370
- time;
1371
-
1372
- if (!norecursion && options.defaultDate) {
1373
- date = _this.strToDateTime(options.defaultDate);
1374
- d.setFullYear(date.getFullYear());
1375
- d.setMonth(date.getMonth());
1376
- d.setDate(date.getDate());
1377
- }
1378
-
1379
- d.setFullYear(d.getFullYear());
1380
-
1381
- if (!norecursion && options.defaultTime) {
1382
- time = _this.strtotime(options.defaultTime);
1383
- d.setHours(time.getHours());
1384
- d.setMinutes(time.getMinutes());
1385
- d.setSeconds(time.getSeconds());
1386
- d.setMilliseconds(time.getMilliseconds());
1387
- }
1388
- return d;
1389
- };
1390
-
1391
- _this.isValidDate = function (d) {
1392
- if (Object.prototype.toString.call(d) !== "[object Date]") {
1393
- return false;
1394
- }
1395
- return !isNaN(d.getTime());
1396
- };
1397
-
1398
- _this.setCurrentTime = function (dTime, requireValidDate) {
1399
- if (typeof dTime === 'string') {
1400
- _this.currentTime = _this.strToDateTime(dTime);
1401
- }
1402
- else if (_this.isValidDate(dTime)) {
1403
- _this.currentTime = dTime;
1404
- }
1405
- else if (!dTime && !requireValidDate && options.allowBlank && !options.inline) {
1406
- _this.currentTime = null;
1407
- }
1408
- else {
1409
- _this.currentTime = _this.now();
1410
- }
1411
-
1412
- datetimepicker.trigger('xchange.xdsoft');
1413
- };
1414
-
1415
- _this.empty = function () {
1416
- _this.currentTime = null;
1417
- };
1418
-
1419
- _this.getCurrentTime = function () {
1420
- return _this.currentTime;
1421
- };
1422
-
1423
- _this.nextMonth = function () {
1424
-
1425
- if (_this.currentTime === undefined || _this.currentTime === null) {
1426
- _this.currentTime = _this.now();
1427
- }
1428
-
1429
- var month = _this.currentTime.getMonth() + 1,
1430
- year;
1431
- if (month === 12) {
1432
- _this.currentTime.setFullYear(_this.currentTime.getFullYear() + 1);
1433
- month = 0;
1434
- }
1435
-
1436
- year = _this.currentTime.getFullYear();
1437
-
1438
- _this.currentTime.setDate(
1439
- Math.min(
1440
- new Date(_this.currentTime.getFullYear(), month + 1, 0).getDate(),
1441
- _this.currentTime.getDate()
1442
- )
1443
- );
1444
- _this.currentTime.setMonth(month);
1445
-
1446
- if (options.onChangeMonth && $.isFunction(options.onChangeMonth)) {
1447
- options.onChangeMonth.call(datetimepicker, _xdsoft_datetime.currentTime, datetimepicker.data('input'));
1448
- }
1449
-
1450
- if (year !== _this.currentTime.getFullYear() && $.isFunction(options.onChangeYear)) {
1451
- options.onChangeYear.call(datetimepicker, _xdsoft_datetime.currentTime, datetimepicker.data('input'));
1452
- }
1453
-
1454
- datetimepicker.trigger('xchange.xdsoft');
1455
- return month;
1456
- };
1457
-
1458
- _this.prevMonth = function () {
1459
-
1460
- if (_this.currentTime === undefined || _this.currentTime === null) {
1461
- _this.currentTime = _this.now();
1462
- }
1463
-
1464
- var month = _this.currentTime.getMonth() - 1;
1465
- if (month === -1) {
1466
- _this.currentTime.setFullYear(_this.currentTime.getFullYear() - 1);
1467
- month = 11;
1468
- }
1469
- _this.currentTime.setDate(
1470
- Math.min(
1471
- new Date(_this.currentTime.getFullYear(), month + 1, 0).getDate(),
1472
- _this.currentTime.getDate()
1473
- )
1474
- );
1475
- _this.currentTime.setMonth(month);
1476
- if (options.onChangeMonth && $.isFunction(options.onChangeMonth)) {
1477
- options.onChangeMonth.call(datetimepicker, _xdsoft_datetime.currentTime, datetimepicker.data('input'));
1478
- }
1479
- datetimepicker.trigger('xchange.xdsoft');
1480
- return month;
1481
- };
1482
-
1483
- _this.getWeekOfYear = function (datetime) {
1484
- if (options.onGetWeekOfYear && $.isFunction(options.onGetWeekOfYear)) {
1485
- var week = options.onGetWeekOfYear.call(datetimepicker, datetime);
1486
- if (typeof week !== 'undefined') {
1487
- return week;
1488
- }
1489
- }
1490
- var onejan = new Date(datetime.getFullYear(), 0, 1);
1491
-
1492
- //First week of the year is th one with the first Thursday according to ISO8601
1493
- if (onejan.getDay() !== 4) {
1494
- onejan.setMonth(0, 1 + ((4 - onejan.getDay()+ 7) % 7));
1495
- }
1496
-
1497
- return Math.ceil((((datetime - onejan) / 86400000) + onejan.getDay() + 1) / 7);
1498
- };
1499
-
1500
- _this.strToDateTime = function (sDateTime) {
1501
- var tmpDate = [], timeOffset, currentTime;
1502
-
1503
- if (sDateTime && sDateTime instanceof Date && _this.isValidDate(sDateTime)) {
1504
- return sDateTime;
1505
- }
1506
-
1507
- tmpDate = /^([+-]{1})(.*)$/.exec(sDateTime);
1508
-
1509
- if (tmpDate) {
1510
- tmpDate[2] = dateHelper.parseDate(tmpDate[2], options.formatDate);
1511
- }
1512
-
1513
- if (tmpDate && tmpDate[2]) {
1514
- timeOffset = tmpDate[2].getTime() - (tmpDate[2].getTimezoneOffset()) * 60000;
1515
- currentTime = new Date((_this.now(true)).getTime() + parseInt(tmpDate[1] + '1', 10) * timeOffset);
1516
- } else {
1517
- currentTime = sDateTime ? dateHelper.parseDate(sDateTime, options.format) : _this.now();
1518
- }
1519
-
1520
- if (!_this.isValidDate(currentTime)) {
1521
- currentTime = _this.now();
1522
- }
1523
-
1524
- return currentTime;
1525
- };
1526
-
1527
- _this.strToDate = function (sDate) {
1528
- if (sDate && sDate instanceof Date && _this.isValidDate(sDate)) {
1529
- return sDate;
1530
- }
1531
-
1532
- var currentTime = sDate ? dateHelper.parseDate(sDate, options.formatDate) : _this.now(true);
1533
- if (!_this.isValidDate(currentTime)) {
1534
- currentTime = _this.now(true);
1535
- }
1536
- return currentTime;
1537
- };
1538
-
1539
- _this.strtotime = function (sTime) {
1540
- if (sTime && sTime instanceof Date && _this.isValidDate(sTime)) {
1541
- return sTime;
1542
- }
1543
- var currentTime = sTime ? dateHelper.parseDate(sTime, options.formatTime) : _this.now(true);
1544
- if (!_this.isValidDate(currentTime)) {
1545
- currentTime = _this.now(true);
1546
- }
1547
- return currentTime;
1548
- };
1549
-
1550
- _this.str = function () {
1551
- var format = options.format;
1552
- if (options.yearOffset) {
1553
- format = format.replace('Y', _this.currentTime.getFullYear() + options.yearOffset);
1554
- format = format.replace('y', String(_this.currentTime.getFullYear() + options.yearOffset).substring(2, 4));
1555
- }
1556
- return dateHelper.formatDate(_this.currentTime, format);
1557
- };
1558
- _this.currentTime = this.now();
1559
- };
1560
-
1561
- _xdsoft_datetime = new XDSoft_datetime();
1562
-
1563
- applyButton.on('touchend click', function (e) {//pathbrite
1564
- e.preventDefault();
1565
- datetimepicker.data('changed', true);
1566
- _xdsoft_datetime.setCurrentTime(getCurrentValue());
1567
- input.val(_xdsoft_datetime.str());
1568
- datetimepicker.trigger('close.xdsoft');
1569
- });
1570
- month_picker
1571
- .find('.xdsoft_today_button')
1572
- .on('touchend mousedown.xdsoft', function () {
1573
- datetimepicker.data('changed', true);
1574
- _xdsoft_datetime.setCurrentTime(0, true);
1575
- datetimepicker.trigger('afterOpen.xdsoft');
1576
- }).on('dblclick.xdsoft', function () {
1577
- var currentDate = _xdsoft_datetime.getCurrentTime(), minDate, maxDate;
1578
- currentDate = new Date(currentDate.getFullYear(), currentDate.getMonth(), currentDate.getDate());
1579
- minDate = _xdsoft_datetime.strToDate(options.minDate);
1580
- minDate = new Date(minDate.getFullYear(), minDate.getMonth(), minDate.getDate());
1581
- if (currentDate < minDate) {
1582
- return;
1583
- }
1584
- maxDate = _xdsoft_datetime.strToDate(options.maxDate);
1585
- maxDate = new Date(maxDate.getFullYear(), maxDate.getMonth(), maxDate.getDate());
1586
- if (currentDate > maxDate) {
1587
- return;
1588
- }
1589
- input.val(_xdsoft_datetime.str());
1590
- input.trigger('change');
1591
- datetimepicker.trigger('close.xdsoft');
1592
- });
1593
- month_picker
1594
- .find('.xdsoft_prev,.xdsoft_next')
1595
- .on('touchend mousedown.xdsoft', function () {
1596
- var $this = $(this),
1597
- timer = 0,
1598
- stop = false;
1599
-
1600
- (function arguments_callee1(v) {
1601
- if ($this.hasClass(options.next)) {
1602
- _xdsoft_datetime.nextMonth();
1603
- } else if ($this.hasClass(options.prev)) {
1604
- _xdsoft_datetime.prevMonth();
1605
- }
1606
- if (options.monthChangeSpinner) {
1607
- if (!stop) {
1608
- timer = setTimeout(arguments_callee1, v || 100);
1609
- }
1610
- }
1611
- }(500));
1612
-
1613
- $([options.ownerDocument.body, options.contentWindow]).on('touchend mouseup.xdsoft', function arguments_callee2() {
1614
- clearTimeout(timer);
1615
- stop = true;
1616
- $([options.ownerDocument.body, options.contentWindow]).off('touchend mouseup.xdsoft', arguments_callee2);
1617
- });
1618
- });
1619
-
1620
- timepicker
1621
- .find('.xdsoft_prev,.xdsoft_next')
1622
- .on('touchend mousedown.xdsoft', function () {
1623
- var $this = $(this),
1624
- timer = 0,
1625
- stop = false,
1626
- period = 110;
1627
- (function arguments_callee4(v) {
1628
- var pheight = timeboxparent[0].clientHeight,
1629
- height = timebox[0].offsetHeight,
1630
- top = Math.abs(parseInt(timebox.css('marginTop'), 10));
1631
- if ($this.hasClass(options.next) && (height - pheight) - options.timeHeightInTimePicker >= top) {
1632
- timebox.css('marginTop', '-' + (top + options.timeHeightInTimePicker) + 'px');
1633
- } else if ($this.hasClass(options.prev) && top - options.timeHeightInTimePicker >= 0) {
1634
- timebox.css('marginTop', '-' + (top - options.timeHeightInTimePicker) + 'px');
1635
- }
1636
- /**
1637
- * Fixed bug:
1638
- * When using css3 transition, it will cause a bug that you cannot scroll the timepicker list.
1639
- * The reason is that the transition-duration time, if you set it to 0, all things fine, otherwise, this
1640
- * would cause a bug when you use jquery.css method.
1641
- * Let's say: * { transition: all .5s ease; }
1642
- * jquery timebox.css('marginTop') will return the original value which is before you clicking the next/prev button,
1643
- * meanwhile the timebox[0].style.marginTop will return the right value which is after you clicking the
1644
- * next/prev button.
1645
- *
1646
- * What we should do:
1647
- * Replace timebox.css('marginTop') with timebox[0].style.marginTop.
1648
- */
1649
- timeboxparent.trigger('scroll_element.xdsoft_scroller', [Math.abs(parseInt(timebox[0].style.marginTop, 10) / (height - pheight))]);
1650
- period = (period > 10) ? 10 : period - 10;
1651
- if (!stop) {
1652
- timer = setTimeout(arguments_callee4, v || period);
1653
- }
1654
- }(500));
1655
- $([options.ownerDocument.body, options.contentWindow]).on('touchend mouseup.xdsoft', function arguments_callee5() {
1656
- clearTimeout(timer);
1657
- stop = true;
1658
- $([options.ownerDocument.body, options.contentWindow])
1659
- .off('touchend mouseup.xdsoft', arguments_callee5);
1660
- });
1661
- });
1662
-
1663
- xchangeTimer = 0;
1664
- // base handler - generating a calendar and timepicker
1665
- datetimepicker
1666
- .on('xchange.xdsoft', function (event) {
1667
- clearTimeout(xchangeTimer);
1668
- xchangeTimer = setTimeout(function () {
1669
-
1670
- if (_xdsoft_datetime.currentTime === undefined || _xdsoft_datetime.currentTime === null) {
1671
- _xdsoft_datetime.currentTime = _xdsoft_datetime.now();
1672
- }
1673
-
1674
- var table = '',
1675
- start = new Date(_xdsoft_datetime.currentTime.getFullYear(), _xdsoft_datetime.currentTime.getMonth(), 1, 12, 0, 0),
1676
- i = 0,
1677
- j,
1678
- today = _xdsoft_datetime.now(),
1679
- maxDate = false,
1680
- minDate = false,
1681
- minDateTime = false,
1682
- maxDateTime = false,
1683
- hDate,
1684
- day,
1685
- d,
1686
- y,
1687
- m,
1688
- w,
1689
- classes = [],
1690
- customDateSettings,
1691
- newRow = true,
1692
- time = '',
1693
- h,
1694
- line_time,
1695
- description;
1696
-
1697
- while (start.getDay() !== options.dayOfWeekStart) {
1698
- start.setDate(start.getDate() - 1);
1699
- }
1700
-
1701
- table += '<table><thead><tr>';
1702
-
1703
- if (options.weeks) {
1704
- table += '<th></th>';
1705
- }
1706
-
1707
- for (j = 0; j < 7; j += 1) {
1708
- table += '<th>' + options.i18n[globalLocale].dayOfWeekShort[(j + options.dayOfWeekStart) % 7] + '</th>';
1709
- }
1710
-
1711
- table += '</tr></thead>';
1712
- table += '<tbody>';
1713
-
1714
- if (options.maxDate !== false) {
1715
- maxDate = _xdsoft_datetime.strToDate(options.maxDate);
1716
- maxDate = new Date(maxDate.getFullYear(), maxDate.getMonth(), maxDate.getDate(), 23, 59, 59, 999);
1717
- }
1718
-
1719
- if (options.minDate !== false) {
1720
- minDate = _xdsoft_datetime.strToDate(options.minDate);
1721
- minDate = new Date(minDate.getFullYear(), minDate.getMonth(), minDate.getDate());
1722
- }
1723
-
1724
- if (options.minDateTime !== false) {
1725
- minDateTime = _xdsoft_datetime.strToDate(options.minDateTime);
1726
- minDateTime = new Date(minDateTime.getFullYear(), minDateTime.getMonth(), minDateTime.getDate(), minDateTime.getHours(), minDateTime.getMinutes(), minDateTime.getSeconds());
1727
- }
1728
-
1729
- if (options.maxDateTime !== false) {
1730
- maxDateTime = _xdsoft_datetime.strToDate(options.maxDateTime);
1731
- maxDateTime = new Date(maxDateTime.getFullYear(), maxDateTime.getMonth(), maxDateTime.getDate(), maxDateTime.getHours(), maxDateTime.getMinutes(), maxDateTime.getSeconds());
1732
- }
1733
-
1734
- var maxDateTimeDay;
1735
- if (maxDateTime !== false) {
1736
- maxDateTimeDay = ((maxDateTime.getFullYear() * 12) + maxDateTime.getMonth()) * 31 + maxDateTime.getDate();
1737
- }
1738
-
1739
- while (i < _xdsoft_datetime.currentTime.countDaysInMonth() || start.getDay() !== options.dayOfWeekStart || _xdsoft_datetime.currentTime.getMonth() === start.getMonth()) {
1740
- classes = [];
1741
- i += 1;
1742
-
1743
- day = start.getDay();
1744
- d = start.getDate();
1745
- y = start.getFullYear();
1746
- m = start.getMonth();
1747
- w = _xdsoft_datetime.getWeekOfYear(start);
1748
- description = '';
1749
-
1750
- classes.push('xdsoft_date');
1751
-
1752
- if (options.beforeShowDay && $.isFunction(options.beforeShowDay.call)) {
1753
- customDateSettings = options.beforeShowDay.call(datetimepicker, start);
1754
- } else {
1755
- customDateSettings = null;
1756
- }
1757
-
1758
- if(options.allowDateRe && Object.prototype.toString.call(options.allowDateRe) === "[object RegExp]"){
1759
- if(!options.allowDateRe.test(dateHelper.formatDate(start, options.formatDate))){
1760
- classes.push('xdsoft_disabled');
1761
- }
1762
- }
1763
-
1764
- if(options.allowDates && options.allowDates.length>0){
1765
- if(options.allowDates.indexOf(dateHelper.formatDate(start, options.formatDate)) === -1){
1766
- classes.push('xdsoft_disabled');
1767
- }
1768
- }
1769
-
1770
- var currentDay = ((start.getFullYear() * 12) + start.getMonth()) * 31 + start.getDate();
1771
- if ((maxDate !== false && start > maxDate) || (minDateTime !== false && start < minDateTime) || (minDate !== false && start < minDate) || (maxDateTime !== false && currentDay > maxDateTimeDay) || (customDateSettings && customDateSettings[0] === false)) {
1772
- classes.push('xdsoft_disabled');
1773
- }
1774
-
1775
- if (options.disabledDates.indexOf(dateHelper.formatDate(start, options.formatDate)) !== -1) {
1776
- classes.push('xdsoft_disabled');
1777
- }
1778
-
1779
- if (options.disabledWeekDays.indexOf(day) !== -1) {
1780
- classes.push('xdsoft_disabled');
1781
- }
1782
-
1783
- if (input.is('[disabled]')) {
1784
- classes.push('xdsoft_disabled');
1785
- }
1786
-
1787
- if (customDateSettings && customDateSettings[1] !== "") {
1788
- classes.push(customDateSettings[1]);
1789
- }
1790
-
1791
- if (_xdsoft_datetime.currentTime.getMonth() !== m) {
1792
- classes.push('xdsoft_other_month');
1793
- }
1794
-
1795
- if ((options.defaultSelect || datetimepicker.data('changed')) && dateHelper.formatDate(_xdsoft_datetime.currentTime, options.formatDate) === dateHelper.formatDate(start, options.formatDate)) {
1796
- classes.push('xdsoft_current');
1797
- }
1798
-
1799
- if (dateHelper.formatDate(today, options.formatDate) === dateHelper.formatDate(start, options.formatDate)) {
1800
- classes.push('xdsoft_today');
1801
- }
1802
-
1803
- if (start.getDay() === 0 || start.getDay() === 6 || options.weekends.indexOf(dateHelper.formatDate(start, options.formatDate)) !== -1) {
1804
- classes.push('xdsoft_weekend');
1805
- }
1806
-
1807
- if (options.highlightedDates[dateHelper.formatDate(start, options.formatDate)] !== undefined) {
1808
- hDate = options.highlightedDates[dateHelper.formatDate(start, options.formatDate)];
1809
- classes.push(hDate.style === undefined ? 'xdsoft_highlighted_default' : hDate.style);
1810
- description = hDate.desc === undefined ? '' : hDate.desc;
1811
- }
1812
-
1813
- if (options.beforeShowDay && $.isFunction(options.beforeShowDay)) {
1814
- classes.push(options.beforeShowDay(start));
1815
- }
1816
-
1817
- if (newRow) {
1818
- table += '<tr>';
1819
- newRow = false;
1820
- if (options.weeks) {
1821
- table += '<th>' + w + '</th>';
1822
- }
1823
- }
1824
-
1825
- table += '<td data-date="' + d + '" data-month="' + m + '" data-year="' + y + '"' + ' class="xdsoft_date xdsoft_day_of_week' + start.getDay() + ' ' + classes.join(' ') + '" title="' + description + '">' +
1826
- '<div>' + d + '</div>' +
1827
- '</td>';
1828
-
1829
- if (start.getDay() === options.dayOfWeekStartPrev) {
1830
- table += '</tr>';
1831
- newRow = true;
1832
- }
1833
-
1834
- start.setDate(d + 1);
1835
- }
1836
- table += '</tbody></table>';
1837
-
1838
- calendar.html(table);
1839
-
1840
- month_picker.find('.xdsoft_label span').eq(0).text(options.i18n[globalLocale].months[_xdsoft_datetime.currentTime.getMonth()]);
1841
- month_picker.find('.xdsoft_label span').eq(1).text(_xdsoft_datetime.currentTime.getFullYear() + options.yearOffset);
1842
-
1843
- // generate timebox
1844
- time = '';
1845
- h = '';
1846
- m = '';
1847
-
1848
- var minTimeMinutesOfDay = 0;
1849
- if (options.minTime !== false) {
1850
- var t = _xdsoft_datetime.strtotime(options.minTime);
1851
- minTimeMinutesOfDay = 60 * t.getHours() + t.getMinutes();
1852
- }
1853
- var maxTimeMinutesOfDay = 24 * 60;
1854
- if (options.maxTime !== false) {
1855
- var t = _xdsoft_datetime.strtotime(options.maxTime);
1856
- maxTimeMinutesOfDay = 60 * t.getHours() + t.getMinutes();
1857
- }
1858
-
1859
- if (options.minDateTime !== false) {
1860
- var t = _xdsoft_datetime.strToDateTime(options.minDateTime);
1861
- var currentDayIsMinDateTimeDay = dateHelper.formatDate(_xdsoft_datetime.currentTime, options.formatDate) === dateHelper.formatDate(t, options.formatDate);
1862
- if (currentDayIsMinDateTimeDay) {
1863
- var m = 60 * t.getHours() + t.getMinutes();
1864
- if (m > minTimeMinutesOfDay) minTimeMinutesOfDay = m;
1865
- }
1866
- }
1867
-
1868
- if (options.maxDateTime !== false) {
1869
- var t = _xdsoft_datetime.strToDateTime(options.maxDateTime);
1870
- var currentDayIsMaxDateTimeDay = dateHelper.formatDate(_xdsoft_datetime.currentTime, options.formatDate) === dateHelper.formatDate(t, options.formatDate);
1871
- if (currentDayIsMaxDateTimeDay) {
1872
- var m = 60 * t.getHours() + t.getMinutes();
1873
- if (m < maxTimeMinutesOfDay) maxTimeMinutesOfDay = m;
1874
- }
1875
- }
1876
-
1877
- line_time = function line_time(h, m) {
1878
- var now = _xdsoft_datetime.now(), current_time,
1879
- isALlowTimesInit = options.allowTimes && $.isArray(options.allowTimes) && options.allowTimes.length;
1880
- now.setHours(h);
1881
- h = parseInt(now.getHours(), 10);
1882
- now.setMinutes(m);
1883
- m = parseInt(now.getMinutes(), 10);
1884
- classes = [];
1885
- var currentMinutesOfDay = 60 * h + m;
1886
- if (input.is('[disabled]') || (currentMinutesOfDay >= maxTimeMinutesOfDay) || (currentMinutesOfDay < minTimeMinutesOfDay)) {
1887
- classes.push('xdsoft_disabled');
1888
- }
1889
-
1890
- current_time = new Date(_xdsoft_datetime.currentTime);
1891
- current_time.setHours(parseInt(_xdsoft_datetime.currentTime.getHours(), 10));
1892
-
1893
- if (!isALlowTimesInit) {
1894
- current_time.setMinutes(Math[options.roundTime](_xdsoft_datetime.currentTime.getMinutes() / options.step) * options.step);
1895
- }
1896
-
1897
- if ((options.initTime || options.defaultSelect || datetimepicker.data('changed')) && current_time.getHours() === parseInt(h, 10) && ((!isALlowTimesInit && options.step > 59) || current_time.getMinutes() === parseInt(m, 10))) {
1898
- if (options.defaultSelect || datetimepicker.data('changed')) {
1899
- classes.push('xdsoft_current');
1900
- } else if (options.initTime) {
1901
- classes.push('xdsoft_init_time');
1902
- }
1903
- }
1904
- if (parseInt(today.getHours(), 10) === parseInt(h, 10) && parseInt(today.getMinutes(), 10) === parseInt(m, 10)) {
1905
- classes.push('xdsoft_today');
1906
- }
1907
- time += '<div class="xdsoft_time ' + classes.join(' ') + '" data-hour="' + h + '" data-minute="' + m + '">' + dateHelper.formatDate(now, options.formatTime) + '</div>';
1908
- };
1909
-
1910
- if (!options.allowTimes || !$.isArray(options.allowTimes) || !options.allowTimes.length) {
1911
- for (i = 0, j = 0; i < (options.hours12 ? 12 : 24); i += 1) {
1912
- for (j = 0; j < 60; j += options.step) {
1913
- var currentMinutesOfDay = i * 60 + j;
1914
- if (currentMinutesOfDay < minTimeMinutesOfDay) continue;
1915
- if (currentMinutesOfDay >= maxTimeMinutesOfDay) continue;
1916
- h = (i < 10 ? '0' : '') + i;
1917
- m = (j < 10 ? '0' : '') + j;
1918
- line_time(h, m);
1919
- }
1920
- }
1921
- } else {
1922
- for (i = 0; i < options.allowTimes.length; i += 1) {
1923
- h = _xdsoft_datetime.strtotime(options.allowTimes[i]).getHours();
1924
- m = _xdsoft_datetime.strtotime(options.allowTimes[i]).getMinutes();
1925
- line_time(h, m);
1926
- }
1927
- }
1928
-
1929
- timebox.html(time);
1930
-
1931
- opt = '';
1932
-
1933
- for (i = parseInt(options.yearStart, 10); i <= parseInt(options.yearEnd, 10); i += 1) {
1934
- opt += '<div class="xdsoft_option ' + (_xdsoft_datetime.currentTime.getFullYear() === i ? 'xdsoft_current' : '') + '" data-value="' + i + '">' + (i + options.yearOffset) + '</div>';
1935
- }
1936
- yearselect.children().eq(0)
1937
- .html(opt);
1938
-
1939
- for (i = parseInt(options.monthStart, 10), opt = ''; i <= parseInt(options.monthEnd, 10); i += 1) {
1940
- opt += '<div class="xdsoft_option ' + (_xdsoft_datetime.currentTime.getMonth() === i ? 'xdsoft_current' : '') + '" data-value="' + i + '">' + options.i18n[globalLocale].months[i] + '</div>';
1941
- }
1942
- monthselect.children().eq(0).html(opt);
1943
- $(datetimepicker)
1944
- .trigger('generate.xdsoft');
1945
- }, 10);
1946
- event.stopPropagation();
1947
- })
1948
- .on('afterOpen.xdsoft', function () {
1949
- if (options.timepicker) {
1950
- var classType, pheight, height, top;
1951
- if (timebox.find('.xdsoft_current').length) {
1952
- classType = '.xdsoft_current';
1953
- } else if (timebox.find('.xdsoft_init_time').length) {
1954
- classType = '.xdsoft_init_time';
1955
- }
1956
- if (classType) {
1957
- pheight = timeboxparent[0].clientHeight;
1958
- height = timebox[0].offsetHeight;
1959
- top = timebox.find(classType).index() * options.timeHeightInTimePicker + 1;
1960
- if ((height - pheight) < top) {
1961
- top = height - pheight;
1962
- }
1963
- timeboxparent.trigger('scroll_element.xdsoft_scroller', [parseInt(top, 10) / (height - pheight)]);
1964
- } else {
1965
- timeboxparent.trigger('scroll_element.xdsoft_scroller', [0]);
1966
- }
1967
- }
1968
- });
1969
-
1970
- timerclick = 0;
1971
- calendar
1972
- .on('touchend click.xdsoft', 'td', function (xdevent) {
1973
- xdevent.stopPropagation(); // Prevents closing of Pop-ups, Modals and Flyouts in Bootstrap
1974
- timerclick += 1;
1975
- var $this = $(this),
1976
- currentTime = _xdsoft_datetime.currentTime;
1977
-
1978
- if (currentTime === undefined || currentTime === null) {
1979
- _xdsoft_datetime.currentTime = _xdsoft_datetime.now();
1980
- currentTime = _xdsoft_datetime.currentTime;
1981
- }
1982
-
1983
- if ($this.hasClass('xdsoft_disabled')) {
1984
- return false;
1985
- }
1986
-
1987
- currentTime.setDate(1);
1988
- currentTime.setFullYear($this.data('year'));
1989
- currentTime.setMonth($this.data('month'));
1990
- currentTime.setDate($this.data('date'));
1991
-
1992
- datetimepicker.trigger('select.xdsoft', [currentTime]);
1993
-
1994
- input.val(_xdsoft_datetime.str());
1995
-
1996
- if (options.onSelectDate && $.isFunction(options.onSelectDate)) {
1997
- options.onSelectDate.call(datetimepicker, _xdsoft_datetime.currentTime, datetimepicker.data('input'), xdevent);
1998
- }
1999
-
2000
- datetimepicker.data('changed', true);
2001
- datetimepicker.trigger('xchange.xdsoft');
2002
- datetimepicker.trigger('changedatetime.xdsoft');
2003
- if ((timerclick > 1 || (options.closeOnDateSelect === true || (options.closeOnDateSelect === false && !options.timepicker))) && !options.inline) {
2004
- datetimepicker.trigger('close.xdsoft');
2005
- }
2006
- setTimeout(function () {
2007
- timerclick = 0;
2008
- }, 200);
2009
- });
2010
-
2011
- timebox
2012
- .on('touchstart', 'div', function (xdevent) {
2013
- this.touchMoved = false;
2014
- })
2015
- .on('touchmove', 'div', handleTouchMoved)
2016
- .on('touchend click.xdsoft', 'div', function (xdevent) {
2017
- if (!this.touchMoved) {
2018
- xdevent.stopPropagation();
2019
- var $this = $(this),
2020
- currentTime = _xdsoft_datetime.currentTime;
2021
-
2022
- if (currentTime === undefined || currentTime === null) {
2023
- _xdsoft_datetime.currentTime = _xdsoft_datetime.now();
2024
- currentTime = _xdsoft_datetime.currentTime;
2025
- }
2026
-
2027
- if ($this.hasClass('xdsoft_disabled')) {
2028
- return false;
2029
- }
2030
- currentTime.setHours($this.data('hour'));
2031
- currentTime.setMinutes($this.data('minute'));
2032
- datetimepicker.trigger('select.xdsoft', [currentTime]);
2033
-
2034
- datetimepicker.data('input').val(_xdsoft_datetime.str());
2035
-
2036
- if (options.onSelectTime && $.isFunction(options.onSelectTime)) {
2037
- options.onSelectTime.call(datetimepicker, _xdsoft_datetime.currentTime, datetimepicker.data('input'), xdevent);
2038
- }
2039
- datetimepicker.data('changed', true);
2040
- datetimepicker.trigger('xchange.xdsoft');
2041
- datetimepicker.trigger('changedatetime.xdsoft');
2042
- if (options.inline !== true && options.closeOnTimeSelect === true) {
2043
- datetimepicker.trigger('close.xdsoft');
2044
- }
2045
- }
2046
- });
2047
-
2048
- datepicker
2049
- .on('mousewheel.xdsoft', function (event) {
2050
- if (!options.scrollMonth) {
2051
- return true;
2052
- }
2053
- if (event.deltaY < 0) {
2054
- _xdsoft_datetime.nextMonth();
2055
- } else {
2056
- _xdsoft_datetime.prevMonth();
2057
- }
2058
- return false;
2059
- });
2060
-
2061
- input
2062
- .on('mousewheel.xdsoft', function (event) {
2063
- if (!options.scrollInput) {
2064
- return true;
2065
- }
2066
- if (!options.datepicker && options.timepicker) {
2067
- current_time_index = timebox.find('.xdsoft_current').length ? timebox.find('.xdsoft_current').eq(0).index() : 0;
2068
- if (current_time_index + event.deltaY >= 0 && current_time_index + event.deltaY < timebox.children().length) {
2069
- current_time_index += event.deltaY;
2070
- }
2071
- if (timebox.children().eq(current_time_index).length) {
2072
- timebox.children().eq(current_time_index).trigger('mousedown');
2073
- }
2074
- return false;
2075
- }
2076
- if (options.datepicker && !options.timepicker) {
2077
- datepicker.trigger(event, [event.deltaY, event.deltaX, event.deltaY]);
2078
- if (input.val) {
2079
- input.val(_xdsoft_datetime.str());
2080
- }
2081
- datetimepicker.trigger('changedatetime.xdsoft');
2082
- return false;
2083
- }
2084
- });
2085
-
2086
- datetimepicker
2087
- .on('changedatetime.xdsoft', function (event) {
2088
- if (options.onChangeDateTime && $.isFunction(options.onChangeDateTime)) {
2089
- var $input = datetimepicker.data('input');
2090
- options.onChangeDateTime.call(datetimepicker, _xdsoft_datetime.currentTime, $input, event);
2091
- delete options.value;
2092
- $input.trigger('change');
2093
- }
2094
- })
2095
- .on('generate.xdsoft', function () {
2096
- if (options.onGenerate && $.isFunction(options.onGenerate)) {
2097
- options.onGenerate.call(datetimepicker, _xdsoft_datetime.currentTime, datetimepicker.data('input'));
2098
- }
2099
- if (triggerAfterOpen) {
2100
- datetimepicker.trigger('afterOpen.xdsoft');
2101
- triggerAfterOpen = false;
2102
- }
2103
- })
2104
- .on('click.xdsoft', function (xdevent) {
2105
- xdevent.stopPropagation();
2106
- });
2107
-
2108
- current_time_index = 0;
2109
-
2110
- /**
2111
- * Runs the callback for each of the specified node's ancestors.
2112
- *
2113
- * Return FALSE from the callback to stop ascending.
2114
- *
2115
- * @param {DOMNode} node
2116
- * @param {Function} callback
2117
- * @returns {undefined}
2118
- */
2119
- forEachAncestorOf = function (node, callback) {
2120
- do {
2121
- node = node.parentNode;
2122
-
2123
- if (!node || callback(node) === false) {
2124
- break;
2125
- }
2126
- } while (node.nodeName !== 'HTML');
2127
- };
2128
-
2129
- /**
2130
- * Sets the position of the picker.
2131
- *
2132
- * @returns {undefined}
2133
- */
2134
- setPos = function () {
2135
- var dateInputOffset,
2136
- dateInputElem,
2137
- verticalPosition,
2138
- left,
2139
- position,
2140
- datetimepickerElem,
2141
- dateInputHasFixedAncestor,
2142
- $dateInput,
2143
- windowWidth,
2144
- verticalAnchorEdge,
2145
- datetimepickerCss,
2146
- windowHeight,
2147
- windowScrollTop;
2148
-
2149
- $dateInput = datetimepicker.data('input');
2150
- dateInputOffset = $dateInput.offset();
2151
- dateInputElem = $dateInput[0];
2152
-
2153
- verticalAnchorEdge = 'top';
2154
- verticalPosition = (dateInputOffset.top + dateInputElem.offsetHeight) - 1;
2155
- left = dateInputOffset.left;
2156
- position = "absolute";
2157
-
2158
- windowWidth = $(options.contentWindow).width();
2159
- windowHeight = $(options.contentWindow).height();
2160
- windowScrollTop = $(options.contentWindow).scrollTop();
2161
-
2162
- if ((options.ownerDocument.documentElement.clientWidth - dateInputOffset.left) < datepicker.parent().outerWidth(true)) {
2163
- var diff = datepicker.parent().outerWidth(true) - dateInputElem.offsetWidth;
2164
- left = left - diff;
2165
- }
2166
-
2167
- if ($dateInput.parent().css('direction') === 'rtl') {
2168
- left -= (datetimepicker.outerWidth() - $dateInput.outerWidth());
2169
- }
2170
-
2171
- if (options.fixed) {
2172
- verticalPosition -= windowScrollTop;
2173
- left -= $(options.contentWindow).scrollLeft();
2174
- position = "fixed";
2175
- } else {
2176
- dateInputHasFixedAncestor = false;
2177
-
2178
- forEachAncestorOf(dateInputElem, function (ancestorNode) {
2179
- if (ancestorNode === null) {
2180
- return false;
2181
- }
2182
-
2183
- if (options.contentWindow.getComputedStyle(ancestorNode).getPropertyValue('position') === 'fixed') {
2184
- dateInputHasFixedAncestor = true;
2185
- return false;
2186
- }
2187
- });
2188
-
2189
- if (dateInputHasFixedAncestor && !options.insideParent) {
2190
- position = 'fixed';
2191
-
2192
- //If the picker won't fit entirely within the viewport then display it above the date input.
2193
- if (verticalPosition + datetimepicker.outerHeight() > windowHeight + windowScrollTop) {
2194
- verticalAnchorEdge = 'bottom';
2195
- verticalPosition = (windowHeight + windowScrollTop) - dateInputOffset.top;
2196
- } else {
2197
- verticalPosition -= windowScrollTop;
2198
- }
2199
- } else {
2200
- if (verticalPosition + datetimepicker[0].offsetHeight > windowHeight + windowScrollTop) {
2201
- verticalPosition = dateInputOffset.top - datetimepicker[0].offsetHeight + 1;
2202
- }
2203
- }
2204
-
2205
- if (verticalPosition < 0) {
2206
- verticalPosition = 0;
2207
- }
2208
-
2209
- if (left + dateInputElem.offsetWidth > windowWidth) {
2210
- left = windowWidth - dateInputElem.offsetWidth;
2211
- }
2212
- }
2213
-
2214
- datetimepickerElem = datetimepicker[0];
2215
-
2216
- forEachAncestorOf(datetimepickerElem, function (ancestorNode) {
2217
- var ancestorNodePosition;
2218
-
2219
- ancestorNodePosition = options.contentWindow.getComputedStyle(ancestorNode).getPropertyValue('position');
2220
-
2221
- if (ancestorNodePosition === 'relative' && windowWidth >= ancestorNode.offsetWidth) {
2222
- left = left - ((windowWidth - ancestorNode.offsetWidth) / 2);
2223
- return false;
2224
- }
2225
- });
2226
-
2227
- datetimepickerCss = {
2228
- position: position,
2229
- left: options.insideParent ? dateInputElem.offsetLeft : left,
2230
- top: '', //Initialize to prevent previous values interfering with new ones.
2231
- bottom: '' //Initialize to prevent previous values interfering with new ones.
2232
- };
2233
-
2234
- if (options.insideParent) {
2235
- datetimepickerCss[verticalAnchorEdge] = dateInputElem.offsetTop + dateInputElem.offsetHeight;
2236
- } else {
2237
- datetimepickerCss[verticalAnchorEdge] = verticalPosition;
2238
- }
2239
-
2240
- datetimepicker.css(datetimepickerCss);
2241
- };
2242
-
2243
- datetimepicker
2244
- .on('open.xdsoft', function (event) {
2245
- var onShow = true;
2246
- if (options.onShow && $.isFunction(options.onShow)) {
2247
- onShow = options.onShow.call(datetimepicker, _xdsoft_datetime.currentTime, datetimepicker.data('input'), event);
2248
- }
2249
- if (onShow !== false) {
2250
- datetimepicker.show();
2251
- setPos();
2252
- $(options.contentWindow)
2253
- .off('resize.xdsoft', setPos)
2254
- .on('resize.xdsoft', setPos);
2255
-
2256
- if (options.closeOnWithoutClick) {
2257
- $([options.ownerDocument.body, options.contentWindow]).on('touchstart mousedown.xdsoft', function arguments_callee6() {
2258
- datetimepicker.trigger('close.xdsoft');
2259
- $([options.ownerDocument.body, options.contentWindow]).off('touchstart mousedown.xdsoft', arguments_callee6);
2260
- });
2261
- }
2262
- }
2263
- })
2264
- .on('close.xdsoft', function (event) {
2265
- var onClose = true;
2266
- month_picker
2267
- .find('.xdsoft_month,.xdsoft_year')
2268
- .find('.xdsoft_select')
2269
- .hide();
2270
- if (options.onClose && $.isFunction(options.onClose)) {
2271
- onClose = options.onClose.call(datetimepicker, _xdsoft_datetime.currentTime, datetimepicker.data('input'), event);
2272
- }
2273
- if (onClose !== false && !options.opened && !options.inline) {
2274
- datetimepicker.hide();
2275
- }
2276
- event.stopPropagation();
2277
- })
2278
- .on('toggle.xdsoft', function () {
2279
- if (datetimepicker.is(':visible')) {
2280
- datetimepicker.trigger('close.xdsoft');
2281
- } else {
2282
- datetimepicker.trigger('open.xdsoft');
2283
- }
2284
- })
2285
- .data('input', input);
2286
-
2287
- timer = 0;
2288
-
2289
- datetimepicker.data('xdsoft_datetime', _xdsoft_datetime);
2290
- datetimepicker.setOptions(options);
2291
-
2292
- function getCurrentValue() {
2293
- var ct = false, time;
2294
-
2295
- if (options.startDate) {
2296
- ct = _xdsoft_datetime.strToDate(options.startDate);
2297
- } else {
2298
- ct = options.value || ((input && input.val && input.val()) ? input.val() : '');
2299
- if (ct) {
2300
- ct = _xdsoft_datetime.strToDateTime(ct);
2301
- if (options.yearOffset) {
2302
- ct = new Date(ct.getFullYear() - options.yearOffset, ct.getMonth(), ct.getDate(), ct.getHours(), ct.getMinutes(), ct.getSeconds(), ct.getMilliseconds());
2303
- }
2304
- } else if (options.defaultDate) {
2305
- ct = _xdsoft_datetime.strToDateTime(options.defaultDate);
2306
- if (options.defaultTime) {
2307
- time = _xdsoft_datetime.strtotime(options.defaultTime);
2308
- ct.setHours(time.getHours());
2309
- ct.setMinutes(time.getMinutes());
2310
- }
2311
- }
2312
- }
2313
-
2314
- if (ct && _xdsoft_datetime.isValidDate(ct)) {
2315
- datetimepicker.data('changed', true);
2316
- } else {
2317
- ct = '';
2318
- }
2319
-
2320
- return ct || 0;
2321
- }
2322
-
2323
- function setMask(options) {
2324
-
2325
- var isValidValue = function (mask, value) {
2326
- var reg = mask
2327
- .replace(/([\[\]\/\{\}\(\)\-\.\+]{1})/g, '\\$1')
2328
- .replace(/_/g, '{digit+}')
2329
- .replace(/([0-9]{1})/g, '{digit$1}')
2330
- .replace(/\{digit([0-9]{1})\}/g, '[0-$1_]{1}')
2331
- .replace(/\{digit[\+]\}/g, '[0-9_]{1}');
2332
- return (new RegExp(reg)).test(value);
2333
- },
2334
- getCaretPos = function (input) {
2335
- try {
2336
- if (options.ownerDocument.selection && options.ownerDocument.selection.createRange) {
2337
- var range = options.ownerDocument.selection.createRange();
2338
- return range.getBookmark().charCodeAt(2) - 2;
2339
- }
2340
- if (input.setSelectionRange) {
2341
- return input.selectionStart;
2342
- }
2343
- } catch (e) {
2344
- return 0;
2345
- }
2346
- },
2347
- setCaretPos = function (node, pos) {
2348
- node = (typeof node === "string" || node instanceof String) ? options.ownerDocument.getElementById(node) : node;
2349
- if (!node) {
2350
- return false;
2351
- }
2352
- if (node.createTextRange) {
2353
- var textRange = node.createTextRange();
2354
- textRange.collapse(true);
2355
- textRange.moveEnd('character', pos);
2356
- textRange.moveStart('character', pos);
2357
- textRange.select();
2358
- return true;
2359
- }
2360
- if (node.setSelectionRange) {
2361
- node.setSelectionRange(pos, pos);
2362
- return true;
2363
- }
2364
- return false;
2365
- };
2366
-
2367
- if(options.mask) {
2368
- input.off('keydown.xdsoft');
2369
- }
2370
-
2371
- if (options.mask === true) {
2372
- if (dateHelper.formatMask) {
2373
- options.mask = dateHelper.formatMask(options.format)
2374
- } else {
2375
- options.mask = options.format
2376
- .replace(/Y/g, '9999')
2377
- .replace(/F/g, '9999')
2378
- .replace(/m/g, '19')
2379
- .replace(/d/g, '39')
2380
- .replace(/H/g, '29')
2381
- .replace(/i/g, '59')
2382
- .replace(/s/g, '59');
2383
- }
2384
- }
2385
-
2386
- if ($.type(options.mask) === 'string') {
2387
- if (!isValidValue(options.mask, input.val())) {
2388
- input.val(options.mask.replace(/[0-9]/g, '_'));
2389
- setCaretPos(input[0], 0);
2390
- }
2391
-
2392
- input.on('paste.xdsoft', function (event) {
2393
- // couple options here
2394
- // 1. return false - tell them they can't paste
2395
- // 2. insert over current characters - minimal validation
2396
- // 3. full fledged parsing and validation
2397
- // let's go option 2 for now
2398
-
2399
- // fires multiple times for some reason
2400
-
2401
- // https://stackoverflow.com/a/30496488/1366033
2402
- var clipboardData = event.clipboardData || event.originalEvent.clipboardData || window.clipboardData,
2403
- pastedData = clipboardData.getData('text'),
2404
- val = this.value,
2405
- pos = this.selectionStart
2406
-
2407
- var valueBeforeCursor = val.substr(0, pos);
2408
- var valueAfterPaste = val.substr(pos + pastedData.length);
2409
-
2410
- val = valueBeforeCursor + pastedData + valueAfterPaste;
2411
- pos += pastedData.length;
2412
-
2413
- if (isValidValue(options.mask, val)) {
2414
- this.value = val;
2415
- setCaretPos(this, pos);
2416
- } else if ($.trim(val) === '') {
2417
- this.value = options.mask.replace(/[0-9]/g, '_');
2418
- } else {
2419
- input.trigger('error_input.xdsoft');
2420
- }
2421
-
2422
- event.preventDefault();
2423
- return false;
2424
- });
2425
-
2426
- input.on('keydown.xdsoft', function (event) {
2427
- var val = this.value,
2428
- key = event.which,
2429
- pos = this.selectionStart,
2430
- selEnd = this.selectionEnd,
2431
- hasSel = pos !== selEnd,
2432
- digit;
2433
-
2434
- // only alow these characters
2435
- if (((key >= KEY0 && key <= KEY9) ||
2436
- (key >= _KEY0 && key <= _KEY9)) ||
2437
- (key === BACKSPACE || key === DEL)) {
2438
-
2439
- // get char to insert which is new character or placeholder ('_')
2440
- digit = (key === BACKSPACE || key === DEL) ? '_' :
2441
- String.fromCharCode((_KEY0 <= key && key <= _KEY9) ? key - KEY0 : key);
2442
-
2443
- // we're deleting something, we're not at the start, and have normal cursor, move back one
2444
- // if we have a selection length, cursor actually sits behind deletable char, not in front
2445
- if (key === BACKSPACE && pos && !hasSel) {
2446
- pos -= 1;
2447
- }
2448
-
2449
- // don't stop on a separator, continue whatever direction you were going
2450
- // value char - keep incrementing position while on separator char and we still have room
2451
- // del char - keep decrementing position while on separator char and we still have room
2452
- while (true) {
2453
- var maskValueAtCurPos = options.mask.substr(pos, 1);
2454
- var posShorterThanMaskLength = pos < options.mask.length;
2455
- var posGreaterThanZero = pos > 0;
2456
- var notNumberOrPlaceholder = /[^0-9_]/;
2457
- var curPosOnSep = notNumberOrPlaceholder.test(maskValueAtCurPos);
2458
- var continueMovingPosition = curPosOnSep && posShorterThanMaskLength && posGreaterThanZero
2459
-
2460
- // if we hit a real char, stay where we are
2461
- if (!continueMovingPosition) break;
2462
-
2463
- // hitting backspace in a selection, you can possibly go back any further - go forward
2464
- pos += (key === BACKSPACE && !hasSel) ? -1 : 1;
2465
-
2466
- }
2467
-
2468
- if (event.metaKey) { // cmd has been pressed
2469
- pos = 0;
2470
- hasSel = true;
2471
- }
2472
-
2473
- if (hasSel) {
2474
- // pos might have moved so re-calc length
2475
- var selLength = selEnd - pos
2476
-
2477
- // if we have a selection length we will wipe out entire selection and replace with default template for that range
2478
- var defaultBlank = options.mask.replace(/[0-9]/g, '_');
2479
- var defaultBlankSelectionReplacement = defaultBlank.substr(pos, selLength);
2480
- var selReplacementRemainder = defaultBlankSelectionReplacement.substr(1) // might be empty
2481
-
2482
- var valueBeforeSel = val.substr(0, pos);
2483
- var insertChars = digit + selReplacementRemainder;
2484
- var charsAfterSelection = val.substr(pos + selLength);
2485
-
2486
- val = valueBeforeSel + insertChars + charsAfterSelection
2487
-
2488
- } else {
2489
- var valueBeforeCursor = val.substr(0, pos);
2490
- var insertChar = digit;
2491
- var valueAfterNextChar = val.substr(pos + 1);
2492
-
2493
- val = valueBeforeCursor + insertChar + valueAfterNextChar
2494
- }
2495
-
2496
- if ($.trim(val) === '') {
2497
- // if empty, set to default
2498
- val = defaultBlank
2499
- } else {
2500
- // if at the last character don't need to do anything
2501
- if (pos === options.mask.length) {
2502
- event.preventDefault();
2503
- return false;
2504
- }
2505
- }
2506
-
2507
- // resume cursor location
2508
- pos += (key === BACKSPACE) ? 0 : 1;
2509
- // don't stop on a separator, continue whatever direction you were going
2510
- while (/[^0-9_]/.test(options.mask.substr(pos, 1)) && pos < options.mask.length && pos > 0) {
2511
- pos += (key === BACKSPACE) ? 0 : 1;
2512
- }
2513
-
2514
- if (isValidValue(options.mask, val)) {
2515
- this.value = val;
2516
- setCaretPos(this, pos);
2517
- } else if ($.trim(val) === '') {
2518
- this.value = options.mask.replace(/[0-9]/g, '_');
2519
- } else {
2520
- input.trigger('error_input.xdsoft');
2521
- }
2522
- } else {
2523
- if (([AKEY, CKEY, VKEY, ZKEY, YKEY].indexOf(key) !== -1 && ctrlDown) || [ESC, ARROWUP, ARROWDOWN, ARROWLEFT, ARROWRIGHT, F5, CTRLKEY, TAB, ENTER].indexOf(key) !== -1) {
2524
- return true;
2525
- }
2526
- }
2527
-
2528
- event.preventDefault();
2529
- return false;
2530
- });
2531
- }
2532
- }
2533
-
2534
- _xdsoft_datetime.setCurrentTime(getCurrentValue());
2535
-
2536
- input
2537
- .data('xdsoft_datetimepicker', datetimepicker)
2538
- .on('open.xdsoft focusin.xdsoft mousedown.xdsoft touchstart', function () {
2539
- if (input.is(':disabled') || (input.data('xdsoft_datetimepicker').is(':visible') && options.closeOnInputClick)) {
2540
- return;
2541
- }
2542
- if (!options.openOnFocus) {
2543
- return;
2544
- }
2545
- clearTimeout(timer);
2546
- timer = setTimeout(function () {
2547
- if (input.is(':disabled')) {
2548
- return;
2549
- }
2550
-
2551
- triggerAfterOpen = true;
2552
- _xdsoft_datetime.setCurrentTime(getCurrentValue(), true);
2553
- if(options.mask) {
2554
- setMask(options);
2555
- }
2556
- datetimepicker.trigger('open.xdsoft');
2557
- }, 100);
2558
- })
2559
- .on('keydown.xdsoft', function (event) {
2560
- var elementSelector,
2561
- key = event.which;
2562
- if ([ENTER].indexOf(key) !== -1 && options.enterLikeTab) {
2563
- elementSelector = $("input:visible,textarea:visible,button:visible,a:visible");
2564
- datetimepicker.trigger('close.xdsoft');
2565
- elementSelector.eq(elementSelector.index(this) + 1).focus();
2566
- return false;
2567
- }
2568
- if ([TAB].indexOf(key) !== -1) {
2569
- datetimepicker.trigger('close.xdsoft');
2570
- return true;
2571
- }
2572
- })
2573
- .on('blur.xdsoft', function () {
2574
- datetimepicker.trigger('close.xdsoft');
2575
- });
2576
- };
2577
- destroyDateTimePicker = function (input) {
2578
- var datetimepicker = input.data('xdsoft_datetimepicker');
2579
- if (datetimepicker) {
2580
- datetimepicker.data('xdsoft_datetime', null);
2581
- datetimepicker.remove();
2582
- input
2583
- .data('xdsoft_datetimepicker', null)
2584
- .off('.xdsoft');
2585
- $(options.contentWindow).off('resize.xdsoft');
2586
- $([options.contentWindow, options.ownerDocument.body]).off('mousedown.xdsoft touchstart');
2587
- if (input.unmousewheel) {
2588
- input.unmousewheel();
2589
- }
2590
- }
2591
- };
2592
- $(options.ownerDocument)
2593
- .off('keydown.xdsoftctrl keyup.xdsoftctrl')
2594
- .off('keydown.xdsoftcmd keyup.xdsoftcmd')
2595
- .on('keydown.xdsoftctrl', function (e) {
2596
- if (e.keyCode === CTRLKEY) {
2597
- ctrlDown = true;
2598
- }
2599
- })
2600
- .on('keyup.xdsoftctrl', function (e) {
2601
- if (e.keyCode === CTRLKEY) {
2602
- ctrlDown = false;
2603
- }
2604
- })
2605
- .on('keydown.xdsoftcmd', function (e) {
2606
- if (e.keyCode === CMDKEY) {
2607
- cmdDown = true;
2608
- }
2609
- })
2610
- .on('keyup.xdsoftcmd', function (e) {
2611
- if (e.keyCode === CMDKEY) {
2612
- cmdDown = false;
2613
- }
2614
- });
2615
-
2616
- this.each(function () {
2617
- var datetimepicker = $(this).data('xdsoft_datetimepicker'), $input;
2618
- if (datetimepicker) {
2619
- if ($.type(opt) === 'string') {
2620
- switch (opt) {
2621
- case 'show':
2622
- $(this).select().focus();
2623
- datetimepicker.trigger('open.xdsoft');
2624
- break;
2625
- case 'hide':
2626
- datetimepicker.trigger('close.xdsoft');
2627
- break;
2628
- case 'toggle':
2629
- datetimepicker.trigger('toggle.xdsoft');
2630
- break;
2631
- case 'destroy':
2632
- destroyDateTimePicker($(this));
2633
- break;
2634
- case 'reset':
2635
- this.value = this.defaultValue;
2636
- if (!this.value || !datetimepicker.data('xdsoft_datetime').isValidDate(dateHelper.parseDate(this.value, options.format))) {
2637
- datetimepicker.data('changed', false);
2638
- }
2639
- datetimepicker.data('xdsoft_datetime').setCurrentTime(this.value);
2640
- break;
2641
- case 'validate':
2642
- $input = datetimepicker.data('input');
2643
- $input.trigger('blur.xdsoft');
2644
- break;
2645
- default:
2646
- if (datetimepicker[opt] && $.isFunction(datetimepicker[opt])) {
2647
- result = datetimepicker[opt](opt2);
2648
- }
2649
- }
2650
- } else {
2651
- datetimepicker
2652
- .setOptions(opt);
2653
- }
2654
- return 0;
2655
- }
2656
- if ($.type(opt) !== 'string') {
2657
- if (!options.lazyInit || options.open || options.inline) {
2658
- createDateTimePicker($(this));
2659
- } else {
2660
- lazyInit($(this));
2661
- }
2662
- }
2663
- });
2664
-
2665
- return result;
2666
- };
2667
-
2668
- $.fn.datetimepicker.defaults = default_options;
2669
-
2670
- function HighlightedDate(date, desc, style) {
2671
- "use strict";
2672
- this.date = date;
2673
- this.desc = desc;
2674
- this.style = style;
2675
- }
2676
- };
2677
- ;(function (factory) {
2678
- if ( typeof define === 'function' && define.amd ) {
2679
- // AMD. Register as an anonymous module.
2680
- define(['jquery', 'jquery-mousewheel'], factory);
2681
- } else if (typeof exports === 'object') {
2682
- // Node/CommonJS style for Browserify
2683
- module.exports = factory(require('jquery'));;
2684
- } else {
2685
- // Browser globals
2686
- factory(jQuery);
2687
- }
2688
- }(datetimepickerFactory));
2689
-
2690
-
2691
- /*!
2692
- * jQuery Mousewheel 3.1.13
2693
- *
2694
- * Copyright jQuery Foundation and other contributors
2695
- * Released under the MIT license
2696
- * http://jquery.org/license
2697
- */
2698
-
2699
- (function (factory) {
2700
- if ( typeof define === 'function' && define.amd ) {
2701
- // AMD. Register as an anonymous module.
2702
- define(['jquery'], factory);
2703
- } else if (typeof exports === 'object') {
2704
- // Node/CommonJS style for Browserify
2705
- module.exports = factory;
2706
- } else {
2707
- // Browser globals
2708
- factory(jQuery);
2709
- }
2710
- }(function ($) {
2711
-
2712
- var toFix = ['wheel', 'mousewheel', 'DOMMouseScroll', 'MozMousePixelScroll'],
2713
- toBind = ( 'onwheel' in document || document.documentMode >= 9 ) ?
2714
- ['wheel'] : ['mousewheel', 'DomMouseScroll', 'MozMousePixelScroll'],
2715
- slice = Array.prototype.slice,
2716
- nullLowestDeltaTimeout, lowestDelta;
2717
-
2718
- if ( $.event.fixHooks ) {
2719
- for ( var i = toFix.length; i; ) {
2720
- $.event.fixHooks[ toFix[--i] ] = $.event.mouseHooks;
2721
- }
2722
- }
2723
-
2724
- var special = $.event.special.mousewheel = {
2725
- version: '3.1.12',
2726
-
2727
- setup: function() {
2728
- if ( this.addEventListener ) {
2729
- for ( var i = toBind.length; i; ) {
2730
- this.addEventListener( toBind[--i], handler, false );
2731
- }
2732
- } else {
2733
- this.onmousewheel = handler;
2734
- }
2735
- // Store the line height and page height for this particular element
2736
- $.data(this, 'mousewheel-line-height', special.getLineHeight(this));
2737
- $.data(this, 'mousewheel-page-height', special.getPageHeight(this));
2738
- },
2739
-
2740
- teardown: function() {
2741
- if ( this.removeEventListener ) {
2742
- for ( var i = toBind.length; i; ) {
2743
- this.removeEventListener( toBind[--i], handler, false );
2744
- }
2745
- } else {
2746
- this.onmousewheel = null;
2747
- }
2748
- // Clean up the data we added to the element
2749
- $.removeData(this, 'mousewheel-line-height');
2750
- $.removeData(this, 'mousewheel-page-height');
2751
- },
2752
-
2753
- getLineHeight: function(elem) {
2754
- var $elem = $(elem),
2755
- $parent = $elem['offsetParent' in $.fn ? 'offsetParent' : 'parent']();
2756
- if (!$parent.length) {
2757
- $parent = $('body');
2758
- }
2759
- return parseInt($parent.css('fontSize'), 10) || parseInt($elem.css('fontSize'), 10) || 16;
2760
- },
2761
-
2762
- getPageHeight: function(elem) {
2763
- return $(elem).height();
2764
- },
2765
-
2766
- settings: {
2767
- adjustOldDeltas: true, // see shouldAdjustOldDeltas() below
2768
- normalizeOffset: true // calls getBoundingClientRect for each event
2769
- }
2770
- };
2771
-
2772
- $.fn.extend({
2773
- mousewheel: function(fn) {
2774
- return fn ? this.bind('mousewheel', fn) : this.trigger('mousewheel');
2775
- },
2776
-
2777
- unmousewheel: function(fn) {
2778
- return this.unbind('mousewheel', fn);
2779
- }
2780
- });
2781
-
2782
-
2783
- function handler(event) {
2784
- var orgEvent = event || window.event,
2785
- args = slice.call(arguments, 1),
2786
- delta = 0,
2787
- deltaX = 0,
2788
- deltaY = 0,
2789
- absDelta = 0,
2790
- offsetX = 0,
2791
- offsetY = 0;
2792
- event = $.event.fix(orgEvent);
2793
- event.type = 'mousewheel';
2794
-
2795
- // Old school scrollwheel delta
2796
- if ( 'detail' in orgEvent ) { deltaY = orgEvent.detail * -1; }
2797
- if ( 'wheelDelta' in orgEvent ) { deltaY = orgEvent.wheelDelta; }
2798
- if ( 'wheelDeltaY' in orgEvent ) { deltaY = orgEvent.wheelDeltaY; }
2799
- if ( 'wheelDeltaX' in orgEvent ) { deltaX = orgEvent.wheelDeltaX * -1; }
2800
-
2801
- // Firefox < 17 horizontal scrolling related to DOMMouseScroll event
2802
- if ( 'axis' in orgEvent && orgEvent.axis === orgEvent.HORIZONTAL_AXIS ) {
2803
- deltaX = deltaY * -1;
2804
- deltaY = 0;
2805
- }
2806
-
2807
- // Set delta to be deltaY or deltaX if deltaY is 0 for backwards compatabilitiy
2808
- delta = deltaY === 0 ? deltaX : deltaY;
2809
-
2810
- // New school wheel delta (wheel event)
2811
- if ( 'deltaY' in orgEvent ) {
2812
- deltaY = orgEvent.deltaY * -1;
2813
- delta = deltaY;
2814
- }
2815
- if ( 'deltaX' in orgEvent ) {
2816
- deltaX = orgEvent.deltaX;
2817
- if ( deltaY === 0 ) { delta = deltaX * -1; }
2818
- }
2819
-
2820
- // No change actually happened, no reason to go any further
2821
- if ( deltaY === 0 && deltaX === 0 ) { return; }
2822
-
2823
- // Need to convert lines and pages to pixels if we aren't already in pixels
2824
- // There are three delta modes:
2825
- // * deltaMode 0 is by pixels, nothing to do
2826
- // * deltaMode 1 is by lines
2827
- // * deltaMode 2 is by pages
2828
- if ( orgEvent.deltaMode === 1 ) {
2829
- var lineHeight = $.data(this, 'mousewheel-line-height');
2830
- delta *= lineHeight;
2831
- deltaY *= lineHeight;
2832
- deltaX *= lineHeight;
2833
- } else if ( orgEvent.deltaMode === 2 ) {
2834
- var pageHeight = $.data(this, 'mousewheel-page-height');
2835
- delta *= pageHeight;
2836
- deltaY *= pageHeight;
2837
- deltaX *= pageHeight;
2838
- }
2839
-
2840
- // Store lowest absolute delta to normalize the delta values
2841
- absDelta = Math.max( Math.abs(deltaY), Math.abs(deltaX) );
2842
-
2843
- if ( !lowestDelta || absDelta < lowestDelta ) {
2844
- lowestDelta = absDelta;
2845
-
2846
- // Adjust older deltas if necessary
2847
- if ( shouldAdjustOldDeltas(orgEvent, absDelta) ) {
2848
- lowestDelta /= 40;
2849
- }
2850
- }
2851
-
2852
- // Adjust older deltas if necessary
2853
- if ( shouldAdjustOldDeltas(orgEvent, absDelta) ) {
2854
- // Divide all the things by 40!
2855
- delta /= 40;
2856
- deltaX /= 40;
2857
- deltaY /= 40;
2858
- }
2859
-
2860
- // Get a whole, normalized value for the deltas
2861
- delta = Math[ delta >= 1 ? 'floor' : 'ceil' ](delta / lowestDelta);
2862
- deltaX = Math[ deltaX >= 1 ? 'floor' : 'ceil' ](deltaX / lowestDelta);
2863
- deltaY = Math[ deltaY >= 1 ? 'floor' : 'ceil' ](deltaY / lowestDelta);
2864
-
2865
- // Normalise offsetX and offsetY properties
2866
- if ( special.settings.normalizeOffset && this.getBoundingClientRect ) {
2867
- var boundingRect = this.getBoundingClientRect();
2868
- offsetX = event.clientX - boundingRect.left;
2869
- offsetY = event.clientY - boundingRect.top;
2870
- }
2871
-
2872
- // Add information to the event object
2873
- event.deltaX = deltaX;
2874
- event.deltaY = deltaY;
2875
- event.deltaFactor = lowestDelta;
2876
- event.offsetX = offsetX;
2877
- event.offsetY = offsetY;
2878
- // Go ahead and set deltaMode to 0 since we converted to pixels
2879
- // Although this is a little odd since we overwrite the deltaX/Y
2880
- // properties with normalized deltas.
2881
- event.deltaMode = 0;
2882
-
2883
- // Add event and delta to the front of the arguments
2884
- args.unshift(event, delta, deltaX, deltaY);
2885
-
2886
- // Clearout lowestDelta after sometime to better
2887
- // handle multiple device types that give different
2888
- // a different lowestDelta
2889
- // Ex: trackpad = 3 and mouse wheel = 120
2890
- if (nullLowestDeltaTimeout) { clearTimeout(nullLowestDeltaTimeout); }
2891
- nullLowestDeltaTimeout = setTimeout(nullLowestDelta, 200);
2892
-
2893
- return ($.event.dispatch || $.event.handle).apply(this, args);
2894
- }
2895
-
2896
- function nullLowestDelta() {
2897
- lowestDelta = null;
2898
- }
2899
-
2900
- function shouldAdjustOldDeltas(orgEvent, absDelta) {
2901
- // If this is an older event and the delta is divisable by 120,
2902
- // then we are assuming that the browser is treating this as an
2903
- // older mouse wheel event and that we should divide the deltas
2904
- // by 40 to try and get a more usable deltaFactor.
2905
- // Side note, this actually impacts the reported scroll distance
2906
- // in older browsers and can cause scrolling to be slower than native.
2907
- // Turn this off by setting $.event.special.mousewheel.settings.adjustOldDeltas to false.
2908
- return special.settings.adjustOldDeltas && orgEvent.type === 'mousewheel' && absDelta % 120 === 0;
2909
- }
2910
-
2911
- }));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/vendor/datepicker/jquery.datetimepicker.full.min.js DELETED
@@ -1 +0,0 @@
1
- var DateFormatter;!function(){"use strict";var D,s,r,a,n;D=function(e,t){return"string"==typeof e&&"string"==typeof t&&e.toLowerCase()===t.toLowerCase()},s=function(e,t,a){var n=a||"0",r=e.toString();return r.length<t?s(n+r,t):r},r=function(e){var t,a;for(e=e||{},t=1;t<arguments.length;t++)if(a=arguments[t])for(var n in a)a.hasOwnProperty(n)&&("object"==typeof a[n]?r(e[n],a[n]):e[n]=a[n]);return e},a=function(e,t){for(var a=0;a<t.length;a++)if(t[a].toLowerCase()===e.toLowerCase())return a;return-1},n={dateSettings:{days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],meridiem:["AM","PM"],ordinal:function(e){var t=e%10,a={1:"st",2:"nd",3:"rd"};return 1!==Math.floor(e%100/10)&&a[t]?a[t]:"th"}},separators:/[ \-+\/\.T:@]/g,validParts:/[dDjlNSwzWFmMntLoYyaABgGhHisueTIOPZcrU]/g,intParts:/[djwNzmnyYhHgGis]/g,tzParts:/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,tzClip:/[^-+\dA-Z]/g},(DateFormatter=function(e){var t=this,a=r(n,e);t.dateSettings=a.dateSettings,t.separators=a.separators,t.validParts=a.validParts,t.intParts=a.intParts,t.tzParts=a.tzParts,t.tzClip=a.tzClip}).prototype={constructor:DateFormatter,getMonth:function(e){var t;return 0===(t=a(e,this.dateSettings.monthsShort)+1)&&(t=a(e,this.dateSettings.months)+1),t},parseDate:function(e,t){var a,n,r,o,i,s,d,u,l,f,c=this,m=!1,h=!1,g=c.dateSettings,p={date:null,year:null,month:null,day:null,hour:0,min:0,sec:0};if(!e)return null;if(e instanceof Date)return e;if("U"===t)return(r=parseInt(e))?new Date(1e3*r):e;switch(typeof e){case"number":return new Date(e);case"string":break;default:return null}if(!(a=t.match(c.validParts))||0===a.length)throw new Error("Invalid date format definition.");for(n=e.replace(c.separators,"\0").split("\0"),r=0;r<n.length;r++)switch(o=n[r],i=parseInt(o),a[r]){case"y":case"Y":if(!i)return null;l=o.length,p.year=2===l?parseInt((i<70?"20":"19")+o):i,m=!0;break;case"m":case"n":case"M":case"F":if(isNaN(i)){if(!(0<(s=c.getMonth(o))))return null;p.month=s}else{if(!(1<=i&&i<=12))return null;p.month=i}m=!0;break;case"d":case"j":if(!(1<=i&&i<=31))return null;p.day=i,m=!0;break;case"g":case"h":if(f=n[d=-1<a.indexOf("a")?a.indexOf("a"):-1<a.indexOf("A")?a.indexOf("A"):-1],-1<d)u=D(f,g.meridiem[0])?0:D(f,g.meridiem[1])?12:-1,1<=i&&i<=12&&-1<u?p.hour=i+u-1:0<=i&&i<=23&&(p.hour=i);else{if(!(0<=i&&i<=23))return null;p.hour=i}h=!0;break;case"G":case"H":if(!(0<=i&&i<=23))return null;p.hour=i,h=!0;break;case"i":if(!(0<=i&&i<=59))return null;p.min=i,h=!0;break;case"s":if(!(0<=i&&i<=59))return null;p.sec=i,h=!0}if(!0===m&&p.year&&p.month&&p.day)p.date=new Date(p.year,p.month-1,p.day,p.hour,p.min,p.sec,0);else{if(!0!==h)return null;p.date=new Date(0,0,0,p.hour,p.min,p.sec,0)}return p.date},guessDate:function(e,t){if("string"!=typeof e)return e;var a,n,r,o,i,s,d=e.replace(this.separators,"\0").split("\0"),u=t.match(this.validParts),l=new Date,f=0;if(!/^[djmn]/g.test(u[0]))return e;for(r=0;r<d.length;r++){if(f=2,i=d[r],s=parseInt(i.substr(0,2)),isNaN(s))return null;switch(r){case 0:"m"===u[0]||"n"===u[0]?l.setMonth(s-1):l.setDate(s);break;case 1:"m"===u[0]||"n"===u[0]?l.setDate(s):l.setMonth(s-1);break;case 2:if(n=l.getFullYear(),f=(a=i.length)<4?a:4,!(n=parseInt(a<4?n.toString().substr(0,4-a)+i:i.substr(0,4))))return null;l.setFullYear(n);break;case 3:l.setHours(s);break;case 4:l.setMinutes(s);break;case 5:l.setSeconds(s)}0<(o=i.substr(f)).length&&d.splice(r+1,0,o)}return l},parseFormat:function(e,n){var a,t=this,r=t.dateSettings,o=/\\?(.?)/gi,i=function(e,t){return a[e]?a[e]():t};return a={d:function(){return s(a.j(),2)},D:function(){return r.daysShort[a.w()]},j:function(){return n.getDate()},l:function(){return r.days[a.w()]},N:function(){return a.w()||7},w:function(){return n.getDay()},z:function(){var e=new Date(a.Y(),a.n()-1,a.j()),t=new Date(a.Y(),0,1);return Math.round((e-t)/864e5)},W:function(){var e=new Date(a.Y(),a.n()-1,a.j()-a.N()+3),t=new Date(e.getFullYear(),0,4);return s(1+Math.round((e-t)/864e5/7),2)},F:function(){return r.months[n.getMonth()]},m:function(){return s(a.n(),2)},M:function(){return r.monthsShort[n.getMonth()]},n:function(){return n.getMonth()+1},t:function(){return new Date(a.Y(),a.n(),0).getDate()},L:function(){var e=a.Y();return e%4==0&&e%100!=0||e%400==0?1:0},o:function(){var e=a.n(),t=a.W();return a.Y()+(12===e&&t<9?1:1===e&&9<t?-1:0)},Y:function(){return n.getFullYear()},y:function(){return a.Y().toString().slice(-2)},a:function(){return a.A().toLowerCase()},A:function(){var e=a.G()<12?0:1;return r.meridiem[e]},B:function(){var e=3600*n.getUTCHours(),t=60*n.getUTCMinutes(),a=n.getUTCSeconds();return s(Math.floor((e+t+a+3600)/86.4)%1e3,3)},g:function(){return a.G()%12||12},G:function(){return n.getHours()},h:function(){return s(a.g(),2)},H:function(){return s(a.G(),2)},i:function(){return s(n.getMinutes(),2)},s:function(){return s(n.getSeconds(),2)},u:function(){return s(1e3*n.getMilliseconds(),6)},e:function(){return/\((.*)\)/.exec(String(n))[1]||"Coordinated Universal Time"},I:function(){return new Date(a.Y(),0)-Date.UTC(a.Y(),0)!=new Date(a.Y(),6)-Date.UTC(a.Y(),6)?1:0},O:function(){var e=n.getTimezoneOffset(),t=Math.abs(e);return(0<e?"-":"+")+s(100*Math.floor(t/60)+t%60,4)},P:function(){var e=a.O();return e.substr(0,3)+":"+e.substr(3,2)},T:function(){return(String(n).match(t.tzParts)||[""]).pop().replace(t.tzClip,"")||"UTC"},Z:function(){return 60*-n.getTimezoneOffset()},c:function(){return"Y-m-d\\TH:i:sP".replace(o,i)},r:function(){return"D, d M Y H:i:s O".replace(o,i)},U:function(){return n.getTime()/1e3||0}},i(e,e)},formatDate:function(e,t){var a,n,r,o,i,s="";if("string"==typeof e&&!(e=this.parseDate(e,t)))return null;if(e instanceof Date){for(r=t.length,a=0;a<r;a++)"S"!==(i=t.charAt(a))&&"\\"!==i&&(0<a&&"\\"===t.charAt(a-1)?s+=i:(o=this.parseFormat(i,e),a!==r-1&&this.intParts.test(i)&&"S"===t.charAt(a+1)&&(n=parseInt(o)||0,o+=this.dateSettings.ordinal(n)),s+=o));return s}return""}}}();var datetimepickerFactory=function(L){"use strict";var s={i18n:{ar:{months:["كانون الثاني","شباط","آذار","نيسان","مايو","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول"],dayOfWeekShort:["ن","ث","ع","خ","ج","س","ح"],dayOfWeek:["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت","الأحد"]},ro:{months:["Ianuarie","Februarie","Martie","Aprilie","Mai","Iunie","Iulie","August","Septembrie","Octombrie","Noiembrie","Decembrie"],dayOfWeekShort:["Du","Lu","Ma","Mi","Jo","Vi","Sâ"],dayOfWeek:["Duminică","Luni","Marţi","Miercuri","Joi","Vineri","Sâmbătă"]},id:{months:["Januari","Februari","Maret","April","Mei","Juni","Juli","Agustus","September","Oktober","November","Desember"],dayOfWeekShort:["Min","Sen","Sel","Rab","Kam","Jum","Sab"],dayOfWeek:["Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu"]},is:{months:["Janúar","Febrúar","Mars","Apríl","Maí","Júní","Júlí","Ágúst","September","Október","Nóvember","Desember"],dayOfWeekShort:["Sun","Mán","Þrið","Mið","Fim","Fös","Lau"],dayOfWeek:["Sunnudagur","Mánudagur","Þriðjudagur","Miðvikudagur","Fimmtudagur","Föstudagur","Laugardagur"]},bg:{months:["Януари","Февруари","Март","Април","Май","Юни","Юли","Август","Септември","Октомври","Ноември","Декември"],dayOfWeekShort:["Нд","Пн","Вт","Ср","Чт","Пт","Сб"],dayOfWeek:["Неделя","Понеделник","Вторник","Сряда","Четвъртък","Петък","Събота"]},fa:{months:["فروردین","اردیبهشت","خرداد","تیر","مرداد","شهریور","مهر","آبان","آذر","دی","بهمن","اسفند"],dayOfWeekShort:["یکشنبه","دوشنبه","سه شنبه","چهارشنبه","پنجشنبه","جمعه","شنبه"],dayOfWeek:["یک‌شنبه","دوشنبه","سه‌شنبه","چهارشنبه","پنج‌شنبه","جمعه","شنبه","یک‌شنبه"]},ru:{months:["Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"],dayOfWeekShort:["Вс","Пн","Вт","Ср","Чт","Пт","Сб"],dayOfWeek:["Воскресенье","Понедельник","Вторник","Среда","Четверг","Пятница","Суббота"]},uk:{months:["Січень","Лютий","Березень","Квітень","Травень","Червень","Липень","Серпень","Вересень","Жовтень","Листопад","Грудень"],dayOfWeekShort:["Ндл","Пнд","Втр","Срд","Чтв","Птн","Сбт"],dayOfWeek:["Неділя","Понеділок","Вівторок","Середа","Четвер","П'ятниця","Субота"]},en:{months:["January","February","March","April","May","June","July","August","September","October","November","December"],dayOfWeekShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayOfWeek:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},el:{months:["Ιανουάριος","Φεβρουάριος","Μάρτιος","Απρίλιος","Μάιος","Ιούνιος","Ιούλιος","Αύγουστος","Σεπτέμβριος","Οκτώβριος","Νοέμβριος","Δεκέμβριος"],dayOfWeekShort:["Κυρ","Δευ","Τρι","Τετ","Πεμ","Παρ","Σαβ"],dayOfWeek:["Κυριακή","Δευτέρα","Τρίτη","Τετάρτη","Πέμπτη","Παρασκευή","Σάββατο"]},de:{months:["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],dayOfWeekShort:["So","Mo","Di","Mi","Do","Fr","Sa"],dayOfWeek:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"]},nl:{months:["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],dayOfWeekShort:["zo","ma","di","wo","do","vr","za"],dayOfWeek:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"]},tr:{months:["Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık"],dayOfWeekShort:["Paz","Pts","Sal","Çar","Per","Cum","Cts"],dayOfWeek:["Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi"]},fr:{months:["Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre"],dayOfWeekShort:["Dim","Lun","Mar","Mer","Jeu","Ven","Sam"],dayOfWeek:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"]},es:{months:["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"],dayOfWeekShort:["Dom","Lun","Mar","Mié","Jue","Vie","Sáb"],dayOfWeek:["Domingo","Lunes","Martes","Miércoles","Jueves","Viernes","Sábado"]},th:{months:["มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม"],dayOfWeekShort:["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."],dayOfWeek:["อาทิตย์","จันทร์","อังคาร","พุธ","พฤหัส","ศุกร์","เสาร์","อาทิตย์"]},pl:{months:["styczeń","luty","marzec","kwiecień","maj","czerwiec","lipiec","sierpień","wrzesień","październik","listopad","grudzień"],dayOfWeekShort:["nd","pn","wt","śr","cz","pt","sb"],dayOfWeek:["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"]},pt:{months:["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],dayOfWeekShort:["Dom","Seg","Ter","Qua","Qui","Sex","Sab"],dayOfWeek:["Domingo","Segunda","Terça","Quarta","Quinta","Sexta","Sábado"]},ch:{months:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],dayOfWeekShort:["日","一","二","三","四","五","六"]},se:{months:["Januari","Februari","Mars","April","Maj","Juni","Juli","Augusti","September","Oktober","November","December"],dayOfWeekShort:["Sön","Mån","Tis","Ons","Tor","Fre","Lör"]},km:{months:["មករា​","កុម្ភៈ","មិនា​","មេសា​","ឧសភា​","មិថុនា​","កក្កដា​","សីហា​","កញ្ញា​","តុលា​","វិច្ឆិកា","ធ្នូ​"],dayOfWeekShort:["អាទិ​","ច័ន្ទ​","អង្គារ​","ពុធ​","ព្រហ​​","សុក្រ​","សៅរ៍"],dayOfWeek:["អាទិត្យ​","ច័ន្ទ​","អង្គារ​","ពុធ​","ព្រហស្បតិ៍​","សុក្រ​","សៅរ៍"]},kr:{months:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],dayOfWeekShort:["일","월","화","수","목","금","토"],dayOfWeek:["일요일","월요일","화요일","수요일","목요일","금요일","토요일"]},it:{months:["Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"],dayOfWeekShort:["Dom","Lun","Mar","Mer","Gio","Ven","Sab"],dayOfWeek:["Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato"]},da:{months:["Januar","Februar","Marts","April","Maj","Juni","Juli","August","September","Oktober","November","December"],dayOfWeekShort:["Søn","Man","Tir","Ons","Tor","Fre","Lør"],dayOfWeek:["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"]},no:{months:["Januar","Februar","Mars","April","Mai","Juni","Juli","August","September","Oktober","November","Desember"],dayOfWeekShort:["Søn","Man","Tir","Ons","Tor","Fre","Lør"],dayOfWeek:["Søndag","Mandag","Tirsdag","Onsdag","Torsdag","Fredag","Lørdag"]},ja:{months:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],dayOfWeekShort:["日","月","火","水","木","金","土"],dayOfWeek:["日曜","月曜","火曜","水曜","木曜","金曜","土曜"]},vi:{months:["Tháng 1","Tháng 2","Tháng 3","Tháng 4","Tháng 5","Tháng 6","Tháng 7","Tháng 8","Tháng 9","Tháng 10","Tháng 11","Tháng 12"],dayOfWeekShort:["CN","T2","T3","T4","T5","T6","T7"],dayOfWeek:["Chủ nhật","Thứ hai","Thứ ba","Thứ tư","Thứ năm","Thứ sáu","Thứ bảy"]},sl:{months:["Januar","Februar","Marec","April","Maj","Junij","Julij","Avgust","September","Oktober","November","December"],dayOfWeekShort:["Ned","Pon","Tor","Sre","Čet","Pet","Sob"],dayOfWeek:["Nedelja","Ponedeljek","Torek","Sreda","Četrtek","Petek","Sobota"]},cs:{months:["Leden","Únor","Březen","Duben","Květen","Červen","Červenec","Srpen","Září","Říjen","Listopad","Prosinec"],dayOfWeekShort:["Ne","Po","Út","St","Čt","Pá","So"]},hu:{months:["Január","Február","Március","Április","Május","Június","Július","Augusztus","Szeptember","Október","November","December"],dayOfWeekShort:["Va","Hé","Ke","Sze","Cs","Pé","Szo"],dayOfWeek:["vasárnap","hétfő","kedd","szerda","csütörtök","péntek","szombat"]},az:{months:["Yanvar","Fevral","Mart","Aprel","May","Iyun","Iyul","Avqust","Sentyabr","Oktyabr","Noyabr","Dekabr"],dayOfWeekShort:["B","Be","Ça","Ç","Ca","C","Ş"],dayOfWeek:["Bazar","Bazar ertəsi","Çərşənbə axşamı","Çərşənbə","Cümə axşamı","Cümə","Şənbə"]},bs:{months:["Januar","Februar","Mart","April","Maj","Jun","Jul","Avgust","Septembar","Oktobar","Novembar","Decembar"],dayOfWeekShort:["Ned","Pon","Uto","Sri","Čet","Pet","Sub"],dayOfWeek:["Nedjelja","Ponedjeljak","Utorak","Srijeda","Četvrtak","Petak","Subota"]},ca:{months:["Gener","Febrer","Març","Abril","Maig","Juny","Juliol","Agost","Setembre","Octubre","Novembre","Desembre"],dayOfWeekShort:["Dg","Dl","Dt","Dc","Dj","Dv","Ds"],dayOfWeek:["Diumenge","Dilluns","Dimarts","Dimecres","Dijous","Divendres","Dissabte"]},"en-GB":{months:["January","February","March","April","May","June","July","August","September","October","November","December"],dayOfWeekShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayOfWeek:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},et:{months:["Jaanuar","Veebruar","Märts","Aprill","Mai","Juuni","Juuli","August","September","Oktoober","November","Detsember"],dayOfWeekShort:["P","E","T","K","N","R","L"],dayOfWeek:["Pühapäev","Esmaspäev","Teisipäev","Kolmapäev","Neljapäev","Reede","Laupäev"]},eu:{months:["Urtarrila","Otsaila","Martxoa","Apirila","Maiatza","Ekaina","Uztaila","Abuztua","Iraila","Urria","Azaroa","Abendua"],dayOfWeekShort:["Ig.","Al.","Ar.","Az.","Og.","Or.","La."],dayOfWeek:["Igandea","Astelehena","Asteartea","Asteazkena","Osteguna","Ostirala","Larunbata"]},fi:{months:["Tammikuu","Helmikuu","Maaliskuu","Huhtikuu","Toukokuu","Kesäkuu","Heinäkuu","Elokuu","Syyskuu","Lokakuu","Marraskuu","Joulukuu"],dayOfWeekShort:["Su","Ma","Ti","Ke","To","Pe","La"],dayOfWeek:["sunnuntai","maanantai","tiistai","keskiviikko","torstai","perjantai","lauantai"]},gl:{months:["Xan","Feb","Maz","Abr","Mai","Xun","Xul","Ago","Set","Out","Nov","Dec"],dayOfWeekShort:["Dom","Lun","Mar","Mer","Xov","Ven","Sab"],dayOfWeek:["Domingo","Luns","Martes","Mércores","Xoves","Venres","Sábado"]},hr:{months:["Siječanj","Veljača","Ožujak","Travanj","Svibanj","Lipanj","Srpanj","Kolovoz","Rujan","Listopad","Studeni","Prosinac"],dayOfWeekShort:["Ned","Pon","Uto","Sri","Čet","Pet","Sub"],dayOfWeek:["Nedjelja","Ponedjeljak","Utorak","Srijeda","Četvrtak","Petak","Subota"]},ko:{months:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],dayOfWeekShort:["일","월","화","수","목","금","토"],dayOfWeek:["일요일","월요일","화요일","수요일","목요일","금요일","토요일"]},lt:{months:["Sausio","Vasario","Kovo","Balandžio","Gegužės","Birželio","Liepos","Rugpjūčio","Rugsėjo","Spalio","Lapkričio","Gruodžio"],dayOfWeekShort:["Sek","Pir","Ant","Tre","Ket","Pen","Šeš"],dayOfWeek:["Sekmadienis","Pirmadienis","Antradienis","Trečiadienis","Ketvirtadienis","Penktadienis","Šeštadienis"]},lv:{months:["Janvāris","Februāris","Marts","Aprīlis ","Maijs","Jūnijs","Jūlijs","Augusts","Septembris","Oktobris","Novembris","Decembris"],dayOfWeekShort:["Sv","Pr","Ot","Tr","Ct","Pk","St"],dayOfWeek:["Svētdiena","Pirmdiena","Otrdiena","Trešdiena","Ceturtdiena","Piektdiena","Sestdiena"]},mk:{months:["јануари","февруари","март","април","мај","јуни","јули","август","септември","октомври","ноември","декември"],dayOfWeekShort:["нед","пон","вто","сре","чет","пет","саб"],dayOfWeek:["Недела","Понеделник","Вторник","Среда","Четврток","Петок","Сабота"]},mn:{months:["1-р сар","2-р сар","3-р сар","4-р сар","5-р сар","6-р сар","7-р сар","8-р сар","9-р сар","10-р сар","11-р сар","12-р сар"],dayOfWeekShort:["Дав","Мяг","Лха","Пүр","Бсн","Бям","Ням"],dayOfWeek:["Даваа","Мягмар","Лхагва","Пүрэв","Баасан","Бямба","Ням"]},"pt-BR":{months:["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],dayOfWeekShort:["Dom","Seg","Ter","Qua","Qui","Sex","Sáb"],dayOfWeek:["Domingo","Segunda","Terça","Quarta","Quinta","Sexta","Sábado"]},sk:{months:["Január","Február","Marec","Apríl","Máj","Jún","Júl","August","September","Október","November","December"],dayOfWeekShort:["Ne","Po","Ut","St","Št","Pi","So"],dayOfWeek:["Nedeľa","Pondelok","Utorok","Streda","Štvrtok","Piatok","Sobota"]},sq:{months:["Janar","Shkurt","Mars","Prill","Maj","Qershor","Korrik","Gusht","Shtator","Tetor","Nëntor","Dhjetor"],dayOfWeekShort:["Die","Hën","Mar","Mër","Enj","Pre","Shtu"],dayOfWeek:["E Diel","E Hënë","E Martē","E Mërkurë","E Enjte","E Premte","E Shtunë"]},"sr-YU":{months:["Januar","Februar","Mart","April","Maj","Jun","Jul","Avgust","Septembar","Oktobar","Novembar","Decembar"],dayOfWeekShort:["Ned","Pon","Uto","Sre","čet","Pet","Sub"],dayOfWeek:["Nedelja","Ponedeljak","Utorak","Sreda","Četvrtak","Petak","Subota"]},sr:{months:["јануар","фебруар","март","април","мај","јун","јул","август","септембар","октобар","новембар","децембар"],dayOfWeekShort:["нед","пон","уто","сре","чет","пет","суб"],dayOfWeek:["Недеља","Понедељак","Уторак","Среда","Четвртак","Петак","Субота"]},sv:{months:["Januari","Februari","Mars","April","Maj","Juni","Juli","Augusti","September","Oktober","November","December"],dayOfWeekShort:["Sön","Mån","Tis","Ons","Tor","Fre","Lör"],dayOfWeek:["Söndag","Måndag","Tisdag","Onsdag","Torsdag","Fredag","Lördag"]},"zh-TW":{months:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],dayOfWeekShort:["日","一","二","三","四","五","六"],dayOfWeek:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},zh:{months:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],dayOfWeekShort:["日","一","二","三","四","五","六"],dayOfWeek:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},ug:{months:["1-ئاي","2-ئاي","3-ئاي","4-ئاي","5-ئاي","6-ئاي","7-ئاي","8-ئاي","9-ئاي","10-ئاي","11-ئاي","12-ئاي"],dayOfWeek:["يەكشەنبە","دۈشەنبە","سەيشەنبە","چارشەنبە","پەيشەنبە","جۈمە","شەنبە"]},he:{months:["ינואר","פברואר","מרץ","אפריל","מאי","יוני","יולי","אוגוסט","ספטמבר","אוקטובר","נובמבר","דצמבר"],dayOfWeekShort:["א'","ב'","ג'","ד'","ה'","ו'","שבת"],dayOfWeek:["ראשון","שני","שלישי","רביעי","חמישי","שישי","שבת","ראשון"]},hy:{months:["Հունվար","Փետրվար","Մարտ","Ապրիլ","Մայիս","Հունիս","Հուլիս","Օգոստոս","Սեպտեմբեր","Հոկտեմբեր","Նոյեմբեր","Դեկտեմբեր"],dayOfWeekShort:["Կի","Երկ","Երք","Չոր","Հնգ","Ուրբ","Շբթ"],dayOfWeek:["Կիրակի","Երկուշաբթի","Երեքշաբթի","Չորեքշաբթի","Հինգշաբթի","Ուրբաթ","Շաբաթ"]},kg:{months:["Үчтүн айы","Бирдин айы","Жалган Куран","Чын Куран","Бугу","Кулжа","Теке","Баш Оона","Аяк Оона","Тогуздун айы","Жетинин айы","Бештин айы"],dayOfWeekShort:["Жек","Дүй","Шей","Шар","Бей","Жум","Ише"],dayOfWeek:["Жекшемб","Дүйшөмб","Шейшемб","Шаршемб","Бейшемби","Жума","Ишенб"]},rm:{months:["Schaner","Favrer","Mars","Avrigl","Matg","Zercladur","Fanadur","Avust","Settember","October","November","December"],dayOfWeekShort:["Du","Gli","Ma","Me","Gie","Ve","So"],dayOfWeek:["Dumengia","Glindesdi","Mardi","Mesemna","Gievgia","Venderdi","Sonda"]},ka:{months:["იანვარი","თებერვალი","მარტი","აპრილი","მაისი","ივნისი","ივლისი","აგვისტო","სექტემბერი","ოქტომბერი","ნოემბერი","დეკემბერი"],dayOfWeekShort:["კვ","ორშ","სამშ","ოთხ","ხუთ","პარ","შაბ"],dayOfWeek:["კვირა","ორშაბათი","სამშაბათი","ოთხშაბათი","ხუთშაბათი","პარასკევი","შაბათი"]}},ownerDocument:document,contentWindow:window,value:"",rtl:!1,format:"Y/m/d H:i",formatTime:"H:i",formatDate:"Y/m/d",startDate:!1,step:60,monthChangeSpinner:!0,closeOnDateSelect:!1,closeOnTimeSelect:!0,closeOnWithoutClick:!0,closeOnInputClick:!0,openOnFocus:!0,timepicker:!0,datepicker:!0,weeks:!1,defaultTime:!1,defaultDate:!1,minDate:!1,maxDate:!1,minTime:!1,maxTime:!1,minDateTime:!1,maxDateTime:!1,allowTimes:[],opened:!1,initTime:!0,inline:!1,theme:"",touchMovedThreshold:5,onSelectDate:function(){},onSelectTime:function(){},onChangeMonth:function(){},onGetWeekOfYear:function(){},onChangeYear:function(){},onChangeDateTime:function(){},onShow:function(){},onClose:function(){},onGenerate:function(){},withoutCopyright:!0,inverseButton:!1,hours12:!1,next:"xdsoft_next",prev:"xdsoft_prev",dayOfWeekStart:0,parentID:"body",timeHeightInTimePicker:25,timepickerScrollbar:!0,todayButton:!0,prevButton:!0,nextButton:!0,defaultSelect:!0,scrollMonth:!0,scrollTime:!0,scrollInput:!0,lazyInit:!1,mask:!1,validateOnBlur:!0,allowBlank:!0,yearStart:1950,yearEnd:2050,monthStart:0,monthEnd:11,style:"",id:"",fixed:!1,roundTime:"round",className:"",weekends:[],highlightedDates:[],highlightedPeriods:[],allowDates:[],allowDateRe:null,disabledDates:[],disabledWeekDays:[],yearOffset:0,beforeShowDay:null,enterLikeTab:!0,showApplyButton:!1,insideParent:!1},E=null,n=null,R="en",a={meridiem:["AM","PM"]},r=function(){var e=s.i18n[R],t={days:e.dayOfWeek,daysShort:e.dayOfWeekShort,months:e.months,monthsShort:L.map(e.months,function(e){return e.substring(0,3)})};"function"==typeof DateFormatter&&(E=n=new DateFormatter({dateSettings:L.extend({},a,t)}))},o={moment:{default_options:{format:"YYYY/MM/DD HH:mm",formatDate:"YYYY/MM/DD",formatTime:"HH:mm"},formatter:{parseDate:function(e,t){if(i(t))return n.parseDate(e,t);var a=moment(e,t);return!!a.isValid()&&a.toDate()},formatDate:function(e,t){return i(t)?n.formatDate(e,t):moment(e).format(t)},formatMask:function(e){return e.replace(/Y{4}/g,"9999").replace(/Y{2}/g,"99").replace(/M{2}/g,"19").replace(/D{2}/g,"39").replace(/H{2}/g,"29").replace(/m{2}/g,"59").replace(/s{2}/g,"59")}}}};L.datetimepicker={setLocale:function(e){var t=s.i18n[e]?e:"en";R!==t&&(R=t,r())},setDateFormatter:function(e){if("string"==typeof e&&o.hasOwnProperty(e)){var t=o[e];L.extend(s,t.default_options),E=t.formatter}else E=e}};var t={RFC_2822:"D, d M Y H:i:s O",ATOM:"Y-m-dTH:i:sP",ISO_8601:"Y-m-dTH:i:sO",RFC_822:"D, d M y H:i:s O",RFC_850:"l, d-M-y H:i:s T",RFC_1036:"D, d M y H:i:s O",RFC_1123:"D, d M Y H:i:s O",RSS:"D, d M Y H:i:s O",W3C:"Y-m-dTH:i:sP"},i=function(e){return-1!==Object.values(t).indexOf(e)};function m(e,t,a){this.date=e,this.desc=t,this.style=a}L.extend(L.datetimepicker,t),r(),window.getComputedStyle||(window.getComputedStyle=function(a){return this.el=a,this.getPropertyValue=function(e){var t=/(-([a-z]))/g;return"float"===e&&(e="styleFloat"),t.test(e)&&(e=e.replace(t,function(e,t,a){return a.toUpperCase()})),a.currentStyle[e]||null},this}),Array.prototype.indexOf||(Array.prototype.indexOf=function(e,t){var a,n;for(a=t||0,n=this.length;a<n;a+=1)if(this[a]===e)return a;return-1}),Date.prototype.countDaysInMonth=function(){return new Date(this.getFullYear(),this.getMonth()+1,0).getDate()},L.fn.xdsoftScroller=function(p,D){return this.each(function(){var o,i,s,d,u,l=L(this),a=function(e){var t,a={x:0,y:0};return"touchstart"===e.type||"touchmove"===e.type||"touchend"===e.type||"touchcancel"===e.type?(t=e.originalEvent.touches[0]||e.originalEvent.changedTouches[0],a.x=t.clientX,a.y=t.clientY):"mousedown"!==e.type&&"mouseup"!==e.type&&"mousemove"!==e.type&&"mouseover"!==e.type&&"mouseout"!==e.type&&"mouseenter"!==e.type&&"mouseleave"!==e.type||(a.x=e.clientX,a.y=e.clientY),a},f=100,n=!1,r=0,c=0,m=0,t=!1,h=0,g=function(){};"hide"!==D?(L(this).hasClass("xdsoft_scroller_box")||(o=l.children().eq(0),i=l[0].clientHeight,s=o[0].offsetHeight,d=L('<div class="xdsoft_scrollbar"></div>'),u=L('<div class="xdsoft_scroller"></div>'),d.append(u),l.addClass("xdsoft_scroller_box").append(d),g=function(e){var t=a(e).y-r+h;t<0&&(t=0),t+u[0].offsetHeight>m&&(t=m-u[0].offsetHeight),l.trigger("scroll_element.xdsoft_scroller",[f?t/f:0])},u.on("touchstart.xdsoft_scroller mousedown.xdsoft_scroller",function(e){i||l.trigger("resize_scroll.xdsoft_scroller",[D]),r=a(e).y,h=parseInt(u.css("margin-top"),10),m=d[0].offsetHeight,"mousedown"===e.type||"touchstart"===e.type?(p.ownerDocument&&L(p.ownerDocument.body).addClass("xdsoft_noselect"),L([p.ownerDocument.body,p.contentWindow]).on("touchend mouseup.xdsoft_scroller",function e(){L([p.ownerDocument.body,p.contentWindow]).off("touchend mouseup.xdsoft_scroller",e).off("mousemove.xdsoft_scroller",g).removeClass("xdsoft_noselect")}),L(p.ownerDocument.body).on("mousemove.xdsoft_scroller",g)):(t=!0,e.stopPropagation(),e.preventDefault())}).on("touchmove",function(e){t&&(e.preventDefault(),g(e))}).on("touchend touchcancel",function(){t=!1,h=0}),l.on("scroll_element.xdsoft_scroller",function(e,t){i||l.trigger("resize_scroll.xdsoft_scroller",[t,!0]),t=1<t?1:t<0||isNaN(t)?0:t,u.css("margin-top",f*t),setTimeout(function(){o.css("marginTop",-parseInt((o[0].offsetHeight-i)*t,10))},10)}).on("resize_scroll.xdsoft_scroller",function(e,t,a){var n,r;i=l[0].clientHeight,s=o[0].offsetHeight,r=(n=i/s)*d[0].offsetHeight,1<n?u.hide():(u.show(),u.css("height",parseInt(10<r?r:10,10)),f=d[0].offsetHeight-u[0].offsetHeight,!0!==a&&l.trigger("scroll_element.xdsoft_scroller",[t||Math.abs(parseInt(o.css("marginTop"),10))/(s-i)]))}),l.on("mousewheel",function(e){var t=Math.abs(parseInt(o.css("marginTop"),10));return(t-=20*e.deltaY)<0&&(t=0),l.trigger("scroll_element.xdsoft_scroller",[t/(s-i)]),e.stopPropagation(),!1}),l.on("touchstart",function(e){n=a(e),c=Math.abs(parseInt(o.css("marginTop"),10))}),l.on("touchmove",function(e){if(n){e.preventDefault();var t=a(e);l.trigger("scroll_element.xdsoft_scroller",[(c-(t.y-n.y))/(s-i)])}}),l.on("touchend touchcancel",function(){n=!1,c=0})),l.trigger("resize_scroll.xdsoft_scroller",[D])):l.find(".xdsoft_scrollbar").hide()})},L.fn.datetimepicker=function(H,a){var n,r,o=this,p=17,D=13,y=27,v=37,b=38,k=39,x=40,T=9,S=116,M=65,w=67,j=86,J=90,z=89,I=!1,N=L.isPlainObject(H)||!H?L.extend(!0,{},s,H):L.extend(!0,{},s),i=0;return n=function(O){var t,n,a,r,W,h,_=L('<div class="xdsoft_datetimepicker xdsoft_noselect"></div>'),e=L('<div class="xdsoft_copyright"><a target="_blank" href="http://xdsoft.net/jqplugins/datetimepicker/">xdsoft.net</a></div>'),g=L('<div class="xdsoft_datepicker active"></div>'),F=L('<div class="xdsoft_monthpicker"><button type="button" class="xdsoft_prev"></button><button type="button" class="xdsoft_today_button"></button><div class="xdsoft_label xdsoft_month"><span></span><i></i></div><div class="xdsoft_label xdsoft_year"><span></span><i></i></div><button type="button" class="xdsoft_next"></button></div>'),C=L('<div class="xdsoft_calendar"></div>'),o=L('<div class="xdsoft_timepicker active"><button type="button" class="xdsoft_prev"></button><div class="xdsoft_time_box"></div><button type="button" class="xdsoft_next"></button></div>'),u=o.find(".xdsoft_time_box").eq(0),P=L('<div class="xdsoft_time_variant"></div>'),i=L('<button type="button" class="xdsoft_save_selected blue-gradient-button">Save Selected</button>'),Y=L('<div class="xdsoft_select xdsoft_monthselect"><div></div></div>'),A=L('<div class="xdsoft_select xdsoft_yearselect"><div></div></div>'),s=!1,d=0;N.id&&_.attr("id",N.id),N.style&&_.attr("style",N.style),N.weeks&&_.addClass("xdsoft_showweeks"),N.rtl&&_.addClass("xdsoft_rtl"),_.addClass("xdsoft_"+N.theme),_.addClass(N.className),F.find(".xdsoft_month span").after(Y),F.find(".xdsoft_year span").after(A),F.find(".xdsoft_month,.xdsoft_year").on("touchstart mousedown.xdsoft",function(e){var t,a,n=L(this).find(".xdsoft_select").eq(0),r=0,o=0,i=n.is(":visible");for(F.find(".xdsoft_select").hide(),W.currentTime&&(r=W.currentTime[L(this).hasClass("xdsoft_month")?"getMonth":"getFullYear"]()),n[i?"hide":"show"](),t=n.find("div.xdsoft_option"),a=0;a<t.length&&t.eq(a).data("value")!==r;a+=1)o+=t[0].offsetHeight;return n.xdsoftScroller(N,o/(n.children()[0].offsetHeight-n[0].clientHeight)),e.stopPropagation(),!1});var l=function(e){var t=e.originalEvent,a=t.touches?t.touches[0]:t;this.touchStartPosition=this.touchStartPosition||a;var n=Math.abs(this.touchStartPosition.clientX-a.clientX),r=Math.abs(this.touchStartPosition.clientY-a.clientY);Math.sqrt(n*n+r*r)>N.touchMovedThreshold&&(this.touchMoved=!0)};function f(){var e,t=!1;return N.startDate?t=W.strToDate(N.startDate):(t=N.value||(O&&O.val&&O.val()?O.val():""))?(t=W.strToDateTime(t),N.yearOffset&&(t=new Date(t.getFullYear()-N.yearOffset,t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()))):N.defaultDate&&(t=W.strToDateTime(N.defaultDate),N.defaultTime&&(e=W.strtotime(N.defaultTime),t.setHours(e.getHours()),t.setMinutes(e.getMinutes()))),t&&W.isValidDate(t)?_.data("changed",!0):t="",t||0}function c(m){var h=function(e,t){var a=e.replace(/([\[\]\/\{\}\(\)\-\.\+]{1})/g,"\\$1").replace(/_/g,"{digit+}").replace(/([0-9]{1})/g,"{digit$1}").replace(/\{digit([0-9]{1})\}/g,"[0-$1_]{1}").replace(/\{digit[\+]\}/g,"[0-9_]{1}");return new RegExp(a).test(t)},g=function(e,t){if(!(e="string"==typeof e||e instanceof String?m.ownerDocument.getElementById(e):e))return!1;if(e.createTextRange){var a=e.createTextRange();return a.collapse(!0),a.moveEnd("character",t),a.moveStart("character",t),a.select(),!0}return!!e.setSelectionRange&&(e.setSelectionRange(t,t),!0)};m.mask&&O.off("keydown.xdsoft"),!0===m.mask&&(E.formatMask?m.mask=E.formatMask(m.format):m.mask=m.format.replace(/Y/g,"9999").replace(/F/g,"9999").replace(/m/g,"19").replace(/d/g,"39").replace(/H/g,"29").replace(/i/g,"59").replace(/s/g,"59")),"string"===L.type(m.mask)&&(h(m.mask,O.val())||(O.val(m.mask.replace(/[0-9]/g,"_")),g(O[0],0)),O.on("paste.xdsoft",function(e){var t=(e.clipboardData||e.originalEvent.clipboardData||window.clipboardData).getData("text"),a=this.value,n=this.selectionStart;return a=a.substr(0,n)+t+a.substr(n+t.length),n+=t.length,h(m.mask,a)?(this.value=a,g(this,n)):""===L.trim(a)?this.value=m.mask.replace(/[0-9]/g,"_"):O.trigger("error_input.xdsoft"),e.preventDefault(),!1}),O.on("keydown.xdsoft",function(e){var t,a=this.value,n=e.which,r=this.selectionStart,o=this.selectionEnd,i=r!==o;if(48<=n&&n<=57||96<=n&&n<=105||8===n||46===n){for(t=8===n||46===n?"_":String.fromCharCode(96<=n&&n<=105?n-48:n),8===n&&r&&!i&&(r-=1);;){var s=m.mask.substr(r,1),d=r<m.mask.length,u=0<r;if(!(/[^0-9_]/.test(s)&&d&&u))break;r+=8!==n||i?1:-1}if(e.metaKey&&(i=!(r=0)),i){var l=o-r,f=m.mask.replace(/[0-9]/g,"_"),c=f.substr(r,l).substr(1);a=a.substr(0,r)+(t+c)+a.substr(r+l)}else{a=a.substr(0,r)+t+a.substr(r+1)}if(""===L.trim(a))a=f;else if(r===m.mask.length)return e.preventDefault(),!1;for(r+=8===n?0:1;/[^0-9_]/.test(m.mask.substr(r,1))&&r<m.mask.length&&0<r;)r+=8===n?0:1;h(m.mask,a)?(this.value=a,g(this,r)):""===L.trim(a)?this.value=m.mask.replace(/[0-9]/g,"_"):O.trigger("error_input.xdsoft")}else if(-1!==[M,w,j,J,z].indexOf(n)&&I||-1!==[y,b,x,v,k,S,p,T,D].indexOf(n))return!0;return e.preventDefault(),!1}))}F.find(".xdsoft_select").xdsoftScroller(N).on("touchstart mousedown.xdsoft",function(e){var t=e.originalEvent;this.touchMoved=!1,this.touchStartPosition=t.touches?t.touches[0]:t,e.stopPropagation(),e.preventDefault()}).on("touchmove",".xdsoft_option",l).on("touchend mousedown.xdsoft",".xdsoft_option",function(){if(!this.touchMoved){void 0!==W.currentTime&&null!==W.currentTime||(W.currentTime=W.now());var e=W.currentTime.getFullYear();W&&W.currentTime&&W.currentTime[L(this).parent().parent().hasClass("xdsoft_monthselect")?"setMonth":"setFullYear"](L(this).data("value")),L(this).parent().parent().hide(),_.trigger("xchange.xdsoft"),N.onChangeMonth&&L.isFunction(N.onChangeMonth)&&N.onChangeMonth.call(_,W.currentTime,_.data("input")),e!==W.currentTime.getFullYear()&&L.isFunction(N.onChangeYear)&&N.onChangeYear.call(_,W.currentTime,_.data("input"))}}),_.getValue=function(){return W.getCurrentTime()},_.setOptions=function(e){var l={};N=L.extend(!0,{},N,e),e.allowTimes&&L.isArray(e.allowTimes)&&e.allowTimes.length&&(N.allowTimes=L.extend(!0,[],e.allowTimes)),e.weekends&&L.isArray(e.weekends)&&e.weekends.length&&(N.weekends=L.extend(!0,[],e.weekends)),e.allowDates&&L.isArray(e.allowDates)&&e.allowDates.length&&(N.allowDates=L.extend(!0,[],e.allowDates)),e.allowDateRe&&"[object String]"===Object.prototype.toString.call(e.allowDateRe)&&(N.allowDateRe=new RegExp(e.allowDateRe)),e.highlightedDates&&L.isArray(e.highlightedDates)&&e.highlightedDates.length&&(L.each(e.highlightedDates,function(e,t){var a,n=L.map(t.split(","),L.trim),r=new m(E.parseDate(n[0],N.formatDate),n[1],n[2]),o=E.formatDate(r.date,N.formatDate);void 0!==l[o]?(a=l[o].desc)&&a.length&&r.desc&&r.desc.length&&(l[o].desc=a+"\n"+r.desc):l[o]=r}),N.highlightedDates=L.extend(!0,[],l)),e.highlightedPeriods&&L.isArray(e.highlightedPeriods)&&e.highlightedPeriods.length&&(l=L.extend(!0,[],N.highlightedDates),L.each(e.highlightedPeriods,function(e,t){var a,n,r,o,i,s,d;if(L.isArray(t))a=t[0],n=t[1],r=t[2],d=t[3];else{var u=L.map(t.split(","),L.trim);a=E.parseDate(u[0],N.formatDate),n=E.parseDate(u[1],N.formatDate),r=u[2],d=u[3]}for(;a<=n;)o=new m(a,r,d),i=E.formatDate(a,N.formatDate),a.setDate(a.getDate()+1),void 0!==l[i]?(s=l[i].desc)&&s.length&&o.desc&&o.desc.length&&(l[i].desc=s+"\n"+o.desc):l[i]=o}),N.highlightedDates=L.extend(!0,[],l)),e.disabledDates&&L.isArray(e.disabledDates)&&e.disabledDates.length&&(N.disabledDates=L.extend(!0,[],e.disabledDates)),e.disabledWeekDays&&L.isArray(e.disabledWeekDays)&&e.disabledWeekDays.length&&(N.disabledWeekDays=L.extend(!0,[],e.disabledWeekDays)),!N.open&&!N.opened||N.inline||O.trigger("open.xdsoft"),N.inline&&(s=!0,_.addClass("xdsoft_inline"),O.after(_).hide()),N.inverseButton&&(N.next="xdsoft_prev",N.prev="xdsoft_next"),N.datepicker?g.addClass("active"):g.removeClass("active"),N.timepicker?o.addClass("active"):o.removeClass("active"),N.value&&(W.setCurrentTime(N.value),O&&O.val&&O.val(W.str)),isNaN(N.dayOfWeekStart)?N.dayOfWeekStart=0:N.dayOfWeekStart=parseInt(N.dayOfWeekStart,10)%7,N.timepickerScrollbar||u.xdsoftScroller(N,"hide"),N.minDate&&/^[\+\-](.*)$/.test(N.minDate)&&(N.minDate=E.formatDate(W.strToDateTime(N.minDate),N.formatDate)),N.maxDate&&/^[\+\-](.*)$/.test(N.maxDate)&&(N.maxDate=E.formatDate(W.strToDateTime(N.maxDate),N.formatDate)),N.minDateTime&&/^\+(.*)$/.test(N.minDateTime)&&(N.minDateTime=W.strToDateTime(N.minDateTime).dateFormat(N.formatDate)),N.maxDateTime&&/^\+(.*)$/.test(N.maxDateTime)&&(N.maxDateTime=W.strToDateTime(N.maxDateTime).dateFormat(N.formatDate)),i.toggle(N.showApplyButton),F.find(".xdsoft_today_button").css("visibility",N.todayButton?"visible":"hidden"),F.find("."+N.prev).css("visibility",N.prevButton?"visible":"hidden"),F.find("."+N.next).css("visibility",N.nextButton?"visible":"hidden"),c(N),N.validateOnBlur&&O.off("blur.xdsoft").on("blur.xdsoft",function(){if(N.allowBlank&&(!L.trim(L(this).val()).length||"string"==typeof N.mask&&L.trim(L(this).val())===N.mask.replace(/[0-9]/g,"_")))L(this).val(null),_.data("xdsoft_datetime").empty();else{var e=E.parseDate(L(this).val(),N.format);if(e)L(this).val(E.formatDate(e,N.format));else{var t=+[L(this).val()[0],L(this).val()[1]].join(""),a=+[L(this).val()[2],L(this).val()[3]].join("");!N.datepicker&&N.timepicker&&0<=t&&t<24&&0<=a&&a<60?L(this).val([t,a].map(function(e){return 9<e?e:"0"+e}).join(":")):L(this).val(E.formatDate(W.now(),N.format))}_.data("xdsoft_datetime").setCurrentTime(L(this).val())}_.trigger("changedatetime.xdsoft"),_.trigger("close.xdsoft")}),N.dayOfWeekStartPrev=0===N.dayOfWeekStart?6:N.dayOfWeekStart-1,_.trigger("xchange.xdsoft").trigger("afterOpen.xdsoft")},_.data("options",N).on("touchstart mousedown.xdsoft",function(e){return e.stopPropagation(),e.preventDefault(),A.hide(),Y.hide(),!1}),u.append(P),u.xdsoftScroller(N),_.on("afterOpen.xdsoft",function(){u.xdsoftScroller(N)}),_.append(g).append(o),!0!==N.withoutCopyright&&_.append(e),g.append(F).append(C).append(i),N.insideParent?L(O).parent().append(_):L(N.parentID).append(_),W=new function(){var r=this;r.now=function(e){var t,a,n=new Date;return!e&&N.defaultDate&&(t=r.strToDateTime(N.defaultDate),n.setFullYear(t.getFullYear()),n.setMonth(t.getMonth()),n.setDate(t.getDate())),n.setFullYear(n.getFullYear()),!e&&N.defaultTime&&(a=r.strtotime(N.defaultTime),n.setHours(a.getHours()),n.setMinutes(a.getMinutes()),n.setSeconds(a.getSeconds()),n.setMilliseconds(a.getMilliseconds())),n},r.isValidDate=function(e){return"[object Date]"===Object.prototype.toString.call(e)&&!isNaN(e.getTime())},r.setCurrentTime=function(e,t){"string"==typeof e?r.currentTime=r.strToDateTime(e):r.isValidDate(e)?r.currentTime=e:e||t||!N.allowBlank||N.inline?r.currentTime=r.now():r.currentTime=null,_.trigger("xchange.xdsoft")},r.empty=function(){r.currentTime=null},r.getCurrentTime=function(){return r.currentTime},r.nextMonth=function(){void 0!==r.currentTime&&null!==r.currentTime||(r.currentTime=r.now());var e,t=r.currentTime.getMonth()+1;return 12===t&&(r.currentTime.setFullYear(r.currentTime.getFullYear()+1),t=0),e=r.currentTime.getFullYear(),r.currentTime.setDate(Math.min(new Date(r.currentTime.getFullYear(),t+1,0).getDate(),r.currentTime.getDate())),r.currentTime.setMonth(t),N.onChangeMonth&&L.isFunction(N.onChangeMonth)&&N.onChangeMonth.call(_,W.currentTime,_.data("input")),e!==r.currentTime.getFullYear()&&L.isFunction(N.onChangeYear)&&N.onChangeYear.call(_,W.currentTime,_.data("input")),_.trigger("xchange.xdsoft"),t},r.prevMonth=function(){void 0!==r.currentTime&&null!==r.currentTime||(r.currentTime=r.now());var e=r.currentTime.getMonth()-1;return-1===e&&(r.currentTime.setFullYear(r.currentTime.getFullYear()-1),e=11),r.currentTime.setDate(Math.min(new Date(r.currentTime.getFullYear(),e+1,0).getDate(),r.currentTime.getDate())),r.currentTime.setMonth(e),N.onChangeMonth&&L.isFunction(N.onChangeMonth)&&N.onChangeMonth.call(_,W.currentTime,_.data("input")),_.trigger("xchange.xdsoft"),e},r.getWeekOfYear=function(e){if(N.onGetWeekOfYear&&L.isFunction(N.onGetWeekOfYear)){var t=N.onGetWeekOfYear.call(_,e);if(void 0!==t)return t}var a=new Date(e.getFullYear(),0,1);return 4!==a.getDay()&&a.setMonth(0,1+(4-a.getDay()+7)%7),Math.ceil(((e-a)/864e5+a.getDay()+1)/7)},r.strToDateTime=function(e){var t,a,n=[];return e&&e instanceof Date&&r.isValidDate(e)?e:((n=/^([+-]{1})(.*)$/.exec(e))&&(n[2]=E.parseDate(n[2],N.formatDate)),a=n&&n[2]?(t=n[2].getTime()-6e4*n[2].getTimezoneOffset(),new Date(r.now(!0).getTime()+parseInt(n[1]+"1",10)*t)):e?E.parseDate(e,N.format):r.now(),r.isValidDate(a)||(a=r.now()),a)},r.strToDate=function(e){if(e&&e instanceof Date&&r.isValidDate(e))return e;var t=e?E.parseDate(e,N.formatDate):r.now(!0);return r.isValidDate(t)||(t=r.now(!0)),t},r.strtotime=function(e){if(e&&e instanceof Date&&r.isValidDate(e))return e;var t=e?E.parseDate(e,N.formatTime):r.now(!0);return r.isValidDate(t)||(t=r.now(!0)),t},r.str=function(){var e=N.format;return N.yearOffset&&(e=(e=e.replace("Y",r.currentTime.getFullYear()+N.yearOffset)).replace("y",String(r.currentTime.getFullYear()+N.yearOffset).substring(2,4))),E.formatDate(r.currentTime,e)},r.currentTime=this.now()},i.on("touchend click",function(e){e.preventDefault(),_.data("changed",!0),W.setCurrentTime(f()),O.val(W.str()),_.trigger("close.xdsoft")}),F.find(".xdsoft_today_button").on("touchend mousedown.xdsoft",function(){_.data("changed",!0),W.setCurrentTime(0,!0),_.trigger("afterOpen.xdsoft")}).on("dblclick.xdsoft",function(){var e,t,a=W.getCurrentTime();a=new Date(a.getFullYear(),a.getMonth(),a.getDate()),e=W.strToDate(N.minDate),a<(e=new Date(e.getFullYear(),e.getMonth(),e.getDate()))||(t=W.strToDate(N.maxDate),(t=new Date(t.getFullYear(),t.getMonth(),t.getDate()))<a||(O.val(W.str()),O.trigger("change"),_.trigger("close.xdsoft")))}),F.find(".xdsoft_prev,.xdsoft_next").on("touchend mousedown.xdsoft",function(){var a=L(this),n=0,r=!1;!function e(t){a.hasClass(N.next)?W.nextMonth():a.hasClass(N.prev)&&W.prevMonth(),N.monthChangeSpinner&&(r||(n=setTimeout(e,t||100)))}(500),L([N.ownerDocument.body,N.contentWindow]).on("touchend mouseup.xdsoft",function e(){clearTimeout(n),r=!0,L([N.ownerDocument.body,N.contentWindow]).off("touchend mouseup.xdsoft",e)})}),o.find(".xdsoft_prev,.xdsoft_next").on("touchend mousedown.xdsoft",function(){var o=L(this),i=0,s=!1,d=110;!function e(t){var a=u[0].clientHeight,n=P[0].offsetHeight,r=Math.abs(parseInt(P.css("marginTop"),10));o.hasClass(N.next)&&n-a-N.timeHeightInTimePicker>=r?P.css("marginTop","-"+(r+N.timeHeightInTimePicker)+"px"):o.hasClass(N.prev)&&0<=r-N.timeHeightInTimePicker&&P.css("marginTop","-"+(r-N.timeHeightInTimePicker)+"px"),u.trigger("scroll_element.xdsoft_scroller",[Math.abs(parseInt(P[0].style.marginTop,10)/(n-a))]),d=10<d?10:d-10,s||(i=setTimeout(e,t||d))}(500),L([N.ownerDocument.body,N.contentWindow]).on("touchend mouseup.xdsoft",function e(){clearTimeout(i),s=!0,L([N.ownerDocument.body,N.contentWindow]).off("touchend mouseup.xdsoft",e)})}),t=0,_.on("xchange.xdsoft",function(e){clearTimeout(t),t=setTimeout(function(){void 0!==W.currentTime&&null!==W.currentTime||(W.currentTime=W.now());for(var e,t,a,n,r,o,i,s,d,u,l="",f=new Date(W.currentTime.getFullYear(),W.currentTime.getMonth(),1,12,0,0),c=0,m=W.now(),h=!1,g=!1,p=!1,D=!1,y=[],v=!0,b="";f.getDay()!==N.dayOfWeekStart;)f.setDate(f.getDate()-1);for(l+="<table><thead><tr>",N.weeks&&(l+="<th></th>"),e=0;e<7;e+=1)l+="<th>"+N.i18n[R].dayOfWeekShort[(e+N.dayOfWeekStart)%7]+"</th>";for(l+="</tr></thead>",l+="<tbody>",!1!==N.maxDate&&(h=W.strToDate(N.maxDate),h=new Date(h.getFullYear(),h.getMonth(),h.getDate(),23,59,59,999)),!1!==N.minDate&&(g=W.strToDate(N.minDate),g=new Date(g.getFullYear(),g.getMonth(),g.getDate())),!1!==N.minDateTime&&(p=W.strToDate(N.minDateTime),p=new Date(p.getFullYear(),p.getMonth(),p.getDate(),p.getHours(),p.getMinutes(),p.getSeconds())),!1!==N.maxDateTime&&(D=W.strToDate(N.maxDateTime),D=new Date(D.getFullYear(),D.getMonth(),D.getDate(),D.getHours(),D.getMinutes(),D.getSeconds())),!1!==D&&(u=31*(12*D.getFullYear()+D.getMonth())+D.getDate());c<W.currentTime.countDaysInMonth()||f.getDay()!==N.dayOfWeekStart||W.currentTime.getMonth()===f.getMonth();){y=[],c+=1,a=f.getDay(),n=f.getDate(),r=f.getFullYear(),M=f.getMonth(),o=W.getWeekOfYear(f),d="",y.push("xdsoft_date"),i=N.beforeShowDay&&L.isFunction(N.beforeShowDay.call)?N.beforeShowDay.call(_,f):null,N.allowDateRe&&"[object RegExp]"===Object.prototype.toString.call(N.allowDateRe)&&(N.allowDateRe.test(E.formatDate(f,N.formatDate))||y.push("xdsoft_disabled")),N.allowDates&&0<N.allowDates.length&&-1===N.allowDates.indexOf(E.formatDate(f,N.formatDate))&&y.push("xdsoft_disabled");var k=31*(12*f.getFullYear()+f.getMonth())+f.getDate();(!1!==h&&h<f||!1!==p&&f<p||!1!==g&&f<g||!1!==D&&u<k||i&&!1===i[0])&&y.push("xdsoft_disabled"),-1!==N.disabledDates.indexOf(E.formatDate(f,N.formatDate))&&y.push("xdsoft_disabled"),-1!==N.disabledWeekDays.indexOf(a)&&y.push("xdsoft_disabled"),O.is("[disabled]")&&y.push("xdsoft_disabled"),i&&""!==i[1]&&y.push(i[1]),W.currentTime.getMonth()!==M&&y.push("xdsoft_other_month"),(N.defaultSelect||_.data("changed"))&&E.formatDate(W.currentTime,N.formatDate)===E.formatDate(f,N.formatDate)&&y.push("xdsoft_current"),E.formatDate(m,N.formatDate)===E.formatDate(f,N.formatDate)&&y.push("xdsoft_today"),0!==f.getDay()&&6!==f.getDay()&&-1===N.weekends.indexOf(E.formatDate(f,N.formatDate))||y.push("xdsoft_weekend"),void 0!==N.highlightedDates[E.formatDate(f,N.formatDate)]&&(t=N.highlightedDates[E.formatDate(f,N.formatDate)],y.push(void 0===t.style?"xdsoft_highlighted_default":t.style),d=void 0===t.desc?"":t.desc),N.beforeShowDay&&L.isFunction(N.beforeShowDay)&&y.push(N.beforeShowDay(f)),v&&(l+="<tr>",v=!1,N.weeks&&(l+="<th>"+o+"</th>")),l+='<td data-date="'+n+'" data-month="'+M+'" data-year="'+r+'" class="xdsoft_date xdsoft_day_of_week'+f.getDay()+" "+y.join(" ")+'" title="'+d+'"><div>'+n+"</div></td>",f.getDay()===N.dayOfWeekStartPrev&&(l+="</tr>",v=!0),f.setDate(n+1)}l+="</tbody></table>",C.html(l),F.find(".xdsoft_label span").eq(0).text(N.i18n[R].months[W.currentTime.getMonth()]),F.find(".xdsoft_label span").eq(1).text(W.currentTime.getFullYear()+N.yearOffset),M=b="";var x=0;if(!1!==N.minTime){var T=W.strtotime(N.minTime);x=60*T.getHours()+T.getMinutes()}var S=1440;if(!1!==N.maxTime){T=W.strtotime(N.maxTime);S=60*T.getHours()+T.getMinutes()}if(!1!==N.minDateTime){T=W.strToDateTime(N.minDateTime);if(E.formatDate(W.currentTime,N.formatDate)===E.formatDate(T,N.formatDate)){var M=60*T.getHours()+T.getMinutes();x<M&&(x=M)}}if(!1!==N.maxDateTime){T=W.strToDateTime(N.maxDateTime);if(E.formatDate(W.currentTime,N.formatDate)===E.formatDate(T,N.formatDate))(M=60*T.getHours()+T.getMinutes())<S&&(S=M)}if(s=function(e,t){var a,n=W.now(),r=N.allowTimes&&L.isArray(N.allowTimes)&&N.allowTimes.length;n.setHours(e),e=parseInt(n.getHours(),10),n.setMinutes(t),t=parseInt(n.getMinutes(),10),y=[];var o=60*e+t;(O.is("[disabled]")||S<=o||o<x)&&y.push("xdsoft_disabled"),(a=new Date(W.currentTime)).setHours(parseInt(W.currentTime.getHours(),10)),r||a.setMinutes(Math[N.roundTime](W.currentTime.getMinutes()/N.step)*N.step),(N.initTime||N.defaultSelect||_.data("changed"))&&a.getHours()===parseInt(e,10)&&(!r&&59<N.step||a.getMinutes()===parseInt(t,10))&&(N.defaultSelect||_.data("changed")?y.push("xdsoft_current"):N.initTime&&y.push("xdsoft_init_time")),parseInt(m.getHours(),10)===parseInt(e,10)&&parseInt(m.getMinutes(),10)===parseInt(t,10)&&y.push("xdsoft_today"),b+='<div class="xdsoft_time '+y.join(" ")+'" data-hour="'+e+'" data-minute="'+t+'">'+E.formatDate(n,N.formatTime)+"</div>"},N.allowTimes&&L.isArray(N.allowTimes)&&N.allowTimes.length)for(c=0;c<N.allowTimes.length;c+=1)s(W.strtotime(N.allowTimes[c]).getHours(),M=W.strtotime(N.allowTimes[c]).getMinutes());else for(e=c=0;c<(N.hours12?12:24);c+=1)for(e=0;e<60;e+=N.step){var w=60*c+e;w<x||(S<=w||s((c<10?"0":"")+c,M=(e<10?"0":"")+e))}for(P.html(b),H="",c=parseInt(N.yearStart,10);c<=parseInt(N.yearEnd,10);c+=1)H+='<div class="xdsoft_option '+(W.currentTime.getFullYear()===c?"xdsoft_current":"")+'" data-value="'+c+'">'+(c+N.yearOffset)+"</div>";for(A.children().eq(0).html(H),c=parseInt(N.monthStart,10),H="";c<=parseInt(N.monthEnd,10);c+=1)H+='<div class="xdsoft_option '+(W.currentTime.getMonth()===c?"xdsoft_current":"")+'" data-value="'+c+'">'+N.i18n[R].months[c]+"</div>";Y.children().eq(0).html(H),L(_).trigger("generate.xdsoft")},10),e.stopPropagation()}).on("afterOpen.xdsoft",function(){var e,t,a,n;N.timepicker&&(P.find(".xdsoft_current").length?e=".xdsoft_current":P.find(".xdsoft_init_time").length&&(e=".xdsoft_init_time"),e?(t=u[0].clientHeight,(a=P[0].offsetHeight)-t<(n=P.find(e).index()*N.timeHeightInTimePicker+1)&&(n=a-t),u.trigger("scroll_element.xdsoft_scroller",[parseInt(n,10)/(a-t)])):u.trigger("scroll_element.xdsoft_scroller",[0]))}),n=0,C.on("touchend click.xdsoft","td",function(e){e.stopPropagation(),n+=1;var t=L(this),a=W.currentTime;if(null==a&&(W.currentTime=W.now(),a=W.currentTime),t.hasClass("xdsoft_disabled"))return!1;a.setDate(1),a.setFullYear(t.data("year")),a.setMonth(t.data("month")),a.setDate(t.data("date")),_.trigger("select.xdsoft",[a]),O.val(W.str()),N.onSelectDate&&L.isFunction(N.onSelectDate)&&N.onSelectDate.call(_,W.currentTime,_.data("input"),e),_.data("changed",!0),_.trigger("xchange.xdsoft"),_.trigger("changedatetime.xdsoft"),(1<n||!0===N.closeOnDateSelect||!1===N.closeOnDateSelect&&!N.timepicker)&&!N.inline&&_.trigger("close.xdsoft"),setTimeout(function(){n=0},200)}),P.on("touchstart","div",function(e){this.touchMoved=!1}).on("touchmove","div",l).on("touchend click.xdsoft","div",function(e){if(!this.touchMoved){e.stopPropagation();var t=L(this),a=W.currentTime;if(null==a&&(W.currentTime=W.now(),a=W.currentTime),t.hasClass("xdsoft_disabled"))return!1;a.setHours(t.data("hour")),a.setMinutes(t.data("minute")),_.trigger("select.xdsoft",[a]),_.data("input").val(W.str()),N.onSelectTime&&L.isFunction(N.onSelectTime)&&N.onSelectTime.call(_,W.currentTime,_.data("input"),e),_.data("changed",!0),_.trigger("xchange.xdsoft"),_.trigger("changedatetime.xdsoft"),!0!==N.inline&&!0===N.closeOnTimeSelect&&_.trigger("close.xdsoft")}}),g.on("mousewheel.xdsoft",function(e){return!N.scrollMonth||(e.deltaY<0?W.nextMonth():W.prevMonth(),!1)}),O.on("mousewheel.xdsoft",function(e){return!N.scrollInput||(!N.datepicker&&N.timepicker?(0<=(a=P.find(".xdsoft_current").length?P.find(".xdsoft_current").eq(0).index():0)+e.deltaY&&a+e.deltaY<P.children().length&&(a+=e.deltaY),P.children().eq(a).length&&P.children().eq(a).trigger("mousedown"),!1):N.datepicker&&!N.timepicker?(g.trigger(e,[e.deltaY,e.deltaX,e.deltaY]),O.val&&O.val(W.str()),_.trigger("changedatetime.xdsoft"),!1):void 0)}),_.on("changedatetime.xdsoft",function(e){if(N.onChangeDateTime&&L.isFunction(N.onChangeDateTime)){var t=_.data("input");N.onChangeDateTime.call(_,W.currentTime,t,e),delete N.value,t.trigger("change")}}).on("generate.xdsoft",function(){N.onGenerate&&L.isFunction(N.onGenerate)&&N.onGenerate.call(_,W.currentTime,_.data("input")),s&&(_.trigger("afterOpen.xdsoft"),s=!1)}).on("click.xdsoft",function(e){e.stopPropagation()}),a=0,h=function(e,t){do{if(!(e=e.parentNode)||!1===t(e))break}while("HTML"!==e.nodeName)},r=function(){var e,t,a,n,r,o,i,s,d,u,l,f,c;if(e=(s=_.data("input")).offset(),t=s[0],u="top",a=e.top+t.offsetHeight-1,n=e.left,r="absolute",d=L(N.contentWindow).width(),f=L(N.contentWindow).height(),c=L(N.contentWindow).scrollTop(),N.ownerDocument.documentElement.clientWidth-e.left<g.parent().outerWidth(!0)){var m=g.parent().outerWidth(!0)-t.offsetWidth;n-=m}"rtl"===s.parent().css("direction")&&(n-=_.outerWidth()-s.outerWidth()),N.fixed?(a-=c,n-=L(N.contentWindow).scrollLeft(),r="fixed"):(i=!1,h(t,function(e){return null!==e&&("fixed"===N.contentWindow.getComputedStyle(e).getPropertyValue("position")?!(i=!0):void 0)}),i&&!N.insideParent?(r="fixed",a+_.outerHeight()>f+c?(u="bottom",a=f+c-e.top):a-=c):a+_[0].offsetHeight>f+c&&(a=e.top-_[0].offsetHeight+1),a<0&&(a=0),n+t.offsetWidth>d&&(n=d-t.offsetWidth)),o=_[0],h(o,function(e){if("relative"===N.contentWindow.getComputedStyle(e).getPropertyValue("position")&&d>=e.offsetWidth)return n-=(d-e.offsetWidth)/2,!1}),l={position:r,left:N.insideParent?t.offsetLeft:n,top:"",bottom:""},N.insideParent?l[u]=t.offsetTop+t.offsetHeight:l[u]=a,_.css(l)},_.on("open.xdsoft",function(e){var t=!0;N.onShow&&L.isFunction(N.onShow)&&(t=N.onShow.call(_,W.currentTime,_.data("input"),e)),!1!==t&&(_.show(),r(),L(N.contentWindow).off("resize.xdsoft",r).on("resize.xdsoft",r),N.closeOnWithoutClick&&L([N.ownerDocument.body,N.contentWindow]).on("touchstart mousedown.xdsoft",function e(){_.trigger("close.xdsoft"),L([N.ownerDocument.body,N.contentWindow]).off("touchstart mousedown.xdsoft",e)}))}).on("close.xdsoft",function(e){var t=!0;F.find(".xdsoft_month,.xdsoft_year").find(".xdsoft_select").hide(),N.onClose&&L.isFunction(N.onClose)&&(t=N.onClose.call(_,W.currentTime,_.data("input"),e)),!1===t||N.opened||N.inline||_.hide(),e.stopPropagation()}).on("toggle.xdsoft",function(){_.is(":visible")?_.trigger("close.xdsoft"):_.trigger("open.xdsoft")}).data("input",O),d=0,_.data("xdsoft_datetime",W),_.setOptions(N),W.setCurrentTime(f()),O.data("xdsoft_datetimepicker",_).on("open.xdsoft focusin.xdsoft mousedown.xdsoft touchstart",function(){O.is(":disabled")||O.data("xdsoft_datetimepicker").is(":visible")&&N.closeOnInputClick||N.openOnFocus&&(clearTimeout(d),d=setTimeout(function(){O.is(":disabled")||(s=!0,W.setCurrentTime(f(),!0),N.mask&&c(N),_.trigger("open.xdsoft"))},100))}).on("keydown.xdsoft",function(e){var t,a=e.which;return-1!==[D].indexOf(a)&&N.enterLikeTab?(t=L("input:visible,textarea:visible,button:visible,a:visible"),_.trigger("close.xdsoft"),t.eq(t.index(this)+1).focus(),!1):-1!==[T].indexOf(a)?(_.trigger("close.xdsoft"),!0):void 0}).on("blur.xdsoft",function(){_.trigger("close.xdsoft")})},r=function(e){var t=e.data("xdsoft_datetimepicker");t&&(t.data("xdsoft_datetime",null),t.remove(),e.data("xdsoft_datetimepicker",null).off(".xdsoft"),L(N.contentWindow).off("resize.xdsoft"),L([N.contentWindow,N.ownerDocument.body]).off("mousedown.xdsoft touchstart"),e.unmousewheel&&e.unmousewheel())},L(N.ownerDocument).off("keydown.xdsoftctrl keyup.xdsoftctrl").off("keydown.xdsoftcmd keyup.xdsoftcmd").on("keydown.xdsoftctrl",function(e){e.keyCode===p&&(I=!0)}).on("keyup.xdsoftctrl",function(e){e.keyCode===p&&(I=!1)}).on("keydown.xdsoftcmd",function(e){91===e.keyCode&&!0}).on("keyup.xdsoftcmd",function(e){91===e.keyCode&&!1}),this.each(function(){var t,e=L(this).data("xdsoft_datetimepicker");if(e){if("string"===L.type(H))switch(H){case"show":L(this).select().focus(),e.trigger("open.xdsoft");break;case"hide":e.trigger("close.xdsoft");break;case"toggle":e.trigger("toggle.xdsoft");break;case"destroy":r(L(this));break;case"reset":this.value=this.defaultValue,this.value&&e.data("xdsoft_datetime").isValidDate(E.parseDate(this.value,N.format))||e.data("changed",!1),e.data("xdsoft_datetime").setCurrentTime(this.value);break;case"validate":e.data("input").trigger("blur.xdsoft");break;default:e[H]&&L.isFunction(e[H])&&(o=e[H](a))}else e.setOptions(H);return 0}"string"!==L.type(H)&&(!N.lazyInit||N.open||N.inline?n(L(this)):(t=L(this)).on("open.xdsoft focusin.xdsoft mousedown.xdsoft touchstart",function e(){t.is(":disabled")||t.data("xdsoft_datetimepicker")||(clearTimeout(i),i=setTimeout(function(){t.data("xdsoft_datetimepicker")||n(t),t.off("open.xdsoft focusin.xdsoft mousedown.xdsoft touchstart",e).trigger("open.xdsoft")},100))}))}),o},L.fn.datetimepicker.defaults=s};!function(e){"function"==typeof define&&define.amd?define(["jquery","jquery-mousewheel"],e):"object"==typeof exports?module.exports=e(require("jquery")):e(jQuery)}(datetimepickerFactory),function(e){"function"==typeof define&&define.amd?define(["jquery"],e):"object"==typeof exports?module.exports=e:e(jQuery)}(function(c){var m,h,e=["wheel","mousewheel","DOMMouseScroll","MozMousePixelScroll"],t="onwheel"in document||9<=document.documentMode?["wheel"]:["mousewheel","DomMouseScroll","MozMousePixelScroll"],g=Array.prototype.slice;if(c.event.fixHooks)for(var a=e.length;a;)c.event.fixHooks[e[--a]]=c.event.mouseHooks;var p=c.event.special.mousewheel={version:"3.1.12",setup:function(){if(this.addEventListener)for(var e=t.length;e;)this.addEventListener(t[--e],n,!1);else this.onmousewheel=n;c.data(this,"mousewheel-line-height",p.getLineHeight(this)),c.data(this,"mousewheel-page-height",p.getPageHeight(this))},teardown:function(){if(this.removeEventListener)for(var e=t.length;e;)this.removeEventListener(t[--e],n,!1);else this.onmousewheel=null;c.removeData(this,"mousewheel-line-height"),c.removeData(this,"mousewheel-page-height")},getLineHeight:function(e){var t=c(e),a=t["offsetParent"in c.fn?"offsetParent":"parent"]();return a.length||(a=c("body")),parseInt(a.css("fontSize"),10)||parseInt(t.css("fontSize"),10)||16},getPageHeight:function(e){return c(e).height()},settings:{adjustOldDeltas:!0,normalizeOffset:!0}};function n(e){var t,a=e||window.event,n=g.call(arguments,1),r=0,o=0,i=0,s=0,d=0;if((e=c.event.fix(a)).type="mousewheel","detail"in a&&(i=-1*a.detail),"wheelDelta"in a&&(i=a.wheelDelta),"wheelDeltaY"in a&&(i=a.wheelDeltaY),"wheelDeltaX"in a&&(o=-1*a.wheelDeltaX),"axis"in a&&a.axis===a.HORIZONTAL_AXIS&&(o=-1*i,i=0),r=0===i?o:i,"deltaY"in a&&(r=i=-1*a.deltaY),"deltaX"in a&&(o=a.deltaX,0===i&&(r=-1*o)),0!==i||0!==o){if(1===a.deltaMode){var u=c.data(this,"mousewheel-line-height");r*=u,i*=u,o*=u}else if(2===a.deltaMode){var l=c.data(this,"mousewheel-page-height");r*=l,i*=l,o*=l}if(t=Math.max(Math.abs(i),Math.abs(o)),(!h||t<h)&&y(a,h=t)&&(h/=40),y(a,t)&&(r/=40,o/=40,i/=40),r=Math[1<=r?"floor":"ceil"](r/h),o=Math[1<=o?"floor":"ceil"](o/h),i=Math[1<=i?"floor":"ceil"](i/h),p.settings.normalizeOffset&&this.getBoundingClientRect){var f=this.getBoundingClientRect();s=e.clientX-f.left,d=e.clientY-f.top}return e.deltaX=o,e.deltaY=i,e.deltaFactor=h,e.offsetX=s,e.offsetY=d,e.deltaMode=0,n.unshift(e,r,o,i),m&&clearTimeout(m),m=setTimeout(D,200),(c.event.dispatch||c.event.handle).apply(this,n)}}function D(){h=null}function y(e,t){return p.settings.adjustOldDeltas&&"mousewheel"===e.type&&t%120==0}c.fn.extend({mousewheel:function(e){return e?this.bind("mousewheel",e):this.trigger("mousewheel")},unmousewheel:function(e){return this.unbind("mousewheel",e)}})});
 
assets/vendor/datepicker/jquery.datetimepicker.min.css DELETED
@@ -1 +0,0 @@
1
- .xdsoft_datetimepicker{box-shadow:0 5px 15px -5px rgba(0,0,0,0.506);background:#fff;border-bottom:1px solid #bbb;border-left:1px solid #ccc;border-right:1px solid #ccc;border-top:1px solid #ccc;color:#333;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;padding:8px;padding-left:0;padding-top:2px;position:absolute;z-index:9999;-moz-box-sizing:border-box;box-sizing:border-box;display:none}.xdsoft_datetimepicker.xdsoft_rtl{padding:8px 0 8px 8px}.xdsoft_datetimepicker iframe{position:absolute;left:0;top:0;width:75px;height:210px;background:transparent;border:0}.xdsoft_datetimepicker button{border:none !important}.xdsoft_noselect{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.xdsoft_noselect::selection{background:transparent}.xdsoft_noselect::-moz-selection{background:transparent}.xdsoft_datetimepicker.xdsoft_inline{display:inline-block;position:static;box-shadow:none}.xdsoft_datetimepicker *{-moz-box-sizing:border-box;box-sizing:border-box;padding:0;margin:0}.xdsoft_datetimepicker .xdsoft_datepicker,.xdsoft_datetimepicker .xdsoft_timepicker{display:none}.xdsoft_datetimepicker .xdsoft_datepicker.active,.xdsoft_datetimepicker .xdsoft_timepicker.active{display:block}.xdsoft_datetimepicker .xdsoft_datepicker{width:224px;float:left;margin-left:8px}.xdsoft_datetimepicker.xdsoft_rtl .xdsoft_datepicker{float:right;margin-right:8px;margin-left:0}.xdsoft_datetimepicker.xdsoft_showweeks .xdsoft_datepicker{width:256px}.xdsoft_datetimepicker .xdsoft_timepicker{width:58px;float:left;text-align:center;margin-left:8px;margin-top:0}.xdsoft_datetimepicker.xdsoft_rtl .xdsoft_timepicker{float:right;margin-right:8px;margin-left:0}.xdsoft_datetimepicker .xdsoft_datepicker.active+.xdsoft_timepicker{margin-top:8px;margin-bottom:3px}.xdsoft_datetimepicker .xdsoft_monthpicker{position:relative;text-align:center}.xdsoft_datetimepicker .xdsoft_label i,.xdsoft_datetimepicker .xdsoft_prev,.xdsoft_datetimepicker .xdsoft_next,.xdsoft_datetimepicker .xdsoft_today_button{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAAeCAYAAADaW7vzAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6Q0NBRjI1NjM0M0UwMTFFNDk4NkFGMzJFQkQzQjEwRUIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6Q0NBRjI1NjQ0M0UwMTFFNDk4NkFGMzJFQkQzQjEwRUIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpDQ0FGMjU2MTQzRTAxMUU0OTg2QUYzMkVCRDNCMTBFQiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpDQ0FGMjU2MjQzRTAxMUU0OTg2QUYzMkVCRDNCMTBFQiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PoNEP54AAAIOSURBVHja7Jq9TsMwEMcxrZD4WpBYeKUCe+kTMCACHZh4BFfHO/AAIHZGFhYkBBsSEqxsLCAgXKhbXYOTxh9pfJVP+qutnZ5s/5Lz2Y5I03QhWji2GIcgAokWgfCxNvcOCCGKqiSqhUp0laHOne05vdEyGMfkdxJDVjgwDlEQgYQBgx+ULJaWSXXS6r/ER5FBVR8VfGftTKcITNs+a1XpcFoExREIDF14AVIFxgQUS+h520cdud6wNkC0UBw6BCO/HoCYwBhD8QCkQ/x1mwDyD4plh4D6DDV0TAGyo4HcawLIBBSLDkHeH0Mg2yVP3l4TQMZQDDsEOl/MgHQqhMNuE0D+oBh0CIr8MAKyazBH9WyBuKxDWgbXfjNf32TZ1KWm/Ap1oSk/R53UtQ5xTh3LUlMmT8gt6g51Q9p+SobxgJQ/qmsfZhWywGFSl0yBjCLJCMgXail3b7+rumdVJ2YRss4cN+r6qAHDkPWjPjdJCF4n9RmAD/V9A/Wp4NQassDjwlB6XBiCxcJQWmZZb8THFilfy/lfrTvLghq2TqTHrRMTKNJ0sIhdo15RT+RpyWwFdY96UZ/LdQKBGjcXpcc1AlSFEfLmouD+1knuxBDUVrvOBmoOC/rEcN7OQxKVeJTCiAdUzUJhA2Oez9QTkp72OTVcxDcXY8iKNkxGAJXmJCOQwOa6dhyXsOa6XwEGAKdeb5ET3rQdAAAAAElFTkSuQmCC)}.xdsoft_datetimepicker .xdsoft_label i{opacity:.5;background-position:-92px -19px;display:inline-block;width:9px;height:20px;vertical-align:middle}.xdsoft_datetimepicker .xdsoft_prev{float:left;background-position:-20px 0}.xdsoft_datetimepicker .xdsoft_today_button{float:left;background-position:-70px 0;margin-left:5px}.xdsoft_datetimepicker .xdsoft_next{float:right;background-position:0 0}.xdsoft_datetimepicker .xdsoft_next,.xdsoft_datetimepicker .xdsoft_prev,.xdsoft_datetimepicker .xdsoft_today_button{background-color:transparent;background-repeat:no-repeat;border:0 none;cursor:pointer;display:block;height:30px;opacity:.5;-ms-filter:"alpha(opacity=50)";outline:medium none;overflow:hidden;padding:0;position:relative;text-indent:100%;white-space:nowrap;width:20px;min-width:0}.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_prev,.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_next{float:none;background-position:-40px -15px;height:15px;width:30px;display:block;margin-left:14px;margin-top:7px}.xdsoft_datetimepicker.xdsoft_rtl .xdsoft_timepicker .xdsoft_prev,.xdsoft_datetimepicker.xdsoft_rtl .xdsoft_timepicker .xdsoft_next{float:none;margin-left:0;margin-right:14px}.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_prev{background-position:-40px 0;margin-bottom:7px;margin-top:0}.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box{height:151px;overflow:hidden;border-bottom:1px solid #ddd}.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box>div>div{background:#f5f5f5;border-top:1px solid #ddd;color:#666;font-size:12px;text-align:center;border-collapse:collapse;cursor:pointer;border-bottom-width:0;height:25px;line-height:25px}.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box>div>div:first-child{border-top-width:0}.xdsoft_datetimepicker .xdsoft_today_button:hover,.xdsoft_datetimepicker .xdsoft_next:hover,.xdsoft_datetimepicker .xdsoft_prev:hover{opacity:1;-ms-filter:"alpha(opacity=100)"}.xdsoft_datetimepicker .xdsoft_label{display:inline;position:relative;z-index:9999;margin:0;padding:5px 3px;font-size:14px;line-height:20px;font-weight:bold;background-color:#fff;float:left;width:182px;text-align:center;cursor:pointer}.xdsoft_datetimepicker .xdsoft_label:hover>span{text-decoration:underline}.xdsoft_datetimepicker .xdsoft_label:hover i{opacity:1.0}.xdsoft_datetimepicker .xdsoft_label>.xdsoft_select{border:1px solid #ccc;position:absolute;right:0;top:30px;z-index:101;display:none;background:#fff;max-height:160px;overflow-y:hidden}.xdsoft_datetimepicker .xdsoft_label>.xdsoft_select.xdsoft_monthselect{right:-7px}.xdsoft_datetimepicker .xdsoft_label>.xdsoft_select.xdsoft_yearselect{right:2px}.xdsoft_datetimepicker .xdsoft_label>.xdsoft_select>div>.xdsoft_option:hover{color:#fff;background:#ff8000}.xdsoft_datetimepicker .xdsoft_label>.xdsoft_select>div>.xdsoft_option{padding:2px 10px 2px 5px;text-decoration:none !important}.xdsoft_datetimepicker .xdsoft_label>.xdsoft_select>div>.xdsoft_option.xdsoft_current{background:#3af;box-shadow:#178fe5 0 1px 3px 0 inset;color:#fff;font-weight:700}.xdsoft_datetimepicker .xdsoft_month{width:100px;text-align:right}.xdsoft_datetimepicker .xdsoft_calendar{clear:both}.xdsoft_datetimepicker .xdsoft_year{width:48px;margin-left:5px}.xdsoft_datetimepicker .xdsoft_calendar table{border-collapse:collapse;width:100%}.xdsoft_datetimepicker .xdsoft_calendar td>div{padding-right:5px}.xdsoft_datetimepicker .xdsoft_calendar th{height:25px}.xdsoft_datetimepicker .xdsoft_calendar td,.xdsoft_datetimepicker .xdsoft_calendar th{width:14.2857142%;background:#f5f5f5;border:1px solid #ddd;color:#666;font-size:12px;text-align:right;vertical-align:middle;padding:0;border-collapse:collapse;cursor:pointer;height:25px}.xdsoft_datetimepicker.xdsoft_showweeks .xdsoft_calendar td,.xdsoft_datetimepicker.xdsoft_showweeks .xdsoft_calendar th{width:12.5%}.xdsoft_datetimepicker .xdsoft_calendar th{background:#f1f1f1}.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_today{color:#3af}.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_highlighted_default{background:#ffe9d2;box-shadow:#ffb871 0 1px 4px 0 inset;color:#000}.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_highlighted_mint{background:#c1ffc9;box-shadow:#00dd1c 0 1px 4px 0 inset;color:#000}.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_default,.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_current,.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box>div>div.xdsoft_current{background:#3af;box-shadow:#178fe5 0 1px 3px 0 inset;color:#fff;font-weight:700}.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_other_month,.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_disabled,.xdsoft_datetimepicker .xdsoft_time_box>div>div.xdsoft_disabled{opacity:.5;-ms-filter:"alpha(opacity=50)";cursor:default}.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_other_month.xdsoft_disabled{opacity:.2;-ms-filter:"alpha(opacity=20)"}.xdsoft_datetimepicker .xdsoft_calendar td:hover,.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box>div>div:hover{color:#fff !important;background:#ff8000 !important;box-shadow:none !important}.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_current.xdsoft_disabled:hover,.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box>div>div.xdsoft_current.xdsoft_disabled:hover{background:#3af !important;box-shadow:#178fe5 0 1px 3px 0 inset !important;color:#fff !important}.xdsoft_datetimepicker .xdsoft_calendar td.xdsoft_disabled:hover,.xdsoft_datetimepicker .xdsoft_timepicker .xdsoft_time_box>div>div.xdsoft_disabled:hover{color:inherit !important;background:inherit !important;box-shadow:inherit !important}.xdsoft_datetimepicker .xdsoft_calendar th{font-weight:700;text-align:center;color:#999;cursor:default}.xdsoft_datetimepicker .xdsoft_copyright{color:#ccc !important;font-size:10px;clear:both;float:none;margin-left:8px}.xdsoft_datetimepicker .xdsoft_copyright a{color:#eee !important}.xdsoft_datetimepicker .xdsoft_copyright a:hover{color:#aaa !important}.xdsoft_time_box{position:relative;border:1px solid #ccc}.xdsoft_scrollbar>.xdsoft_scroller{background:#ccc !important;height:20px;border-radius:3px}.xdsoft_scrollbar{position:absolute;width:7px;right:0;top:0;bottom:0;cursor:pointer}.xdsoft_datetimepicker.xdsoft_rtl .xdsoft_scrollbar{left:0;right:auto}.xdsoft_scroller_box{position:relative}.xdsoft_datetimepicker.xdsoft_dark{box-shadow:0 5px 15px -5px rgba(255,255,255,0.506);background:#000;border-bottom:1px solid #444;border-left:1px solid #333;border-right:1px solid #333;border-top:1px solid #333;color:#ccc}.xdsoft_datetimepicker.xdsoft_dark .xdsoft_timepicker .xdsoft_time_box{border-bottom:1px solid #222}.xdsoft_datetimepicker.xdsoft_dark .xdsoft_timepicker .xdsoft_time_box>div>div{background:#0a0a0a;border-top:1px solid #222;color:#999}.xdsoft_datetimepicker.xdsoft_dark .xdsoft_label{background-color:#000}.xdsoft_datetimepicker.xdsoft_dark .xdsoft_label>.xdsoft_select{border:1px solid #333;background:#000}.xdsoft_datetimepicker.xdsoft_dark .xdsoft_label>.xdsoft_select>div>.xdsoft_option:hover{color:#000;background:#007fff}.xdsoft_datetimepicker.xdsoft_dark .xdsoft_label>.xdsoft_select>div>.xdsoft_option.xdsoft_current{background:#c50;box-shadow:#b03e00 0 1px 3px 0 inset;color:#000}.xdsoft_datetimepicker.xdsoft_dark .xdsoft_label i,.xdsoft_datetimepicker.xdsoft_dark .xdsoft_prev,.xdsoft_datetimepicker.xdsoft_dark .xdsoft_next,.xdsoft_datetimepicker.xdsoft_dark .xdsoft_today_button{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAAeCAYAAADaW7vzAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QUExQUUzOTA0M0UyMTFFNDlBM0FFQTJENTExRDVBODYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QUExQUUzOTE0M0UyMTFFNDlBM0FFQTJENTExRDVBODYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpBQTFBRTM4RTQzRTIxMUU0OUEzQUVBMkQ1MTFENUE4NiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpBQTFBRTM4RjQzRTIxMUU0OUEzQUVBMkQ1MTFENUE4NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pp0VxGEAAAIASURBVHja7JrNSgMxEMebtgh+3MSLr1T1Xn2CHoSKB08+QmR8Bx9A8e7RixdB9CKCoNdexIugxFlJa7rNZneTbLIpM/CnNLsdMvNjM8l0mRCiQ9Ye61IKCAgZAUnH+mU3MMZaHYChBnJUDzWOFZdVfc5+ZFLbrWDeXPwbxIqrLLfaeS0hEBVGIRQCEiZoHQwtlGSByCCdYBl8g8egTTAWoKQMRBRBcZxYlhzhKegqMOageErsCHVkk3hXIFooDgHB1KkHIHVgzKB4ADJQ/A1jAFmAYhkQqA5TOBtocrKrgXwQA8gcFIuAIO8sQSA7hidvPwaQGZSaAYHOUWJABhWWw2EMIH9QagQERU4SArJXo0ZZL18uvaxejXt/Em8xjVBXmvFr1KVm/AJ10tRe2XnraNqaJvKE3KHuUbfK1E+VHB0q40/y3sdQSxY4FHWeKJCunP8UyDdqJZenT3ntVV5jIYCAh20vT7ioP8tpf6E2lfEMwERe+whV1MHjwZB7PBiCxcGQWwKZKD62lfGNnP/1poFAA60T7rF1UgcKd2id3KDeUS+oLWV8DfWAepOfq00CgQabi9zjcgJVYVD7PVzQUAUGAQkbNJTBICDhgwYTjDYD6XeW08ZKh+A4pYkzenOxXUbvZcWz7E8ykRMnIHGX1XPl+1m2vPYpL+2qdb8CDAARlKFEz/ZVkAAAAABJRU5ErkJggg==)}.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td,.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar th{background:#0a0a0a;border:1px solid #222;color:#999}.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar th{background:#0e0e0e}.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td.xdsoft_today{color:#c50}.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td.xdsoft_highlighted_default{background:#ffe9d2;box-shadow:#ffb871 0 1px 4px 0 inset;color:#000}.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td.xdsoft_highlighted_mint{background:#c1ffc9;box-shadow:#00dd1c 0 1px 4px 0 inset;color:#000}.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td.xdsoft_default,.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td.xdsoft_current,.xdsoft_datetimepicker.xdsoft_dark .xdsoft_timepicker .xdsoft_time_box>div>div.xdsoft_current{background:#c50;box-shadow:#b03e00 0 1px 3px 0 inset;color:#000}.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar td:hover,.xdsoft_datetimepicker.xdsoft_dark .xdsoft_timepicker .xdsoft_time_box>div>div:hover{color:#000 !important;background:#007fff !important}.xdsoft_datetimepicker.xdsoft_dark .xdsoft_calendar th{color:#666}.xdsoft_datetimepicker.xdsoft_dark .xdsoft_copyright{color:#333 !important}.xdsoft_datetimepicker.xdsoft_dark .xdsoft_copyright a{color:#111 !important}.xdsoft_datetimepicker.xdsoft_dark .xdsoft_copyright a:hover{color:#555 !important}.xdsoft_dark .xdsoft_time_box{border:1px solid #333}.xdsoft_dark .xdsoft_scrollbar>.xdsoft_scroller{background:#333 !important}.xdsoft_datetimepicker .xdsoft_save_selected{display:block;border:1px solid #ddd !important;margin-top:5px;width:100%;color:#454551;font-size:13px}.xdsoft_datetimepicker .blue-gradient-button{font-family:"museo-sans","Book Antiqua",sans-serif;font-size:12px;font-weight:300;color:#82878c;height:28px;position:relative;padding:4px 17px 4px 33px;border:1px solid #d7d8da;background:-moz-linear-gradient(top,#fff 0,#f4f8fa 73%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#fff),color-stop(73%,#f4f8fa));background:-webkit-linear-gradient(top,#fff 0,#f4f8fa 73%);background:-o-linear-gradient(top,#fff 0,#f4f8fa 73%);background:-ms-linear-gradient(top,#fff 0,#f4f8fa 73%);background:linear-gradient(to bottom,#fff 0,#f4f8fa 73%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff',endColorstr='#f4f8fa',GradientType=0)}.xdsoft_datetimepicker .blue-gradient-button:hover,.xdsoft_datetimepicker .blue-gradient-button:focus,.xdsoft_datetimepicker .blue-gradient-button:hover span,.xdsoft_datetimepicker .blue-gradient-button:focus span{color:#454551;background:-moz-linear-gradient(top,#f4f8fa 0,#FFF 73%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#f4f8fa),color-stop(73%,#FFF));background:-webkit-linear-gradient(top,#f4f8fa 0,#FFF 73%);background:-o-linear-gradient(top,#f4f8fa 0,#FFF 73%);background:-ms-linear-gradient(top,#f4f8fa 0,#FFF 73%);background:linear-gradient(to bottom,#f4f8fa 0,#FFF 73%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f4f8fa',endColorstr='#FFF',GradientType=0)}
 
assets/vendor/datepicker/jquery.datetimepicker.min.js DELETED
@@ -1 +0,0 @@
1
- var datetimepickerFactory=function(L){"use strict";var s={i18n:{ar:{months:["كانون الثاني","شباط","آذار","نيسان","مايو","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول"],dayOfWeekShort:["ن","ث","ع","خ","ج","س","ح"],dayOfWeek:["الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت","الأحد"]},ro:{months:["Ianuarie","Februarie","Martie","Aprilie","Mai","Iunie","Iulie","August","Septembrie","Octombrie","Noiembrie","Decembrie"],dayOfWeekShort:["Du","Lu","Ma","Mi","Jo","Vi","Sâ"],dayOfWeek:["Duminică","Luni","Marţi","Miercuri","Joi","Vineri","Sâmbătă"]},id:{months:["Januari","Februari","Maret","April","Mei","Juni","Juli","Agustus","September","Oktober","November","Desember"],dayOfWeekShort:["Min","Sen","Sel","Rab","Kam","Jum","Sab"],dayOfWeek:["Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu"]},is:{months:["Janúar","Febrúar","Mars","Apríl","Maí","Júní","Júlí","Ágúst","September","Október","Nóvember","Desember"],dayOfWeekShort:["Sun","Mán","Þrið","Mið","Fim","Fös","Lau"],dayOfWeek:["Sunnudagur","Mánudagur","Þriðjudagur","Miðvikudagur","Fimmtudagur","Föstudagur","Laugardagur"]},bg:{months:["Януари","Февруари","Март","Април","Май","Юни","Юли","Август","Септември","Октомври","Ноември","Декември"],dayOfWeekShort:["Нд","Пн","Вт","Ср","Чт","Пт","Сб"],dayOfWeek:["Неделя","Понеделник","Вторник","Сряда","Четвъртък","Петък","Събота"]},fa:{months:["فروردین","اردیبهشت","خرداد","تیر","مرداد","شهریور","مهر","آبان","آذر","دی","بهمن","اسفند"],dayOfWeekShort:["یکشنبه","دوشنبه","سه شنبه","چهارشنبه","پنجشنبه","جمعه","شنبه"],dayOfWeek:["یک‌شنبه","دوشنبه","سه‌شنبه","چهارشنبه","پنج‌شنبه","جمعه","شنبه","یک‌شنبه"]},ru:{months:["Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"],dayOfWeekShort:["Вс","Пн","Вт","Ср","Чт","Пт","Сб"],dayOfWeek:["Воскресенье","Понедельник","Вторник","Среда","Четверг","Пятница","Суббота"]},uk:{months:["Січень","Лютий","Березень","Квітень","Травень","Червень","Липень","Серпень","Вересень","Жовтень","Листопад","Грудень"],dayOfWeekShort:["Ндл","Пнд","Втр","Срд","Чтв","Птн","Сбт"],dayOfWeek:["Неділя","Понеділок","Вівторок","Середа","Четвер","П'ятниця","Субота"]},en:{months:["January","February","March","April","May","June","July","August","September","October","November","December"],dayOfWeekShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayOfWeek:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},el:{months:["Ιανουάριος","Φεβρουάριος","Μάρτιος","Απρίλιος","Μάιος","Ιούνιος","Ιούλιος","Αύγουστος","Σεπτέμβριος","Οκτώβριος","Νοέμβριος","Δεκέμβριος"],dayOfWeekShort:["Κυρ","Δευ","Τρι","Τετ","Πεμ","Παρ","Σαβ"],dayOfWeek:["Κυριακή","Δευτέρα","Τρίτη","Τετάρτη","Πέμπτη","Παρασκευή","Σάββατο"]},de:{months:["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],dayOfWeekShort:["So","Mo","Di","Mi","Do","Fr","Sa"],dayOfWeek:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"]},nl:{months:["januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"],dayOfWeekShort:["zo","ma","di","wo","do","vr","za"],dayOfWeek:["zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"]},tr:{months:["Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık"],dayOfWeekShort:["Paz","Pts","Sal","Çar","Per","Cum","Cts"],dayOfWeek:["Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi"]},fr:{months:["Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre"],dayOfWeekShort:["Dim","Lun","Mar","Mer","Jeu","Ven","Sam"],dayOfWeek:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"]},es:{months:["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"],dayOfWeekShort:["Dom","Lun","Mar","Mié","Jue","Vie","Sáb"],dayOfWeek:["Domingo","Lunes","Martes","Miércoles","Jueves","Viernes","Sábado"]},th:{months:["มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม"],dayOfWeekShort:["อา.","จ.","อ.","พ.","พฤ.","ศ.","ส."],dayOfWeek:["อาทิตย์","จันทร์","อังคาร","พุธ","พฤหัส","ศุกร์","เสาร์","อาทิตย์"]},pl:{months:["styczeń","luty","marzec","kwiecień","maj","czerwiec","lipiec","sierpień","wrzesień","październik","listopad","grudzień"],dayOfWeekShort:["nd","pn","wt","śr","cz","pt","sb"],dayOfWeek:["niedziela","poniedziałek","wtorek","środa","czwartek","piątek","sobota"]},pt:{months:["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],dayOfWeekShort:["Dom","Seg","Ter","Qua","Qui","Sex","Sab"],dayOfWeek:["Domingo","Segunda","Terça","Quarta","Quinta","Sexta","Sábado"]},ch:{months:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],dayOfWeekShort:["日","一","二","三","四","五","六"]},se:{months:["Januari","Februari","Mars","April","Maj","Juni","Juli","Augusti","September","Oktober","November","December"],dayOfWeekShort:["Sön","Mån","Tis","Ons","Tor","Fre","Lör"]},km:{months:["មករា​","កុម្ភៈ","មិនា​","មេសា​","ឧសភា​","មិថុនា​","កក្កដា​","សីហា​","កញ្ញា​","តុលា​","វិច្ឆិកា","ធ្នូ​"],dayOfWeekShort:["អាទិ​","ច័ន្ទ​","អង្គារ​","ពុធ​","ព្រហ​​","សុក្រ​","សៅរ៍"],dayOfWeek:["អាទិត្យ​","ច័ន្ទ​","អង្គារ​","ពុធ​","ព្រហស្បតិ៍​","សុក្រ​","សៅរ៍"]},kr:{months:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],dayOfWeekShort:["일","월","화","수","목","금","토"],dayOfWeek:["일요일","월요일","화요일","수요일","목요일","금요일","토요일"]},it:{months:["Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"],dayOfWeekShort:["Dom","Lun","Mar","Mer","Gio","Ven","Sab"],dayOfWeek:["Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato"]},da:{months:["Januar","Februar","Marts","April","Maj","Juni","Juli","August","September","Oktober","November","December"],dayOfWeekShort:["Søn","Man","Tir","Ons","Tor","Fre","Lør"],dayOfWeek:["søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag"]},no:{months:["Januar","Februar","Mars","April","Mai","Juni","Juli","August","September","Oktober","November","Desember"],dayOfWeekShort:["Søn","Man","Tir","Ons","Tor","Fre","Lør"],dayOfWeek:["Søndag","Mandag","Tirsdag","Onsdag","Torsdag","Fredag","Lørdag"]},ja:{months:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],dayOfWeekShort:["日","月","火","水","木","金","土"],dayOfWeek:["日曜","月曜","火曜","水曜","木曜","金曜","土曜"]},vi:{months:["Tháng 1","Tháng 2","Tháng 3","Tháng 4","Tháng 5","Tháng 6","Tháng 7","Tháng 8","Tháng 9","Tháng 10","Tháng 11","Tháng 12"],dayOfWeekShort:["CN","T2","T3","T4","T5","T6","T7"],dayOfWeek:["Chủ nhật","Thứ hai","Thứ ba","Thứ tư","Thứ năm","Thứ sáu","Thứ bảy"]},sl:{months:["Januar","Februar","Marec","April","Maj","Junij","Julij","Avgust","September","Oktober","November","December"],dayOfWeekShort:["Ned","Pon","Tor","Sre","Čet","Pet","Sob"],dayOfWeek:["Nedelja","Ponedeljek","Torek","Sreda","Četrtek","Petek","Sobota"]},cs:{months:["Leden","Únor","Březen","Duben","Květen","Červen","Červenec","Srpen","Září","Říjen","Listopad","Prosinec"],dayOfWeekShort:["Ne","Po","Út","St","Čt","Pá","So"]},hu:{months:["Január","Február","Március","Április","Május","Június","Július","Augusztus","Szeptember","Október","November","December"],dayOfWeekShort:["Va","Hé","Ke","Sze","Cs","Pé","Szo"],dayOfWeek:["vasárnap","hétfő","kedd","szerda","csütörtök","péntek","szombat"]},az:{months:["Yanvar","Fevral","Mart","Aprel","May","Iyun","Iyul","Avqust","Sentyabr","Oktyabr","Noyabr","Dekabr"],dayOfWeekShort:["B","Be","Ça","Ç","Ca","C","Ş"],dayOfWeek:["Bazar","Bazar ertəsi","Çərşənbə axşamı","Çərşənbə","Cümə axşamı","Cümə","Şənbə"]},bs:{months:["Januar","Februar","Mart","April","Maj","Jun","Jul","Avgust","Septembar","Oktobar","Novembar","Decembar"],dayOfWeekShort:["Ned","Pon","Uto","Sri","Čet","Pet","Sub"],dayOfWeek:["Nedjelja","Ponedjeljak","Utorak","Srijeda","Četvrtak","Petak","Subota"]},ca:{months:["Gener","Febrer","Març","Abril","Maig","Juny","Juliol","Agost","Setembre","Octubre","Novembre","Desembre"],dayOfWeekShort:["Dg","Dl","Dt","Dc","Dj","Dv","Ds"],dayOfWeek:["Diumenge","Dilluns","Dimarts","Dimecres","Dijous","Divendres","Dissabte"]},"en-GB":{months:["January","February","March","April","May","June","July","August","September","October","November","December"],dayOfWeekShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayOfWeek:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},et:{months:["Jaanuar","Veebruar","Märts","Aprill","Mai","Juuni","Juuli","August","September","Oktoober","November","Detsember"],dayOfWeekShort:["P","E","T","K","N","R","L"],dayOfWeek:["Pühapäev","Esmaspäev","Teisipäev","Kolmapäev","Neljapäev","Reede","Laupäev"]},eu:{months:["Urtarrila","Otsaila","Martxoa","Apirila","Maiatza","Ekaina","Uztaila","Abuztua","Iraila","Urria","Azaroa","Abendua"],dayOfWeekShort:["Ig.","Al.","Ar.","Az.","Og.","Or.","La."],dayOfWeek:["Igandea","Astelehena","Asteartea","Asteazkena","Osteguna","Ostirala","Larunbata"]},fi:{months:["Tammikuu","Helmikuu","Maaliskuu","Huhtikuu","Toukokuu","Kesäkuu","Heinäkuu","Elokuu","Syyskuu","Lokakuu","Marraskuu","Joulukuu"],dayOfWeekShort:["Su","Ma","Ti","Ke","To","Pe","La"],dayOfWeek:["sunnuntai","maanantai","tiistai","keskiviikko","torstai","perjantai","lauantai"]},gl:{months:["Xan","Feb","Maz","Abr","Mai","Xun","Xul","Ago","Set","Out","Nov","Dec"],dayOfWeekShort:["Dom","Lun","Mar","Mer","Xov","Ven","Sab"],dayOfWeek:["Domingo","Luns","Martes","Mércores","Xoves","Venres","Sábado"]},hr:{months:["Siječanj","Veljača","Ožujak","Travanj","Svibanj","Lipanj","Srpanj","Kolovoz","Rujan","Listopad","Studeni","Prosinac"],dayOfWeekShort:["Ned","Pon","Uto","Sri","Čet","Pet","Sub"],dayOfWeek:["Nedjelja","Ponedjeljak","Utorak","Srijeda","Četvrtak","Petak","Subota"]},ko:{months:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],dayOfWeekShort:["일","월","화","수","목","금","토"],dayOfWeek:["일요일","월요일","화요일","수요일","목요일","금요일","토요일"]},lt:{months:["Sausio","Vasario","Kovo","Balandžio","Gegužės","Birželio","Liepos","Rugpjūčio","Rugsėjo","Spalio","Lapkričio","Gruodžio"],dayOfWeekShort:["Sek","Pir","Ant","Tre","Ket","Pen","Šeš"],dayOfWeek:["Sekmadienis","Pirmadienis","Antradienis","Trečiadienis","Ketvirtadienis","Penktadienis","Šeštadienis"]},lv:{months:["Janvāris","Februāris","Marts","Aprīlis ","Maijs","Jūnijs","Jūlijs","Augusts","Septembris","Oktobris","Novembris","Decembris"],dayOfWeekShort:["Sv","Pr","Ot","Tr","Ct","Pk","St"],dayOfWeek:["Svētdiena","Pirmdiena","Otrdiena","Trešdiena","Ceturtdiena","Piektdiena","Sestdiena"]},mk:{months:["јануари","февруари","март","април","мај","јуни","јули","август","септември","октомври","ноември","декември"],dayOfWeekShort:["нед","пон","вто","сре","чет","пет","саб"],dayOfWeek:["Недела","Понеделник","Вторник","Среда","Четврток","Петок","Сабота"]},mn:{months:["1-р сар","2-р сар","3-р сар","4-р сар","5-р сар","6-р сар","7-р сар","8-р сар","9-р сар","10-р сар","11-р сар","12-р сар"],dayOfWeekShort:["Дав","Мяг","Лха","Пүр","Бсн","Бям","Ням"],dayOfWeek:["Даваа","Мягмар","Лхагва","Пүрэв","Баасан","Бямба","Ням"]},"pt-BR":{months:["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],dayOfWeekShort:["Dom","Seg","Ter","Qua","Qui","Sex","Sáb"],dayOfWeek:["Domingo","Segunda","Terça","Quarta","Quinta","Sexta","Sábado"]},sk:{months:["Január","Február","Marec","Apríl","Máj","Jún","Júl","August","September","Október","November","December"],dayOfWeekShort:["Ne","Po","Ut","St","Št","Pi","So"],dayOfWeek:["Nedeľa","Pondelok","Utorok","Streda","Štvrtok","Piatok","Sobota"]},sq:{months:["Janar","Shkurt","Mars","Prill","Maj","Qershor","Korrik","Gusht","Shtator","Tetor","Nëntor","Dhjetor"],dayOfWeekShort:["Die","Hën","Mar","Mër","Enj","Pre","Shtu"],dayOfWeek:["E Diel","E Hënë","E Martē","E Mërkurë","E Enjte","E Premte","E Shtunë"]},"sr-YU":{months:["Januar","Februar","Mart","April","Maj","Jun","Jul","Avgust","Septembar","Oktobar","Novembar","Decembar"],dayOfWeekShort:["Ned","Pon","Uto","Sre","čet","Pet","Sub"],dayOfWeek:["Nedelja","Ponedeljak","Utorak","Sreda","Četvrtak","Petak","Subota"]},sr:{months:["јануар","фебруар","март","април","мај","јун","јул","август","септембар","октобар","новембар","децембар"],dayOfWeekShort:["нед","пон","уто","сре","чет","пет","суб"],dayOfWeek:["Недеља","Понедељак","Уторак","Среда","Четвртак","Петак","Субота"]},sv:{months:["Januari","Februari","Mars","April","Maj","Juni","Juli","Augusti","September","Oktober","November","December"],dayOfWeekShort:["Sön","Mån","Tis","Ons","Tor","Fre","Lör"],dayOfWeek:["Söndag","Måndag","Tisdag","Onsdag","Torsdag","Fredag","Lördag"]},"zh-TW":{months:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],dayOfWeekShort:["日","一","二","三","四","五","六"],dayOfWeek:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},zh:{months:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],dayOfWeekShort:["日","一","二","三","四","五","六"],dayOfWeek:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},ug:{months:["1-ئاي","2-ئاي","3-ئاي","4-ئاي","5-ئاي","6-ئاي","7-ئاي","8-ئاي","9-ئاي","10-ئاي","11-ئاي","12-ئاي"],dayOfWeek:["يەكشەنبە","دۈشەنبە","سەيشەنبە","چارشەنبە","پەيشەنبە","جۈمە","شەنبە"]},he:{months:["ינואר","פברואר","מרץ","אפריל","מאי","יוני","יולי","אוגוסט","ספטמבר","אוקטובר","נובמבר","דצמבר"],dayOfWeekShort:["א'","ב'","ג'","ד'","ה'","ו'","שבת"],dayOfWeek:["ראשון","שני","שלישי","רביעי","חמישי","שישי","שבת","ראשון"]},hy:{months:["Հունվար","Փետրվար","Մարտ","Ապրիլ","Մայիս","Հունիս","Հուլիս","Օգոստոս","Սեպտեմբեր","Հոկտեմբեր","Նոյեմբեր","Դեկտեմբեր"],dayOfWeekShort:["Կի","Երկ","Երք","Չոր","Հնգ","Ուրբ","Շբթ"],dayOfWeek:["Կիրակի","Երկուշաբթի","Երեքշաբթի","Չորեքշաբթի","Հինգշաբթի","Ուրբաթ","Շաբաթ"]},kg:{months:["Үчтүн айы","Бирдин айы","Жалган Куран","Чын Куран","Бугу","Кулжа","Теке","Баш Оона","Аяк Оона","Тогуздун айы","Жетинин айы","Бештин айы"],dayOfWeekShort:["Жек","Дүй","Шей","Шар","Бей","Жум","Ише"],dayOfWeek:["Жекшемб","Дүйшөмб","Шейшемб","Шаршемб","Бейшемби","Жума","Ишенб"]},rm:{months:["Schaner","Favrer","Mars","Avrigl","Matg","Zercladur","Fanadur","Avust","Settember","October","November","December"],dayOfWeekShort:["Du","Gli","Ma","Me","Gie","Ve","So"],dayOfWeek:["Dumengia","Glindesdi","Mardi","Mesemna","Gievgia","Venderdi","Sonda"]},ka:{months:["იანვარი","თებერვალი","მარტი","აპრილი","მაისი","ივნისი","ივლისი","აგვისტო","სექტემბერი","ოქტომბერი","ნოემბერი","დეკემბერი"],dayOfWeekShort:["კვ","ორშ","სამშ","ოთხ","ხუთ","პარ","შაბ"],dayOfWeek:["კვირა","ორშაბათი","სამშაბათი","ოთხშაბათი","ხუთშაბათი","პარასკევი","შაბათი"]}},ownerDocument:document,contentWindow:window,value:"",rtl:!1,format:"Y/m/d H:i",formatTime:"H:i",formatDate:"Y/m/d",startDate:!1,step:60,monthChangeSpinner:!0,closeOnDateSelect:!1,closeOnTimeSelect:!0,closeOnWithoutClick:!0,closeOnInputClick:!0,openOnFocus:!0,timepicker:!0,datepicker:!0,weeks:!1,defaultTime:!1,defaultDate:!1,minDate:!1,maxDate:!1,minTime:!1,maxTime:!1,minDateTime:!1,maxDateTime:!1,allowTimes:[],opened:!1,initTime:!0,inline:!1,theme:"",touchMovedThreshold:5,onSelectDate:function(){},onSelectTime:function(){},onChangeMonth:function(){},onGetWeekOfYear:function(){},onChangeYear:function(){},onChangeDateTime:function(){},onShow:function(){},onClose:function(){},onGenerate:function(){},withoutCopyright:!0,inverseButton:!1,hours12:!1,next:"xdsoft_next",prev:"xdsoft_prev",dayOfWeekStart:0,parentID:"body",timeHeightInTimePicker:25,timepickerScrollbar:!0,todayButton:!0,prevButton:!0,nextButton:!0,defaultSelect:!0,scrollMonth:!0,scrollTime:!0,scrollInput:!0,lazyInit:!1,mask:!1,validateOnBlur:!0,allowBlank:!0,yearStart:1950,yearEnd:2050,monthStart:0,monthEnd:11,style:"",id:"",fixed:!1,roundTime:"round",className:"",weekends:[],highlightedDates:[],highlightedPeriods:[],allowDates:[],allowDateRe:null,disabledDates:[],disabledWeekDays:[],yearOffset:0,beforeShowDay:null,enterLikeTab:!0,showApplyButton:!1,insideParent:!1},E=null,o=null,V="en",a={meridiem:["AM","PM"]},r=function(){var e=s.i18n[V],t={days:e.dayOfWeek,daysShort:e.dayOfWeekShort,months:e.months,monthsShort:L.map(e.months,function(e){return e.substring(0,3)})};"function"==typeof DateFormatter&&(E=o=new DateFormatter({dateSettings:L.extend({},a,t)}))},n={moment:{default_options:{format:"YYYY/MM/DD HH:mm",formatDate:"YYYY/MM/DD",formatTime:"HH:mm"},formatter:{parseDate:function(e,t){if(i(t))return o.parseDate(e,t);var a=moment(e,t);return!!a.isValid()&&a.toDate()},formatDate:function(e,t){return i(t)?o.formatDate(e,t):moment(e).format(t)},formatMask:function(e){return e.replace(/Y{4}/g,"9999").replace(/Y{2}/g,"99").replace(/M{2}/g,"19").replace(/D{2}/g,"39").replace(/H{2}/g,"29").replace(/m{2}/g,"59").replace(/s{2}/g,"59")}}}};L.datetimepicker={setLocale:function(e){var t=s.i18n[e]?e:"en";V!==t&&(V=t,r())},setDateFormatter:function(e){if("string"==typeof e&&n.hasOwnProperty(e)){var t=n[e];L.extend(s,t.default_options),E=t.formatter}else E=e}};var t={RFC_2822:"D, d M Y H:i:s O",ATOM:"Y-m-dTH:i:sP",ISO_8601:"Y-m-dTH:i:sO",RFC_822:"D, d M y H:i:s O",RFC_850:"l, d-M-y H:i:s T",RFC_1036:"D, d M y H:i:s O",RFC_1123:"D, d M Y H:i:s O",RSS:"D, d M Y H:i:s O",W3C:"Y-m-dTH:i:sP"},i=function(e){return-1!==Object.values(t).indexOf(e)};function m(e,t,a){this.date=e,this.desc=t,this.style=a}L.extend(L.datetimepicker,t),r(),window.getComputedStyle||(window.getComputedStyle=function(a){return this.el=a,this.getPropertyValue=function(e){var t=/(-([a-z]))/g;return"float"===e&&(e="styleFloat"),t.test(e)&&(e=e.replace(t,function(e,t,a){return a.toUpperCase()})),a.currentStyle[e]||null},this}),Array.prototype.indexOf||(Array.prototype.indexOf=function(e,t){var a,o;for(a=t||0,o=this.length;a<o;a+=1)if(this[a]===e)return a;return-1}),Date.prototype.countDaysInMonth=function(){return new Date(this.getFullYear(),this.getMonth()+1,0).getDate()},L.fn.xdsoftScroller=function(p,D){return this.each(function(){var n,i,s,d,u,l=L(this),a=function(e){var t,a={x:0,y:0};return"touchstart"===e.type||"touchmove"===e.type||"touchend"===e.type||"touchcancel"===e.type?(t=e.originalEvent.touches[0]||e.originalEvent.changedTouches[0],a.x=t.clientX,a.y=t.clientY):"mousedown"!==e.type&&"mouseup"!==e.type&&"mousemove"!==e.type&&"mouseover"!==e.type&&"mouseout"!==e.type&&"mouseenter"!==e.type&&"mouseleave"!==e.type||(a.x=e.clientX,a.y=e.clientY),a},f=100,o=!1,r=0,c=0,m=0,t=!1,h=0,g=function(){};"hide"!==D?(L(this).hasClass("xdsoft_scroller_box")||(n=l.children().eq(0),i=l[0].clientHeight,s=n[0].offsetHeight,d=L('<div class="xdsoft_scrollbar"></div>'),u=L('<div class="xdsoft_scroller"></div>'),d.append(u),l.addClass("xdsoft_scroller_box").append(d),g=function(e){var t=a(e).y-r+h;t<0&&(t=0),t+u[0].offsetHeight>m&&(t=m-u[0].offsetHeight),l.trigger("scroll_element.xdsoft_scroller",[f?t/f:0])},u.on("touchstart.xdsoft_scroller mousedown.xdsoft_scroller",function(e){i||l.trigger("resize_scroll.xdsoft_scroller",[D]),r=a(e).y,h=parseInt(u.css("margin-top"),10),m=d[0].offsetHeight,"mousedown"===e.type||"touchstart"===e.type?(p.ownerDocument&&L(p.ownerDocument.body).addClass("xdsoft_noselect"),L([p.ownerDocument.body,p.contentWindow]).on("touchend mouseup.xdsoft_scroller",function e(){L([p.ownerDocument.body,p.contentWindow]).off("touchend mouseup.xdsoft_scroller",e).off("mousemove.xdsoft_scroller",g).removeClass("xdsoft_noselect")}),L(p.ownerDocument.body).on("mousemove.xdsoft_scroller",g)):(t=!0,e.stopPropagation(),e.preventDefault())}).on("touchmove",function(e){t&&(e.preventDefault(),g(e))}).on("touchend touchcancel",function(){t=!1,h=0}),l.on("scroll_element.xdsoft_scroller",function(e,t){i||l.trigger("resize_scroll.xdsoft_scroller",[t,!0]),t=1<t?1:t<0||isNaN(t)?0:t,u.css("margin-top",f*t),setTimeout(function(){n.css("marginTop",-parseInt((n[0].offsetHeight-i)*t,10))},10)}).on("resize_scroll.xdsoft_scroller",function(e,t,a){var o,r;i=l[0].clientHeight,s=n[0].offsetHeight,r=(o=i/s)*d[0].offsetHeight,1<o?u.hide():(u.show(),u.css("height",parseInt(10<r?r:10,10)),f=d[0].offsetHeight-u[0].offsetHeight,!0!==a&&l.trigger("scroll_element.xdsoft_scroller",[t||Math.abs(parseInt(n.css("marginTop"),10))/(s-i)]))}),l.on("mousewheel",function(e){var t=Math.abs(parseInt(n.css("marginTop"),10));return(t-=20*e.deltaY)<0&&(t=0),l.trigger("scroll_element.xdsoft_scroller",[t/(s-i)]),e.stopPropagation(),!1}),l.on("touchstart",function(e){o=a(e),c=Math.abs(parseInt(n.css("marginTop"),10))}),l.on("touchmove",function(e){if(o){e.preventDefault();var t=a(e);l.trigger("scroll_element.xdsoft_scroller",[(c-(t.y-o.y))/(s-i)])}}),l.on("touchend touchcancel",function(){o=!1,c=0})),l.trigger("resize_scroll.xdsoft_scroller",[D])):l.find(".xdsoft_scrollbar").hide()})},L.fn.datetimepicker=function(j,a){var o,r,n=this,p=17,D=13,y=27,k=37,v=38,x=39,b=40,T=9,S=116,O=65,M=67,H=86,J=90,z=89,N=!1,I=L.isPlainObject(j)||!j?L.extend(!0,{},s,j):L.extend(!0,{},s),i=0;return o=function(w){var t,o,a,r,W,h,_=L('<div class="xdsoft_datetimepicker xdsoft_noselect"></div>'),e=L('<div class="xdsoft_copyright"><a target="_blank" href="http://xdsoft.net/jqplugins/datetimepicker/">xdsoft.net</a></div>'),g=L('<div class="xdsoft_datepicker active"></div>'),F=L('<div class="xdsoft_monthpicker"><button type="button" class="xdsoft_prev"></button><button type="button" class="xdsoft_today_button"></button><div class="xdsoft_label xdsoft_month"><span></span><i></i></div><div class="xdsoft_label xdsoft_year"><span></span><i></i></div><button type="button" class="xdsoft_next"></button></div>'),C=L('<div class="xdsoft_calendar"></div>'),n=L('<div class="xdsoft_timepicker active"><button type="button" class="xdsoft_prev"></button><div class="xdsoft_time_box"></div><button type="button" class="xdsoft_next"></button></div>'),u=n.find(".xdsoft_time_box").eq(0),P=L('<div class="xdsoft_time_variant"></div>'),i=L('<button type="button" class="xdsoft_save_selected blue-gradient-button">Save Selected</button>'),A=L('<div class="xdsoft_select xdsoft_monthselect"><div></div></div>'),Y=L('<div class="xdsoft_select xdsoft_yearselect"><div></div></div>'),s=!1,d=0;I.id&&_.attr("id",I.id),I.style&&_.attr("style",I.style),I.weeks&&_.addClass("xdsoft_showweeks"),I.rtl&&_.addClass("xdsoft_rtl"),_.addClass("xdsoft_"+I.theme),_.addClass(I.className),F.find(".xdsoft_month span").after(A),F.find(".xdsoft_year span").after(Y),F.find(".xdsoft_month,.xdsoft_year").on("touchstart mousedown.xdsoft",function(e){var t,a,o=L(this).find(".xdsoft_select").eq(0),r=0,n=0,i=o.is(":visible");for(F.find(".xdsoft_select").hide(),W.currentTime&&(r=W.currentTime[L(this).hasClass("xdsoft_month")?"getMonth":"getFullYear"]()),o[i?"hide":"show"](),t=o.find("div.xdsoft_option"),a=0;a<t.length&&t.eq(a).data("value")!==r;a+=1)n+=t[0].offsetHeight;return o.xdsoftScroller(I,n/(o.children()[0].offsetHeight-o[0].clientHeight)),e.stopPropagation(),!1});var l=function(e){var t=e.originalEvent,a=t.touches?t.touches[0]:t;this.touchStartPosition=this.touchStartPosition||a;var o=Math.abs(this.touchStartPosition.clientX-a.clientX),r=Math.abs(this.touchStartPosition.clientY-a.clientY);Math.sqrt(o*o+r*r)>I.touchMovedThreshold&&(this.touchMoved=!0)};function f(){var e,t=!1;return I.startDate?t=W.strToDate(I.startDate):(t=I.value||(w&&w.val&&w.val()?w.val():""))?(t=W.strToDateTime(t),I.yearOffset&&(t=new Date(t.getFullYear()-I.yearOffset,t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()))):I.defaultDate&&(t=W.strToDateTime(I.defaultDate),I.defaultTime&&(e=W.strtotime(I.defaultTime),t.setHours(e.getHours()),t.setMinutes(e.getMinutes()))),t&&W.isValidDate(t)?_.data("changed",!0):t="",t||0}function c(m){var h=function(e,t){var a=e.replace(/([\[\]\/\{\}\(\)\-\.\+]{1})/g,"\\$1").replace(/_/g,"{digit+}").replace(/([0-9]{1})/g,"{digit$1}").replace(/\{digit([0-9]{1})\}/g,"[0-$1_]{1}").replace(/\{digit[\+]\}/g,"[0-9_]{1}");return new RegExp(a).test(t)},g=function(e,t){if(!(e="string"==typeof e||e instanceof String?m.ownerDocument.getElementById(e):e))return!1;if(e.createTextRange){var a=e.createTextRange();return a.collapse(!0),a.moveEnd("character",t),a.moveStart("character",t),a.select(),!0}return!!e.setSelectionRange&&(e.setSelectionRange(t,t),!0)};m.mask&&w.off("keydown.xdsoft"),!0===m.mask&&(E.formatMask?m.mask=E.formatMask(m.format):m.mask=m.format.replace(/Y/g,"9999").replace(/F/g,"9999").replace(/m/g,"19").replace(/d/g,"39").replace(/H/g,"29").replace(/i/g,"59").replace(/s/g,"59")),"string"===L.type(m.mask)&&(h(m.mask,w.val())||(w.val(m.mask.replace(/[0-9]/g,"_")),g(w[0],0)),w.on("paste.xdsoft",function(e){var t=(e.clipboardData||e.originalEvent.clipboardData||window.clipboardData).getData("text"),a=this.value,o=this.selectionStart;return a=a.substr(0,o)+t+a.substr(o+t.length),o+=t.length,h(m.mask,a)?(this.value=a,g(this,o)):""===L.trim(a)?this.value=m.mask.replace(/[0-9]/g,"_"):w.trigger("error_input.xdsoft"),e.preventDefault(),!1}),w.on("keydown.xdsoft",function(e){var t,a=this.value,o=e.which,r=this.selectionStart,n=this.selectionEnd,i=r!==n;if(48<=o&&o<=57||96<=o&&o<=105||8===o||46===o){for(t=8===o||46===o?"_":String.fromCharCode(96<=o&&o<=105?o-48:o),8===o&&r&&!i&&(r-=1);;){var s=m.mask.substr(r,1),d=r<m.mask.length,u=0<r;if(!(/[^0-9_]/.test(s)&&d&&u))break;r+=8!==o||i?1:-1}if(e.metaKey&&(i=!(r=0)),i){var l=n-r,f=m.mask.replace(/[0-9]/g,"_"),c=f.substr(r,l).substr(1);a=a.substr(0,r)+(t+c)+a.substr(r+l)}else{a=a.substr(0,r)+t+a.substr(r+1)}if(""===L.trim(a))a=f;else if(r===m.mask.length)return e.preventDefault(),!1;for(r+=8===o?0:1;/[^0-9_]/.test(m.mask.substr(r,1))&&r<m.mask.length&&0<r;)r+=8===o?0:1;h(m.mask,a)?(this.value=a,g(this,r)):""===L.trim(a)?this.value=m.mask.replace(/[0-9]/g,"_"):w.trigger("error_input.xdsoft")}else if(-1!==[O,M,H,J,z].indexOf(o)&&N||-1!==[y,v,b,k,x,S,p,T,D].indexOf(o))return!0;return e.preventDefault(),!1}))}F.find(".xdsoft_select").xdsoftScroller(I).on("touchstart mousedown.xdsoft",function(e){var t=e.originalEvent;this.touchMoved=!1,this.touchStartPosition=t.touches?t.touches[0]:t,e.stopPropagation(),e.preventDefault()}).on("touchmove",".xdsoft_option",l).on("touchend mousedown.xdsoft",".xdsoft_option",function(){if(!this.touchMoved){void 0!==W.currentTime&&null!==W.currentTime||(W.currentTime=W.now());var e=W.currentTime.getFullYear();W&&W.currentTime&&W.currentTime[L(this).parent().parent().hasClass("xdsoft_monthselect")?"setMonth":"setFullYear"](L(this).data("value")),L(this).parent().parent().hide(),_.trigger("xchange.xdsoft"),I.onChangeMonth&&L.isFunction(I.onChangeMonth)&&I.onChangeMonth.call(_,W.currentTime,_.data("input")),e!==W.currentTime.getFullYear()&&L.isFunction(I.onChangeYear)&&I.onChangeYear.call(_,W.currentTime,_.data("input"))}}),_.getValue=function(){return W.getCurrentTime()},_.setOptions=function(e){var l={};I=L.extend(!0,{},I,e),e.allowTimes&&L.isArray(e.allowTimes)&&e.allowTimes.length&&(I.allowTimes=L.extend(!0,[],e.allowTimes)),e.weekends&&L.isArray(e.weekends)&&e.weekends.length&&(I.weekends=L.extend(!0,[],e.weekends)),e.allowDates&&L.isArray(e.allowDates)&&e.allowDates.length&&(I.allowDates=L.extend(!0,[],e.allowDates)),e.allowDateRe&&"[object String]"===Object.prototype.toString.call(e.allowDateRe)&&(I.allowDateRe=new RegExp(e.allowDateRe)),e.highlightedDates&&L.isArray(e.highlightedDates)&&e.highlightedDates.length&&(L.each(e.highlightedDates,function(e,t){var a,o=L.map(t.split(","),L.trim),r=new m(E.parseDate(o[0],I.formatDate),o[1],o[2]),n=E.formatDate(r.date,I.formatDate);void 0!==l[n]?(a=l[n].desc)&&a.length&&r.desc&&r.desc.length&&(l[n].desc=a+"\n"+r.desc):l[n]=r}),I.highlightedDates=L.extend(!0,[],l)),e.highlightedPeriods&&L.isArray(e.highlightedPeriods)&&e.highlightedPeriods.length&&(l=L.extend(!0,[],I.highlightedDates),L.each(e.highlightedPeriods,function(e,t){var a,o,r,n,i,s,d;if(L.isArray(t))a=t[0],o=t[1],r=t[2],d=t[3];else{var u=L.map(t.split(","),L.trim);a=E.parseDate(u[0],I.formatDate),o=E.parseDate(u[1],I.formatDate),r=u[2],d=u[3]}for(;a<=o;)n=new m(a,r,d),i=E.formatDate(a,I.formatDate),a.setDate(a.getDate()+1),void 0!==l[i]?(s=l[i].desc)&&s.length&&n.desc&&n.desc.length&&(l[i].desc=s+"\n"+n.desc):l[i]=n}),I.highlightedDates=L.extend(!0,[],l)),e.disabledDates&&L.isArray(e.disabledDates)&&e.disabledDates.length&&(I.disabledDates=L.extend(!0,[],e.disabledDates)),e.disabledWeekDays&&L.isArray(e.disabledWeekDays)&&e.disabledWeekDays.length&&(I.disabledWeekDays=L.extend(!0,[],e.disabledWeekDays)),!I.open&&!I.opened||I.inline||w.trigger("open.xdsoft"),I.inline&&(s=!0,_.addClass("xdsoft_inline"),w.after(_).hide()),I.inverseButton&&(I.next="xdsoft_prev",I.prev="xdsoft_next"),I.datepicker?g.addClass("active"):g.removeClass("active"),I.timepicker?n.addClass("active"):n.removeClass("active"),I.value&&(W.setCurrentTime(I.value),w&&w.val&&w.val(W.str)),isNaN(I.dayOfWeekStart)?I.dayOfWeekStart=0:I.dayOfWeekStart=parseInt(I.dayOfWeekStart,10)%7,I.timepickerScrollbar||u.xdsoftScroller(I,"hide"),I.minDate&&/^[\+\-](.*)$/.test(I.minDate)&&(I.minDate=E.formatDate(W.strToDateTime(I.minDate),I.formatDate)),I.maxDate&&/^[\+\-](.*)$/.test(I.maxDate)&&(I.maxDate=E.formatDate(W.strToDateTime(I.maxDate),I.formatDate)),I.minDateTime&&/^\+(.*)$/.test(I.minDateTime)&&(I.minDateTime=W.strToDateTime(I.minDateTime).dateFormat(I.formatDate)),I.maxDateTime&&/^\+(.*)$/.test(I.maxDateTime)&&(I.maxDateTime=W.strToDateTime(I.maxDateTime).dateFormat(I.formatDate)),i.toggle(I.showApplyButton),F.find(".xdsoft_today_button").css("visibility",I.todayButton?"visible":"hidden"),F.find("."+I.prev).css("visibility",I.prevButton?"visible":"hidden"),F.find("."+I.next).css("visibility",I.nextButton?"visible":"hidden"),c(I),I.validateOnBlur&&w.off("blur.xdsoft").on("blur.xdsoft",function(){if(I.allowBlank&&(!L.trim(L(this).val()).length||"string"==typeof I.mask&&L.trim(L(this).val())===I.mask.replace(/[0-9]/g,"_")))L(this).val(null),_.data("xdsoft_datetime").empty();else{var e=E.parseDate(L(this).val(),I.format);if(e)L(this).val(E.formatDate(e,I.format));else{var t=+[L(this).val()[0],L(this).val()[1]].join(""),a=+[L(this).val()[2],L(this).val()[3]].join("");!I.datepicker&&I.timepicker&&0<=t&&t<24&&0<=a&&a<60?L(this).val([t,a].map(function(e){return 9<e?e:"0"+e}).join(":")):L(this).val(E.formatDate(W.now(),I.format))}_.data("xdsoft_datetime").setCurrentTime(L(this).val())}_.trigger("changedatetime.xdsoft"),_.trigger("close.xdsoft")}),I.dayOfWeekStartPrev=0===I.dayOfWeekStart?6:I.dayOfWeekStart-1,_.trigger("xchange.xdsoft").trigger("afterOpen.xdsoft")},_.data("options",I).on("touchstart mousedown.xdsoft",function(e){return e.stopPropagation(),e.preventDefault(),Y.hide(),A.hide(),!1}),u.append(P),u.xdsoftScroller(I),_.on("afterOpen.xdsoft",function(){u.xdsoftScroller(I)}),_.append(g).append(n),!0!==I.withoutCopyright&&_.append(e),g.append(F).append(C).append(i),I.insideParent?L(w).parent().append(_):L(I.parentID).append(_),W=new function(){var r=this;r.now=function(e){var t,a,o=new Date;return!e&&I.defaultDate&&(t=r.strToDateTime(I.defaultDate),o.setFullYear(t.getFullYear()),o.setMonth(t.getMonth()),o.setDate(t.getDate())),o.setFullYear(o.getFullYear()),!e&&I.defaultTime&&(a=r.strtotime(I.defaultTime),o.setHours(a.getHours()),o.setMinutes(a.getMinutes()),o.setSeconds(a.getSeconds()),o.setMilliseconds(a.getMilliseconds())),o},r.isValidDate=function(e){return"[object Date]"===Object.prototype.toString.call(e)&&!isNaN(e.getTime())},r.setCurrentTime=function(e,t){"string"==typeof e?r.currentTime=r.strToDateTime(e):r.isValidDate(e)?r.currentTime=e:e||t||!I.allowBlank||I.inline?r.currentTime=r.now():r.currentTime=null,_.trigger("xchange.xdsoft")},r.empty=function(){r.currentTime=null},r.getCurrentTime=function(){return r.currentTime},r.nextMonth=function(){void 0!==r.currentTime&&null!==r.currentTime||(r.currentTime=r.now());var e,t=r.currentTime.getMonth()+1;return 12===t&&(r.currentTime.setFullYear(r.currentTime.getFullYear()+1),t=0),e=r.currentTime.getFullYear(),r.currentTime.setDate(Math.min(new Date(r.currentTime.getFullYear(),t+1,0).getDate(),r.currentTime.getDate())),r.currentTime.setMonth(t),I.onChangeMonth&&L.isFunction(I.onChangeMonth)&&I.onChangeMonth.call(_,W.currentTime,_.data("input")),e!==r.currentTime.getFullYear()&&L.isFunction(I.onChangeYear)&&I.onChangeYear.call(_,W.currentTime,_.data("input")),_.trigger("xchange.xdsoft"),t},r.prevMonth=function(){void 0!==r.currentTime&&null!==r.currentTime||(r.currentTime=r.now());var e=r.currentTime.getMonth()-1;return-1===e&&(r.currentTime.setFullYear(r.currentTime.getFullYear()-1),e=11),r.currentTime.setDate(Math.min(new Date(r.currentTime.getFullYear(),e+1,0).getDate(),r.currentTime.getDate())),r.currentTime.setMonth(e),I.onChangeMonth&&L.isFunction(I.onChangeMonth)&&I.onChangeMonth.call(_,W.currentTime,_.data("input")),_.trigger("xchange.xdsoft"),e},r.getWeekOfYear=function(e){if(I.onGetWeekOfYear&&L.isFunction(I.onGetWeekOfYear)){var t=I.onGetWeekOfYear.call(_,e);if(void 0!==t)return t}var a=new Date(e.getFullYear(),0,1);return 4!==a.getDay()&&a.setMonth(0,1+(4-a.getDay()+7)%7),Math.ceil(((e-a)/864e5+a.getDay()+1)/7)},r.strToDateTime=function(e){var t,a,o=[];return e&&e instanceof Date&&r.isValidDate(e)?e:((o=/^([+-]{1})(.*)$/.exec(e))&&(o[2]=E.parseDate(o[2],I.formatDate)),a=o&&o[2]?(t=o[2].getTime()-6e4*o[2].getTimezoneOffset(),new Date(r.now(!0).getTime()+parseInt(o[1]+"1",10)*t)):e?E.parseDate(e,I.format):r.now(),r.isValidDate(a)||(a=r.now()),a)},r.strToDate=function(e){if(e&&e instanceof Date&&r.isValidDate(e))return e;var t=e?E.parseDate(e,I.formatDate):r.now(!0);return r.isValidDate(t)||(t=r.now(!0)),t},r.strtotime=function(e){if(e&&e instanceof Date&&r.isValidDate(e))return e;var t=e?E.parseDate(e,I.formatTime):r.now(!0);return r.isValidDate(t)||(t=r.now(!0)),t},r.str=function(){var e=I.format;return I.yearOffset&&(e=(e=e.replace("Y",r.currentTime.getFullYear()+I.yearOffset)).replace("y",String(r.currentTime.getFullYear()+I.yearOffset).substring(2,4))),E.formatDate(r.currentTime,e)},r.currentTime=this.now()},i.on("touchend click",function(e){e.preventDefault(),_.data("changed",!0),W.setCurrentTime(f()),w.val(W.str()),_.trigger("close.xdsoft")}),F.find(".xdsoft_today_button").on("touchend mousedown.xdsoft",function(){_.data("changed",!0),W.setCurrentTime(0,!0),_.trigger("afterOpen.xdsoft")}).on("dblclick.xdsoft",function(){var e,t,a=W.getCurrentTime();a=new Date(a.getFullYear(),a.getMonth(),a.getDate()),e=W.strToDate(I.minDate),a<(e=new Date(e.getFullYear(),e.getMonth(),e.getDate()))||(t=W.strToDate(I.maxDate),(t=new Date(t.getFullYear(),t.getMonth(),t.getDate()))<a||(w.val(W.str()),w.trigger("change"),_.trigger("close.xdsoft")))}),F.find(".xdsoft_prev,.xdsoft_next").on("touchend mousedown.xdsoft",function(){var a=L(this),o=0,r=!1;!function e(t){a.hasClass(I.next)?W.nextMonth():a.hasClass(I.prev)&&W.prevMonth(),I.monthChangeSpinner&&(r||(o=setTimeout(e,t||100)))}(500),L([I.ownerDocument.body,I.contentWindow]).on("touchend mouseup.xdsoft",function e(){clearTimeout(o),r=!0,L([I.ownerDocument.body,I.contentWindow]).off("touchend mouseup.xdsoft",e)})}),n.find(".xdsoft_prev,.xdsoft_next").on("touchend mousedown.xdsoft",function(){var n=L(this),i=0,s=!1,d=110;!function e(t){var a=u[0].clientHeight,o=P[0].offsetHeight,r=Math.abs(parseInt(P.css("marginTop"),10));n.hasClass(I.next)&&o-a-I.timeHeightInTimePicker>=r?P.css("marginTop","-"+(r+I.timeHeightInTimePicker)+"px"):n.hasClass(I.prev)&&0<=r-I.timeHeightInTimePicker&&P.css("marginTop","-"+(r-I.timeHeightInTimePicker)+"px"),u.trigger("scroll_element.xdsoft_scroller",[Math.abs(parseInt(P[0].style.marginTop,10)/(o-a))]),d=10<d?10:d-10,s||(i=setTimeout(e,t||d))}(500),L([I.ownerDocument.body,I.contentWindow]).on("touchend mouseup.xdsoft",function e(){clearTimeout(i),s=!0,L([I.ownerDocument.body,I.contentWindow]).off("touchend mouseup.xdsoft",e)})}),t=0,_.on("xchange.xdsoft",function(e){clearTimeout(t),t=setTimeout(function(){void 0!==W.currentTime&&null!==W.currentTime||(W.currentTime=W.now());for(var e,t,a,o,r,n,i,s,d,u,l="",f=new Date(W.currentTime.getFullYear(),W.currentTime.getMonth(),1,12,0,0),c=0,m=W.now(),h=!1,g=!1,p=!1,D=!1,y=[],k=!0,v="";f.getDay()!==I.dayOfWeekStart;)f.setDate(f.getDate()-1);for(l+="<table><thead><tr>",I.weeks&&(l+="<th></th>"),e=0;e<7;e+=1)l+="<th>"+I.i18n[V].dayOfWeekShort[(e+I.dayOfWeekStart)%7]+"</th>";for(l+="</tr></thead>",l+="<tbody>",!1!==I.maxDate&&(h=W.strToDate(I.maxDate),h=new Date(h.getFullYear(),h.getMonth(),h.getDate(),23,59,59,999)),!1!==I.minDate&&(g=W.strToDate(I.minDate),g=new Date(g.getFullYear(),g.getMonth(),g.getDate())),!1!==I.minDateTime&&(p=W.strToDate(I.minDateTime),p=new Date(p.getFullYear(),p.getMonth(),p.getDate(),p.getHours(),p.getMinutes(),p.getSeconds())),!1!==I.maxDateTime&&(D=W.strToDate(I.maxDateTime),D=new Date(D.getFullYear(),D.getMonth(),D.getDate(),D.getHours(),D.getMinutes(),D.getSeconds())),!1!==D&&(u=31*(12*D.getFullYear()+D.getMonth())+D.getDate());c<W.currentTime.countDaysInMonth()||f.getDay()!==I.dayOfWeekStart||W.currentTime.getMonth()===f.getMonth();){y=[],c+=1,a=f.getDay(),o=f.getDate(),r=f.getFullYear(),O=f.getMonth(),n=W.getWeekOfYear(f),d="",y.push("xdsoft_date"),i=I.beforeShowDay&&L.isFunction(I.beforeShowDay.call)?I.beforeShowDay.call(_,f):null,I.allowDateRe&&"[object RegExp]"===Object.prototype.toString.call(I.allowDateRe)&&(I.allowDateRe.test(E.formatDate(f,I.formatDate))||y.push("xdsoft_disabled")),I.allowDates&&0<I.allowDates.length&&-1===I.allowDates.indexOf(E.formatDate(f,I.formatDate))&&y.push("xdsoft_disabled");var x=31*(12*f.getFullYear()+f.getMonth())+f.getDate();(!1!==h&&h<f||!1!==p&&f<p||!1!==g&&f<g||!1!==D&&u<x||i&&!1===i[0])&&y.push("xdsoft_disabled"),-1!==I.disabledDates.indexOf(E.formatDate(f,I.formatDate))&&y.push("xdsoft_disabled"),-1!==I.disabledWeekDays.indexOf(a)&&y.push("xdsoft_disabled"),w.is("[disabled]")&&y.push("xdsoft_disabled"),i&&""!==i[1]&&y.push(i[1]),W.currentTime.getMonth()!==O&&y.push("xdsoft_other_month"),(I.defaultSelect||_.data("changed"))&&E.formatDate(W.currentTime,I.formatDate)===E.formatDate(f,I.formatDate)&&y.push("xdsoft_current"),E.formatDate(m,I.formatDate)===E.formatDate(f,I.formatDate)&&y.push("xdsoft_today"),0!==f.getDay()&&6!==f.getDay()&&-1===I.weekends.indexOf(E.formatDate(f,I.formatDate))||y.push("xdsoft_weekend"),void 0!==I.highlightedDates[E.formatDate(f,I.formatDate)]&&(t=I.highlightedDates[E.formatDate(f,I.formatDate)],y.push(void 0===t.style?"xdsoft_highlighted_default":t.style),d=void 0===t.desc?"":t.desc),I.beforeShowDay&&L.isFunction(I.beforeShowDay)&&y.push(I.beforeShowDay(f)),k&&(l+="<tr>",k=!1,I.weeks&&(l+="<th>"+n+"</th>")),l+='<td data-date="'+o+'" data-month="'+O+'" data-year="'+r+'" class="xdsoft_date xdsoft_day_of_week'+f.getDay()+" "+y.join(" ")+'" title="'+d+'"><div>'+o+"</div></td>",f.getDay()===I.dayOfWeekStartPrev&&(l+="</tr>",k=!0),f.setDate(o+1)}l+="</tbody></table>",C.html(l),F.find(".xdsoft_label span").eq(0).text(I.i18n[V].months[W.currentTime.getMonth()]),F.find(".xdsoft_label span").eq(1).text(W.currentTime.getFullYear()+I.yearOffset),O=v="";var b=0;if(!1!==I.minTime){var T=W.strtotime(I.minTime);b=60*T.getHours()+T.getMinutes()}var S=1440;if(!1!==I.maxTime){T=W.strtotime(I.maxTime);S=60*T.getHours()+T.getMinutes()}if(!1!==I.minDateTime){T=W.strToDateTime(I.minDateTime);if(E.formatDate(W.currentTime,I.formatDate)===E.formatDate(T,I.formatDate)){var O=60*T.getHours()+T.getMinutes();b<O&&(b=O)}}if(!1!==I.maxDateTime){T=W.strToDateTime(I.maxDateTime);if(E.formatDate(W.currentTime,I.formatDate)===E.formatDate(T,I.formatDate))(O=60*T.getHours()+T.getMinutes())<S&&(S=O)}if(s=function(e,t){var a,o=W.now(),r=I.allowTimes&&L.isArray(I.allowTimes)&&I.allowTimes.length;o.setHours(e),e=parseInt(o.getHours(),10),o.setMinutes(t),t=parseInt(o.getMinutes(),10),y=[];var n=60*e+t;(w.is("[disabled]")||S<=n||n<b)&&y.push("xdsoft_disabled"),(a=new Date(W.currentTime)).setHours(parseInt(W.currentTime.getHours(),10)),r||a.setMinutes(Math[I.roundTime](W.currentTime.getMinutes()/I.step)*I.step),(I.initTime||I.defaultSelect||_.data("changed"))&&a.getHours()===parseInt(e,10)&&(!r&&59<I.step||a.getMinutes()===parseInt(t,10))&&(I.defaultSelect||_.data("changed")?y.push("xdsoft_current"):I.initTime&&y.push("xdsoft_init_time")),parseInt(m.getHours(),10)===parseInt(e,10)&&parseInt(m.getMinutes(),10)===parseInt(t,10)&&y.push("xdsoft_today"),v+='<div class="xdsoft_time '+y.join(" ")+'" data-hour="'+e+'" data-minute="'+t+'">'+E.formatDate(o,I.formatTime)+"</div>"},I.allowTimes&&L.isArray(I.allowTimes)&&I.allowTimes.length)for(c=0;c<I.allowTimes.length;c+=1)s(W.strtotime(I.allowTimes[c]).getHours(),O=W.strtotime(I.allowTimes[c]).getMinutes());else for(e=c=0;c<(I.hours12?12:24);c+=1)for(e=0;e<60;e+=I.step){var M=60*c+e;M<b||(S<=M||s((c<10?"0":"")+c,O=(e<10?"0":"")+e))}for(P.html(v),j="",c=parseInt(I.yearStart,10);c<=parseInt(I.yearEnd,10);c+=1)j+='<div class="xdsoft_option '+(W.currentTime.getFullYear()===c?"xdsoft_current":"")+'" data-value="'+c+'">'+(c+I.yearOffset)+"</div>";for(Y.children().eq(0).html(j),c=parseInt(I.monthStart,10),j="";c<=parseInt(I.monthEnd,10);c+=1)j+='<div class="xdsoft_option '+(W.currentTime.getMonth()===c?"xdsoft_current":"")+'" data-value="'+c+'">'+I.i18n[V].months[c]+"</div>";A.children().eq(0).html(j),L(_).trigger("generate.xdsoft")},10),e.stopPropagation()}).on("afterOpen.xdsoft",function(){var e,t,a,o;I.timepicker&&(P.find(".xdsoft_current").length?e=".xdsoft_current":P.find(".xdsoft_init_time").length&&(e=".xdsoft_init_time"),e?(t=u[0].clientHeight,(a=P[0].offsetHeight)-t<(o=P.find(e).index()*I.timeHeightInTimePicker+1)&&(o=a-t),u.trigger("scroll_element.xdsoft_scroller",[parseInt(o,10)/(a-t)])):u.trigger("scroll_element.xdsoft_scroller",[0]))}),o=0,C.on("touchend click.xdsoft","td",function(e){e.stopPropagation(),o+=1;var t=L(this),a=W.currentTime;if(null==a&&(W.currentTime=W.now(),a=W.currentTime),t.hasClass("xdsoft_disabled"))return!1;a.setDate(1),a.setFullYear(t.data("year")),a.setMonth(t.data("month")),a.setDate(t.data("date")),_.trigger("select.xdsoft",[a]),w.val(W.str()),I.onSelectDate&&L.isFunction(I.onSelectDate)&&I.onSelectDate.call(_,W.currentTime,_.data("input"),e),_.data("changed",!0),_.trigger("xchange.xdsoft"),_.trigger("changedatetime.xdsoft"),(1<o||!0===I.closeOnDateSelect||!1===I.closeOnDateSelect&&!I.timepicker)&&!I.inline&&_.trigger("close.xdsoft"),setTimeout(function(){o=0},200)}),P.on("touchstart","div",function(e){this.touchMoved=!1}).on("touchmove","div",l).on("touchend click.xdsoft","div",function(e){if(!this.touchMoved){e.stopPropagation();var t=L(this),a=W.currentTime;if(null==a&&(W.currentTime=W.now(),a=W.currentTime),t.hasClass("xdsoft_disabled"))return!1;a.setHours(t.data("hour")),a.setMinutes(t.data("minute")),_.trigger("select.xdsoft",[a]),_.data("input").val(W.str()),I.onSelectTime&&L.isFunction(I.onSelectTime)&&I.onSelectTime.call(_,W.currentTime,_.data("input"),e),_.data("changed",!0),_.trigger("xchange.xdsoft"),_.trigger("changedatetime.xdsoft"),!0!==I.inline&&!0===I.closeOnTimeSelect&&_.trigger("close.xdsoft")}}),g.on("mousewheel.xdsoft",function(e){return!I.scrollMonth||(e.deltaY<0?W.nextMonth():W.prevMonth(),!1)}),w.on("mousewheel.xdsoft",function(e){return!I.scrollInput||(!I.datepicker&&I.timepicker?(0<=(a=P.find(".xdsoft_current").length?P.find(".xdsoft_current").eq(0).index():0)+e.deltaY&&a+e.deltaY<P.children().length&&(a+=e.deltaY),P.children().eq(a).length&&P.children().eq(a).trigger("mousedown"),!1):I.datepicker&&!I.timepicker?(g.trigger(e,[e.deltaY,e.deltaX,e.deltaY]),w.val&&w.val(W.str()),_.trigger("changedatetime.xdsoft"),!1):void 0)}),_.on("changedatetime.xdsoft",function(e){if(I.onChangeDateTime&&L.isFunction(I.onChangeDateTime)){var t=_.data("input");I.onChangeDateTime.call(_,W.currentTime,t,e),delete I.value,t.trigger("change")}}).on("generate.xdsoft",function(){I.onGenerate&&L.isFunction(I.onGenerate)&&I.onGenerate.call(_,W.currentTime,_.data("input")),s&&(_.trigger("afterOpen.xdsoft"),s=!1)}).on("click.xdsoft",function(e){e.stopPropagation()}),a=0,h=function(e,t){do{if(!(e=e.parentNode)||!1===t(e))break}while("HTML"!==e.nodeName)},r=function(){var e,t,a,o,r,n,i,s,d,u,l,f,c;if(e=(s=_.data("input")).offset(),t=s[0],u="top",a=e.top+t.offsetHeight-1,o=e.left,r="absolute",d=L(I.contentWindow).width(),f=L(I.contentWindow).height(),c=L(I.contentWindow).scrollTop(),I.ownerDocument.documentElement.clientWidth-e.left<g.parent().outerWidth(!0)){var m=g.parent().outerWidth(!0)-t.offsetWidth;o-=m}"rtl"===s.parent().css("direction")&&(o-=_.outerWidth()-s.outerWidth()),I.fixed?(a-=c,o-=L(I.contentWindow).scrollLeft(),r="fixed"):(i=!1,h(t,function(e){return null!==e&&("fixed"===I.contentWindow.getComputedStyle(e).getPropertyValue("position")?!(i=!0):void 0)}),i&&!I.insideParent?(r="fixed",a+_.outerHeight()>f+c?(u="bottom",a=f+c-e.top):a-=c):a+_[0].offsetHeight>f+c&&(a=e.top-_[0].offsetHeight+1),a<0&&(a=0),o+t.offsetWidth>d&&(o=d-t.offsetWidth)),n=_[0],h(n,function(e){if("relative"===I.contentWindow.getComputedStyle(e).getPropertyValue("position")&&d>=e.offsetWidth)return o-=(d-e.offsetWidth)/2,!1}),l={position:r,left:I.insideParent?t.offsetLeft:o,top:"",bottom:""},I.insideParent?l[u]=t.offsetTop+t.offsetHeight:l[u]=a,_.css(l)},_.on("open.xdsoft",function(e){var t=!0;I.onShow&&L.isFunction(I.onShow)&&(t=I.onShow.call(_,W.currentTime,_.data("input"),e)),!1!==t&&(_.show(),r(),L(I.contentWindow).off("resize.xdsoft",r).on("resize.xdsoft",r),I.closeOnWithoutClick&&L([I.ownerDocument.body,I.contentWindow]).on("touchstart mousedown.xdsoft",function e(){_.trigger("close.xdsoft"),L([I.ownerDocument.body,I.contentWindow]).off("touchstart mousedown.xdsoft",e)}))}).on("close.xdsoft",function(e){var t=!0;F.find(".xdsoft_month,.xdsoft_year").find(".xdsoft_select").hide(),I.onClose&&L.isFunction(I.onClose)&&(t=I.onClose.call(_,W.currentTime,_.data("input"),e)),!1===t||I.opened||I.inline||_.hide(),e.stopPropagation()}).on("toggle.xdsoft",function(){_.is(":visible")?_.trigger("close.xdsoft"):_.trigger("open.xdsoft")}).data("input",w),d=0,_.data("xdsoft_datetime",W),_.setOptions(I),W.setCurrentTime(f()),w.data("xdsoft_datetimepicker",_).on("open.xdsoft focusin.xdsoft mousedown.xdsoft touchstart",function(){w.is(":disabled")||w.data("xdsoft_datetimepicker").is(":visible")&&I.closeOnInputClick||I.openOnFocus&&(clearTimeout(d),d=setTimeout(function(){w.is(":disabled")||(s=!0,W.setCurrentTime(f(),!0),I.mask&&c(I),_.trigger("open.xdsoft"))},100))}).on("keydown.xdsoft",function(e){var t,a=e.which;return-1!==[D].indexOf(a)&&I.enterLikeTab?(t=L("input:visible,textarea:visible,button:visible,a:visible"),_.trigger("close.xdsoft"),t.eq(t.index(this)+1).focus(),!1):-1!==[T].indexOf(a)?(_.trigger("close.xdsoft"),!0):void 0}).on("blur.xdsoft",function(){_.trigger("close.xdsoft")})},r=function(e){var t=e.data("xdsoft_datetimepicker");t&&(t.data("xdsoft_datetime",null),t.remove(),e.data("xdsoft_datetimepicker",null).off(".xdsoft"),L(I.contentWindow).off("resize.xdsoft"),L([I.contentWindow,I.ownerDocument.body]).off("mousedown.xdsoft touchstart"),e.unmousewheel&&e.unmousewheel())},L(I.ownerDocument).off("keydown.xdsoftctrl keyup.xdsoftctrl").off("keydown.xdsoftcmd keyup.xdsoftcmd").on("keydown.xdsoftctrl",function(e){e.keyCode===p&&(N=!0)}).on("keyup.xdsoftctrl",function(e){e.keyCode===p&&(N=!1)}).on("keydown.xdsoftcmd",function(e){91===e.keyCode&&!0}).on("keyup.xdsoftcmd",function(e){91===e.keyCode&&!1}),this.each(function(){var t,e=L(this).data("xdsoft_datetimepicker");if(e){if("string"===L.type(j))switch(j){case"show":L(this).select().focus(),e.trigger("open.xdsoft");break;case"hide":e.trigger("close.xdsoft");break;case"toggle":e.trigger("toggle.xdsoft");break;case"destroy":r(L(this));break;case"reset":this.value=this.defaultValue,this.value&&e.data("xdsoft_datetime").isValidDate(E.parseDate(this.value,I.format))||e.data("changed",!1),e.data("xdsoft_datetime").setCurrentTime(this.value);break;case"validate":e.data("input").trigger("blur.xdsoft");break;default:e[j]&&L.isFunction(e[j])&&(n=e[j](a))}else e.setOptions(j);return 0}"string"!==L.type(j)&&(!I.lazyInit||I.open||I.inline?o(L(this)):(t=L(this)).on("open.xdsoft focusin.xdsoft mousedown.xdsoft touchstart",function e(){t.is(":disabled")||t.data("xdsoft_datetimepicker")||(clearTimeout(i),i=setTimeout(function(){t.data("xdsoft_datetimepicker")||o(t),t.off("open.xdsoft focusin.xdsoft mousedown.xdsoft touchstart",e).trigger("open.xdsoft")},100))}))}),n},L.fn.datetimepicker.defaults=s};!function(e){"function"==typeof define&&define.amd?define(["jquery","jquery-mousewheel"],e):"object"==typeof exports?module.exports=e(require("jquery")):e(jQuery)}(datetimepickerFactory);
 
languages/wp-seo-structured-data-schema.pot CHANGED
@@ -1,1040 +1,1241 @@
1
- # Copyright (C) 2019 WP SEO Structured Data Schema
2
- # This file is distributed under the same license as the WP SEO Structured Data Schema package.
3
  msgid ""
4
  msgstr ""
 
5
  "Project-Id-Version: WP SEO Structured Data Schema\n"
 
 
 
 
6
  "MIME-Version: 1.0\n"
7
  "Content-Type: text/plain; charset=UTF-8\n"
8
  "Content-Transfer-Encoding: 8bit\n"
 
9
  "X-Poedit-Basepath: ..\n"
10
- "X-Poedit-KeywordsList: __;_e;_ex:1,2c;_n:1,2;_n_noop:1,2;_nx:1,2,4c;_nx_noop:1,2,3c;_x:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n"
 
 
 
 
11
  "X-Poedit-SearchPath-0: .\n"
12
  "X-Poedit-SearchPathExcluded-0: *.js\n"
13
- "X-Poedit-SourceCharset: UTF-8\n"
14
- "Plural-Forms: nplurals=2; plural=(n != 1);\n"
15
 
16
- #: ../lib/classes/KcSeoHelper.php:189
17
  msgid "Pro Version Features"
18
  msgstr ""
19
 
20
- #: ../lib/classes/KcSeoHelper.php:191
21
  msgid "Includes Auto-fill function <---Popular"
22
  msgstr ""
23
 
24
- #: ../lib/classes/KcSeoHelper.php:192
25
  msgid "Supports Custom Post Types beyond default page and posts"
26
  msgstr ""
27
 
28
- #: ../lib/classes/KcSeoHelper.php:193
29
  msgid "Supports WordPress Multisite"
30
  msgstr ""
31
 
32
- #: ../lib/classes/KcSeoHelper.php:194
33
  msgid "Supports more schema types:"
34
  msgstr ""
35
 
36
- #: ../lib/classes/KcSeoHelper.php:196
37
  msgid "Books"
38
  msgstr ""
39
 
40
- #: ../lib/classes/KcSeoHelper.php:197
41
  msgid "Courses"
42
  msgstr ""
43
 
44
- #: ../lib/classes/KcSeoHelper.php:198
45
  msgid "Job Postings"
46
  msgstr ""
47
 
48
- #: ../lib/classes/KcSeoHelper.php:199
49
  msgid "Movies"
50
  msgstr ""
51
 
52
- #: ../lib/classes/KcSeoHelper.php:200, ../lib/functions/KcSeoOptions.php:882
53
  msgid "Music"
54
  msgstr ""
55
 
56
- #: ../lib/classes/KcSeoHelper.php:201, ../lib/functions/KcSeoOptions.php:886
57
  msgid "Recipe"
58
  msgstr ""
59
 
60
- #: ../lib/classes/KcSeoHelper.php:202
61
  msgid "TV Episode"
62
  msgstr ""
63
 
64
- #: ../lib/classes/KcSeoHelper.php:203, ../lib/functions/KcSeoOptions.php:894
65
  msgid "QAPage"
66
  msgstr ""
67
 
68
- #: ../lib/classes/KcSeoHelper.php:204, ../lib/functions/KcSeoOptions.php:898
69
  msgid "Item List"
70
  msgstr ""
71
 
72
- #: ../lib/classes/KcSeoHelper.php:210
73
  msgid "Get the Pro Version"
74
  msgstr ""
75
 
76
- #: ../lib/classes/KcSeoInit.php:33
77
  msgid "Documentation"
78
  msgstr ""
79
 
80
- #: ../lib/classes/KcSeoInit.php:34
81
  msgid "Get Pro"
82
  msgstr ""
83
 
84
- #: ../lib/classes/KcSeoInit.php:202, ../lib/views/schema-options.php:7
 
 
 
 
 
 
 
 
 
85
  msgid "WP SEO Structured Data Schema"
86
  msgstr ""
87
 
88
- #: ../lib/classes/KcSeoInit.php:202
89
  msgid "WP SEO Schema"
90
  msgstr ""
91
 
92
- #: ../lib/classes/KcSeoInit.php:204
93
  msgid "WP SEO Schema settings"
94
  msgstr ""
95
 
96
- #: ../lib/classes/KcSeoInit.php:204
97
  msgid "Settings"
98
  msgstr ""
99
 
100
- #: ../lib/classes/KcSeoMetaData.php:67, ../lib/views/schema-options.php:26
101
- msgid "For more detailed information on how to configure this plugin, please visit:"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
102
  msgstr ""
103
 
104
- #: ../lib/classes/KcSeoMetaData.php:68
105
- msgid "Once you save these structured data schema settings, validate this page url here:"
106
  msgstr ""
107
 
108
- #: ../lib/functions/KcSeoOptions.php:10
109
  msgid "Article"
110
  msgstr ""
111
 
112
- #: ../lib/functions/KcSeoOptions.php:16, ../lib/functions/KcSeoOptions.php:90, ../lib/functions/KcSeoOptions.php:159
 
113
  msgid "Headline"
114
  msgstr ""
115
 
116
- #: ../lib/functions/KcSeoOptions.php:18, ../lib/functions/KcSeoOptions.php:161
117
  msgid "Article title"
118
  msgstr ""
119
 
120
- #: ../lib/functions/KcSeoOptions.php:22, ../lib/functions/KcSeoOptions.php:96, ../lib/functions/KcSeoOptions.php:165
 
121
  msgid "Page URL"
122
  msgstr ""
123
 
124
- #: ../lib/functions/KcSeoOptions.php:24, ../lib/functions/KcSeoOptions.php:98, ../lib/functions/KcSeoOptions.php:167
 
125
  msgid "The canonical URL of the article page"
126
  msgstr ""
127
 
128
- #: ../lib/functions/KcSeoOptions.php:28
129
  msgid "Author Name"
130
  msgstr ""
131
 
132
- #: ../lib/functions/KcSeoOptions.php:30, ../lib/functions/KcSeoOptions.php:104, ../lib/functions/KcSeoOptions.php:173
 
133
  msgid "Author display name"
134
  msgstr ""
135
 
136
- #: ../lib/functions/KcSeoOptions.php:34
137
  msgid "Article Feature Image"
138
  msgstr ""
139
 
140
- #: ../lib/functions/KcSeoOptions.php:37
141
- msgid "Images should be at least 696 pixels wide.<br>Images should be in .jpg, .png, or. gif format."
 
 
142
  msgstr ""
143
 
144
- #: ../lib/functions/KcSeoOptions.php:40, ../lib/functions/KcSeoOptions.php:114, ../lib/functions/KcSeoOptions.php:183
 
145
  msgid "Published date"
146
  msgstr ""
147
 
148
- #: ../lib/functions/KcSeoOptions.php:44, ../lib/functions/KcSeoOptions.php:51, ../lib/functions/KcSeoOptions.php:117, ../lib/functions/KcSeoOptions.php:124, ../lib/functions/KcSeoOptions.php:186, ../lib/functions/KcSeoOptions.php:194, ../lib/functions/KcSeoOptions.php:521, ../lib/functions/KcSeoOptions.php:638
 
 
 
149
  msgid "Like this: 2015-12-25"
150
  msgstr ""
151
 
152
- #: ../lib/functions/KcSeoOptions.php:47, ../lib/functions/KcSeoOptions.php:121, ../lib/functions/KcSeoOptions.php:190
 
153
  msgid "Modified date"
154
  msgstr ""
155
 
156
- #: ../lib/functions/KcSeoOptions.php:54, ../lib/functions/KcSeoOptions.php:128, ../lib/functions/KcSeoOptions.php:197
 
157
  msgid "Publisher"
158
  msgstr ""
159
 
160
- #: ../lib/functions/KcSeoOptions.php:56, ../lib/functions/KcSeoOptions.php:130, ../lib/functions/KcSeoOptions.php:199
 
161
  msgid "Publisher name or Organization name"
162
  msgstr ""
163
 
164
- #: ../lib/functions/KcSeoOptions.php:60, ../lib/functions/KcSeoOptions.php:134, ../lib/functions/KcSeoOptions.php:203
 
165
  msgid "Publisher Logo"
166
  msgstr ""
167
 
168
- #: ../lib/functions/KcSeoOptions.php:62, ../lib/functions/KcSeoOptions.php:136, ../lib/functions/KcSeoOptions.php:205
169
- msgid "Logos should have a wide aspect ratio, not a square icon.<br>Logos should be no wider than 600px, and no taller than 60px.<br>Always retain the original aspect ratio of the logo when resizing. Ideally, logos are exactly 60px tall with width <= 600px. If maintaining a height of 60px would cause the width to exceed 600px, downscale the logo to exactly 600px wide and reduce the height accordingly below 60px to maintain the original aspect ratio.<br>"
170
- msgstr ""
171
-
172
- #: ../lib/functions/KcSeoOptions.php:66, ../lib/functions/KcSeoOptions.php:140, ../lib/functions/KcSeoOptions.php:209, ../lib/functions/KcSeoOptions.php:260, ../lib/functions/KcSeoOptions.php:335, ../lib/functions/KcSeoOptions.php:477, ../lib/functions/KcSeoOptions.php:712, ../lib/functions/KcSeoOptions.php:825, ../lib/views/schema-options.php:170, ../lib/views/schema-options.php:255
 
 
 
 
 
 
 
 
 
 
 
173
  msgid "Description"
174
  msgstr ""
175
 
176
- #: ../lib/functions/KcSeoOptions.php:68, ../lib/functions/KcSeoOptions.php:142, ../lib/functions/KcSeoOptions.php:211
 
177
  msgid "Short description"
178
  msgstr ""
179
 
180
- #: ../lib/functions/KcSeoOptions.php:71, ../lib/functions/KcSeoOptions.php:145, ../lib/functions/KcSeoOptions.php:214
 
181
  msgid "Article body"
182
  msgstr ""
183
 
184
- #: ../lib/functions/KcSeoOptions.php:73, ../lib/functions/KcSeoOptions.php:147
185
  msgid "Article content"
186
  msgstr ""
187
 
188
- #: ../lib/functions/KcSeoOptions.php:76
189
  msgid "Alternative headline"
190
  msgstr ""
191
 
192
- #: ../lib/functions/KcSeoOptions.php:78
193
  msgid "A secondary headline for the article."
194
  msgstr ""
195
 
196
- #: ../lib/functions/KcSeoOptions.php:84
197
  msgid "Blog Posting"
198
  msgstr ""
199
 
200
- #: ../lib/functions/KcSeoOptions.php:92
201
  msgid "Blog posting title"
202
  msgstr ""
203
 
204
- #: ../lib/functions/KcSeoOptions.php:102
205
  msgid "Author name"
206
  msgstr ""
207
 
208
- #: ../lib/functions/KcSeoOptions.php:108
209
  msgid "Feature Image"
210
  msgstr ""
211
 
212
- #: ../lib/functions/KcSeoOptions.php:110, ../lib/functions/KcSeoOptions.php:179
213
- msgid "The representative image of the article. Only a marked-up image that directly belongs to the article should be specified.<br> Images should be at least 696 pixels wide. <br>Images should be in .jpg, .png, or. gif format."
 
 
 
214
  msgstr ""
215
 
216
- #: ../lib/functions/KcSeoOptions.php:153
217
  msgid "News Article"
218
  msgstr ""
219
 
220
- #: ../lib/functions/KcSeoOptions.php:171, ../lib/functions/KcSeoOptions.php:628
221
  msgid "Author"
222
  msgstr ""
223
 
224
- #: ../lib/functions/KcSeoOptions.php:177, ../lib/functions/KcSeoOptions.php:330, ../lib/functions/KcSeoOptions.php:792, ../lib/views/schema-options.php:247
 
225
  msgid "Image"
226
  msgstr ""
227
 
228
- #: ../lib/functions/KcSeoOptions.php:216
229
  msgid "Article body content"
230
  msgstr ""
231
 
232
- #: ../lib/functions/KcSeoOptions.php:222
233
  msgid "Event"
234
  msgstr ""
235
 
236
- #: ../lib/functions/KcSeoOptions.php:228, ../lib/functions/KcSeoOptions.php:324, ../lib/functions/KcSeoOptions.php:471, ../lib/functions/KcSeoOptions.php:533, ../lib/functions/KcSeoOptions.php:820, ../lib/views/schema-options.php:224
 
 
237
  msgid "Name"
238
  msgstr ""
239
 
240
- #: ../lib/functions/KcSeoOptions.php:231
241
  msgid "The name of the event."
242
  msgstr ""
243
 
244
- #: ../lib/functions/KcSeoOptions.php:234
245
  msgid "Location name"
246
  msgstr ""
247
 
248
- #: ../lib/functions/KcSeoOptions.php:237
249
  msgid "Event Location name"
250
  msgstr ""
251
 
252
- #: ../lib/functions/KcSeoOptions.php:240
253
  msgid "Location address"
254
  msgstr ""
255
 
256
- #: ../lib/functions/KcSeoOptions.php:243
257
- msgid "The location of for example where the event is happening, an organization is located, or where an action takes place."
 
 
258
  msgstr ""
259
 
260
- #: ../lib/functions/KcSeoOptions.php:246
261
  msgid "Start date"
262
  msgstr ""
263
 
264
- #: ../lib/functions/KcSeoOptions.php:250
265
  msgid "Event start date"
266
  msgstr ""
267
 
268
- #: ../lib/functions/KcSeoOptions.php:253
269
  msgid "End date"
270
  msgstr ""
271
 
272
- #: ../lib/functions/KcSeoOptions.php:257
273
  msgid "Event end date"
274
  msgstr ""
275
 
276
- #: ../lib/functions/KcSeoOptions.php:263
277
  msgid "Event description"
278
  msgstr ""
279
 
280
- #: ../lib/functions/KcSeoOptions.php:266
281
  msgid "Performer Name"
282
  msgstr ""
283
 
284
- #: ../lib/functions/KcSeoOptions.php:269
285
  msgid "The performer's name."
286
  msgstr ""
287
 
288
- #: ../lib/functions/KcSeoOptions.php:272
289
  msgid "Image URL"
290
  msgstr ""
291
 
292
- #: ../lib/functions/KcSeoOptions.php:275
293
  msgid "URL of an image or logo for the event or tour"
294
  msgstr ""
295
 
296
- #: ../lib/functions/KcSeoOptions.php:278, ../lib/functions/KcSeoOptions.php:411
297
  msgid "Price"
298
  msgstr ""
299
 
300
- #: ../lib/functions/KcSeoOptions.php:282
301
- msgid "This is highly recommended. The lowest available price, including service charges and fees, of this type of ticket. <span class='required'>Not required but (Recommended)</span>"
 
 
 
302
  msgstr ""
303
 
304
- #: ../lib/functions/KcSeoOptions.php:285, ../lib/functions/KcSeoOptions.php:424
305
  msgid "Price currency"
306
  msgstr ""
307
 
308
- #: ../lib/functions/KcSeoOptions.php:287
309
  msgid "The 3-letter currency code. (USD)"
310
  msgstr ""
311
 
312
- #: ../lib/functions/KcSeoOptions.php:301
313
  msgid "Valid From"
314
  msgstr ""
315
 
316
- #: ../lib/functions/KcSeoOptions.php:305
317
- msgstr ""
318
-
319
- #: ../lib/functions/KcSeoOptions.php:312
320
- msgid "A link to the event's details page. <span class='required'>Not required but (Recommended)</span>"
321
  msgstr ""
322
 
323
- #: ../lib/functions/KcSeoOptions.php:318
324
  msgid "Product"
325
  msgstr ""
326
 
327
- #: ../lib/functions/KcSeoOptions.php:327
328
  msgid "The name of the product."
329
  msgstr ""
330
 
331
- #: ../lib/functions/KcSeoOptions.php:332
332
- msgid "The URL of a product photo. Pictures clearly showing the product, e.g. against a white background, are preferred."
 
 
333
  msgstr ""
334
 
335
- #: ../lib/functions/KcSeoOptions.php:337
336
  msgid "Product description."
337
  msgstr ""
338
 
339
- #: ../lib/functions/KcSeoOptions.php:345
340
  msgid "Brand"
341
  msgstr ""
342
 
343
- #: ../lib/functions/KcSeoOptions.php:348
344
  msgid "The brand of the product."
345
  msgstr ""
346
 
347
- #: ../lib/functions/KcSeoOptions.php:351
348
- msgid "Identifier Type"
349
- msgstr ""
350
-
351
- #: ../lib/functions/KcSeoOptions.php:361
352
- msgid ""
353
- "<strong>MPN</strong><br>\n"
354
- " &#8594; MPN(Manufacturer Part Number) Used globally, Alphanumeric digits (various lengths)<br>\n"
355
- " <strong>GTIN</strong><br>\n"
356
- " &#8594; UPC(Universal Product Code) Used in primarily North America. 12 numeric digits. eg. 892685001003.<br>\n"
357
- " &#8594; EAN(European Article Number) Used primarily outside of North America. Typically 13 numeric digits (can occasionally be either eight or 14 numeric digits). eg. 4011200296908<br>\n"
358
- " &#8594; ISBN(International Standard Book Number) Used globally, ISBN-13 (recommended), 13 numeric digits 978-0747595823<br>\n"
359
- " &#8594; JAN(Japanese Article Number) Used only in Japan, 8 or 13 numeric digits."
360
- msgstr ""
361
-
362
- #: ../lib/functions/KcSeoOptions.php:370
363
- msgid "Identifier"
364
- msgstr ""
365
-
366
- #: ../lib/functions/KcSeoOptions.php:373
367
- msgid "Enter product unique identifier"
368
- msgstr ""
369
-
370
- #: ../lib/functions/KcSeoOptions.php:376
371
  msgid "Review rating value"
372
  msgstr ""
373
 
374
- #: ../lib/functions/KcSeoOptions.php:380, ../lib/functions/KcSeoOptions.php:402
375
  msgid "Rating value. (1 , 2.5, 3, 5 etc)"
376
  msgstr ""
377
 
378
- #: ../lib/functions/KcSeoOptions.php:383
379
  msgid "Review Best rating"
380
  msgstr ""
381
 
382
- #: ../lib/functions/KcSeoOptions.php:389
383
  msgid "Review Worst rating"
384
  msgstr ""
385
 
386
- #: ../lib/functions/KcSeoOptions.php:395
387
  msgid "Review author"
388
  msgstr ""
389
 
390
- #: ../lib/functions/KcSeoOptions.php:399, ../lib/functions/KcSeoOptions.php:641
391
  msgid "Rating value"
392
  msgstr ""
393
 
394
- #: ../lib/functions/KcSeoOptions.php:405
395
  msgid "Total review count"
396
  msgstr ""
397
 
398
- #: ../lib/functions/KcSeoOptions.php:408
399
- msgid "Review rating value. <span class='required'>This is required if (Rating value) is given</span>"
 
 
400
  msgstr ""
401
 
402
- #: ../lib/functions/KcSeoOptions.php:414
403
- msgid "The lowest available price, including service charges and fees, of this type of ticket."
 
 
404
  msgstr ""
405
 
406
- #: ../lib/functions/KcSeoOptions.php:417
407
  msgid "PriceValidUntil"
408
  msgstr ""
409
 
410
- #: ../lib/functions/KcSeoOptions.php:421
411
- msgid "The date (in ISO 8601 date format) after which the price will no longer be available."
 
 
412
  msgstr ""
413
 
414
- #: ../lib/functions/KcSeoOptions.php:426
415
  msgid "The 3-letter currency code."
416
  msgstr ""
417
 
418
- #: ../lib/functions/KcSeoOptions.php:442
419
  msgid "Select a availability type"
420
  msgstr ""
421
 
422
- #: ../lib/functions/KcSeoOptions.php:454
423
  msgid "Select a condition"
424
  msgstr ""
425
 
426
- #: ../lib/functions/KcSeoOptions.php:457
427
  msgid "Product URL"
428
  msgstr ""
429
 
430
- #: ../lib/functions/KcSeoOptions.php:459
431
- msgid "A URL to the product web page (that includes the Offer). (Don't use offerURL for markup that appears on the product page itself.)"
 
 
432
  msgstr ""
433
 
434
- #: ../lib/functions/KcSeoOptions.php:465
435
  msgid "Video"
436
  msgstr ""
437
 
438
- #: ../lib/functions/KcSeoOptions.php:474
439
  msgid "The title of the video"
440
  msgstr ""
441
 
442
- #: ../lib/functions/KcSeoOptions.php:480
443
  msgid "The description of the video"
444
  msgstr ""
445
 
446
- #: ../lib/functions/KcSeoOptions.php:487
447
- msgid "A URL pointing to the video thumbnail image file. Images must be at least 160x90 pixels and at most 1920x1080 pixels."
 
 
448
  msgstr ""
449
 
450
- #: ../lib/functions/KcSeoOptions.php:490
451
  msgid "Updated date"
452
  msgstr ""
453
 
454
- #: ../lib/functions/KcSeoOptions.php:493
455
  msgid "2015-02-05T08:00:00+08:00"
456
  msgstr ""
457
 
458
- #: ../lib/functions/KcSeoOptions.php:496
459
  msgid "Duration"
460
  msgstr ""
461
 
462
- #: ../lib/functions/KcSeoOptions.php:498
463
  msgid "The duration of the video in ISO 8601 format.(PT1M33S)"
464
  msgstr ""
465
 
466
- #: ../lib/functions/KcSeoOptions.php:504
467
- msgid "A URL pointing to the actual video media file. This file should be in .mpg, .mpeg, .mp4, .m4v, .mov, .wmv, .asf, .avi, .ra, .ram, .rm, .flv, or other video file format."
 
 
 
468
  msgstr ""
469
 
470
- #: ../lib/functions/KcSeoOptions.php:510
471
- msgid "A URL pointing to a player for the specific video. Usually this is the information in the src element of an < embed> tag.Example: Dailymotion: http://www.dailymotion.com/swf/x1o2g."
 
 
 
472
  msgstr ""
473
 
474
- #: ../lib/functions/KcSeoOptions.php:513
475
  msgid "Interaction count"
476
  msgstr ""
477
 
478
- #: ../lib/functions/KcSeoOptions.php:515
479
  msgid "The number of times the video has been viewed."
480
  msgstr ""
481
 
482
- #: ../lib/functions/KcSeoOptions.php:518
483
  msgid "Expires"
484
  msgstr ""
485
 
486
- #: ../lib/functions/KcSeoOptions.php:527
487
  msgid "Service"
488
  msgstr ""
489
 
490
- #: ../lib/functions/KcSeoOptions.php:536
491
  msgid "The name of the Service."
492
  msgstr ""
493
 
494
- #: ../lib/functions/KcSeoOptions.php:539
495
  msgid "Service type"
496
  msgstr ""
497
 
498
- #: ../lib/functions/KcSeoOptions.php:542
499
- msgid "The type of service being offered, e.g. veterans' benefits, emergency relief, etc."
 
 
500
  msgstr ""
501
 
502
- #: ../lib/functions/KcSeoOptions.php:548
503
- msgid "An additional type for the service, typically used for adding more specific types from external vocabularies in microdata syntax."
 
 
504
  msgstr ""
505
 
506
- #: ../lib/functions/KcSeoOptions.php:551
507
  msgid "Award"
508
  msgstr ""
509
 
510
- #: ../lib/functions/KcSeoOptions.php:553
511
  msgid "An award won by or for this service."
512
  msgstr ""
513
 
514
- #: ../lib/functions/KcSeoOptions.php:556
515
  msgid "Category"
516
  msgstr ""
517
 
518
- #: ../lib/functions/KcSeoOptions.php:558
519
  msgid "A category for the service."
520
  msgstr ""
521
 
522
- #: ../lib/functions/KcSeoOptions.php:561
523
  msgid "Provider mobility"
524
  msgstr ""
525
 
526
- #: ../lib/functions/KcSeoOptions.php:563
527
- msgid "Indicates the mobility of a provided service (e.g. 'static', 'dynamic')."
 
528
  msgstr ""
529
 
530
- #: ../lib/functions/KcSeoOptions.php:569
531
  msgid "A short description of the service."
532
  msgstr ""
533
 
534
- #: ../lib/functions/KcSeoOptions.php:575
535
  msgid "An image of the service. This should be a URL."
536
  msgstr ""
537
 
538
- #: ../lib/functions/KcSeoOptions.php:581
539
- msgid "Indicates a page (or other CreativeWork) for which this thing is the main entity being described."
 
 
540
  msgstr ""
541
 
542
- #: ../lib/functions/KcSeoOptions.php:587
543
- msgid "URL of a reference Web page that unambiguously indicates the service's identity. E.g. the URL of the service's Wikipedia page, Freebase page, or official website."
 
 
 
544
  msgstr ""
545
 
546
- #: ../lib/functions/KcSeoOptions.php:593
547
  msgid "URL of the service."
548
  msgstr ""
549
 
550
- #: ../lib/functions/KcSeoOptions.php:596
551
  msgid "Alternate name"
552
  msgstr ""
553
 
554
- #: ../lib/functions/KcSeoOptions.php:598
555
  msgid "An alias for the service."
556
  msgstr ""
557
 
558
- #: ../lib/functions/KcSeoOptions.php:604
559
  msgid "Review"
560
  msgstr ""
561
 
562
- #: ../lib/functions/KcSeoOptions.php:610
563
  msgid "Name of the reviewed item"
564
  msgstr ""
565
 
566
- #: ../lib/functions/KcSeoOptions.php:613
567
  msgid "The item that is being reviewed."
568
  msgstr ""
569
 
570
- #: ../lib/functions/KcSeoOptions.php:616
571
  msgid "Review body"
572
  msgstr ""
573
 
574
- #: ../lib/functions/KcSeoOptions.php:619
575
  msgid "The actual body of the review."
576
  msgstr ""
577
 
578
- #: ../lib/functions/KcSeoOptions.php:622
579
  msgid "Review name"
580
  msgstr ""
581
 
582
- #: ../lib/functions/KcSeoOptions.php:625
583
  msgid "A particular name for the review."
584
  msgstr ""
585
 
586
- #: ../lib/functions/KcSeoOptions.php:632
587
  msgid "The author of the review. The reviewer’s name needs to be a valid name."
588
  msgstr ""
589
 
590
- #: ../lib/functions/KcSeoOptions.php:635
591
  msgid "Date of Published"
592
  msgstr ""
593
 
594
- #: ../lib/functions/KcSeoOptions.php:644, ../lib/functions/KcSeoOptions.php:735, ../lib/functions/KcSeoOptions.php:742
 
595
  msgid "A numerical quality rating for the item."
596
  msgstr ""
597
 
598
- #: ../lib/functions/KcSeoOptions.php:647
599
  msgid "Best rating"
600
  msgstr ""
601
 
602
- #: ../lib/functions/KcSeoOptions.php:650
603
  msgid "The highest value allowed in this rating system."
604
  msgstr ""
605
 
606
- #: ../lib/functions/KcSeoOptions.php:653
607
  msgid "Worst rating"
608
  msgstr ""
609
 
610
- #: ../lib/functions/KcSeoOptions.php:656
611
- msgid "The lowest value allowed in this rating system. * Required if the rating system is not on a 5-point scale. If worstRating is omitted, 1 is assumed."
 
 
612
  msgstr ""
613
 
614
- #: ../lib/functions/KcSeoOptions.php:659
615
  msgid "Name of the organization"
616
  msgstr ""
617
 
618
- #: ../lib/functions/KcSeoOptions.php:661
619
  msgid "The publisher of the review."
620
  msgstr ""
621
 
622
- #: ../lib/functions/KcSeoOptions.php:667
623
  msgid "Aggregate Ratings"
624
  msgstr ""
625
 
626
- #: ../lib/functions/KcSeoOptions.php:673
627
  msgid "Schema type"
628
  msgstr ""
629
 
630
- #: ../lib/functions/KcSeoOptions.php:678
631
  msgid "Use the most appropriate schema type for what is being reviewed."
632
  msgstr ""
633
 
634
- #: ../lib/functions/KcSeoOptions.php:681
635
  msgid "Name of the item"
636
  msgstr ""
637
 
638
- #: ../lib/functions/KcSeoOptions.php:684
639
  msgid "The item that is being rated."
640
  msgstr ""
641
 
642
- #: ../lib/functions/KcSeoOptions.php:697, ../lib/functions/KcSeoOptions.php:837, ../lib/views/schema-options.php:118
 
643
  msgid "The price range of the business, for example $$$."
644
  msgstr ""
645
 
646
- #: ../lib/functions/KcSeoOptions.php:714
647
  msgid "Description for thr review"
648
  msgstr ""
649
 
650
- #: ../lib/functions/KcSeoOptions.php:717
651
  msgid "Rating Count"
652
  msgstr ""
653
 
654
- #: ../lib/functions/KcSeoOptions.php:721
655
- msgid "The total number of ratings for the item on your site. <span class='required'>* At least one of ratingCount or reviewCount is required.</span>"
 
 
 
656
  msgstr ""
657
 
658
- #: ../lib/functions/KcSeoOptions.php:724
659
  msgid "Review Count"
660
  msgstr ""
661
 
662
- #: ../lib/functions/KcSeoOptions.php:728
663
- msgid "Specifies the number of people who provided a review with or without an accompanying rating. At least one of ratingCount or reviewCount is required."
 
 
664
  msgstr ""
665
 
666
- #: ../lib/functions/KcSeoOptions.php:731, ../lib/functions/KcSeoOptions.php:738
667
  msgid "Rating Value"
668
  msgstr ""
669
 
670
- #: ../lib/functions/KcSeoOptions.php:745
671
  msgid "Best Rating"
672
  msgstr ""
673
 
674
- #: ../lib/functions/KcSeoOptions.php:749
675
- msgid "The highest value allowed in this rating system. <span class='required'>* Required if the rating system is not a 5-point scale.</span> If bestRating is omitted, 5 is assumed."
 
 
 
676
  msgstr ""
677
 
678
- #: ../lib/functions/KcSeoOptions.php:752
679
  msgid "Worst Rating"
680
  msgstr ""
681
 
682
- #: ../lib/functions/KcSeoOptions.php:756
683
- msgid "The lowest value allowed in this rating system. <span class='required'>* Required if the rating system is not a 5-point scale.</span> If worstRating is omitted, 1 is assumed."
 
 
 
684
  msgstr ""
685
 
686
- #: ../lib/functions/KcSeoOptions.php:762
687
  msgid "Restaurant"
688
  msgstr ""
689
 
690
- #: ../lib/functions/KcSeoOptions.php:768
691
  msgid "Name of the Restaurant"
692
  msgstr ""
693
 
694
- #: ../lib/functions/KcSeoOptions.php:773
695
  msgid "Description of the Restaurant"
696
  msgstr ""
697
 
698
- #: ../lib/functions/KcSeoOptions.php:777
699
  msgid "Opening Hours"
700
  msgstr ""
701
 
702
- #: ../lib/functions/KcSeoOptions.php:779
703
  msgid "Mo,Tu,We,Th,Fr,Sa,Su 11:30-23:00"
704
  msgstr ""
705
 
706
- #: ../lib/functions/KcSeoOptions.php:782, ../lib/functions/KcSeoOptions.php:858
707
  msgid "Telephone"
708
  msgstr ""
709
 
710
- #: ../lib/functions/KcSeoOptions.php:784
711
  msgid "+155501003333"
712
  msgstr ""
713
 
714
- #: ../lib/functions/KcSeoOptions.php:787
715
  msgid "Menu"
716
  msgstr ""
717
 
718
- #: ../lib/functions/KcSeoOptions.php:789
719
  msgid "http://example.com/menu"
720
  msgstr ""
721
 
722
- #: ../lib/functions/KcSeoOptions.php:797, ../lib/views/schema-options.php:270
723
  msgid "Address"
724
  msgstr ""
725
 
726
- #: ../lib/functions/KcSeoOptions.php:801, ../lib/functions/KcSeoOptions.php:834, ../lib/views/schema-options.php:113
 
727
  msgid "Price Range"
728
  msgstr ""
729
 
730
- #: ../lib/functions/KcSeoOptions.php:803
731
  msgid "The price range of the business, for example $$$"
732
  msgstr ""
733
 
734
- #: ../lib/functions/KcSeoOptions.php:806
735
  msgid "Serves Cuisine"
736
  msgstr ""
737
 
738
- #: ../lib/functions/KcSeoOptions.php:808, ../lib/views/schema-options.php:159
739
  msgid "The cuisine of the restaurant."
740
  msgstr ""
741
 
742
- #: ../lib/functions/KcSeoOptions.php:814
743
  msgid "Local Business"
744
  msgstr ""
745
 
746
- #: ../lib/functions/KcSeoOptions.php:829
747
  msgid "Business Logo"
748
  msgstr ""
749
 
750
- #: ../lib/functions/KcSeoOptions.php:840
751
  msgid "Address locality"
752
  msgstr ""
753
 
754
- #: ../lib/functions/KcSeoOptions.php:842
755
  msgid "City (i.e Kansas city)"
756
  msgstr ""
757
 
758
- #: ../lib/functions/KcSeoOptions.php:845
759
  msgid "Address region"
760
  msgstr ""
761
 
762
- #: ../lib/functions/KcSeoOptions.php:847
763
  msgid "State (i.e. MO)"
764
  msgstr ""
765
 
766
- #: ../lib/functions/KcSeoOptions.php:850
767
  msgid "Postal code"
768
  msgstr ""
769
 
770
- #: ../lib/functions/KcSeoOptions.php:854
771
  msgid "Street address"
772
  msgstr ""
773
 
774
- #: ../lib/functions/KcSeoOptions.php:866
775
  msgid "Book"
776
  msgstr ""
777
 
778
- #: ../lib/functions/KcSeoOptions.php:870
779
  msgid "Course"
780
  msgstr ""
781
 
782
- #: ../lib/functions/KcSeoOptions.php:874
783
  msgid "Job Posting"
784
  msgstr ""
785
 
786
- #: ../lib/functions/KcSeoOptions.php:878
787
  msgid "Movie"
788
  msgstr ""
789
 
790
- #: ../lib/functions/KcSeoOptions.php:890
791
  msgid "TVEpisode"
792
  msgstr ""
793
 
794
- #: ../lib/views/schema-options.php:13
795
- msgid "General settings for WP SEO Structured Data Schema by <a href=\"https://wpsemplugins.com/\">WPSEMPlugins.com</a>"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
796
  msgstr ""
797
 
798
- #: ../lib/views/schema-options.php:35
 
 
 
 
 
 
799
  msgid "Site Type"
800
  msgstr ""
801
 
802
- #: ../lib/views/schema-options.php:38
803
  msgid "Select one type"
804
  msgstr ""
805
 
806
- #: ../lib/views/schema-options.php:78
807
  msgid "Organization or Business name"
808
  msgstr ""
809
 
810
- #: ../lib/views/schema-options.php:85
811
  msgid "Site Image"
812
  msgstr ""
813
 
814
- #: ../lib/views/schema-options.php:122
815
  msgid "Site Telephone"
816
  msgstr ""
817
 
818
- #: ../lib/views/schema-options.php:127
819
  msgid "The telephone number."
820
  msgstr ""
821
 
822
- #: ../lib/views/schema-options.php:131
823
  msgid "Additional Type"
824
  msgstr ""
825
 
826
- #: ../lib/views/schema-options.php:138
827
  msgid "Add \"Additional Type\""
828
  msgstr ""
829
 
830
- #: ../lib/views/schema-options.php:142
831
  msgid ""
832
- "Product Ontology is an extension to schema using WikiPedia definitions that enables you to further define a type by adding an \"AdditionalType” attribute.Example for a Tailor (which is not available\n"
833
- " as a schema “Type”): Pick LocalBusiness as a generic Type, then add additional type as follows:"
 
 
 
834
  msgstr ""
835
 
836
- #: ../lib/views/schema-options.php:156
837
  msgid "Restaurant Information"
838
  msgstr ""
839
 
840
- #: ../lib/views/schema-options.php:167
841
  msgid "Others local business info"
842
  msgstr ""
843
 
844
- #: ../lib/views/schema-options.php:177
845
  msgid "Operation Hours"
846
  msgstr ""
847
 
848
- #: ../lib/views/schema-options.php:204
849
  msgid "GeoCoordinates"
850
  msgstr ""
851
 
852
- #: ../lib/views/schema-options.php:207
853
  msgid "Latitude"
854
  msgstr ""
855
 
856
- #: ../lib/views/schema-options.php:214
857
  msgid "Longitude"
858
  msgstr ""
859
 
860
- #: ../lib/views/schema-options.php:221
861
  msgid "Person"
862
  msgstr ""
863
 
864
- #: ../lib/views/schema-options.php:231
865
  msgid "Work For"
866
  msgstr ""
867
 
868
- #: ../lib/views/schema-options.php:239
869
  msgid "Job Title"
870
  msgstr ""
871
 
872
- #: ../lib/views/schema-options.php:251
873
  msgid "Add your personal photo here"
874
  msgstr ""
875
 
876
- #: ../lib/views/schema-options.php:262
877
  msgid "Birth date"
878
  msgstr ""
879
 
880
- #: ../lib/views/schema-options.php:273
881
  msgid "Address Country"
882
  msgstr ""
883
 
884
- #: ../lib/views/schema-options.php:288
885
  msgid "Address Locality"
886
  msgstr ""
887
 
888
- #: ../lib/views/schema-options.php:295
889
  msgid "Address Region"
890
  msgstr ""
891
 
892
- #: ../lib/views/schema-options.php:302
893
  msgid "Postal Code"
894
  msgstr ""
895
 
896
- #: ../lib/views/schema-options.php:308
897
  msgid "Street Address"
898
  msgstr ""
899
 
900
- #: ../lib/views/schema-options.php:317
901
  msgid "Add New Address"
902
  msgstr ""
903
 
904
- #: ../lib/views/schema-options.php:324
905
  msgid "Organization Logo"
906
  msgstr ""
907
 
908
- #: ../lib/views/schema-options.php:327, ../lib/views/schema-options.php:390
909
  msgid "Social Profile"
910
  msgstr ""
911
 
912
- #: ../lib/views/schema-options.php:330
913
  msgid "Corporate Contacts"
914
  msgstr ""
915
 
916
- #: ../lib/views/schema-options.php:336
917
  msgid "Select Organization Logo"
918
  msgstr ""
919
 
920
- #: ../lib/views/schema-options.php:380
921
  msgid "Company Name"
922
  msgstr ""
923
 
924
- #: ../lib/views/schema-options.php:387
925
  msgid "Social Profiles"
926
  msgstr ""
927
 
928
- #: ../lib/views/schema-options.php:416
929
  msgid "Add Social Profile"
930
  msgstr ""
931
 
932
- #: ../lib/views/schema-options.php:424
933
  msgid "Contacts"
934
  msgstr ""
935
 
936
- #: ../lib/views/schema-options.php:443
937
  msgid "Contact Phone"
938
  msgstr ""
939
 
940
- #: ../lib/views/schema-options.php:447
941
  msgid "Please follow the format below"
942
  msgstr ""
943
 
944
- #: ../lib/views/schema-options.php:458
945
  msgid "Contact Email"
946
  msgstr ""
947
 
948
- #: ../lib/views/schema-options.php:465
949
  msgid "Contact Option"
950
  msgstr ""
951
 
952
- #: ../lib/views/schema-options.php:469
953
  msgid "Select an option"
954
  msgstr ""
955
 
956
- #: ../lib/views/schema-options.php:472
957
  msgid "TollFree"
958
  msgstr ""
959
 
960
- #: ../lib/views/schema-options.php:476
961
  msgid "HearingImpairedSupported"
962
  msgstr ""
963
 
964
- #: ../lib/views/schema-options.php:482
965
  msgid "Area Served"
966
  msgstr ""
967
 
968
- #: ../lib/views/schema-options.php:500
969
  msgid "Available language"
970
  msgstr ""
971
 
972
- #: ../lib/views/schema-options.php:518
973
  msgid "Site Schema"
974
  msgstr ""
975
 
976
- #: ../lib/views/schema-options.php:521
977
  msgid "Disable Site Schema"
978
  msgstr ""
979
 
980
- #: ../lib/views/schema-options.php:529
981
  msgid "Enable Site link Search Box"
982
  msgstr ""
983
 
984
- #: ../lib/views/schema-options.php:534
985
  msgid "Note: Preferred Name markup may no longer be supported by Google"
986
  msgstr ""
987
 
988
- #: ../lib/views/schema-options.php:538
989
  msgid "Site Name:"
990
  msgstr ""
991
 
992
- #: ../lib/views/schema-options.php:545
993
  msgid "Site Alternative Name:"
994
  msgstr ""
995
 
996
- #: ../lib/views/schema-options.php:552
997
  msgid "Site Url:"
998
  msgstr ""
999
 
1000
- #: ../lib/views/schema-options.php:560, ../lib/views/settings.php:105
1001
  msgid "Save Changes"
1002
  msgstr ""
1003
 
1004
- #: ../lib/views/settings.php:6
1005
  msgid "Schema Settings"
1006
  msgstr ""
1007
 
1008
- #: ../lib/views/settings.php:13
1009
  msgid "Business / Org Schema"
1010
  msgstr ""
1011
 
1012
- #: ../lib/views/settings.php:17
1013
  msgid ""
1014
  "Home page\n"
1015
  " only"
1016
  msgstr ""
1017
 
1018
- #: ../lib/views/settings.php:21
1019
  msgid ""
1020
  "Sitewide (Apply General Settings schema\n"
1021
  " sitewide)"
1022
  msgstr ""
1023
 
1024
- #: ../lib/views/settings.php:26
1025
  msgid "Turn off (Turn off global schema)"
1026
  msgstr ""
1027
 
1028
- #: ../lib/views/settings.php:93
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1029
  msgid "Delete all data"
1030
  msgstr ""
1031
 
1032
- #: ../lib/views/settings.php:98
1033
  msgid "Enable"
1034
  msgstr ""
1035
 
1036
- #: ../lib/views/settings.php:99
1037
  msgid ""
1038
- "This will delete all schema created and applied by this plugin when plugin is\n"
 
1039
  " deleted."
1040
  msgstr ""
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #, fuzzy
 
2
  msgid ""
3
  msgstr ""
4
+ "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
5
  "Project-Id-Version: WP SEO Structured Data Schema\n"
6
+ "POT-Creation-Date: 2019-03-08 11:43+0600\n"
7
+ "PO-Revision-Date: 2019-03-08 11:43+0600\n"
8
+ "Last-Translator: \n"
9
+ "Language-Team: \n"
10
  "MIME-Version: 1.0\n"
11
  "Content-Type: text/plain; charset=UTF-8\n"
12
  "Content-Transfer-Encoding: 8bit\n"
13
+ "X-Generator: Poedit 1.8.7\n"
14
  "X-Poedit-Basepath: ..\n"
15
+ "X-Poedit-WPHeader: wp-seo-structured-data-schema.php\n"
16
+ "X-Poedit-SourceCharset: UTF-8\n"
17
+ "X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;"
18
+ "esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;_n_noop:1,2;"
19
+ "_nx_noop:3c,1,2;__ngettext_noop:1,2\n"
20
  "X-Poedit-SearchPath-0: .\n"
21
  "X-Poedit-SearchPathExcluded-0: *.js\n"
 
 
22
 
23
+ #: lib/classes/KcSeoHelper.php:189
24
  msgid "Pro Version Features"
25
  msgstr ""
26
 
27
+ #: lib/classes/KcSeoHelper.php:191
28
  msgid "Includes Auto-fill function <---Popular"
29
  msgstr ""
30
 
31
+ #: lib/classes/KcSeoHelper.php:192
32
  msgid "Supports Custom Post Types beyond default page and posts"
33
  msgstr ""
34
 
35
+ #: lib/classes/KcSeoHelper.php:193
36
  msgid "Supports WordPress Multisite"
37
  msgstr ""
38
 
39
+ #: lib/classes/KcSeoHelper.php:194
40
  msgid "Supports more schema types:"
41
  msgstr ""
42
 
43
+ #: lib/classes/KcSeoHelper.php:196
44
  msgid "Books"
45
  msgstr ""
46
 
47
+ #: lib/classes/KcSeoHelper.php:197
48
  msgid "Courses"
49
  msgstr ""
50
 
51
+ #: lib/classes/KcSeoHelper.php:198
52
  msgid "Job Postings"
53
  msgstr ""
54
 
55
+ #: lib/classes/KcSeoHelper.php:199
56
  msgid "Movies"
57
  msgstr ""
58
 
59
+ #: lib/classes/KcSeoHelper.php:200 lib/functions/KcSeoOptions.php:851
60
  msgid "Music"
61
  msgstr ""
62
 
63
+ #: lib/classes/KcSeoHelper.php:201 lib/functions/KcSeoOptions.php:855
64
  msgid "Recipe"
65
  msgstr ""
66
 
67
+ #: lib/classes/KcSeoHelper.php:202
68
  msgid "TV Episode"
69
  msgstr ""
70
 
71
+ #: lib/classes/KcSeoHelper.php:203 lib/functions/KcSeoOptions.php:863
72
  msgid "QAPage"
73
  msgstr ""
74
 
75
+ #: lib/classes/KcSeoHelper.php:204 lib/functions/KcSeoOptions.php:867
76
  msgid "Item List"
77
  msgstr ""
78
 
79
+ #: lib/classes/KcSeoHelper.php:210
80
  msgid "Get the Pro Version"
81
  msgstr ""
82
 
83
+ #: lib/classes/KcSeoInit.php:33
84
  msgid "Documentation"
85
  msgstr ""
86
 
87
+ #: lib/classes/KcSeoInit.php:34
88
  msgid "Get Pro"
89
  msgstr ""
90
 
91
+ #: lib/classes/KcSeoInit.php:151 lib/classes/KcSeoInit.php:173
92
+ msgid "Settings successfully updated"
93
+ msgstr ""
94
+
95
+ #: lib/classes/KcSeoInit.php:153 lib/classes/KcSeoInit.php:175
96
+ msgid "Security Error !!"
97
+ msgstr ""
98
+
99
+ #. Plugin Name of the plugin/theme
100
+ #: lib/classes/KcSeoInit.php:197 lib/views/schema-options.php:7
101
  msgid "WP SEO Structured Data Schema"
102
  msgstr ""
103
 
104
+ #: lib/classes/KcSeoInit.php:197
105
  msgid "WP SEO Schema"
106
  msgstr ""
107
 
108
+ #: lib/classes/KcSeoInit.php:199
109
  msgid "WP SEO Schema settings"
110
  msgstr ""
111
 
112
+ #: lib/classes/KcSeoInit.php:199
113
  msgid "Settings"
114
  msgstr ""
115
 
116
+ #: lib/classes/KcSeoMetaData.php:47
117
+ msgid ""
118
+ "WP SEO Structured Data Schema by <a href=\"https://wpsemplugins.com/"
119
+ "\">WPSEMPlugins.com</a>"
120
+ msgstr ""
121
+
122
+ #: lib/classes/KcSeoMetaData.php:64 lib/views/schema-options.php:26
123
+ msgid ""
124
+ "For more detailed information on how to configure this plugin, please visit:"
125
+ msgstr ""
126
+
127
+ #: lib/classes/KcSeoMetaData.php:65
128
+ msgid ""
129
+ "Once you save these structured data schema settings, validate this page url "
130
+ "here:"
131
+ msgstr ""
132
+
133
+ #: lib/classes/KcSeoMetaData.php:80
134
+ msgid "Auto Fill"
135
+ msgstr ""
136
+
137
+ #: lib/classes/KcSeoMetaData.php:80 lib/views/schema-options.php:318
138
+ #: lib/views/settings.php:32 lib/views/settings.php:50
139
+ #: lib/views/settings.php:75 lib/views/settings.php:84
140
+ msgid "PRO"
141
  msgstr ""
142
 
143
+ #: lib/classes/KcSeoMetaData.php:93
144
+ msgid "This is a Pro version feature."
145
  msgstr ""
146
 
147
+ #: lib/functions/KcSeoOptions.php:10
148
  msgid "Article"
149
  msgstr ""
150
 
151
+ #: lib/functions/KcSeoOptions.php:16 lib/functions/KcSeoOptions.php:90
152
+ #: lib/functions/KcSeoOptions.php:159
153
  msgid "Headline"
154
  msgstr ""
155
 
156
+ #: lib/functions/KcSeoOptions.php:18 lib/functions/KcSeoOptions.php:161
157
  msgid "Article title"
158
  msgstr ""
159
 
160
+ #: lib/functions/KcSeoOptions.php:22 lib/functions/KcSeoOptions.php:96
161
+ #: lib/functions/KcSeoOptions.php:165
162
  msgid "Page URL"
163
  msgstr ""
164
 
165
+ #: lib/functions/KcSeoOptions.php:24 lib/functions/KcSeoOptions.php:98
166
+ #: lib/functions/KcSeoOptions.php:167
167
  msgid "The canonical URL of the article page"
168
  msgstr ""
169
 
170
+ #: lib/functions/KcSeoOptions.php:28
171
  msgid "Author Name"
172
  msgstr ""
173
 
174
+ #: lib/functions/KcSeoOptions.php:30 lib/functions/KcSeoOptions.php:104
175
+ #: lib/functions/KcSeoOptions.php:173
176
  msgid "Author display name"
177
  msgstr ""
178
 
179
+ #: lib/functions/KcSeoOptions.php:34
180
  msgid "Article Feature Image"
181
  msgstr ""
182
 
183
+ #: lib/functions/KcSeoOptions.php:37
184
+ msgid ""
185
+ "Images should be at least 696 pixels wide.<br>Images should be in .jpg, ."
186
+ "png, or. gif format."
187
  msgstr ""
188
 
189
+ #: lib/functions/KcSeoOptions.php:40 lib/functions/KcSeoOptions.php:114
190
+ #: lib/functions/KcSeoOptions.php:183
191
  msgid "Published date"
192
  msgstr ""
193
 
194
+ #: lib/functions/KcSeoOptions.php:44 lib/functions/KcSeoOptions.php:51
195
+ #: lib/functions/KcSeoOptions.php:117 lib/functions/KcSeoOptions.php:124
196
+ #: lib/functions/KcSeoOptions.php:186 lib/functions/KcSeoOptions.php:194
197
+ #: lib/functions/KcSeoOptions.php:490 lib/functions/KcSeoOptions.php:607
198
  msgid "Like this: 2015-12-25"
199
  msgstr ""
200
 
201
+ #: lib/functions/KcSeoOptions.php:47 lib/functions/KcSeoOptions.php:121
202
+ #: lib/functions/KcSeoOptions.php:190
203
  msgid "Modified date"
204
  msgstr ""
205
 
206
+ #: lib/functions/KcSeoOptions.php:54 lib/functions/KcSeoOptions.php:128
207
+ #: lib/functions/KcSeoOptions.php:197
208
  msgid "Publisher"
209
  msgstr ""
210
 
211
+ #: lib/functions/KcSeoOptions.php:56 lib/functions/KcSeoOptions.php:130
212
+ #: lib/functions/KcSeoOptions.php:199
213
  msgid "Publisher name or Organization name"
214
  msgstr ""
215
 
216
+ #: lib/functions/KcSeoOptions.php:60 lib/functions/KcSeoOptions.php:134
217
+ #: lib/functions/KcSeoOptions.php:203 lib/views/settings.php:83
218
  msgid "Publisher Logo"
219
  msgstr ""
220
 
221
+ #: lib/functions/KcSeoOptions.php:62 lib/functions/KcSeoOptions.php:136
222
+ #: lib/functions/KcSeoOptions.php:205
223
+ msgid ""
224
+ "Logos should have a wide aspect ratio, not a square icon.<br>Logos should be "
225
+ "no wider than 600px, and no taller than 60px.<br>Always retain the original "
226
+ "aspect ratio of the logo when resizing. Ideally, logos are exactly 60px tall "
227
+ "with width <= 600px. If maintaining a height of 60px would cause the width "
228
+ "to exceed 600px, downscale the logo to exactly 600px wide and reduce the "
229
+ "height accordingly below 60px to maintain the original aspect ratio.<br>"
230
+ msgstr ""
231
+
232
+ #: lib/functions/KcSeoOptions.php:66 lib/functions/KcSeoOptions.php:140
233
+ #: lib/functions/KcSeoOptions.php:209 lib/functions/KcSeoOptions.php:260
234
+ #: lib/functions/KcSeoOptions.php:335 lib/functions/KcSeoOptions.php:446
235
+ #: lib/functions/KcSeoOptions.php:681 lib/functions/KcSeoOptions.php:794
236
+ #: lib/views/schema-options.php:170 lib/views/schema-options.php:255
237
  msgid "Description"
238
  msgstr ""
239
 
240
+ #: lib/functions/KcSeoOptions.php:68 lib/functions/KcSeoOptions.php:142
241
+ #: lib/functions/KcSeoOptions.php:211
242
  msgid "Short description"
243
  msgstr ""
244
 
245
+ #: lib/functions/KcSeoOptions.php:71 lib/functions/KcSeoOptions.php:145
246
+ #: lib/functions/KcSeoOptions.php:214
247
  msgid "Article body"
248
  msgstr ""
249
 
250
+ #: lib/functions/KcSeoOptions.php:73 lib/functions/KcSeoOptions.php:147
251
  msgid "Article content"
252
  msgstr ""
253
 
254
+ #: lib/functions/KcSeoOptions.php:76
255
  msgid "Alternative headline"
256
  msgstr ""
257
 
258
+ #: lib/functions/KcSeoOptions.php:78
259
  msgid "A secondary headline for the article."
260
  msgstr ""
261
 
262
+ #: lib/functions/KcSeoOptions.php:84
263
  msgid "Blog Posting"
264
  msgstr ""
265
 
266
+ #: lib/functions/KcSeoOptions.php:92
267
  msgid "Blog posting title"
268
  msgstr ""
269
 
270
+ #: lib/functions/KcSeoOptions.php:102
271
  msgid "Author name"
272
  msgstr ""
273
 
274
+ #: lib/functions/KcSeoOptions.php:108
275
  msgid "Feature Image"
276
  msgstr ""
277
 
278
+ #: lib/functions/KcSeoOptions.php:110 lib/functions/KcSeoOptions.php:179
279
+ msgid ""
280
+ "The representative image of the article. Only a marked-up image that "
281
+ "directly belongs to the article should be specified.<br> Images should be at "
282
+ "least 696 pixels wide. <br>Images should be in .jpg, .png, or. gif format."
283
  msgstr ""
284
 
285
+ #: lib/functions/KcSeoOptions.php:153
286
  msgid "News Article"
287
  msgstr ""
288
 
289
+ #: lib/functions/KcSeoOptions.php:171 lib/functions/KcSeoOptions.php:597
290
  msgid "Author"
291
  msgstr ""
292
 
293
+ #: lib/functions/KcSeoOptions.php:177 lib/functions/KcSeoOptions.php:330
294
+ #: lib/functions/KcSeoOptions.php:761 lib/views/schema-options.php:247
295
  msgid "Image"
296
  msgstr ""
297
 
298
+ #: lib/functions/KcSeoOptions.php:216
299
  msgid "Article body content"
300
  msgstr ""
301
 
302
+ #: lib/functions/KcSeoOptions.php:222
303
  msgid "Event"
304
  msgstr ""
305
 
306
+ #: lib/functions/KcSeoOptions.php:228 lib/functions/KcSeoOptions.php:324
307
+ #: lib/functions/KcSeoOptions.php:440 lib/functions/KcSeoOptions.php:502
308
+ #: lib/functions/KcSeoOptions.php:789 lib/views/schema-options.php:224
309
  msgid "Name"
310
  msgstr ""
311
 
312
+ #: lib/functions/KcSeoOptions.php:231
313
  msgid "The name of the event."
314
  msgstr ""
315
 
316
+ #: lib/functions/KcSeoOptions.php:234
317
  msgid "Location name"
318
  msgstr ""
319
 
320
+ #: lib/functions/KcSeoOptions.php:237
321
  msgid "Event Location name"
322
  msgstr ""
323
 
324
+ #: lib/functions/KcSeoOptions.php:240
325
  msgid "Location address"
326
  msgstr ""
327
 
328
+ #: lib/functions/KcSeoOptions.php:243
329
+ msgid ""
330
+ "The location of for example where the event is happening, an organization is "
331
+ "located, or where an action takes place."
332
  msgstr ""
333
 
334
+ #: lib/functions/KcSeoOptions.php:246
335
  msgid "Start date"
336
  msgstr ""
337
 
338
+ #: lib/functions/KcSeoOptions.php:250
339
  msgid "Event start date"
340
  msgstr ""
341
 
342
+ #: lib/functions/KcSeoOptions.php:253
343
  msgid "End date"
344
  msgstr ""
345
 
346
+ #: lib/functions/KcSeoOptions.php:257
347
  msgid "Event end date"
348
  msgstr ""
349
 
350
+ #: lib/functions/KcSeoOptions.php:263
351
  msgid "Event description"
352
  msgstr ""
353
 
354
+ #: lib/functions/KcSeoOptions.php:266
355
  msgid "Performer Name"
356
  msgstr ""
357
 
358
+ #: lib/functions/KcSeoOptions.php:269
359
  msgid "The performer's name."
360
  msgstr ""
361
 
362
+ #: lib/functions/KcSeoOptions.php:272
363
  msgid "Image URL"
364
  msgstr ""
365
 
366
+ #: lib/functions/KcSeoOptions.php:275
367
  msgid "URL of an image or logo for the event or tour"
368
  msgstr ""
369
 
370
+ #: lib/functions/KcSeoOptions.php:278 lib/functions/KcSeoOptions.php:380
371
  msgid "Price"
372
  msgstr ""
373
 
374
+ #: lib/functions/KcSeoOptions.php:282
375
+ msgid ""
376
+ "This is highly recommended. The lowest available price, including service "
377
+ "charges and fees, of this type of ticket. <span class='required'>Not "
378
+ "required but (Recommended)</span>"
379
  msgstr ""
380
 
381
+ #: lib/functions/KcSeoOptions.php:285 lib/functions/KcSeoOptions.php:393
382
  msgid "Price currency"
383
  msgstr ""
384
 
385
+ #: lib/functions/KcSeoOptions.php:287
386
  msgid "The 3-letter currency code. (USD)"
387
  msgstr ""
388
 
389
+ #: lib/functions/KcSeoOptions.php:301
390
  msgid "Valid From"
391
  msgstr ""
392
 
393
+ #: lib/functions/KcSeoOptions.php:312
394
+ msgid ""
395
+ "A link to the event's details page. <span class='required'>Not required but "
396
+ "(Recommended)</span>"
 
397
  msgstr ""
398
 
399
+ #: lib/functions/KcSeoOptions.php:318
400
  msgid "Product"
401
  msgstr ""
402
 
403
+ #: lib/functions/KcSeoOptions.php:327
404
  msgid "The name of the product."
405
  msgstr ""
406
 
407
+ #: lib/functions/KcSeoOptions.php:332
408
+ msgid ""
409
+ "The URL of a product photo. Pictures clearly showing the product, e.g. "
410
+ "against a white background, are preferred."
411
  msgstr ""
412
 
413
+ #: lib/functions/KcSeoOptions.php:337
414
  msgid "Product description."
415
  msgstr ""
416
 
417
+ #: lib/functions/KcSeoOptions.php:340
418
  msgid "Brand"
419
  msgstr ""
420
 
421
+ #: lib/functions/KcSeoOptions.php:342
422
  msgid "The brand of the product."
423
  msgstr ""
424
 
425
+ #: lib/functions/KcSeoOptions.php:345
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
426
  msgid "Review rating value"
427
  msgstr ""
428
 
429
+ #: lib/functions/KcSeoOptions.php:349 lib/functions/KcSeoOptions.php:371
430
  msgid "Rating value. (1 , 2.5, 3, 5 etc)"
431
  msgstr ""
432
 
433
+ #: lib/functions/KcSeoOptions.php:352
434
  msgid "Review Best rating"
435
  msgstr ""
436
 
437
+ #: lib/functions/KcSeoOptions.php:358
438
  msgid "Review Worst rating"
439
  msgstr ""
440
 
441
+ #: lib/functions/KcSeoOptions.php:364
442
  msgid "Review author"
443
  msgstr ""
444
 
445
+ #: lib/functions/KcSeoOptions.php:368 lib/functions/KcSeoOptions.php:610
446
  msgid "Rating value"
447
  msgstr ""
448
 
449
+ #: lib/functions/KcSeoOptions.php:374
450
  msgid "Total review count"
451
  msgstr ""
452
 
453
+ #: lib/functions/KcSeoOptions.php:377
454
+ msgid ""
455
+ "Review rating value. <span class='required'>This is required if (Rating "
456
+ "value) is given</span>"
457
  msgstr ""
458
 
459
+ #: lib/functions/KcSeoOptions.php:383
460
+ msgid ""
461
+ "The lowest available price, including service charges and fees, of this type "
462
+ "of ticket."
463
  msgstr ""
464
 
465
+ #: lib/functions/KcSeoOptions.php:386
466
  msgid "PriceValidUntil"
467
  msgstr ""
468
 
469
+ #: lib/functions/KcSeoOptions.php:390
470
+ msgid ""
471
+ "The date (in ISO 8601 date format) after which the price will no longer be "
472
+ "available."
473
  msgstr ""
474
 
475
+ #: lib/functions/KcSeoOptions.php:395
476
  msgid "The 3-letter currency code."
477
  msgstr ""
478
 
479
+ #: lib/functions/KcSeoOptions.php:411
480
  msgid "Select a availability type"
481
  msgstr ""
482
 
483
+ #: lib/functions/KcSeoOptions.php:423
484
  msgid "Select a condition"
485
  msgstr ""
486
 
487
+ #: lib/functions/KcSeoOptions.php:426
488
  msgid "Product URL"
489
  msgstr ""
490
 
491
+ #: lib/functions/KcSeoOptions.php:428
492
+ msgid ""
493
+ "A URL to the product web page (that includes the Offer). (Don't use offerURL "
494
+ "for markup that appears on the product page itself.)"
495
  msgstr ""
496
 
497
+ #: lib/functions/KcSeoOptions.php:434
498
  msgid "Video"
499
  msgstr ""
500
 
501
+ #: lib/functions/KcSeoOptions.php:443
502
  msgid "The title of the video"
503
  msgstr ""
504
 
505
+ #: lib/functions/KcSeoOptions.php:449
506
  msgid "The description of the video"
507
  msgstr ""
508
 
509
+ #: lib/functions/KcSeoOptions.php:456
510
+ msgid ""
511
+ "A URL pointing to the video thumbnail image file. Images must be at least "
512
+ "160x90 pixels and at most 1920x1080 pixels."
513
  msgstr ""
514
 
515
+ #: lib/functions/KcSeoOptions.php:459
516
  msgid "Updated date"
517
  msgstr ""
518
 
519
+ #: lib/functions/KcSeoOptions.php:462
520
  msgid "2015-02-05T08:00:00+08:00"
521
  msgstr ""
522
 
523
+ #: lib/functions/KcSeoOptions.php:465
524
  msgid "Duration"
525
  msgstr ""
526
 
527
+ #: lib/functions/KcSeoOptions.php:467
528
  msgid "The duration of the video in ISO 8601 format.(PT1M33S)"
529
  msgstr ""
530
 
531
+ #: lib/functions/KcSeoOptions.php:473
532
+ msgid ""
533
+ "A URL pointing to the actual video media file. This file should be in .mpg, ."
534
+ "mpeg, .mp4, .m4v, .mov, .wmv, .asf, .avi, .ra, .ram, .rm, .flv, or other "
535
+ "video file format."
536
  msgstr ""
537
 
538
+ #: lib/functions/KcSeoOptions.php:479
539
+ msgid ""
540
+ "A URL pointing to a player for the specific video. Usually this is the "
541
+ "information in the src element of an < embed> tag.Example: Dailymotion: "
542
+ "http://www.dailymotion.com/swf/x1o2g."
543
  msgstr ""
544
 
545
+ #: lib/functions/KcSeoOptions.php:482
546
  msgid "Interaction count"
547
  msgstr ""
548
 
549
+ #: lib/functions/KcSeoOptions.php:484
550
  msgid "The number of times the video has been viewed."
551
  msgstr ""
552
 
553
+ #: lib/functions/KcSeoOptions.php:487
554
  msgid "Expires"
555
  msgstr ""
556
 
557
+ #: lib/functions/KcSeoOptions.php:496
558
  msgid "Service"
559
  msgstr ""
560
 
561
+ #: lib/functions/KcSeoOptions.php:505
562
  msgid "The name of the Service."
563
  msgstr ""
564
 
565
+ #: lib/functions/KcSeoOptions.php:508
566
  msgid "Service type"
567
  msgstr ""
568
 
569
+ #: lib/functions/KcSeoOptions.php:511
570
+ msgid ""
571
+ "The type of service being offered, e.g. veterans' benefits, emergency "
572
+ "relief, etc."
573
  msgstr ""
574
 
575
+ #: lib/functions/KcSeoOptions.php:517
576
+ msgid ""
577
+ "An additional type for the service, typically used for adding more specific "
578
+ "types from external vocabularies in microdata syntax."
579
  msgstr ""
580
 
581
+ #: lib/functions/KcSeoOptions.php:520
582
  msgid "Award"
583
  msgstr ""
584
 
585
+ #: lib/functions/KcSeoOptions.php:522
586
  msgid "An award won by or for this service."
587
  msgstr ""
588
 
589
+ #: lib/functions/KcSeoOptions.php:525
590
  msgid "Category"
591
  msgstr ""
592
 
593
+ #: lib/functions/KcSeoOptions.php:527
594
  msgid "A category for the service."
595
  msgstr ""
596
 
597
+ #: lib/functions/KcSeoOptions.php:530
598
  msgid "Provider mobility"
599
  msgstr ""
600
 
601
+ #: lib/functions/KcSeoOptions.php:532
602
+ msgid ""
603
+ "Indicates the mobility of a provided service (e.g. 'static', 'dynamic')."
604
  msgstr ""
605
 
606
+ #: lib/functions/KcSeoOptions.php:538
607
  msgid "A short description of the service."
608
  msgstr ""
609
 
610
+ #: lib/functions/KcSeoOptions.php:544
611
  msgid "An image of the service. This should be a URL."
612
  msgstr ""
613
 
614
+ #: lib/functions/KcSeoOptions.php:550
615
+ msgid ""
616
+ "Indicates a page (or other CreativeWork) for which this thing is the main "
617
+ "entity being described."
618
  msgstr ""
619
 
620
+ #: lib/functions/KcSeoOptions.php:556
621
+ msgid ""
622
+ "URL of a reference Web page that unambiguously indicates the service's "
623
+ "identity. E.g. the URL of the service's Wikipedia page, Freebase page, or "
624
+ "official website."
625
  msgstr ""
626
 
627
+ #: lib/functions/KcSeoOptions.php:562
628
  msgid "URL of the service."
629
  msgstr ""
630
 
631
+ #: lib/functions/KcSeoOptions.php:565
632
  msgid "Alternate name"
633
  msgstr ""
634
 
635
+ #: lib/functions/KcSeoOptions.php:567
636
  msgid "An alias for the service."
637
  msgstr ""
638
 
639
+ #: lib/functions/KcSeoOptions.php:573
640
  msgid "Review"
641
  msgstr ""
642
 
643
+ #: lib/functions/KcSeoOptions.php:579
644
  msgid "Name of the reviewed item"
645
  msgstr ""
646
 
647
+ #: lib/functions/KcSeoOptions.php:582
648
  msgid "The item that is being reviewed."
649
  msgstr ""
650
 
651
+ #: lib/functions/KcSeoOptions.php:585
652
  msgid "Review body"
653
  msgstr ""
654
 
655
+ #: lib/functions/KcSeoOptions.php:588
656
  msgid "The actual body of the review."
657
  msgstr ""
658
 
659
+ #: lib/functions/KcSeoOptions.php:591
660
  msgid "Review name"
661
  msgstr ""
662
 
663
+ #: lib/functions/KcSeoOptions.php:594
664
  msgid "A particular name for the review."
665
  msgstr ""
666
 
667
+ #: lib/functions/KcSeoOptions.php:601
668
  msgid "The author of the review. The reviewer’s name needs to be a valid name."
669
  msgstr ""
670
 
671
+ #: lib/functions/KcSeoOptions.php:604
672
  msgid "Date of Published"
673
  msgstr ""
674
 
675
+ #: lib/functions/KcSeoOptions.php:613 lib/functions/KcSeoOptions.php:704
676
+ #: lib/functions/KcSeoOptions.php:711
677
  msgid "A numerical quality rating for the item."
678
  msgstr ""
679
 
680
+ #: lib/functions/KcSeoOptions.php:616
681
  msgid "Best rating"
682
  msgstr ""
683
 
684
+ #: lib/functions/KcSeoOptions.php:619
685
  msgid "The highest value allowed in this rating system."
686
  msgstr ""
687
 
688
+ #: lib/functions/KcSeoOptions.php:622
689
  msgid "Worst rating"
690
  msgstr ""
691
 
692
+ #: lib/functions/KcSeoOptions.php:625
693
+ msgid ""
694
+ "The lowest value allowed in this rating system. * Required if the rating "
695
+ "system is not on a 5-point scale. If worstRating is omitted, 1 is assumed."
696
  msgstr ""
697
 
698
+ #: lib/functions/KcSeoOptions.php:628
699
  msgid "Name of the organization"
700
  msgstr ""
701
 
702
+ #: lib/functions/KcSeoOptions.php:630
703
  msgid "The publisher of the review."
704
  msgstr ""
705
 
706
+ #: lib/functions/KcSeoOptions.php:636
707
  msgid "Aggregate Ratings"
708
  msgstr ""
709
 
710
+ #: lib/functions/KcSeoOptions.php:642
711
  msgid "Schema type"
712
  msgstr ""
713
 
714
+ #: lib/functions/KcSeoOptions.php:647
715
  msgid "Use the most appropriate schema type for what is being reviewed."
716
  msgstr ""
717
 
718
+ #: lib/functions/KcSeoOptions.php:650
719
  msgid "Name of the item"
720
  msgstr ""
721
 
722
+ #: lib/functions/KcSeoOptions.php:653
723
  msgid "The item that is being rated."
724
  msgstr ""
725
 
726
+ #: lib/functions/KcSeoOptions.php:666 lib/functions/KcSeoOptions.php:806
727
+ #: lib/views/schema-options.php:118
728
  msgid "The price range of the business, for example $$$."
729
  msgstr ""
730
 
731
+ #: lib/functions/KcSeoOptions.php:683
732
  msgid "Description for thr review"
733
  msgstr ""
734
 
735
+ #: lib/functions/KcSeoOptions.php:686
736
  msgid "Rating Count"
737
  msgstr ""
738
 
739
+ #: lib/functions/KcSeoOptions.php:690
740
+ msgid ""
741
+ "The total number of ratings for the item on your site. <span "
742
+ "class='required'>* At least one of ratingCount or reviewCount is required.</"
743
+ "span>"
744
  msgstr ""
745
 
746
+ #: lib/functions/KcSeoOptions.php:693
747
  msgid "Review Count"
748
  msgstr ""
749
 
750
+ #: lib/functions/KcSeoOptions.php:697
751
+ msgid ""
752
+ "Specifies the number of people who provided a review with or without an "
753
+ "accompanying rating. At least one of ratingCount or reviewCount is required."
754
  msgstr ""
755
 
756
+ #: lib/functions/KcSeoOptions.php:700 lib/functions/KcSeoOptions.php:707
757
  msgid "Rating Value"
758
  msgstr ""
759
 
760
+ #: lib/functions/KcSeoOptions.php:714
761
  msgid "Best Rating"
762
  msgstr ""
763
 
764
+ #: lib/functions/KcSeoOptions.php:718
765
+ msgid ""
766
+ "The highest value allowed in this rating system. <span class='required'>* "
767
+ "Required if the rating system is not a 5-point scale.</span> If bestRating "
768
+ "is omitted, 5 is assumed."
769
  msgstr ""
770
 
771
+ #: lib/functions/KcSeoOptions.php:721
772
  msgid "Worst Rating"
773
  msgstr ""
774
 
775
+ #: lib/functions/KcSeoOptions.php:725
776
+ msgid ""
777
+ "The lowest value allowed in this rating system. <span class='required'>* "
778
+ "Required if the rating system is not a 5-point scale.</span> If worstRating "
779
+ "is omitted, 1 is assumed."
780
  msgstr ""
781
 
782
+ #: lib/functions/KcSeoOptions.php:731
783
  msgid "Restaurant"
784
  msgstr ""
785
 
786
+ #: lib/functions/KcSeoOptions.php:737
787
  msgid "Name of the Restaurant"
788
  msgstr ""
789
 
790
+ #: lib/functions/KcSeoOptions.php:742
791
  msgid "Description of the Restaurant"
792
  msgstr ""
793
 
794
+ #: lib/functions/KcSeoOptions.php:746
795
  msgid "Opening Hours"
796
  msgstr ""
797
 
798
+ #: lib/functions/KcSeoOptions.php:748
799
  msgid "Mo,Tu,We,Th,Fr,Sa,Su 11:30-23:00"
800
  msgstr ""
801
 
802
+ #: lib/functions/KcSeoOptions.php:751 lib/functions/KcSeoOptions.php:827
803
  msgid "Telephone"
804
  msgstr ""
805
 
806
+ #: lib/functions/KcSeoOptions.php:753
807
  msgid "+155501003333"
808
  msgstr ""
809
 
810
+ #: lib/functions/KcSeoOptions.php:756
811
  msgid "Menu"
812
  msgstr ""
813
 
814
+ #: lib/functions/KcSeoOptions.php:758
815
  msgid "http://example.com/menu"
816
  msgstr ""
817
 
818
+ #: lib/functions/KcSeoOptions.php:766 lib/views/schema-options.php:270
819
  msgid "Address"
820
  msgstr ""
821
 
822
+ #: lib/functions/KcSeoOptions.php:770 lib/functions/KcSeoOptions.php:803
823
+ #: lib/views/schema-options.php:113
824
  msgid "Price Range"
825
  msgstr ""
826
 
827
+ #: lib/functions/KcSeoOptions.php:772
828
  msgid "The price range of the business, for example $$$"
829
  msgstr ""
830
 
831
+ #: lib/functions/KcSeoOptions.php:775
832
  msgid "Serves Cuisine"
833
  msgstr ""
834
 
835
+ #: lib/functions/KcSeoOptions.php:777 lib/views/schema-options.php:159
836
  msgid "The cuisine of the restaurant."
837
  msgstr ""
838
 
839
+ #: lib/functions/KcSeoOptions.php:783
840
  msgid "Local Business"
841
  msgstr ""
842
 
843
+ #: lib/functions/KcSeoOptions.php:798
844
  msgid "Business Logo"
845
  msgstr ""
846
 
847
+ #: lib/functions/KcSeoOptions.php:809
848
  msgid "Address locality"
849
  msgstr ""
850
 
851
+ #: lib/functions/KcSeoOptions.php:811
852
  msgid "City (i.e Kansas city)"
853
  msgstr ""
854
 
855
+ #: lib/functions/KcSeoOptions.php:814
856
  msgid "Address region"
857
  msgstr ""
858
 
859
+ #: lib/functions/KcSeoOptions.php:816
860
  msgid "State (i.e. MO)"
861
  msgstr ""
862
 
863
+ #: lib/functions/KcSeoOptions.php:819
864
  msgid "Postal code"
865
  msgstr ""
866
 
867
+ #: lib/functions/KcSeoOptions.php:823
868
  msgid "Street address"
869
  msgstr ""
870
 
871
+ #: lib/functions/KcSeoOptions.php:835
872
  msgid "Book"
873
  msgstr ""
874
 
875
+ #: lib/functions/KcSeoOptions.php:839
876
  msgid "Course"
877
  msgstr ""
878
 
879
+ #: lib/functions/KcSeoOptions.php:843
880
  msgid "Job Posting"
881
  msgstr ""
882
 
883
+ #: lib/functions/KcSeoOptions.php:847
884
  msgid "Movie"
885
  msgstr ""
886
 
887
+ #: lib/functions/KcSeoOptions.php:859
888
  msgid "TVEpisode"
889
  msgstr ""
890
 
891
+ #: lib/functions/KcSeoOptions.php:1313 lib/functions/KcSeoOptions.php:1331
892
+ msgid "Facebook"
893
+ msgstr ""
894
+
895
+ #: lib/functions/KcSeoOptions.php:1314 lib/functions/KcSeoOptions.php:1332
896
+ msgid "Twitter"
897
+ msgstr ""
898
+
899
+ #: lib/functions/KcSeoOptions.php:1315 lib/functions/KcSeoOptions.php:1333
900
+ msgid "Google+"
901
+ msgstr ""
902
+
903
+ #: lib/functions/KcSeoOptions.php:1316 lib/functions/KcSeoOptions.php:1334
904
+ msgid "Instagram"
905
+ msgstr ""
906
+
907
+ #: lib/functions/KcSeoOptions.php:1317 lib/functions/KcSeoOptions.php:1335
908
+ msgid "Youtube"
909
+ msgstr ""
910
+
911
+ #: lib/functions/KcSeoOptions.php:1318 lib/functions/KcSeoOptions.php:1336
912
+ msgid "LinkedIn"
913
+ msgstr ""
914
+
915
+ #: lib/functions/KcSeoOptions.php:1319 lib/functions/KcSeoOptions.php:1337
916
+ msgid "Myspace"
917
+ msgstr ""
918
+
919
+ #: lib/functions/KcSeoOptions.php:1320 lib/functions/KcSeoOptions.php:1338
920
+ msgid "Pinterest"
921
+ msgstr ""
922
+
923
+ #: lib/functions/KcSeoOptions.php:1321 lib/functions/KcSeoOptions.php:1339
924
+ msgid "SoundCloud"
925
+ msgstr ""
926
+
927
+ #: lib/functions/KcSeoOptions.php:1322 lib/functions/KcSeoOptions.php:1340
928
+ msgid "Tumblr"
929
+ msgstr ""
930
+
931
+ #: lib/functions/KcSeoOptions.php:1323 lib/functions/KcSeoOptions.php:1341
932
+ msgid "Wikidata"
933
+ msgstr ""
934
+
935
+ #: lib/models/KcSeoSchemaModel.php:590
936
+ msgid "Required"
937
+ msgstr ""
938
+
939
+ #: lib/models/KcSeoSchemaModel.php:591
940
+ msgid "Recommended"
941
  msgstr ""
942
 
943
+ #: lib/views/schema-options.php:13
944
+ msgid ""
945
+ "General settings for WP SEO Structured Data Schema by <a href=\"https://"
946
+ "wpsemplugins.com/\">WPSEMPlugins.com</a>"
947
+ msgstr ""
948
+
949
+ #: lib/views/schema-options.php:35
950
  msgid "Site Type"
951
  msgstr ""
952
 
953
+ #: lib/views/schema-options.php:38
954
  msgid "Select one type"
955
  msgstr ""
956
 
957
+ #: lib/views/schema-options.php:78
958
  msgid "Organization or Business name"
959
  msgstr ""
960
 
961
+ #: lib/views/schema-options.php:85
962
  msgid "Site Image"
963
  msgstr ""
964
 
965
+ #: lib/views/schema-options.php:122
966
  msgid "Site Telephone"
967
  msgstr ""
968
 
969
+ #: lib/views/schema-options.php:127
970
  msgid "The telephone number."
971
  msgstr ""
972
 
973
+ #: lib/views/schema-options.php:131
974
  msgid "Additional Type"
975
  msgstr ""
976
 
977
+ #: lib/views/schema-options.php:138
978
  msgid "Add \"Additional Type\""
979
  msgstr ""
980
 
981
+ #: lib/views/schema-options.php:142
982
  msgid ""
983
+ "Product Ontology is an extension to schema using WikiPedia definitions that "
984
+ "enables you to further define a type by adding an \"AdditionalType” "
985
+ "attribute.Example for a Tailor (which is not available\n"
986
+ " as a schema “Type”): Pick "
987
+ "LocalBusiness as a generic Type, then add additional type as follows:"
988
  msgstr ""
989
 
990
+ #: lib/views/schema-options.php:156
991
  msgid "Restaurant Information"
992
  msgstr ""
993
 
994
+ #: lib/views/schema-options.php:167
995
  msgid "Others local business info"
996
  msgstr ""
997
 
998
+ #: lib/views/schema-options.php:177
999
  msgid "Operation Hours"
1000
  msgstr ""
1001
 
1002
+ #: lib/views/schema-options.php:204
1003
  msgid "GeoCoordinates"
1004
  msgstr ""
1005
 
1006
+ #: lib/views/schema-options.php:207
1007
  msgid "Latitude"
1008
  msgstr ""
1009
 
1010
+ #: lib/views/schema-options.php:214
1011
  msgid "Longitude"
1012
  msgstr ""
1013
 
1014
+ #: lib/views/schema-options.php:221
1015
  msgid "Person"
1016
  msgstr ""
1017
 
1018
+ #: lib/views/schema-options.php:231
1019
  msgid "Work For"
1020
  msgstr ""
1021
 
1022
+ #: lib/views/schema-options.php:239
1023
  msgid "Job Title"
1024
  msgstr ""
1025
 
1026
+ #: lib/views/schema-options.php:251
1027
  msgid "Add your personal photo here"
1028
  msgstr ""
1029
 
1030
+ #: lib/views/schema-options.php:262
1031
  msgid "Birth date"
1032
  msgstr ""
1033
 
1034
+ #: lib/views/schema-options.php:273
1035
  msgid "Address Country"
1036
  msgstr ""
1037
 
1038
+ #: lib/views/schema-options.php:288
1039
  msgid "Address Locality"
1040
  msgstr ""
1041
 
1042
+ #: lib/views/schema-options.php:295
1043
  msgid "Address Region"
1044
  msgstr ""
1045
 
1046
+ #: lib/views/schema-options.php:302
1047
  msgid "Postal Code"
1048
  msgstr ""
1049
 
1050
+ #: lib/views/schema-options.php:308
1051
  msgid "Street Address"
1052
  msgstr ""
1053
 
1054
+ #: lib/views/schema-options.php:317
1055
  msgid "Add New Address"
1056
  msgstr ""
1057
 
1058
+ #: lib/views/schema-options.php:324
1059
  msgid "Organization Logo"
1060
  msgstr ""
1061
 
1062
+ #: lib/views/schema-options.php:327 lib/views/schema-options.php:390
1063
  msgid "Social Profile"
1064
  msgstr ""
1065
 
1066
+ #: lib/views/schema-options.php:330
1067
  msgid "Corporate Contacts"
1068
  msgstr ""
1069
 
1070
+ #: lib/views/schema-options.php:336
1071
  msgid "Select Organization Logo"
1072
  msgstr ""
1073
 
1074
+ #: lib/views/schema-options.php:380
1075
  msgid "Company Name"
1076
  msgstr ""
1077
 
1078
+ #: lib/views/schema-options.php:387
1079
  msgid "Social Profiles"
1080
  msgstr ""
1081
 
1082
+ #: lib/views/schema-options.php:416
1083
  msgid "Add Social Profile"
1084
  msgstr ""
1085
 
1086
+ #: lib/views/schema-options.php:424
1087
  msgid "Contacts"
1088
  msgstr ""
1089
 
1090
+ #: lib/views/schema-options.php:443
1091
  msgid "Contact Phone"
1092
  msgstr ""
1093
 
1094
+ #: lib/views/schema-options.php:447
1095
  msgid "Please follow the format below"
1096
  msgstr ""
1097
 
1098
+ #: lib/views/schema-options.php:458
1099
  msgid "Contact Email"
1100
  msgstr ""
1101
 
1102
+ #: lib/views/schema-options.php:465
1103
  msgid "Contact Option"
1104
  msgstr ""
1105
 
1106
+ #: lib/views/schema-options.php:469
1107
  msgid "Select an option"
1108
  msgstr ""
1109
 
1110
+ #: lib/views/schema-options.php:472
1111
  msgid "TollFree"
1112
  msgstr ""
1113
 
1114
+ #: lib/views/schema-options.php:476
1115
  msgid "HearingImpairedSupported"
1116
  msgstr ""
1117
 
1118
+ #: lib/views/schema-options.php:482
1119
  msgid "Area Served"
1120
  msgstr ""
1121
 
1122
+ #: lib/views/schema-options.php:500
1123
  msgid "Available language"
1124
  msgstr ""
1125
 
1126
+ #: lib/views/schema-options.php:518
1127
  msgid "Site Schema"
1128
  msgstr ""
1129
 
1130
+ #: lib/views/schema-options.php:521
1131
  msgid "Disable Site Schema"
1132
  msgstr ""
1133
 
1134
+ #: lib/views/schema-options.php:529
1135
  msgid "Enable Site link Search Box"
1136
  msgstr ""
1137
 
1138
+ #: lib/views/schema-options.php:534
1139
  msgid "Note: Preferred Name markup may no longer be supported by Google"
1140
  msgstr ""
1141
 
1142
+ #: lib/views/schema-options.php:538
1143
  msgid "Site Name:"
1144
  msgstr ""
1145
 
1146
+ #: lib/views/schema-options.php:545
1147
  msgid "Site Alternative Name:"
1148
  msgstr ""
1149
 
1150
+ #: lib/views/schema-options.php:552
1151
  msgid "Site Url:"
1152
  msgstr ""
1153
 
1154
+ #: lib/views/schema-options.php:560 lib/views/settings.php:105
1155
  msgid "Save Changes"
1156
  msgstr ""
1157
 
1158
+ #: lib/views/settings.php:6
1159
  msgid "Schema Settings"
1160
  msgstr ""
1161
 
1162
+ #: lib/views/settings.php:13
1163
  msgid "Business / Org Schema"
1164
  msgstr ""
1165
 
1166
+ #: lib/views/settings.php:17
1167
  msgid ""
1168
  "Home page\n"
1169
  " only"
1170
  msgstr ""
1171
 
1172
+ #: lib/views/settings.php:21
1173
  msgid ""
1174
  "Sitewide (Apply General Settings schema\n"
1175
  " sitewide)"
1176
  msgstr ""
1177
 
1178
+ #: lib/views/settings.php:26
1179
  msgid "Turn off (Turn off global schema)"
1180
  msgstr ""
1181
 
1182
+ #: lib/views/settings.php:31
1183
+ msgid "Post Type"
1184
+ msgstr ""
1185
+
1186
+ #: lib/views/settings.php:45
1187
+ msgid "Site Navigation Element Schema"
1188
+ msgstr ""
1189
+
1190
+ #: lib/views/settings.php:49 lib/views/settings.php:74
1191
+ msgid "Publisher Name"
1192
+ msgstr ""
1193
+
1194
+ #: lib/views/settings.php:54
1195
+ msgid "Select one menu"
1196
+ msgstr ""
1197
+
1198
+ #: lib/views/settings.php:65
1199
+ msgid ""
1200
+ "Please deselect the navigation menu if you want to deactivate site "
1201
+ "navigation\n"
1202
+ " schema."
1203
+ msgstr ""
1204
+
1205
+ #: lib/views/settings.php:70
1206
+ msgid "Publisher Information"
1207
+ msgstr ""
1208
+
1209
+ #: lib/views/settings.php:90
1210
+ msgid "System Settings"
1211
+ msgstr ""
1212
+
1213
+ #: lib/views/settings.php:93
1214
  msgid "Delete all data"
1215
  msgstr ""
1216
 
1217
+ #: lib/views/settings.php:98
1218
  msgid "Enable"
1219
  msgstr ""
1220
 
1221
+ #: lib/views/settings.php:99
1222
  msgid ""
1223
+ "This will delete all schema created and applied by this plugin when plugin "
1224
+ "is\n"
1225
  " deleted."
1226
  msgstr ""
1227
+
1228
+ #. Plugin URI of the plugin/theme
1229
+ #. Author URI of the plugin/theme
1230
+ msgid "https://wpsemplugins.com/"
1231
+ msgstr ""
1232
+
1233
+ #. Description of the plugin/theme
1234
+ msgid ""
1235
+ "Comprehensive JSON-LD based Structured Data solution for WordPress for "
1236
+ "adding schema for organizations, businesses, blog posts, ratings & more."
1237
+ msgstr ""
1238
+
1239
+ #. Author of the plugin/theme
1240
+ msgid "WPSEMPlugins"
1241
+ msgstr ""
lib/classes/KcSeoHelper.php CHANGED
@@ -1,217 +1,245 @@
1
  <?php
2
 
3
- if (!class_exists('KcSeoSettings')):
4
-
5
- class KcSeoHelper
6
- {
7
- function verifyNonce() {
8
- $nonce = !empty($_REQUEST['_kcseo_nonce']) ? $_REQUEST['_kcseo_nonce'] : null;
9
- if (!wp_verify_nonce($nonce, $this->nonceText())) {
10
- return false;
11
- }
12
-
13
- return true;
14
- }
15
-
16
- function nonceText() {
17
- return "kcseo_nonce_secret_text";
18
- }
19
-
20
-
21
- function isValidBase64($string = null) {
22
- $decoded = @base64_decode($string, true);
23
- // Check if there is no invalid character in string
24
- if (!@preg_match('/^[a-zA-Z0-9\/\r\n+]*={0,2}$/', $string)) {
25
- return false;
26
- }
27
-
28
- // Decode the string in strict mode and send the response
29
- if (!@base64_decode($string, true)) {
30
- return false;
31
- }
32
-
33
- // Encode and compare it to original one
34
- if (@base64_encode($decoded) != $string) {
35
- return false;
36
- }
37
-
38
- return true;
39
- }
40
-
41
- function get_post_type_list() {
42
- $post_types = get_post_types(
43
- array(
44
- 'public' => true
45
- )
46
- );
47
- $exclude = array('attachment', 'revision', 'nav_menu_item');
48
- foreach ($exclude as $ex) {
49
- unset($post_types[$ex]);
50
- }
51
-
52
- return $post_types;
53
- }
54
-
55
- function kcSeoPostTypes() {
56
- $post_types = get_post_types(
57
- array(
58
- '_builtin' => true
59
- )
60
- );
61
- $exclude = array('attachment', 'revision', 'nav_menu_item');
62
- foreach ($exclude as $ex) {
63
- unset($post_types[$ex]);
64
- }
65
-
66
- return $post_types;
67
- }
68
-
69
- /**
70
- * Sanitize field value
71
- *
72
- * @param array $field
73
- * @param null $value
74
- *
75
- * @return array|null
76
- * @internal param $value
77
- */
78
- function sanitize($field = array(), $value = null) {
79
- $newValue = null;
80
- if (is_array($field) && $value) {
81
- $type = (!empty($field['type']) ? $field['type'] : 'text');
82
- if ($type == 'text' || $type == 'number' || $type == 'select' || $type == 'checkbox' || $type == 'radio') {
83
- $newValue = sanitize_text_field($value);
84
- } else if ($type == 'url') {
85
- $newValue = esc_url($value);
86
- } else if ($type == 'textarea') {
87
- $newValue = wp_kses($value, array());
88
- } else {
89
- $newValue = sanitize_text_field($value);
90
- }
91
- }
92
-
93
- return $newValue;
94
- }
95
-
96
-
97
- function sanitizeOutPut($value, $type = 'text') {
98
- $newValue = null;
99
- if ($value) {
100
- if ($type == 'text') {
101
- $newValue = esc_html(stripslashes($value));
102
- } elseif ($type == 'url') {
103
- $newValue = esc_url(stripslashes($value));
104
- } elseif ($type == 'textarea') {
105
- $newValue = esc_textarea(stripslashes($value));
106
- } else {
107
- $newValue = esc_html(stripslashes($value));
108
- }
109
- }
110
-
111
- return $newValue;
112
- }
113
-
114
-
115
- function imageInfo($attachment_id) {
116
- $data = array();
117
- $imgData = wp_get_attachment_metadata($attachment_id);
118
- $data['url'] = wp_get_attachment_url($attachment_id, "full");
119
- $data['width'] = !empty($imgData['width']) ? absint($imgData['width']) : 0;
120
- $data['height'] = !empty($imgData['height']) ? absint($imgData['height']) : 0;
121
- return $data;
122
- }
123
-
124
- function fix1_2DataMigration() {
125
- global $KcSeoWPSchema;
126
- $fix_1_2 = get_option($KcSeoWPSchema->options['1_2_fix']);
127
- $installed_version = get_option($KcSeoWPSchema->options['installed_version']);
128
- if (empty($fix_1_2) && empty($installed_version)) {
129
- global $wpdb;
130
- $ids = array();
131
- $posts = $wpdb->get_results("
132
  SELECT posts.ID FROM {$wpdb->prefix}posts as posts
133
  WHERE posts.post_type = 'post'
134
  AND EXISTS (
135
  SELECT * FROM `{$wpdb->prefix}postmeta` as postmeta
136
  WHERE postmeta.`meta_key` LIKE '_schema_%'
137
  AND postmeta.`post_id`=posts.ID
138
- )");
139
- if ($posts) {
140
- foreach ($posts as $id) {
141
- $ids[] = $id->ID;
142
- }
143
- }
144
- $pages = $wpdb->get_results("
145
  SELECT posts.ID FROM {$wpdb->prefix}posts as posts
146
  WHERE posts.post_type = 'page'
147
  AND EXISTS (
148
  SELECT * FROM `{$wpdb->prefix}postmeta` as postmeta
149
  WHERE postmeta.`meta_key` LIKE '_schema_%'
150
  AND postmeta.`post_id`=posts.ID
151
- )");
152
- if ($pages) {
153
- foreach ($pages as $id) {
154
- $ids[] = $id->ID;
155
- }
156
- }
157
-
158
-
159
- if (!empty($ids)) {
160
- $schemaFields = KcSeoOptions::getSchemaTypes();
161
- foreach ($ids as $id) {
162
- foreach ($schemaFields as $schemaID => $schema) {
163
- $schemaMetaId = $KcSeoWPSchema->KcSeoPrefix . $schemaID;
164
- $getRawMeta = get_post_meta($id, $schemaMetaId, true);
165
- $metaData = array();
166
- if (!empty($getRawMeta)) {
167
- if ($KcSeoWPSchema->isValidBase64($getRawMeta)) {
168
- $metaData = @unserialize(base64_decode($getRawMeta));
169
- } else {
170
- $metaData = @unserialize($getRawMeta);
171
- }
172
- }
173
- $metaData = (!empty($metaData) ? $metaData : array());
174
- if (!empty($metaData) && is_array($metaData)) {
175
- $metaData['active'] = true;
176
- update_post_meta($id, $schemaMetaId, $metaData);
177
- }
178
- }
179
- }
180
- }
181
-
182
- update_option($KcSeoWPSchema->options['1_2_fix'], true);
183
- }
184
- }
185
-
186
- function advertisingBlock() {
187
- ?>
188
  <div class='kc-get-pro'>
189
- <h3><?php _e("Pro Version Features", "wp-seo-structured-data-schema") ?></h3>
190
  <ol>
191
- <li><?php _e("Includes Auto-fill function <---Popular", "wp-seo-structured-data-schema") ?></li>
192
- <li><?php _e("Supports Custom Post Types beyond default page and posts", "wp-seo-structured-data-schema") ?></li>
193
- <li><?php _e("Supports WordPress Multisite", "wp-seo-structured-data-schema") ?></li>
194
- <li><?php _e("Supports more schema types:", "wp-seo-structured-data-schema") ?>
195
  <ol>
196
- <li><?php _e("Books", "wp-seo-structured-data-schema") ?></li>
197
- <li><?php _e("Courses", "wp-seo-structured-data-schema") ?></li>
198
- <li><?php _e("Job Postings", "wp-seo-structured-data-schema") ?></li>
199
- <li><?php _e("Movies", "wp-seo-structured-data-schema") ?></li>
200
- <li><?php _e("Music", "wp-seo-structured-data-schema") ?></li>
201
- <li><?php _e("Recipe", "wp-seo-structured-data-schema") ?></li>
202
- <li><?php _e("TV Episode", "wp-seo-structured-data-schema") ?></li>
203
- <li><?php _e("QAPage", "wp-seo-structured-data-schema") ?></li>
204
- <li><?php _e("Item List", "wp-seo-structured-data-schema") ?></li>
205
  </ol>
206
  </li>
207
  </ol>
208
  <div class="kc-pro-action"><a class='button button-primary'
209
  href='https://wpsemplugins.com/downloads/wordpress-schema-plugin/'
210
- target='_blank'><?php _e("Get the Pro Version", "wp-seo-structured-data-schema") ?></a>
211
  </div>
212
  </div>
213
- <?php
214
- }
215
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
216
 
217
  endif;
1
  <?php
2
 
3
+ if ( ! class_exists( 'KcSeoSettings' ) ):
4
+
5
+ class KcSeoHelper {
6
+ function verifyNonce() {
7
+ $nonce = ! empty( $_REQUEST['_kcseo_nonce'] ) ? $_REQUEST['_kcseo_nonce'] : null;
8
+ if ( ! wp_verify_nonce( $nonce, $this->nonceText() ) ) {
9
+ return false;
10
+ }
11
+
12
+ return true;
13
+ }
14
+
15
+ function nonceText() {
16
+ return "kcseo_nonce_secret_text";
17
+ }
18
+
19
+
20
+ function isValidBase64( $string = null ) {
21
+ $decoded = @base64_decode( $string, true );
22
+ // Check if there is no invalid character in string
23
+ if ( ! @preg_match( '/^[a-zA-Z0-9\/\r\n+]*={0,2}$/', $string ) ) {
24
+ return false;
25
+ }
26
+
27
+ // Decode the string in strict mode and send the response
28
+ if ( ! @base64_decode( $string, true ) ) {
29
+ return false;
30
+ }
31
+
32
+ // Encode and compare it to original one
33
+ if ( @base64_encode( $decoded ) != $string ) {
34
+ return false;
35
+ }
36
+
37
+ return true;
38
+ }
39
+
40
+ function get_post_type_list() {
41
+ $post_types = get_post_types(
42
+ array(
43
+ 'public' => true
44
+ )
45
+ );
46
+ $exclude = array( 'attachment', 'revision', 'nav_menu_item' );
47
+ foreach ( $exclude as $ex ) {
48
+ unset( $post_types[ $ex ] );
49
+ }
50
+
51
+ return $post_types;
52
+ }
53
+
54
+ function kcSeoPostTypes() {
55
+ $post_types = get_post_types(
56
+ array(
57
+ '_builtin' => true
58
+ )
59
+ );
60
+ $exclude = array( 'attachment', 'revision', 'nav_menu_item' );
61
+ foreach ( $exclude as $ex ) {
62
+ unset( $post_types[ $ex ] );
63
+ }
64
+
65
+ return $post_types;
66
+ }
67
+
68
+ /**
69
+ * Sanitize field value
70
+ *
71
+ * @param array $field
72
+ * @param null $value
73
+ *
74
+ * @return array|null
75
+ * @internal param $value
76
+ */
77
+ function sanitize( $field = array(), $value = null ) {
78
+ $newValue = null;
79
+ if ( is_array( $field ) && $value ) {
80
+ $type = ( ! empty( $field['type'] ) ? $field['type'] : 'text' );
81
+ if ( $type == 'text' || $type == 'number' || $type == 'select' || $type == 'checkbox' || $type == 'radio' ) {
82
+ $newValue = sanitize_text_field( $value );
83
+ } else if ( $type == 'url' ) {
84
+ $newValue = esc_url( $value );
85
+ } else if ( $type == 'textarea' ) {
86
+ $newValue = wp_kses( $value, array() );
87
+ } else {
88
+ $newValue = sanitize_text_field( $value );
89
+ }
90
+ }
91
+
92
+ return $newValue;
93
+ }
94
+
95
+
96
+ function sanitizeOutPut( $value, $type = 'text' ) {
97
+ $newValue = null;
98
+ if ( $value ) {
99
+ if ( $type == 'text' ) {
100
+ $newValue = esc_html( stripslashes( $value ) );
101
+ } elseif ( $type == 'url' ) {
102
+ $newValue = esc_url( stripslashes( $value ) );
103
+ } elseif ( $type == 'textarea' ) {
104
+ $newValue = esc_textarea( stripslashes( $value ) );
105
+ } else {
106
+ $newValue = esc_html( stripslashes( $value ) );
107
+ }
108
+ }
109
+
110
+ return $newValue;
111
+ }
112
+
113
+
114
+ function imageInfo( $attachment_id ) {
115
+ $data = array();
116
+ $imgData = wp_get_attachment_metadata( $attachment_id );
117
+ $data['url'] = wp_get_attachment_url( $attachment_id, "full" );
118
+ $data['width'] = ! empty( $imgData['width'] ) ? absint( $imgData['width'] ) : 0;
119
+ $data['height'] = ! empty( $imgData['height'] ) ? absint( $imgData['height'] ) : 0;
120
+
121
+ return $data;
122
+ }
123
+
124
+ function fix1_2DataMigration() {
125
+ global $KcSeoWPSchema;
126
+ $fix_1_2 = get_option( $KcSeoWPSchema->options['1_2_fix'] );
127
+ $installed_version = get_option( $KcSeoWPSchema->options['installed_version'] );
128
+ if ( empty( $fix_1_2 ) && empty( $installed_version ) ) {
129
+ global $wpdb;
130
+ $ids = array();
131
+ $posts = $wpdb->get_results( "
132
  SELECT posts.ID FROM {$wpdb->prefix}posts as posts
133
  WHERE posts.post_type = 'post'
134
  AND EXISTS (
135
  SELECT * FROM `{$wpdb->prefix}postmeta` as postmeta
136
  WHERE postmeta.`meta_key` LIKE '_schema_%'
137
  AND postmeta.`post_id`=posts.ID
138
+ )" );
139
+ if ( $posts ) {
140
+ foreach ( $posts as $id ) {
141
+ $ids[] = $id->ID;
142
+ }
143
+ }
144
+ $pages = $wpdb->get_results( "
145
  SELECT posts.ID FROM {$wpdb->prefix}posts as posts
146
  WHERE posts.post_type = 'page'
147
  AND EXISTS (
148
  SELECT * FROM `{$wpdb->prefix}postmeta` as postmeta
149
  WHERE postmeta.`meta_key` LIKE '_schema_%'
150
  AND postmeta.`post_id`=posts.ID
151
+ )" );
152
+ if ( $pages ) {
153
+ foreach ( $pages as $id ) {
154
+ $ids[] = $id->ID;
155
+ }
156
+ }
157
+
158
+
159
+ if ( ! empty( $ids ) ) {
160
+ $schemaFields = KcSeoOptions::getSchemaTypes();
161
+ foreach ( $ids as $id ) {
162
+ foreach ( $schemaFields as $schemaID => $schema ) {
163
+ $schemaMetaId = $KcSeoWPSchema->KcSeoPrefix . $schemaID;
164
+ $getRawMeta = get_post_meta( $id, $schemaMetaId, true );
165
+ $metaData = array();
166
+ if ( ! empty( $getRawMeta ) ) {
167
+ if ( $KcSeoWPSchema->isValidBase64( $getRawMeta ) ) {
168
+ $metaData = @unserialize( base64_decode( $getRawMeta ) );
169
+ } else {
170
+ $metaData = @unserialize( $getRawMeta );
171
+ }
172
+ }
173
+ $metaData = ( ! empty( $metaData ) ? $metaData : array() );
174
+ if ( ! empty( $metaData ) && is_array( $metaData ) ) {
175
+ $metaData['active'] = true;
176
+ update_post_meta( $id, $schemaMetaId, $metaData );
177
+ }
178
+ }
179
+ }
180
+ }
181
+
182
+ update_option( $KcSeoWPSchema->options['1_2_fix'], true );
183
+ }
184
+ }
185
+
186
+ function advertisingBlock() {
187
+ ?>
188
  <div class='kc-get-pro'>
189
+ <h3><?php _e( "Pro Version Features", "wp-seo-structured-data-schema" ) ?></h3>
190
  <ol>
191
+ <li><?php _e( "Includes Auto-fill function <---Popular", "wp-seo-structured-data-schema" ) ?></li>
192
+ <li><?php _e( "Supports Custom Post Types beyond default page and posts", "wp-seo-structured-data-schema" ) ?></li>
193
+ <li><?php _e( "Supports WordPress Multisite", "wp-seo-structured-data-schema" ) ?></li>
194
+ <li><?php _e( "Supports more schema types:", "wp-seo-structured-data-schema" ) ?>
195
  <ol>
196
+ <li><?php _e( "Books", "wp-seo-structured-data-schema" ) ?></li>
197
+ <li><?php _e( "Courses", "wp-seo-structured-data-schema" ) ?></li>
198
+ <li><?php _e( "Job Postings", "wp-seo-structured-data-schema" ) ?></li>
199
+ <li><?php _e( "Movies", "wp-seo-structured-data-schema" ) ?></li>
200
+ <li><?php _e( "Music", "wp-seo-structured-data-schema" ) ?></li>
201
+ <li><?php _e( "Recipe", "wp-seo-structured-data-schema" ) ?></li>
202
+ <li><?php _e( "TV Episode", "wp-seo-structured-data-schema" ) ?></li>
203
+ <li><?php _e( "QAPage", "wp-seo-structured-data-schema" ) ?></li>
204
+ <li><?php _e( "Item List", "wp-seo-structured-data-schema" ) ?></li>
205
  </ol>
206
  </li>
207
  </ol>
208
  <div class="kc-pro-action"><a class='button button-primary'
209
  href='https://wpsemplugins.com/downloads/wordpress-schema-plugin/'
210
+ target='_blank'><?php _e( "Get the Pro Version", "wp-seo-structured-data-schema" ) ?></a>
211
  </div>
212
  </div>
213
+ <?php
214
+ }
215
+
216
+ function fix2_5_7_to_2_5_8() {
217
+ global $KcSeoWPSchema;
218
+ $installed_version = get_option( $KcSeoWPSchema->options['installed_version'] );
219
+ if ( version_compare( $installed_version, '2.5.7', '<=' ) ) {
220
+ $settings = get_option( $KcSeoWPSchema->options['settings'] );
221
+ if ( isset( $settings['contact']['contactType'] ) ) {
222
+ $settings['contact']['contactType'] = strtolower( $settings['contact']['contactType'] );
223
+ update_option( $KcSeoWPSchema->options['settings'], $settings );
224
+ }
225
+ if ( isset( $settings['area_served'] ) && ! empty( $settings['area_served'] ) ) {
226
+
227
+ $cList = KcSeoOptions::getCountryList();
228
+ $areas = array();
229
+ foreach ( $settings['area_served'] as $area ) {
230
+ $key = array_search( $area, $cList );
231
+ if ( $key ) {
232
+ $areas[] = $key;
233
+ }
234
+ }
235
+ if ( ! empty( $areas ) ) {
236
+ $settings['area_served'] = $areas;
237
+ update_option( $KcSeoWPSchema->options['settings'], $settings );
238
+ }
239
+ }
240
+
241
+ }
242
+ }
243
+ }
244
 
245
  endif;
lib/classes/KcSeoInit.php CHANGED
@@ -59,7 +59,6 @@ if ( ! class_exists( 'KcSeoInit' ) ):
59
  wp_enqueue_media();
60
  wp_enqueue_script( array(
61
  'jquery',
62
- 'kcseo-datepicker',
63
  'kcseo-select2-js',
64
  'kcseo-tooltip-js',
65
  'kcseo-admin-js',
@@ -67,16 +66,11 @@ if ( ! class_exists( 'KcSeoInit' ) ):
67
 
68
  // styles
69
  wp_enqueue_style( array(
70
- 'kcseo-datepicker',
71
  'kcseo-select2-css',
72
  'kcseo-tooltip-css',
73
  'kcseo-admin-css',
74
  ) );
75
 
76
- wp_localize_script('kcseo-admin-js', '_kcseo', array(
77
- 'time_format' => get_option('time_format'),
78
- 'date_format' => get_option('date_format')
79
- ));
80
  }
81
  }
82
 
@@ -88,32 +82,24 @@ if ( ! class_exists( 'KcSeoInit' ) ):
88
  if ( is_admin() ) {
89
 
90
 
91
- $scripts[] = array(
92
  'handle' => 'kcseo-select2-js',
93
  'src' => $KcSeoWPSchema->assetsUrl . 'js/select2.min.js',
94
  'deps' => array( 'jquery' ),
95
  'footer' => true
96
  );
97
- $scripts[] = array(
98
  'handle' => 'kcseo-tooltip-js',
99
  'src' => $KcSeoWPSchema->assetsUrl . 'js/jquery.qtip.js',
100
  'deps' => array( 'jquery' ),
101
  'footer' => true
102
  );
103
-
104
- $scripts[] = array(
105
- 'handle' => 'kcseo-datepicker',
106
- 'src' => $KcSeoWPSchema->assetsUrl . 'vendor/datepicker/jquery.datetimepicker.full.min.js',
107
- 'deps' => array( 'jquery' ),
108
- 'footer' => false
109
- );
110
  $scripts[] = array(
111
  'handle' => 'kcseo-admin-js',
112
  'src' => $KcSeoWPSchema->assetsUrl . 'js/admin.js',
113
  'deps' => array( 'jquery' ),
114
  'footer' => true
115
  );
116
- $styles['kcseo-datepicker'] = $KcSeoWPSchema->assetsUrl . 'vendor/datepicker/jquery.datetimepicker.min.css';
117
  $styles['kcseo-select2-css'] = $KcSeoWPSchema->assetsUrl . 'css/select2.min.css';
118
  $styles['kcseo-tooltip-css'] = $KcSeoWPSchema->assetsUrl . 'css/jquery.qtip.css';
119
  $styles['kcseo-admin-css'] = $KcSeoWPSchema->assetsUrl . 'css/admin.css';
@@ -220,6 +206,7 @@ if ( ! class_exists( 'KcSeoInit' ) ):
220
  function updateVariableAndFixIssue() {
221
  global $KcSeoWPSchema;
222
  $KcSeoWPSchema->fix1_2DataMigration();
 
223
  update_option( $KcSeoWPSchema->options['installed_version'], $KcSeoWPSchema->options['version'] );
224
  }
225
 
59
  wp_enqueue_media();
60
  wp_enqueue_script( array(
61
  'jquery',
 
62
  'kcseo-select2-js',
63
  'kcseo-tooltip-js',
64
  'kcseo-admin-js',
66
 
67
  // styles
68
  wp_enqueue_style( array(
 
69
  'kcseo-select2-css',
70
  'kcseo-tooltip-css',
71
  'kcseo-admin-css',
72
  ) );
73
 
 
 
 
 
74
  }
75
  }
76
 
82
  if ( is_admin() ) {
83
 
84
 
85
+ $scripts[] = array(
86
  'handle' => 'kcseo-select2-js',
87
  'src' => $KcSeoWPSchema->assetsUrl . 'js/select2.min.js',
88
  'deps' => array( 'jquery' ),
89
  'footer' => true
90
  );
91
+ $scripts[] = array(
92
  'handle' => 'kcseo-tooltip-js',
93
  'src' => $KcSeoWPSchema->assetsUrl . 'js/jquery.qtip.js',
94
  'deps' => array( 'jquery' ),
95
  'footer' => true
96
  );
 
 
 
 
 
 
 
97
  $scripts[] = array(
98
  'handle' => 'kcseo-admin-js',
99
  'src' => $KcSeoWPSchema->assetsUrl . 'js/admin.js',
100
  'deps' => array( 'jquery' ),
101
  'footer' => true
102
  );
 
103
  $styles['kcseo-select2-css'] = $KcSeoWPSchema->assetsUrl . 'css/select2.min.css';
104
  $styles['kcseo-tooltip-css'] = $KcSeoWPSchema->assetsUrl . 'css/jquery.qtip.css';
105
  $styles['kcseo-admin-css'] = $KcSeoWPSchema->assetsUrl . 'css/admin.css';
206
  function updateVariableAndFixIssue() {
207
  global $KcSeoWPSchema;
208
  $KcSeoWPSchema->fix1_2DataMigration();
209
+ $KcSeoWPSchema->fix2_5_7_to_2_5_8();
210
  update_option( $KcSeoWPSchema->options['installed_version'], $KcSeoWPSchema->options['version'] );
211
  }
212
 
lib/classes/KcSeoMetaData.php CHANGED
@@ -23,21 +23,16 @@ if ( ! class_exists( 'KcSeoMetaData' ) ):
23
  // scripts
24
  wp_enqueue_script( array(
25
  'jquery',
26
- 'kcseo-datepicker',
27
  'kcseo-select2-js',
28
  'kcseo-admin-js',
29
  ) );
30
 
31
  // styles
32
  wp_enqueue_style( array(
33
- 'kcseo-datepicker',
34
  'kcseo-select2-css',
35
  'kcseo-admin-css',
36
  ) );
37
- wp_localize_script('kcseo-admin-js', '_kcseo', array(
38
- 'time_format' => get_option('time_format'),
39
- 'date_format' => get_option('date_format')
40
- ));
41
  add_action( 'admin_head', array( $this, 'admin_head' ) );
42
  }
43
 
@@ -75,7 +70,7 @@ if ( ! class_exists( 'KcSeoMetaData' ) ):
75
  $schemaFields = KcSeoOptions::getSchemaTypes();
76
  $i = 0;
77
  foreach ( $schemaFields as $schemaID => $schema ) {
78
- $tabId = $KcSeoWPSchema->KcSeoPrefix . $schemaID;
79
  $activeClass = ( ( ! $_kcseo_ative_tab && $i === 0 ) || $tabId === $_kcseo_ative_tab ) ? ' active' : null;
80
  $i ++;
81
  $htmlMenu .= '<li data-id="' . $tabId . '" class="' . $activeClass . '"><a href="#' . $tabId . '">' . $schema['title'] . '</a></li>';
23
  // scripts
24
  wp_enqueue_script( array(
25
  'jquery',
 
26
  'kcseo-select2-js',
27
  'kcseo-admin-js',
28
  ) );
29
 
30
  // styles
31
  wp_enqueue_style( array(
 
32
  'kcseo-select2-css',
33
  'kcseo-admin-css',
34
  ) );
35
+
 
 
 
36
  add_action( 'admin_head', array( $this, 'admin_head' ) );
37
  }
38
 
70
  $schemaFields = KcSeoOptions::getSchemaTypes();
71
  $i = 0;
72
  foreach ( $schemaFields as $schemaID => $schema ) {
73
+ $tabId = $KcSeoWPSchema->KcSeoPrefix . $schemaID;
74
  $activeClass = ( ( ! $_kcseo_ative_tab && $i === 0 ) || $tabId === $_kcseo_ative_tab ) ? ' active' : null;
75
  $i ++;
76
  $htmlMenu .= '<li data-id="' . $tabId . '" class="' . $activeClass . '"><a href="#' . $tabId . '">' . $schema['title'] . '</a></li>';
lib/classes/KcSeoOutput.php CHANGED
@@ -1,209 +1,216 @@
1
  <?php
2
 
3
- if (!class_exists('KcSeoOutput')):
4
-
5
- class KcSeoOutput
6
- {
7
- function __construct() {
8
- add_action('wp_footer', array($this, 'footer'), 99);
9
- add_action('amp_post_template_footer', array($this, 'footer'), 999); // AMP support
10
- add_action('kcseo_footer', array($this, 'debug_mark'), 2);
11
- add_action('kcseo_footer', array($this, 'load_schema'), 3);
12
- }
13
-
14
- private function head_product_name() {
15
- return 'WP SEO Structured Data Plugin';
16
- }
17
-
18
- public function debug_mark($echo = true) {
19
- $marker = sprintf(
20
- '<!-- This site is optimized with Phil Singleton\'s ' . $this->head_product_name() . ' v%1$s - https://kcseopro.com/wordpress-seo-structured-data-schema-plugin/ -->',
21
- KCSEO_WP_SCHEMA_VERSION
22
- );
23
-
24
- if ($echo === false) {
25
- return $marker;
26
- } else {
27
- echo "\n${marker}\n";
28
- }
29
- }
30
-
31
- function footer() {
32
-
33
- global $wp_query;
34
-
35
- $old_wp_query = null;
36
-
37
- if (!$wp_query->is_main_query()) {
38
- $old_wp_query = $wp_query;
39
- wp_reset_query();
40
- }
41
- wp_reset_postdata(); // TODO This is for wrong theme loop
42
- do_action('kcseo_footer');
43
-
44
- echo "\n<!-- / ", $this->head_product_name(), ". -->\n\n";
45
-
46
- if (!empty($old_wp_query)) {
47
- $GLOBALS['wp_query'] = $old_wp_query;
48
- unset($old_wp_query);
49
- }
50
-
51
- return;
52
- }
53
-
54
- function load_schema() {
55
- global $KcSeoWPSchema;
56
- $schemaModel = new KcSeoSchemaModel;
57
- $html = null;
58
- $settings = get_option($KcSeoWPSchema->options['settings']);
59
- if (empty($settings['disable_site_schema'])) {
60
- if (is_home() || is_front_page()) {
61
- $metaData = array();
62
-
63
- $metaData["@context"] = "http://schema.org/";
64
- $metaData["@type"] = "WebSite";
65
- $author_url = (!empty($settings['siteurl']) ? $settings['siteurl'] : get_home_url());
66
-
67
- if (!empty($settings['homeonly']) && $settings['homeonly']) {
68
- $metaData["url"] = $author_url;
69
- $metaData["potentialAction"] = array(
70
- "@type" => "SearchAction",
71
- "target" => trailingslashit(get_home_url()) . "?s={query}",
72
- "query-input" => "required name=query"
73
- );
74
- $html .= $schemaModel->get_jsonEncode($metaData);
75
- } else {
76
- $metaData["url"] = $KcSeoWPSchema->sanitizeOutPut($author_url, 'url');
77
- $metaData["name"] = !empty($settings['sitename']) ? $KcSeoWPSchema->sanitizeOutPut($settings['sitename']) : null;
78
- $metaData["alternateName"] = !empty($settings['siteaname']) ? $KcSeoWPSchema->sanitizeOutPut($settings['siteaname']) : null;
79
- $html .= $schemaModel->get_jsonEncode($metaData);
80
- }
81
- }
82
- }
83
- $webMeta = array();
84
- $webMeta["@context"] = "http://schema.org";
85
- $siteType = !empty($settings['site_type']) ? $KcSeoWPSchema->sanitizeOutPut($settings['site_type']) : null;
86
- $webMeta["@type"] = $siteType;
87
- if ($siteType != "Organization") {
88
- if (!empty($settings['site_image']) && $imgID = absint($settings['site_image'])) {
89
- $image_url = wp_get_attachment_url($imgID, 'full');
90
- $webMeta["image"] = $KcSeoWPSchema->sanitizeOutPut($image_url, 'url');
91
- } else {
92
- $webMeta["image"] = null;
93
- }
94
- $webMeta["priceRange"] = !empty($settings['site_price_range']) ? $KcSeoWPSchema->sanitizeOutPut($settings['site_price_range']) : null;
95
- $webMeta["telephone"] = !empty($settings['site_telephone']) ? $KcSeoWPSchema->sanitizeOutPut($settings['site_telephone']) : null;
96
- }
97
-
98
- if (!empty($settings['additionalType'])) {
99
- $aType = explode("\r\n", $settings['additionalType']);
100
- if (!empty($aType) && is_array($aType)) {
101
- if (count($aType) == 1) {
102
- $webMeta["additionalType"] = $aType[0];
103
- } else if (count($aType) > 1) {
104
- $webMeta["additionalType"] = $aType;
105
- }
106
- }
107
- }
108
-
109
- if ($siteType == 'Person') {
110
- $webMeta["name"] = !empty($settings['person']['name']) ? $KcSeoWPSchema->sanitizeOutPut($settings['person']['name']) : null;
111
- $webMeta["worksFor"] = !empty($settings['person']['worksFor']) ? $KcSeoWPSchema->sanitizeOutPut($settings['person']['worksFor']) : null;
112
- $webMeta["jobTitle"] = !empty($settings['person']['jobTitle']) ? $KcSeoWPSchema->sanitizeOutPut($settings['person']['jobTitle']) : null;
113
- $webMeta["image"] = !empty($settings['person']['image']) ? $KcSeoWPSchema->sanitizeOutPut($settings['person']['image'], 'url') : null;
114
- $webMeta["description"] = !empty($settings['person']['description']) ? $KcSeoWPSchema->sanitizeOutPut($settings['person']['description'], 'textarea') : null;
115
- $webMeta["birthDate"] = !empty($settings['person']['birthDate']) ? $KcSeoWPSchema->sanitizeOutPut($settings['person']['birthDate']) : null;
116
- } else {
117
- $webMeta["name"] = !empty($settings['type_name']) ? $KcSeoWPSchema->sanitizeOutPut($settings['type_name']) : null;
118
- if (!empty($settings['organization_logo']) && $imgID = absint($settings['organization_logo'])) {
119
- $image_url = wp_get_attachment_url($imgID, 'full');
120
- $webMeta["logo"] = $KcSeoWPSchema->sanitizeOutPut($image_url, 'url');
121
- } else {
122
- $webMeta["logo"] = null;
123
- }
124
- }
125
- if ($siteType != "Organization" && $siteType != "Person") {
126
- $webMeta["description"] = !empty($settings['business_info']['description']) ? $KcSeoWPSchema->sanitizeOutPut($settings['business_info']['description'], 'textarea') : null;
127
- if (!empty($settings['business_info']['openingHours'])) {
128
- $aOhour = explode("\r\n", $settings['business_info']['openingHours']);
129
- if (!empty($aOhour) && is_array($aOhour)) {
130
- if (count($aOhour) == 1) {
131
- $webMeta["openingHours"] = $aOhour[0];
132
- } else if (count($aOhour) > 1) {
133
- $webMeta["openingHours"] = $aOhour;
134
- }
135
- }
136
- }
137
- $webMeta["geo"] = array(
138
- "@type" => "GeoCoordinates",
139
- "latitude" => !empty($settings['business_info']['latitude']) ? $KcSeoWPSchema->sanitizeOutPut($settings['business_info']['latitude']) : null,
140
- "longitude" => !empty($settings['business_info']['longitude']) ? $KcSeoWPSchema->sanitizeOutPut($settings['business_info']['longitude']) : null,
141
- );
142
- }
143
-
144
- if (in_array($siteType, array('FoodEstablishment', 'Bakery', 'BarOrPub', 'Brewery', 'CafeOrCoffeeShop', 'FastFoodRestaurant', 'IceCreamShop', 'Restaurant', 'Winery'))) {
145
- $webMeta["servesCuisine"] = !empty($settings['restaurant']['servesCuisine']) ? $KcSeoWPSchema->sanitizeOutPut($settings['restaurant']['servesCuisine'], 'textarea') : null;
146
- }
147
-
148
- $webMeta["url"] = !empty($settings['web_url']) ? $KcSeoWPSchema->sanitizeOutPut($settings['web_url'], 'url') : $KcSeoWPSchema->sanitizeOutPut(get_home_url(), 'url');
149
- if (!empty($settings['social']) && is_array($settings['social'])) {
150
- $link = array();
151
- foreach ($settings['social'] as $socialD) {
152
- if ($socialD['link']) {
153
- $link[] = $socialD['link'];
154
- }
155
- }
156
- if (!empty($link)) {
157
- $webMeta["sameAs"] = $link;
158
- }
159
- }
160
-
161
- $webMeta["contactPoint"] = array(
162
- "@type" => "ContactPoint",
163
- "telephone" => !empty($settings['contact']['telephone']) ? $KcSeoWPSchema->sanitizeOutPut($settings['contact']['telephone']) : (!empty($settings['site_telephone']) ? $KcSeoWPSchema->sanitizeOutPut($settings['site_telephone']) : null),
164
- "contactType" => !empty($settings['contact']['contactType']) ? $KcSeoWPSchema->sanitizeOutPut($settings['contact']['contactType']) : '',
165
- "email" => !empty($settings['contact']['email']) ? $KcSeoWPSchema->sanitizeOutPut($settings['contact']['email']) : '',
166
- "contactOption" => !empty($settings['contact']['contactOption']) ? $KcSeoWPSchema->sanitizeOutPut($settings['contact']['contactOption']) : '',
167
- "areaServed" => !empty($settings['area_served']) ? implode(',',
168
- !empty($settings['area_served']) ? $settings['area_served'] : array()) : '',
169
- "availableLanguage" => !empty($settings['availableLanguage']) ? @implode(',',
170
- !empty($settings['availableLanguage']) ? $settings['availableLanguage'] : array()) : null
171
- );
172
- $webMeta["address"] = array(
173
- "@type" => "PostalAddress",
174
- "addressCountry" => !empty($settings['address']['country']) ? $KcSeoWPSchema->sanitizeOutPut($settings['address']['country']) : null,
175
- "addressLocality" => !empty($settings['address']['locality']) ? $KcSeoWPSchema->sanitizeOutPut($settings['address']['locality']) : null,
176
- "addressRegion" => !empty($settings['address']['region']) ? $KcSeoWPSchema->sanitizeOutPut($settings['address']['region']) : null,
177
- "postalCode" => !empty($settings['address']['postalcode']) ? $KcSeoWPSchema->sanitizeOutPut($settings['address']['postalcode']) : null,
178
- "streetAddress" => !empty($settings['address']['street']) ? $KcSeoWPSchema->sanitizeOutPut($settings['address']['street']) : null
179
- );
180
-
181
- $main_settings = get_option($KcSeoWPSchema->options['main_settings']);
182
- $site_schema = !empty($main_settings['site_schema']) ? $main_settings['site_schema'] : 'home_page';
183
- if ($site_schema !== 'off') {
184
- if ($webMeta["@type"]) {
185
- if ($site_schema == 'home_page') {
186
- if (is_home() || is_front_page()) {
187
- $html .= $schemaModel->get_jsonEncode($webMeta);
188
- }
189
- } elseif ($site_schema == 'all') {
190
- $html .= $schemaModel->get_jsonEncode($webMeta);
191
- }
192
- }
193
- }
194
-
195
- if (is_single() || is_page()) {
196
- $post = get_queried_object();
197
- foreach (KcSeoOptions::getSchemaTypes() as $schemaID => $schema) {
198
- $schemaMetaId = $KcSeoWPSchema->KcSeoPrefix . $schemaID;
199
- $metaData = get_post_meta($post->ID, $schemaMetaId, true);
200
- $metaData = (is_array($metaData) ? $metaData : array());
201
- if (!empty($metaData) && !empty($metaData['active'])) {
202
- $html .= $schemaModel->schemaOutput($schemaID, $metaData);
203
- }
204
- }
205
- }
206
- echo $html;
207
- }
208
- }
 
 
 
 
 
 
 
209
  endif;
1
  <?php
2
 
3
+ if ( ! class_exists( 'KcSeoOutput' ) ):
4
+
5
+ class KcSeoOutput {
6
+ function __construct() {
7
+ add_action( 'wp_footer', array( $this, 'footer' ), 99 );
8
+ add_action( 'amp_post_template_footer', array( $this, 'footer' ), 999 ); // AMP support
9
+ add_action( 'kcseo_footer', array( $this, 'debug_mark' ), 2 );
10
+ add_action( 'kcseo_footer', array( $this, 'load_schema' ), 3 );
11
+ }
12
+
13
+ private function head_product_name() {
14
+ return 'WP SEO Structured Data Plugin';
15
+ }
16
+
17
+ public function debug_mark( $echo = true ) {
18
+ $marker = sprintf(
19
+ '<!-- This site is optimized with Phil Singleton\'s ' . $this->head_product_name() . ' v%1$s - https://kcseopro.com/wordpress-seo-structured-data-schema-plugin/ -->',
20
+ KCSEO_WP_SCHEMA_VERSION
21
+ );
22
+
23
+ if ( $echo === false ) {
24
+ return $marker;
25
+ } else {
26
+ echo "\n${marker}\n";
27
+ }
28
+ }
29
+
30
+ function footer() {
31
+
32
+ global $wp_query;
33
+
34
+ $old_wp_query = null;
35
+
36
+ if ( ! $wp_query->is_main_query() ) {
37
+ $old_wp_query = $wp_query;
38
+ wp_reset_query();
39
+ }
40
+ wp_reset_postdata(); // TODO This is for wrong theme loop
41
+ do_action( 'kcseo_footer' );
42
+
43
+ echo "\n<!-- / ", $this->head_product_name(), ". -->\n\n";
44
+
45
+ if ( ! empty( $old_wp_query ) ) {
46
+ $GLOBALS['wp_query'] = $old_wp_query;
47
+ unset( $old_wp_query );
48
+ }
49
+
50
+ return;
51
+ }
52
+
53
+ function load_schema() {
54
+ global $KcSeoWPSchema;
55
+ $schemaModel = new KcSeoSchemaModel;
56
+ $html = null;
57
+ $settings = get_option( $KcSeoWPSchema->options['settings'] );
58
+ if ( empty( $settings['disable_site_schema'] ) ) {
59
+ if ( is_home() || is_front_page() ) {
60
+ $metaData = array();
61
+
62
+ $metaData["@context"] = "http://schema.org/";
63
+ $metaData["@type"] = "WebSite";
64
+ $author_url = ( ! empty( $settings['siteurl'] ) ? $settings['siteurl'] : get_home_url() );
65
+
66
+ if ( ! empty( $settings['homeonly'] ) && $settings['homeonly'] ) {
67
+ $metaData["url"] = $author_url;
68
+ $metaData["potentialAction"] = array(
69
+ "@type" => "SearchAction",
70
+ "target" => trailingslashit( get_home_url() ) . "?s={query}",
71
+ "query-input" => "required name=query"
72
+ );
73
+ $html .= $schemaModel->get_jsonEncode( $metaData );
74
+ } else {
75
+ $metaData["url"] = $KcSeoWPSchema->sanitizeOutPut( $author_url, 'url' );
76
+ $metaData["name"] = ! empty( $settings['sitename'] ) ? $KcSeoWPSchema->sanitizeOutPut( $settings['sitename'] ) : null;
77
+ $metaData["alternateName"] = ! empty( $settings['siteaname'] ) ? $KcSeoWPSchema->sanitizeOutPut( $settings['siteaname'] ) : null;
78
+ $html .= $schemaModel->get_jsonEncode( $metaData );
79
+ }
80
+ }
81
+ }
82
+ $webMeta = array();
83
+ $webMeta["@context"] = "http://schema.org";
84
+ $siteType = ! empty( $settings['site_type'] ) ? $KcSeoWPSchema->sanitizeOutPut( $settings['site_type'] ) : null;
85
+ $webMeta["@type"] = $siteType;
86
+ if ( $siteType != "Organization" ) {
87
+ if ( ! empty( $settings['site_image'] ) && $imgID = absint( $settings['site_image'] ) ) {
88
+ $image_url = wp_get_attachment_url( $imgID, 'full' );
89
+ $webMeta["image"] = $KcSeoWPSchema->sanitizeOutPut( $image_url, 'url' );
90
+ } else {
91
+ $webMeta["image"] = null;
92
+ }
93
+ $webMeta["priceRange"] = ! empty( $settings['site_price_range'] ) ? $KcSeoWPSchema->sanitizeOutPut( $settings['site_price_range'] ) : null;
94
+ $webMeta["telephone"] = ! empty( $settings['site_telephone'] ) ? $KcSeoWPSchema->sanitizeOutPut( $settings['site_telephone'] ) : null;
95
+ }
96
+
97
+ if ( ! empty( $settings['additionalType'] ) ) {
98
+ $aType = explode( "\r\n", $settings['additionalType'] );
99
+ if ( ! empty( $aType ) && is_array( $aType ) ) {
100
+ if ( count( $aType ) == 1 ) {
101
+ $webMeta["additionalType"] = $aType[0];
102
+ } else if ( count( $aType ) > 1 ) {
103
+ $webMeta["additionalType"] = $aType;
104
+ }
105
+ }
106
+ }
107
+
108
+ if ( $siteType == 'Person' ) {
109
+ $webMeta["name"] = ! empty( $settings['person']['name'] ) ? $KcSeoWPSchema->sanitizeOutPut( $settings['person']['name'] ) : null;
110
+ $webMeta["worksFor"] = ! empty( $settings['person']['worksFor'] ) ? $KcSeoWPSchema->sanitizeOutPut( $settings['person']['worksFor'] ) : null;
111
+ $webMeta["jobTitle"] = ! empty( $settings['person']['jobTitle'] ) ? $KcSeoWPSchema->sanitizeOutPut( $settings['person']['jobTitle'] ) : null;
112
+ $webMeta["image"] = ! empty( $settings['person']['image'] ) ? $KcSeoWPSchema->sanitizeOutPut( $settings['person']['image'], 'url' ) : null;
113
+ $webMeta["description"] = ! empty( $settings['person']['description'] ) ? $KcSeoWPSchema->sanitizeOutPut( $settings['person']['description'], 'textarea' ) : null;
114
+ $webMeta["birthDate"] = ! empty( $settings['person']['birthDate'] ) ? $KcSeoWPSchema->sanitizeOutPut( $settings['person']['birthDate'] ) : null;
115
+ } else {
116
+ $webMeta["name"] = ! empty( $settings['type_name'] ) ? $KcSeoWPSchema->sanitizeOutPut( $settings['type_name'] ) : null;
117
+ if ( ! empty( $settings['organization_logo'] ) && $imgID = absint( $settings['organization_logo'] ) ) {
118
+ $image_url = wp_get_attachment_url( $imgID, 'full' );
119
+ $webMeta["logo"] = $KcSeoWPSchema->sanitizeOutPut( $image_url, 'url' );
120
+ } else {
121
+ $webMeta["logo"] = null;
122
+ }
123
+ }
124
+ if ( $siteType != "Organization" && $siteType != "Person" ) {
125
+ $webMeta["description"] = ! empty( $settings['business_info']['description'] ) ? $KcSeoWPSchema->sanitizeOutPut( $settings['business_info']['description'], 'textarea' ) : null;
126
+ if ( ! empty( $settings['business_info']['openingHours'] ) ) {
127
+ $aOhour = explode( "\r\n", $settings['business_info']['openingHours'] );
128
+ if ( ! empty( $aOhour ) && is_array( $aOhour ) ) {
129
+ if ( count( $aOhour ) == 1 ) {
130
+ $webMeta["openingHours"] = $aOhour[0];
131
+ } else if ( count( $aOhour ) > 1 ) {
132
+ $webMeta["openingHours"] = $aOhour;
133
+ }
134
+ }
135
+ }
136
+ $webMeta["geo"] = array(
137
+ "@type" => "GeoCoordinates",
138
+ "latitude" => ! empty( $settings['business_info']['latitude'] ) ? $KcSeoWPSchema->sanitizeOutPut( $settings['business_info']['latitude'] ) : null,
139
+ "longitude" => ! empty( $settings['business_info']['longitude'] ) ? $KcSeoWPSchema->sanitizeOutPut( $settings['business_info']['longitude'] ) : null,
140
+ );
141
+ }
142
+
143
+ if ( in_array( $siteType, array(
144
+ 'FoodEstablishment',
145
+ 'Bakery',
146
+ 'BarOrPub',
147
+ 'Brewery',
148
+ 'CafeOrCoffeeShop',
149
+ 'FastFoodRestaurant',
150
+ 'IceCreamShop',
151
+ 'Restaurant',
152
+ 'Winery'
153
+ ) ) ) {
154
+ $webMeta["servesCuisine"] = ! empty( $settings['restaurant']['servesCuisine'] ) ? $KcSeoWPSchema->sanitizeOutPut( $settings['restaurant']['servesCuisine'], 'textarea' ) : null;
155
+ }
156
+
157
+ $webMeta["url"] = ! empty( $settings['web_url'] ) ? $KcSeoWPSchema->sanitizeOutPut( $settings['web_url'], 'url' ) : $KcSeoWPSchema->sanitizeOutPut( get_home_url(), 'url' );
158
+ if ( ! empty( $settings['social'] ) && is_array( $settings['social'] ) ) {
159
+ $link = array();
160
+ foreach ( $settings['social'] as $socialD ) {
161
+ if ( $socialD['link'] ) {
162
+ $link[] = $socialD['link'];
163
+ }
164
+ }
165
+ if ( ! empty( $link ) ) {
166
+ $webMeta["sameAs"] = $link;
167
+ }
168
+ }
169
+
170
+ $webMeta["contactPoint"] = array(
171
+ "@type" => "ContactPoint",
172
+ "telephone" => ! empty( $settings['contact']['telephone'] ) ? $KcSeoWPSchema->sanitizeOutPut( $settings['contact']['telephone'] ) : ( ! empty( $settings['site_telephone'] ) ? $KcSeoWPSchema->sanitizeOutPut( $settings['site_telephone'] ) : null ),
173
+ "contactType" => ! empty( $settings['contact']['contactType'] ) ? $KcSeoWPSchema->sanitizeOutPut( $settings['contact']['contactType'] ) : '',
174
+ "email" => ! empty( $settings['contact']['email'] ) ? $KcSeoWPSchema->sanitizeOutPut( $settings['contact']['email'] ) : '',
175
+ "contactOption" => ! empty( $settings['contact']['contactOption'] ) ? $KcSeoWPSchema->sanitizeOutPut( $settings['contact']['contactOption'] ) : '',
176
+ "areaServed" => ! empty( $settings['area_served'] ) ? $settings['area_served'] : '',
177
+ "availableLanguage" => ! empty( $settings['availableLanguage'] ) ? $settings['availableLanguage'] : null
178
+ );
179
+ $webMeta["address"] = array(
180
+ "@type" => "PostalAddress",
181
+ "addressCountry" => ! empty( $settings['address']['country'] ) ? $KcSeoWPSchema->sanitizeOutPut( $settings['address']['country'] ) : null,
182
+ "addressLocality" => ! empty( $settings['address']['locality'] ) ? $KcSeoWPSchema->sanitizeOutPut( $settings['address']['locality'] ) : null,
183
+ "addressRegion" => ! empty( $settings['address']['region'] ) ? $KcSeoWPSchema->sanitizeOutPut( $settings['address']['region'] ) : null,
184
+ "postalCode" => ! empty( $settings['address']['postalcode'] ) ? $KcSeoWPSchema->sanitizeOutPut( $settings['address']['postalcode'] ) : null,
185
+ "streetAddress" => ! empty( $settings['address']['street'] ) ? $KcSeoWPSchema->sanitizeOutPut( $settings['address']['street'] ) : null
186
+ );
187
+
188
+ $main_settings = get_option( $KcSeoWPSchema->options['main_settings'] );
189
+ $site_schema = ! empty( $main_settings['site_schema'] ) ? $main_settings['site_schema'] : 'home_page';
190
+ if ( $site_schema !== 'off' ) {
191
+ if ( $webMeta["@type"] ) {
192
+ if ( $site_schema == 'home_page' ) {
193
+ if ( is_home() || is_front_page() ) {
194
+ $html .= $schemaModel->get_jsonEncode( $webMeta );
195
+ }
196
+ } elseif ( $site_schema == 'all' ) {
197
+ $html .= $schemaModel->get_jsonEncode( $webMeta );
198
+ }
199
+ }
200
+ }
201
+
202
+ if ( is_single() || is_page() ) {
203
+ $post = get_queried_object();
204
+ foreach ( KcSeoOptions::getSchemaTypes() as $schemaID => $schema ) {
205
+ $schemaMetaId = $KcSeoWPSchema->KcSeoPrefix . $schemaID;
206
+ $metaData = get_post_meta( $post->ID, $schemaMetaId, true );
207
+ $metaData = ( is_array( $metaData ) ? $metaData : array() );
208
+ if ( ! empty( $metaData ) && ! empty( $metaData['active'] ) ) {
209
+ $html .= $schemaModel->schemaOutput( $schemaID, $metaData );
210
+ }
211
+ }
212
+ }
213
+ echo $html;
214
+ }
215
+ }
216
  endif;
lib/functions/KcSeoOptions.php CHANGED
@@ -41,14 +41,14 @@ class KcSeoOptions
41
  'type' => 'text',
42
  'class' => 'kcseo-date',
43
  'required' => true,
44
- 'desc' => __('Like this: 2015-12-25', "wp-seo-structured-data-schema")
45
  ),
46
  'dateModified' => array(
47
  'title' => __('Modified date', "wp-seo-structured-data-schema"),
48
  'type' => 'text',
49
  'class' => 'kcseo-date',
50
  'required' => true,
51
- 'desc' => __('Like this: 2015-12-25', "wp-seo-structured-data-schema")
52
  ),
53
  'publisher' => array(
54
  'title' => __('Publisher', "wp-seo-structured-data-schema"),
@@ -114,14 +114,14 @@ class KcSeoOptions
114
  'title' => __('Published date', "wp-seo-structured-data-schema"),
115
  'type' => 'text',
116
  'class' => 'kcseo-date',
117
- 'desc' => __('Like this: 2015-12-25', "wp-seo-structured-data-schema"),
118
  'required' => true
119
  ),
120
  'dateModified' => array(
121
  'title' => __('Modified date', "wp-seo-structured-data-schema"),
122
  'type' => 'text',
123
  'class' => 'kcseo-date',
124
- 'desc' => __('Like this: 2015-12-25', "wp-seo-structured-data-schema"),
125
  'required' => true
126
  ),
127
  'publisher' => array(
@@ -183,7 +183,7 @@ class KcSeoOptions
183
  'title' => __('Published date', "wp-seo-structured-data-schema"),
184
  'type' => 'text',
185
  'class' => 'kcseo-date',
186
- 'desc' => __('Like this: 2015-12-25', "wp-seo-structured-data-schema"),
187
  'required' => true
188
  ),
189
  'dateModified' => array(
@@ -191,7 +191,7 @@ class KcSeoOptions
191
  'type' => 'text',
192
  'class' => 'kcseo-date',
193
  'required' => true,
194
- 'desc' => __('Like this: 2015-12-25', "wp-seo-structured-data-schema")
195
  ),
196
  'publisher' => array(
197
  'title' => __('Publisher', "wp-seo-structured-data-schema"),
@@ -247,14 +247,14 @@ class KcSeoOptions
247
  'type' => 'text',
248
  'class' => 'kcseo-date',
249
  'required' => true,
250
- 'desc' => __("Event start date", "wp-seo-structured-data-schema")
251
  ),
252
  'endDate' => array(
253
  'title' => __('End date', "wp-seo-structured-data-schema"),
254
  'type' => 'text',
255
  'recommended' => true,
256
  'class' => 'kcseo-date',
257
- 'desc' => __("Event end date", "wp-seo-structured-data-schema")
258
  ),
259
  'description' => array(
260
  'title' => __('Description', "wp-seo-structured-data-schema"),
@@ -418,7 +418,7 @@ class KcSeoOptions
418
  'type' => 'text',
419
  'recommended' => true,
420
  'class' => 'kcseo-date',
421
- 'desc' => __("The date (in ISO 8601 date format) after which the price will no longer be available.", "wp-seo-structured-data-schema")
422
  ),
423
  'priceCurrency' => array(
424
  'title' => __('Price currency', "wp-seo-structured-data-schema"),
@@ -518,7 +518,7 @@ class KcSeoOptions
518
  'title' => __('Expires', "wp-seo-structured-data-schema"),
519
  'type' => 'text',
520
  'class' => 'kcseo-date',
521
- 'desc' => __("Like this: 2015-12-25", "wp-seo-structured-data-schema")
522
  ),
523
  )
524
  ),
@@ -635,7 +635,7 @@ class KcSeoOptions
635
  'title' => __('Date of Published', "wp-seo-structured-data-schema"),
636
  'type' => 'text',
637
  'class' => 'kcseo-date',
638
- 'desc' => __("Like this: 2015-12-25", "wp-seo-structured-data-schema")
639
  ),
640
  'ratingValue' => array(
641
  'title' => __('Rating value', "wp-seo-structured-data-schema"),
@@ -1323,38 +1323,126 @@ class KcSeoOptions
1323
 
1324
  static function getContactTypes() {
1325
  $contact_types = array(
1326
- "Customer Service",
1327
- "Technical Support",
1328
- "Billing Support",
1329
- "Bill Payment",
1330
- "Sales",
1331
- "Reservations",
1332
- "Credit Card Support",
1333
- "Emergency",
1334
- "Baggage Tracking",
1335
- "Roadside Assistance",
1336
- "Package Tracking"
 
1337
  );
1338
 
1339
  return apply_filters('kcseo_contact_types', $contact_types);
1340
  }
1341
 
1342
  static function getLanguageList() {
1343
- $language_list = array(
1344
- 'facebook' => __('Facebook'),
1345
- 'twitter' => __('Twitter'),
1346
- 'google-plus' => __('Google+'),
1347
- 'instagram' => __('Instagram'),
1348
- 'youtube' => __('Youtube'),
1349
- 'linkedin' => __('LinkedIn'),
1350
- 'myspace' => __('Myspace'),
1351
- 'pinterest' => __('Pinterest'),
1352
- 'soundcloud' => __('SoundCloud'),
1353
- 'tumblr' => __('Tumblr'),
1354
- 'wikidata' => __('Wikidata'),
1355
- );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1356
 
1357
- return apply_filters('kcseo_language_list', $language_list);
1358
  }
1359
 
1360
  static function getSocialList() {
41
  'type' => 'text',
42
  'class' => 'kcseo-date',
43
  'required' => true,
44
+ 'desc' => __('Like this: 2015-12-25 4:00 PM', "wp-seo-structured-data-schema")
45
  ),
46
  'dateModified' => array(
47
  'title' => __('Modified date', "wp-seo-structured-data-schema"),
48
  'type' => 'text',
49
  'class' => 'kcseo-date',
50
  'required' => true,
51
+ 'desc' => __('Like this: 2015-12-25 4:00 PM', "wp-seo-structured-data-schema")
52
  ),
53
  'publisher' => array(
54
  'title' => __('Publisher', "wp-seo-structured-data-schema"),
114
  'title' => __('Published date', "wp-seo-structured-data-schema"),
115
  'type' => 'text',
116
  'class' => 'kcseo-date',
117
+ 'desc' => __('Like this: 2015-12-25 4:00 PM', "wp-seo-structured-data-schema"),
118
  'required' => true
119
  ),
120
  'dateModified' => array(
121
  'title' => __('Modified date', "wp-seo-structured-data-schema"),
122
  'type' => 'text',
123
  'class' => 'kcseo-date',
124
+ 'desc' => __('Like this: 2015-12-25 4:00 PM', "wp-seo-structured-data-schema"),
125
  'required' => true
126
  ),
127
  'publisher' => array(
183
  'title' => __('Published date', "wp-seo-structured-data-schema"),
184
  'type' => 'text',
185
  'class' => 'kcseo-date',
186
+ 'desc' => __('Like this: 2015-12-25 4:00 PM', "wp-seo-structured-data-schema"),
187
  'required' => true
188
  ),
189
  'dateModified' => array(
191
  'type' => 'text',
192
  'class' => 'kcseo-date',
193
  'required' => true,
194
+ 'desc' => __('Like this: 2015-12-25 4:00 PM', "wp-seo-structured-data-schema")
195
  ),
196
  'publisher' => array(
197
  'title' => __('Publisher', "wp-seo-structured-data-schema"),
247
  'type' => 'text',
248
  'class' => 'kcseo-date',
249
  'required' => true,
250
+ 'desc' => __("Event start date Like : 2017-10-16 4:00 AM", "wp-seo-structured-data-schema")
251
  ),
252
  'endDate' => array(
253
  'title' => __('End date', "wp-seo-structured-data-schema"),
254
  'type' => 'text',
255
  'recommended' => true,
256
  'class' => 'kcseo-date',
257
+ 'desc' => __("Event end date Like : 2017-10-16 4:00 AM", "wp-seo-structured-data-schema")
258
  ),
259
  'description' => array(
260
  'title' => __('Description', "wp-seo-structured-data-schema"),
418
  'type' => 'text',
419
  'recommended' => true,
420
  'class' => 'kcseo-date',
421
+ 'desc' => __("The date (in ISO 8601 date and time format) after which the price will no longer be available.", "wp-seo-structured-data-schema")
422
  ),
423
  'priceCurrency' => array(
424
  'title' => __('Price currency', "wp-seo-structured-data-schema"),
518
  'title' => __('Expires', "wp-seo-structured-data-schema"),
519
  'type' => 'text',
520
  'class' => 'kcseo-date',
521
+ 'desc' => __("Like this: 2015-12-25 4:00 PM", "wp-seo-structured-data-schema")
522
  ),
523
  )
524
  ),
635
  'title' => __('Date of Published', "wp-seo-structured-data-schema"),
636
  'type' => 'text',
637
  'class' => 'kcseo-date',
638
+ 'desc' => __("Like this: 2015-12-25 4:00 PM", "wp-seo-structured-data-schema")
639
  ),
640
  'ratingValue' => array(
641
  'title' => __('Rating value', "wp-seo-structured-data-schema"),
1323
 
1324
  static function getContactTypes() {
1325
  $contact_types = array(
1326
+ "customer service",
1327
+ "customer support",
1328
+ "technical support",
1329
+ "billing support",
1330
+ "bill payment",
1331
+ "sales",
1332
+ "reservations",
1333
+ "credit card support",
1334
+ "emergency",
1335
+ "baggage tracking",
1336
+ "roadside assistance",
1337
+ "package tracking"
1338
  );
1339
 
1340
  return apply_filters('kcseo_contact_types', $contact_types);
1341
  }
1342
 
1343
  static function getLanguageList() {
1344
+ $language_list = array(
1345
+ "Akan",
1346
+ "Amharic",
1347
+ "Arabic",
1348
+ "Assamese",
1349
+ "Awadhi",
1350
+ "Azerbaijani",
1351
+ "Balochi",
1352
+ "Belarusian",
1353
+ "Bengali",
1354
+ "Bhojpuri",
1355
+ "Burmese",
1356
+ "Cantonese",
1357
+ "Cebuano",
1358
+ "Chewa",
1359
+ "Chhattisgarhi",
1360
+ "Chittagonian",
1361
+ "Czech",
1362
+ "Deccan",
1363
+ "Dhundhari",
1364
+ "Dutch",
1365
+ "English",
1366
+ "French",
1367
+ "Fula",
1368
+ "Gan",
1369
+ "German",
1370
+ "Greek",
1371
+ "Gujarati",
1372
+ "Haitian Creole",
1373
+ "Hakka",
1374
+ "Haryanvi",
1375
+ "Hausa",
1376
+ "Hiligaynon",
1377
+ "Hindi / Urdu",
1378
+ "Hmong",
1379
+ "Hungarian",
1380
+ "Igbo",
1381
+ "Ilokano",
1382
+ "Italian",
1383
+ "Japanese",
1384
+ "Javanese",
1385
+ "Jin",
1386
+ "Kannada",
1387
+ "Kazakh",
1388
+ "Khmer",
1389
+ "Kinyarwanda",
1390
+ "Kirundi",
1391
+ "Konkani",
1392
+ "Korean",
1393
+ "Kurdish",
1394
+ "Madurese",
1395
+ "Magahi",
1396
+ "Maithili",
1397
+ "Malagasy",
1398
+ "Malay/Indonesian",
1399
+ "Malayalam",
1400
+ "Mandarin",
1401
+ "Marathi",
1402
+ "Marwari",
1403
+ "Min Bei",
1404
+ "Min Dong",
1405
+ "Min Nan",
1406
+ "Mossi",
1407
+ "Nepali",
1408
+ "Oriya",
1409
+ "Oromo",
1410
+ "Pashto",
1411
+ "Persian",
1412
+ "Polish",
1413
+ "Portuguese",
1414
+ "Punjabi",
1415
+ "Quechua",
1416
+ "Romanian",
1417
+ "Russian",
1418
+ "Saraiki",
1419
+ "Serbo-Croatian",
1420
+ "Shona",
1421
+ "Sindhi",
1422
+ "Sinhalese",
1423
+ "Somali",
1424
+ "Spanish",
1425
+ "Sundanese",
1426
+ "Swahili",
1427
+ "Swedish",
1428
+ "Sylheti",
1429
+ "Tagalog",
1430
+ "Tamil",
1431
+ "Telugu",
1432
+ "Thai",
1433
+ "Turkish",
1434
+ "Ukrainian",
1435
+ "Uyghur",
1436
+ "Uzbek",
1437
+ "Vietnamese",
1438
+ "Wu",
1439
+ "Xhosa",
1440
+ "Xiang",
1441
+ "Yoruba",
1442
+ "Zulu",
1443
+ );
1444
 
1445
+ return apply_filters('kcseo_language_list', $language_list);
1446
  }
1447
 
1448
  static function getSocialList() {
lib/views/schema-options.php CHANGED
@@ -487,9 +487,9 @@ $schemaModel = new KcSeoSchemaModel;
487
  style="width: 50%">
488
  <?php
489
  $areaServed = !empty($settings['area_served']) ? $settings['area_served'] : array();
490
- foreach (KcSeoOptions::getCountryList() as $country) {
491
- $slt = (in_array($country, $areaServed) ? "selected" : null);
492
- echo "<option value='$country' $slt>$country</option>";
493
  }
494
  ?>
495
  </select>
487
  style="width: 50%">
488
  <?php
489
  $areaServed = !empty($settings['area_served']) ? $settings['area_served'] : array();
490
+ foreach (KcSeoOptions::getCountryList() as $countryId => $country) {
491
+ $slt = (in_array($countryId, $areaServed) ? "selected" : null);
492
+ echo "<option value='$countryId' $slt>$country</option>";
493
  }
494
  ?>
495
  </select>
wp-seo-structured-data-schema.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: WP SEO Structured Data Schema
4
  * Plugin URI: https://wpsemplugins.com/
5
  * Description: Comprehensive JSON-LD based Structured Data solution for WordPress for adding schema for organizations, businesses, blog posts, ratings & more.
6
- * Version: 2.5.7
7
  * Author: WPSEMPlugins
8
  * Author URI: https://wpsemplugins.com/
9
  * Text Domain: wp-seo-structured-data-schema
@@ -11,50 +11,52 @@
11
  * License: GPLv3
12
  * License URI: http://www.gnu.org/licenses/gpl-3.0.html
13
  */
14
- if (!defined('ABSPATH')) {
15
- exit;
 
 
 
 
 
 
 
 
 
16
  }
17
- if (!defined('JSON_UNESCAPED_SLASHES'))
18
- define('JSON_UNESCAPED_SLASHES', 64);
19
- if (!defined('JSON_PRETTY_PRINT'))
20
- define('JSON_PRETTY_PRINT', 128);
21
- if (!defined('JSON_UNESCAPED_UNICODE'))
22
- define('JSON_UNESCAPED_UNICODE', 256);
23
 
24
 
25
- $plugin_data = get_file_data(__FILE__, array('Version' => 'Version'), false);
26
- define('KCSEO_WP_SCHEMA_VERSION', $plugin_data['Version']);
27
- define('KCSEO_WP_SCHEMA_SLUG', 'wp-seo-structured-data-schema');
28
- define('KCSEO_WP_SCHEMA_PATH', dirname(__FILE__));
29
- define('KCSEO_WP_SCHEMA_PLUGIN_ACTIVE_FILE_NAME', plugin_basename(__FILE__));
30
- define('KCSEO_WP_SCHEMA_URL', plugins_url('', __FILE__));
31
- define('KCSEO_WP_SCHEMA_LANGUAGE_PATH', dirname(plugin_basename(__FILE__)) . '/languages');
32
 
33
- require('lib/init.php');
34
- register_uninstall_hook(__FILE__, 'KCSEO_uninstall');
35
 
36
- function KCSEO_uninstall()
37
- {
38
- global $KcSeoWPSchema;
39
- $settings = get_option($KcSeoWPSchema->options['main_settings']);
40
- if (!empty($settings['delete-data'])) {
41
- $schemaFields = KcSeoOptions::getSchemaTypes();
42
 
43
- $args = array(
44
- 'post_type' => array('page', 'post'),
45
- 'posts_per_page' => '-1'
46
- );
47
- $pages = new WP_Query ($args);
48
- if ($pages->have_posts()) {
49
 
50
- while ($pages->have_posts()) {
51
- $pages->the_post();
52
- foreach ($schemaFields as $schemaID => $schema) {
53
- delete_post_meta(get_the_ID(), '_schema_' . $schemaID);
54
- }
55
- }
56
- wp_reset_postdata();
57
- }
58
- }
59
 
60
  }
3
  * Plugin Name: WP SEO Structured Data Schema
4
  * Plugin URI: https://wpsemplugins.com/
5
  * Description: Comprehensive JSON-LD based Structured Data solution for WordPress for adding schema for organizations, businesses, blog posts, ratings & more.
6
+ * Version: 2.5.8
7
  * Author: WPSEMPlugins
8
  * Author URI: https://wpsemplugins.com/
9
  * Text Domain: wp-seo-structured-data-schema
11
  * License: GPLv3
12
  * License URI: http://www.gnu.org/licenses/gpl-3.0.html
13
  */
14
+ if ( ! defined( 'ABSPATH' ) ) {
15
+ exit;
16
+ }
17
+ if ( ! defined( 'JSON_UNESCAPED_SLASHES' ) ) {
18
+ define( 'JSON_UNESCAPED_SLASHES', 64 );
19
+ }
20
+ if ( ! defined( 'JSON_PRETTY_PRINT' ) ) {
21
+ define( 'JSON_PRETTY_PRINT', 128 );
22
+ }
23
+ if ( ! defined( 'JSON_UNESCAPED_UNICODE' ) ) {
24
+ define( 'JSON_UNESCAPED_UNICODE', 256 );
25
  }
 
 
 
 
 
 
26
 
27
 
28
+ $plugin_data = get_file_data( __FILE__, array( 'Version' => 'Version' ), false );
29
+ define( 'KCSEO_WP_SCHEMA_VERSION', $plugin_data['Version'] );
30
+ define( 'KCSEO_WP_SCHEMA_SLUG', 'wp-seo-structured-data-schema' );
31
+ define( 'KCSEO_WP_SCHEMA_PATH', dirname( __FILE__ ) );
32
+ define( 'KCSEO_WP_SCHEMA_PLUGIN_ACTIVE_FILE_NAME', plugin_basename( __FILE__ ) );
33
+ define( 'KCSEO_WP_SCHEMA_URL', plugins_url( '', __FILE__ ) );
34
+ define( 'KCSEO_WP_SCHEMA_LANGUAGE_PATH', dirname( plugin_basename( __FILE__ ) ) . '/languages' );
35
 
36
+ require( 'lib/init.php' );
37
+ register_uninstall_hook( __FILE__, 'KCSEO_uninstall' );
38
 
39
+ function KCSEO_uninstall() {
40
+ global $KcSeoWPSchema;
41
+ $settings = get_option( $KcSeoWPSchema->options['main_settings'] );
42
+ if ( ! empty( $settings['delete-data'] ) ) {
43
+ $schemaFields = KcSeoOptions::getSchemaTypes();
 
44
 
45
+ $args = array(
46
+ 'post_type' => array( 'page', 'post' ),
47
+ 'posts_per_page' => '-1'
48
+ );
49
+ $pages = new WP_Query ( $args );
50
+ if ( $pages->have_posts() ) {
51
 
52
+ while ( $pages->have_posts() ) {
53
+ $pages->the_post();
54
+ foreach ( $schemaFields as $schemaID => $schema ) {
55
+ delete_post_meta( get_the_ID(), '_schema_' . $schemaID );
56
+ }
57
+ }
58
+ wp_reset_postdata();
59
+ }
60
+ }
61
 
62
  }