$ (document).ready (initDateTimePickers ()); $ (document).on ('snippet-reloaded', initDateTimePickers); $ (document).on ('blur', '.select-date', function () { $ (this).datetimepicker ('hide'); }); $ (document).on ('blur', '.select-datetime', function () { $ (this).datetimepicker ('hide'); }); var i = 1; function initDateTimePickers() { var $datepicker = $ ('.select-date'); var $datetimepicker = $ ('.select-datetime'); var $timepicker = $ ('.select-time'); $datepicker.each (function () { var $e = $ (this); if (!datePickerInitialized ($e)) { setDatepickerId ($e, 'datepicker-auto-id'); initDatePicker ($e); } }); $datetimepicker.each (function () { var init = $ (this).attr ('data-picker-init'); if (init) { return; } var $positionedParent = getPositionedParent ($ (this)); var id = setDatepickerId ($ (this), 'datetimepicker-auto-id'); $ (this).attr ('data-toggle', 'datetimepicker'); $ (this).attr ('data-target', '#' + id); $ (this).datetimepicker ({ sideBySide: true, stepping: 10, format: "DD. MM. YYYY HH:mm", widgetParent: $positionedParent, useCurrent: false, locale: window.locale || 'cs' }); $ (this).attr ('data-picker-init', true); }); $timepicker.each (function () { var init = $ (this).attr ('data-picker-init'); if (init) { return; } var id = setDatepickerId ($ (this), 'timepicker-auto-id'); var $positionedParent = getPositionedParent ($ (this)); $ (this).attr ('data-toggle', 'datetimepicker'); $ (this).attr ('data-target', '#' + id); $ (this).datetimepicker ({ sideBySide: true, stepping: 10, widgetParent: $positionedParent, format: "HH:mm", useCurrent: false, locale: window.locale || 'cs' }); $ (this).attr ('data-picker-init', true); }); } function getPositionedParent($e) { do { $e = $e.parent (); } while ($e.css ('position') !== 'relative'); return $e; } function datePickerInitialized($element) { var init = $element.attr ('data-picker-init'); return !!init; } function setDatepickerId($element, prefix, postfix) { if (typeof postfix === 'undefined') { postfix = 1; } var id = $element.attr ('id'); if (id === "" || typeof id === 'undefined') { id = prefix + '-' + postfix++; $element.attr ('id', id); } return id; } function initDatePicker($element) { var id = $element.attr ('id'); $element.attr ('data-toggle', 'datetimepicker'); $element.attr ('data-target', '#' + id); var $positionedParent = getPositionedParent ($element); $element.datetimepicker ({ format: "DD. MM. YYYY", useCurrent: false, widgetParent: $positionedParent, locale: window.locale || 'cs' }); $element.attr ('data-picker-init', true); }