1$(document) 2 .on('ready', function() { 3 fl_select_placeholder(); 4 }) 5 .on('mouseup', function(e) { 6 let div = $(".date-range-select"); 7 if (!div.is(e.target) 8 && div.has(e.target).length === 0) { 9 let calendar = div.find('form.date-range-body'); 10 if(calendar.hasClass('open')) { 11 calendar.removeClass('open'); 12 } 13 } 14 }) 15 .on('click', '.ev-calendar', function() { 16 if($(this).hasClass('cal-cell')) { 17 set_day($(this)); 18 } else { 19 set_month($(this), $(this).data('month')); 20 } 21 return false; 22 }) 23 .on('change', 'select[name="MONTH_SELECT"]', function() { 24 set_month($(this), $(this).val()); 25 return false; 26 }) 27 .on('change', 'select[name="YEAR_SELECT"]', function() { 28 set_year($(this)); 29 return false; 30 }) 31 .on('input', 'input[name="YEAR_SELECT_INP"]', function() { 32 set_year($(this)); 33 return false; 34 }) 35 .on('click', '.date-range-select .date-range-title', function(e) { 36 let calendar = $(this).nextAll('form.date-range-body'); 37 if(calendar.hasClass('open')) { 38 calendar.removeClass('open'); 39 } else { 40 calendar.addClass('open'); 41 42 $('input[name="DATE_FROM"], input[name="DATE_TO"]').inputmask({ 43 mask: "99.99.9999", 44 }); 45 46 if(calendar.find('.calendar_from').html() == '') { 47 tfrom = $('input[name="DATE_FROM"]').val(); 48 if(tfrom != '') { 49 arr = tfrom.split('.'); 50 calc_ajax($('.calendar_from'), arr[2], arr[1], arr[0]); 51 } else { 52 calc_ajax($('.calendar_from')); 53 } 54 } 55 } 56 }) 57 .on('click', '.date-range-form-input input', function() { 58 let calendar = $('.calendar-range-block > [data-input="'+$(this).prop('name')+'"]'); 59 let cal_second = false; 60 let inp_second = false; 61 62 if($(this).hasClass('active')) { 63 $(this).removeClass('active'); 64 } else { 65 $(this).addClass('active'); 66 } 67 if($(this).next().length) { 68 inp_second = $(this).next(); 69 } 70 if($(this).prev().length) { 71 inp_second = $(this).prev(); 72 } 73 inp_second.removeClass('active'); 74 75 if(calendar.next().length) { 76 cal_second = calendar.next(); 77 } 78 if(calendar.prev().length) { 79 cal_second = calendar.prev(); 80 } 81 if(calendar.hasClass('visible')) { 82 calendar.removeClass('visible'); 83 } else { 84 calendar.addClass('visible'); 85 } 86 cal_second.removeClass('visible'); 87 return false; 88 }) 89 .on('change', '.date-range-form-input input', function() { 90 if(!calendar_validate($(this)) && $(this).val() != '') { 91 $(this).addClass('incorrect'); 92 if(!$(this).closest('div').find('.error-date').length) { 93 $(this).closest('div').append('<div class="error-date">Ðе коÑÑекÑнÑй ÑоÑÐ¼Ð°Ñ Ð´Ð°ÑÑ</div>'); 94 } 95 } else { 96 $(this).removeClass('incorrect'); 97 if(!$(this).closest('div').find('input.incorrect').length && $(this).closest('div').find('.error-date').length) { 98 $(this).closest('div').find('.error-date').remove(); 99 } 100 if($(this).val() != '') { 101 $(this).prop('name'); // DATE_FROM 102 //let node = $('div[data-input='+$(this).prop('name')+'] input[name="DATE_SELECTED"]'); 103 let calendar = $('div[data-input='+$(this).prop('name')+']'); 104 let val = $(this).val(); 105 val = val.split('.'); 106 let tdate = new Date(val[2], (val[1] - 1), val[0]); 107 let dateItem = false; 108 let tname = false; 109 if(calendar.next().length) { 110 dateItem = calendar.next().find('input[name="DATE_SELECTED"]'); 111 } 112 if(calendar.prev().length) { 113 dateItem = calendar.prev().find('input[name="DATE_SELECTED"]'); 114 } 115 let tday1 = dateItem.data('day'); 116 if(tday1 < 10) { 117 tday1 = '0'+tday1; 118 } 119 let tmonth1 = dateItem.data('month'); 120 if(tmonth1 < 10) { 121 tmonth1 = '0'+tmonth1; 122 } 123 let year1 = dateItem.data('year'); 124 tname = dateItem.closest('div[class*="calendar_"]').data('input'); 125 if($('input[name="'+tname+'"]').val() == '') { 126 $('input[name="' + tname + '"]').val(tday1 + '.' + tmonth1 + '.' + year1); 127 } 128 calc_ajax (calendar, tdate.getFullYear(), (tdate.getMonth()+1), tdate.getDate()); 129
130 swap_calendar(); 131 } 132 }; 133 }); 134$(window) 135 .on('resize', function() { 136 fl_select_placeholder(); 137 }); 138 139function fl_select_placeholder() { 140 if($(this).width() <= 460 ) { 141 $('.news_years_select select').attr('data-placeholder', 'Ðод'); 142 if($('.news_years_select .jq-selectbox__select-text').html() == 'ÐÑбеÑиÑе год') { 143 $('.news_years_select .jq-selectbox__select-text').html('Ðод'); 144 } 145 $('.news_month_select select').attr('data-placeholder', 'ÐеÑÑÑ'); 146 if($('.news_month_select .jq-selectbox__select-text').html() == 'ÐÑбеÑиÑе меÑÑÑ') { 147 $('.news_month_select .jq-selectbox__select-text').html('ÐеÑÑÑ'); 148 } 149 } else { 150 $('.news_years_select select').attr('data-placeholder', 'ÐÑбеÑиÑе год'); 151 if($('.news_years_select .jq-selectbox__select-text').html() == 'Ðод') { 152 $('.news_years_select .jq-selectbox__select-text').html('ÐÑбеÑиÑе год'); 153 } 154 $('.news_month_select select').attr('data-placeholder', 'ÐÑбеÑиÑе меÑÑÑ'); 155 if($('.news_month_select .jq-selectbox__select-text').html() == 'ÐеÑÑÑ') { 156 $('.news_month_select .jq-selectbox__select-text').html('ÐÑбеÑиÑе меÑÑÑ'); 157 } 158 } 159} 160 161function set_year(node) { 162 let tyear = node.val(); 163 let tmonth = node.data('month'); 164 let tday = node.data('day'); 165 if(tyear.length > 3) { 166 let t_new_date = false; 167 let tmp_date = new Date(tyear, (tmonth - 1), tday); 168 let last_date = new Date(tyear, tmonth, 0); 169 if(last_date < tmp_date) { 170 t_new_date = last_date.getDate(); 171 }
172 set_day(node, t_new_date, false, tyear); 173 } 174} 175 176function set_month(node, month) { 177 let calendar = node.closest('div[class*="calendar_"]'); 178 let tyear = node.data('year'); 179 let tmonth = month; 180 let tday = node.data('day'); 181 let t_new_date = false; 182 let tmp_date = new Date(tyear, (tmonth - 1), tday); 183 let last_date = new Date(tyear, tmonth, 0); 184 if(last_date < tmp_date) { 185 t_new_date = last_date.getDate(); 186 } 187 set_day(node, t_new_date, tmonth); 188} 189 190function set_day(node, day=false, month=false, year=false) { 191 let calendar = node.closest('div[class*="calendar_"]'); 192 let tyear = year; 193 if(tyear === false) { 194 tyear = node.data('year'); 195 } 196 let tmonth = month; 197 if(tmonth === false) { 198 tmonth = node.data('month'); 199 } 200 let tday = day; 201 if(tday === false) { 202 tday = node.data('day'); 203 } 204 let tmp_date = new Date(tyear, (tmonth - 1), tday); 205 let now_date = new Date(); 206 if(tmp_date > now_date) { 207 tyear = now_date.getFullYear(); 208 tmonth = now_date.getMonth() + 1; 209 tday = now_date.getDate(); 210 } 211 let tmonth1 = tmonth; 212 let tday1 = tday; 213 if(tmonth1 < 10) 214 tmonth1 = '0'+tmonth1; 215 if(tday1 < 10) 216 tday1 = '0'+tday1; 217 $('input[name="'+calendar.data('input')+'"]').val(tday1+'.'+tmonth1+'.'+tyear); 218 219 // ÑÑÑановиÑÑ ÑоÑÐµÐ´Ñ ÑегоднÑÑнÑÑ Ð´Ð°ÑÑ ÐµÑли Ñам пÑÑÑо 220 let dateItem = null; 221 let input = calendar.data('input') ; 222 if(calendar.next().length) { 223 dateItem = calendar.next().find('.now').eq(-1).find('div'); 224 input = calendar.next(); 225 } 226 if(calendar.prev().length) { 227 dateItem = calendar.prev().find('.now').eq(0).find('div'); 228 input = calendar.prev(); 229 } 230 let tyear2 = dateItem.data('year'); 231 let tmonth2 = dateItem.data('month'); 232 let tday2 = dateItem.data('day'); 233 if(input.val() == '') { 234 if(tyear2 == null) { 235 tyear2 = input.find('.calendar-block').data('year'); 236 tmonth2 = input.find('.calendar-block').data('month'); 237 tday2 = input.find('.calendar-block').data('day'); 238 } 239 if (tmonth2 < 10) { 240 tmonth2 = '0' + tmonth2; 241 } 242 if (tday2 < 10) { 243 tday2 = '0' + tday2; 244 } 245 $('input[name="' + input.data('input') + '"]').val(tday2 + '.' + tmonth2 + '.' + tyear2); 246 } 247 if($('.error-date').length) { 248 $('.error-date').remove(); 249 } 250 if($('input[name="DATE_FROM"], input[name="DATE_TO"]').hasClass('incorrect')) { 251 $('input[name="DATE_FROM"], input[name="DATE_TO"]').removeClass('incorrect'); 252 } 253 calc_ajax (calendar, tyear, tmonth, tday); 254} 255 256function calc_ajax(calendar, tyear = false, tmonth = false, tday = false, single = false) { 257 let ajax_data = {}; 258 if(tyear) { 259 ajax_data['year'] = tyear; 260 } 261 if(tyear) { 262 ajax_data['month'] = tmonth; 263 } 264 if(tyear) { 265 ajax_data['day'] = tday; 266 } 267 ajax_data['tfrom'] = $('input[name="DATE_FROM"]').val(); 268 ajax_data['tto'] = $('input[name="DATE_TO"]').val(); 269 calc_ajax_call(calendar, ajax_data); 270 let other_data = {}; 271 let other_calendar = false; 272 if(calendar.next().length) { 273 other_calendar = calendar.next(); 274 if(ajax_data['tto'] === "") { 275 other_data['tfrom'] = ajax_data['tfrom']; 276 other_data['tto'] = ""; 277 } else { 278 other_data = ajax_data; 279 } 280 } 281 if(calendar.prev().length) { 282 other_calendar = calendar.prev(); 283 if(ajax_data['tfrom'] === "") { 284 other_data['tfrom'] = ""; 285 other_data['tto'] = ajax_data['tto']; 286 } else { 287 other_data = ajax_data; 288 } 289 } 290 other_data['year'] = other_calendar.find('[name="DATE_SELECTED"]').data('year'); 291 other_data['month'] = other_calendar.find('[name="DATE_SELECTED"]').data('month'); 292 other_data['day'] = other_calendar.find('[name="DATE_SELECTED"]').data('day'); 293 if ($('input[name="DATE_TO"]').val() && other_calendar.hasClass('calendar_to')) { 294 let arrTo = $('input[name="DATE_TO"]').val().split('.'); 295 other_data['year'] = arrTo[2]; 296 other_data['month'] = arrTo[1]; 297 other_data['day'] = arrTo[0]; 298 } 299 calc_ajax_call(other_calendar, other_data); 300
301 swap_calendar(); 302} 303 304function calc_ajax_call(item, data) { 305 item.addClass('waiting'); 306 $.ajax({ 307 url: '/local/ajax/calendar.php', 308 type: 'POST', 309 data: data, 310 }) 311 .done(function (html) { 312 item.html(html); 313 }) 314 .fail(function () { 315 console.log("calc_ajax error"); 316 }) 317 .always(function () { 318 item.find('select').each(function() { 319 select_style($(this)); 320 }); 321 item.removeClass('waiting'); 322 }); 323} 324 325function select_style(tsel) { 326 tsel.styler({ 327 onFormStyled: function () { 328 if(tsel.prop('name') == 'YEAR_SELECT') { 329 let inp = tsel.closest('.jqselect').next('.year-inp-box'); 330 tsel.closest('.jqselect').find('.jq-selectbox__dropdown').find('ul').append('<li>' + inp.html() + '</li>'); 331 inp.remove(); 332 } 333 tsel.closest('jqselect').addClass(tsel.prop('class')); 334 } 335 }); 336} 337 338function calendar_validate(node) { 339 if(node.val().match(/[0-9]{2}\.[0-9]{2}\.[0-9]{4}/) === null) { 340 return false; 341 } 342 return true; 343} 344
345function swap_calendar() { 346 let date_from = false; 347 let date_to = false; 348 let tmp_from = $('input[name="DATE_FROM"]').val(); 349 if(tmp_from != '') { 350 tmp_from = tmp_from.split('.'); 351 date_from = new Date(tmp_from[2], (tmp_from[1] - 1), tmp_from[0]); 352 } 353 let tmp_to = $('input[name="DATE_TO"]').val(); 354 if(tmp_to != '') { 355 tmp_to = tmp_to.split('.'); 356 date_to = new Date(tmp_to[2], (tmp_to[1] - 1), tmp_to[0]); 357 } 358 if(tmp_from && tmp_to && date_from > date_to) { 359 let inp = $('input[name="DATE_FROM"]').val(); 360 let ajax_data = {}; 361 $('input[name="DATE_FROM"]').val($('input[name="DATE_TO"]').val()); 362 $('input[name="DATE_TO"]').val(inp); 363 364 ajax_data['tfrom'] = $('input[name="DATE_FROM"]').val(); 365 ajax_data['tto'] = $('input[name="DATE_TO"]').val(); 366 ajax_data['day'] = tmp_to[0]; 367 ajax_data['month'] = tmp_to[1]; 368 ajax_data['year'] = tmp_to[2]; 369 calc_ajax_call($('.calendar-range-block > .calendar_from'), ajax_data); 370 371 ajax_data['day'] = tmp_from[0]; 372 ajax_data['month'] = tmp_from[1]; 373 ajax_data['year'] = tmp_from[2]; 374 calc_ajax_call($('.calendar-range-block > .calendar_to'), ajax_data); 375 } 376 377}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.