var picker;
Date.prototype.getFromFormat = function (format) {
var yyyy = this.getFullYear().toString();
format = format.replace(/yyyy/g, yyyy)
var mm = (this.getMonth() + 1).toString();
format = format.replace(/mm/g, (mm[1] ? mm : "0" + mm[0]));
var dd = this.getDate().toString();
format = format.replace(/dd/g, (dd[1] ? dd : "0" + dd[0]));
var hh = this.getHours().toString();
format = format.replace(/hh/g, (hh[1] ? hh : "0" + hh[0]));
var ii = this.getMinutes().toString();
format = format.replace(/ii/g, (ii[1] ? ii : "0" + ii[0]));
var ss = this.getSeconds().toString();
format = format.replace(/ss/g, (ss[1] ? ss : "0" + ss[0]));
return format;
};
$.fn.cdisTraficRestrictions = function () {
// Create custom markup
this.each(function () {
var customerBox = $(this);
this._dateContainerContainer = ".traficRestrictionsDateContainer";
this._dateContainerItem = ".trdc-item";
this._dateContainerItemBtnBackWeek = '[data-cdis-bind="backweek"]';
this._dateContainerItemBtnNextWeek = '[data-cdis-bind="nextweek"]';
this._btnModalSetDate = '[data-cdis-bind="setDate"]';
this._inputDateTxt = '[data-cdis-bind="dateTxt"]';
this._inputUserDate = '[data-cdis-bind="userdate"]';
this._containerInterval = '[data-cdis-container="date"]';
this._modalCalendar = '.calendarModal';
this._selectKraj = 'select[name="kraj"]';
this._selectTrat = 'select[name="trat"]';
this._btnCalendar = '[data-is-bind="calendar"]';
this._modal = "#ctModalCalendar";
this._modalInputDate = 'input[name="datemodal"]';
this._modalBtn = '#ctModalCalendar [data-is-bind="done"]';
this._sLang = $(this).data('-lang');
if (this._sLang == undefined || !this._sLang || this._sLang == '') {
this._sLang = 'cs';
}
this._date = moment();
Init(this);
});
function Init(me) {
ShowFirst();
function ShowFirst(){
if ( $(me).find(me._dateContainerItem+'.in').length == 0 ){
$(me).find(me._dateContainerItem+':first-child').addClass('in');
}
}
$(me).on('click', me._btnCalendar, function (e) {
var modal = CreateModalCalendar();
modal.modal('show');
modal.find(me._modalInputDate).focus();
return false;
});
$(document).on('click', me._modalBtn, function (e) {
moment.locale('cs');
me._date = moment($(me._modalInputDate, me._modal).val(), "D.M.YYYY dd").locale('cs');
$(me._inputUserDate).val(me._date.format('DD.MM.YYYY'));
ShowAndHideRadio(me);
RefreshForm();
$(me._modal).modal('hide');
$(me._btnCalendar,me).focus();
});
function CreateModalCalendar() {
var modalReturn = $(document).find(me._modal);
modalReturn.remove();
var modal = '
';
modal += '
';
modal += ' ';
modal += '
';
modal += '
';
modal += '
';
modal += '
Datum omezení provozu
';
modal += '
';
modal += '
';
modal += '
';
modal += '
Dnes';
modal += '
Zítra';
modal += '
';
modal += '
';
modal += '
';
modal += '
';
modal += '
';
modal += '
';
modal += '
';
modal += '
';
modal += '
';
modal += '
';
modal += '
';
modal += '
';
$('body').append(modal);
modalReturn = $(me._modal);
var picker = $('.cd-datepicker', me._modal).datepicker(
{
language: 'cs',
orientation: 'bottom left',
autoclose: true,
todayHighlight: true
}
);
picker.datepicker("update", me._date.toDate()).trigger('changeDate');
$(me._modalInputDate, me._modal).val(me._date.locale('cs').format('D.M.YYYY dd'));
picker.on("changeDate", function (e) {
if ((e.date != undefined)) {
var m = moment(e.format('d.m.yyyy'), "D.M.YYYY").locale('cs');
$(me._modalInputDate, me._modal).val(m.format('D.M.YYYY dd'));
}
});
$(modalReturn).on(
'keydown',
me._modalInputDate,
function (e) {
var code = e.charCode || e.keyCode;
moment.locale('cs');
var n = moment($(this).val(), "D.M.YYYY dd");
switch (code) {
case 38: // up
n.add(1, 'days');
$(me._modalInputDate, modalReturn).val(n.format('D.M.YYYY dd')).change();
picker.datepicker("update", n.locale('cs').toDate()).trigger('changeDate');
break;
case 40: // down
n.add(-1, 'days');
$(me._modalInputDate, modalReturn).val(n.format('D.M.YYYY dd')).change();
picker.datepicker("update", n.locale('cs').toDate()).trigger('changeDate');
break;
}
});
$('[data-is-cat-links]', me._modal).on("click", function (e) {
e.preventDefault();
moment.locale('cs');
var m = moment();
switch ($(this).data('is-cat-links')) {
case "today":
break;
case "tomorrow":
m.add(1, 'days');
break;
default:
break;
}
SetDate(m);
return false;
});
function SetDate(m) {
$(me._modalInputDate, me._modal).val(m.format('D.M.YYYY dd')).change();
}
$(me._modal).on(
'change',
me._modalInputDate,
function (event) {
moment.locale('cs');
var n = moment($(this).val(), "D.M.YYYY dd").locale('cs').toDate();
picker.datepicker("update", n).trigger('changeDate');
});
return modalReturn;
}
$(document).on(
'click',
me._dateContainerItemBtnBackWeek,
function (event) {
event.preventDefault();
$(this).parents(this._dateContainerItem).removeClass('in')
.prev(this._dateContainerItem).addClass('in');
return false;
});
$(me).on('change', me._selectKraj, function (event) {
RefreshForm();
});
$(document).on('change', me._containerInterval + ' input[type="radio"]', function (event) {
var m = moment();
if ($(this).val() == 'tomorrow') {
m = m.add(1, 'days');
}
$(me._inputUserDate).val(m.format('DD.MM.YYYY'));
ShowAndHideRadio(me);
RefreshForm();
});
function RefreshForm() {
var $selectTrat = $(me._selectTrat, me);
$selectTrat.find('option').remove().end();
$.ajax({
url: '/jizdni-rad/omezeni-provozu/ajax_form.php',
dataType: "json",
method: "POST",
data: { 'kraj': $(me._selectKraj, me).val(), 'f_datum': $(me._inputUserDate, me).val() },
cache: false,
beforeSend: function () {
},
success: function (data) {
if (data.trate != undefined) {
$.each(data.trate, function (index, value) {
$selectTrat.append($("
")
.attr("value", index)
.text(value));
});
}
$selectTrat.refreshNiceSelect();
},
error: function (jqXHR, status, thrown) {
}
});
}
$(document).on(
'click',
me._dateContainerItemBtnNextWeek,
function (event) {
event.preventDefault();
$(this).parents(this._dateContainerItem).removeClass('in')
.next(this._dateContainerItem).addClass('in');
return false;
});
Init_dateContainerItem();
function Init_dateContainerItem(){
if ( $(me._dateContainerItem, me).length == 1 ){
$(me._dateContainerItem, me).addClass('in');
}
}
$(document).on(
'change',
me._inputDateTxt,
function (event) {
var n = moment($(this).val(), 'DD.MM.YYYY').toDate();
picker.datepicker("update", n).trigger('changeDate');
});
$(document)
.on(
'click',
me._btnModalSetDate,
function (event) {
event.preventDefault();
$(me._inputUserDate).val($(me._inputDateTxt).val());
ShowAndHideRadio(me);
RefreshForm();
$(me._modalCalendar).modal('hide');
return false;
});
$(document)
.on(
'click',
'[data-is-tr-links="today"]',
function (event) {
event.preventDefault();
alert('aa');
var n = moment().toDate();
picker.datepicker("update", n).trigger('changeDate');
$(me._inputUserDate).val(n.locale('cs').format('D.M.YYYY'));
return false;
});
ShowAndHideRadio(me);
}
function GetDate(dateString) {
// var dateString = "2010-08-09 01:02:03";
try {
var reggie = /(\d{2}).(\d{2}).(\d{4})/;
var dateArray = reggie.exec(dateString);
return new Date((+dateArray[3]), (+dateArray[2]) - 1, // Careful,
// month
// starts at
// 0!
(+dateArray[1]), 0, 0, 0, 0);
} catch (err) {
return new Date();
}
}
function ShowAndHideRadio(me) {
var today = new Date(); // today is Nov 28, 2010
today.setHours(0);
today.setMinutes(0);
today.setSeconds(0);
today.setMilliseconds(0);
var tomorrow = new Date(); // today is Nov 28, 2010
tomorrow.setHours(0);
tomorrow.setMinutes(0);
tomorrow.setSeconds(0);
tomorrow.setMilliseconds(0);
tomorrow.setHours(24);
var date = GetDate($(me._inputUserDate).val());
var _containerRadio = $(me._containerInterval + ' .radiobox').hide();
var _containerText = $(me._containerInterval + ' .textbox').hide().html('');
var _containerHiddenUserDate = $(me._containerInterval + ' [name="userdate"]').val('');
if (date.getTime() === today.getTime()) {
_containerRadio.show();
_containerRadio.find('[value="today"]').prop('checked', true);
} else if (date.getTime() === tomorrow.getTime()) {
_containerRadio.show();
_containerRadio.find('[value="tomorrow"]').prop('checked', true);
} else {
_containerText.html($(me._inputUserDate).val()).show();
}
}
}
$.fn.cdisMailing = function () {
// Create custom markup
this.each(function () {
this._inputValid = ".emailValid";
this._spanIcon = ".cd-icon-in.form-control-feedback";
this._spanError = '.cd-tooltip-stat.arrt';
this._submitBtn = '.captcha-button';
this._validateEmail = false;
Init(this);
});
function Init(me) {
// udalost nastaveni mailu, kontrola
$(me._inputValid, me).on("blur", function (event) {
me._validateEmail = true;
CheckEmail(me);
});
$(me._inputValid, me).on("keyup", function (event) {
if (me._validateEmail) {
CheckEmail(me);
}
});
}
// validace emailove adresy
function ValidateEmail(value) {
var re = /^[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$/;
return re.test(value);
}
// kontrola mailu a zobrazeni oranzove bubliny s chybou
function CheckEmail(me) {
var $oEmail = $(me._inputValid);
if ($oEmail.val().trim().length == 0 || !ValidateEmail($oEmail.val())) {
// chyba - povinny udaj || nevalidni mail
// oddelame ok ikonu
$oEmail.parent().find(".cd-icon-ok").remove();
// odstrani pripadnou starou chybu
$oEmail.parent().find(".cd-tooltip-stat").remove();
$oEmail.parent().find(".reset").remove();
// obarvime box cervene
$oEmail.removeClass("cd-input-def");
$oEmail.addClass("cd-input-danger");
// vlozi novou bublinu
var sErrHtml = "
Zadejte platnou e-mailovou adresu";
var sDivReset = "
";
// dame chybu do html
$oEmail.after(sErrHtml + sDivReset);
} else {
// v poradku
$oEmail.removeClass("cd-input-danger");
$oEmail.addClass("cd-input-def");
// pridame ok ikonu
var sIconOk = '
';
$oEmail.parent().find(".cd-icon-ok").remove();
$oEmail.after(sIconOk);
// odstranit chybu
$oEmail.parent().find(".cd-tooltip-stat").remove();
$oEmail.parent().find(".reset").remove();
return true;
}
return false;
}
}
$.fn.cdisPaginationSupport = function () {
// Create custom markup
this.each(function () {
this._pageBtn = ".bot-pagination .pag-n";
this._pageBtnNext = ".bot-pagination .pag.next";
this._pageBtnPrevious = ".bot-pagination .pag.back";
this._pageBtnClicker = ".bot-pagination .pag[data-is-tr-ps-gotopage]";
this._pageBoxItm = ".pages_container .page-itm";
Init(this);
});
function Init(me) {
// udalost nastaveni mailu, kontrola
$(me).on("click", me._pageBtnClicker, function (event) {
event.preventDefault();
ShowPageBox(parseInt($(this).data('is-tr-ps-gotopage')));
return false;
});
function ShowPageBox(page) {
$(me._pageBoxItm, me).addClass('hide');
$(me._pageBoxItm + '[data-is-tr-page="' + page + '"]', me).removeClass('hide');
$(me._pageBtn, me).removeClass('pag-active');
$(me._pageBtn + '[data-is-tr-ps-gotopage="' + page + '"]', me).addClass('pag-active');
$(me._pageBtnPrevious, me).attr('data-is-tr-ps-gotopage', (page - 1));
$(me._pageBtnNext, me).attr('data-is-tr-ps-gotopage', (page + 1));
$(me._pageBtnPrevious, me).data('is-tr-ps-gotopage', (page - 1));
$(me._pageBtnNext, me).data('is-tr-ps-gotopage', (page + 1));
$(me._pageBtnNext, me).addClass('hide');
$(me._pageBtnPrevious, me).addClass('hide');
if (!$(me._pageBtn + ':last', me).hasClass('pag-active')) {
$(me._pageBtnNext, me).removeClass('hide');
}
if (!$(me._pageBtn + ':first', me).hasClass('pag-active')) {
$(me._pageBtnPrevious, me).removeClass('hide');
}
$('html,body').animate({
scrollTop: $(me).offset().top
}, 1000);
}
}
}
$.fn.cdisAjaxForm = function () {
this.each(function () {
Init(this);
});
function Init(me) {
$(me).on('submit', function (e) {
var $modal = $(me).parents('.modal');
var $loader = $($modal.data('is-modalloader'));
$.ajax({
type: "POST",
url: $(me).attr('action'),
data: $(me).serialize(),
beforeSend: function () {
$modal.modal('hide');
$loader.modal('show');
},
success: function (data) {
if (data.status == 'OK') {
} else {
$modal.modal('show');
alert(data.message);
}
$loader.modal('hide');
}
});
e.preventDefault(); // avoid to execute the actual submit of the form.
});
}
}
$.fn.cdisAjaxTrainsBatch = function () {
this.each(function () {
this._itms = "[data-is-tn]";
this._url = "/jizdni-rad/omezeni-provozu/ajax_trains.php";
Init(this);
});
function Init(me) {
Load();
function Load(){
var trains = [];
$(me._itms,me).each(function(){
var tr = $(this).data('is-tn');
if(trains.indexOf(tr) == -1){
trains.push(tr);
}
});
$.ajax({
type: "GET",
url: me._url,
data: { 'trains' : trains.join(',') },
beforeSend: function () {
},
success: function (data) {
if( data.trains != undefined && data.trains.length > 0 ){
$.each(data.trains, function(i,itm){
$('[data-is-tn="'+itm.key+'"]',me).append( '
'+$.safeTags(itm.val)+'' );
});
}
}
});
}
}
}
function recaptchaCallback() {
$('.captcha-button').attr('disabled', false);
$('.captcha-button').addClass('cd-btn-green');
$('.captcha-button').removeClass('cd-btn-blue');
};
$(function () {
picker = $(".trdatepicker").datepicker(
{
language: 'cs',
orientation: 'bottom left',
autoclose: true,
todayHighlight: true,
startDate: '+0d'
}
);
$('form[data-is-tr-bind="ajax"]').on("submit", function (e) {
e.stopImmediatePropagation();
var _this = $(this);
$.ajax({
url: _this.data('is-tr-formurl'),
dataType: "json",
method: "post",
cache: false,
data: _this.serialize(),
beforeSend: function () {
},
success: function (data) {
if (data.status != 'ERROR') {
$(_this.data('is-tr-container')).html(data.datahtml);
}
},
error: function (jqXHR, status, thrown) {
}
});
return false;
});
$('form[data-is-tr-form="track"]').on("submit", function (e) {
e.preventDefault();
var f_datum = $('[name="f_datum"]', this).val();
var kraj = $('[name="kraj"]', this).val();
var trat = $('[name="trat"]', this).val();
var htmlpath = $('[name="htmlpath"]', this).val();
location.href = htmlpath + f_datum + "/" + kraj + "/" + trat + "/";
return false;
});
$('form[data-is-tr-form="train"]').on("submit", function (e) {
e.preventDefault();
var f_datum = $('[name="f_datum"]', this).val();
var op_train = $('[name="op_train"]', this).val();
var htmlpath = $('[name="htmlpath"]', this).val();
location.href = htmlpath + f_datum + "/" + op_train + "/";
return false;
});
picker.on("changeDate", function (e) {
if ((e.date != undefined)) {
$($(this).data('cdis-targettxt')).val(e.format('dd.mm.yyyy'));
}
});
$('.traficRestrictions').cdisTraficRestrictions();
$('.is-trains-batchs').cdisAjaxTrainsBatch();
$('.modemailing').cdisMailing();
$('.isAjaxForm').cdisAjaxForm();
$('[data-toggle="popover"]').popover({
title: 'Bar'
});
$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
$('.istabs').removeClass('in');
$($(this).data('is-tab')).addClass('in');
});
$('.is-tr-ps').cdisPaginationSupport();
});