-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathafl-mdp.js
95 lines (79 loc) · 2.87 KB
/
afl-mdp.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
jQuery(function () {
var dateFormat = 'dd.mm.yy';
var lastFocused = $("#date1");
var calendar = $('#cal');
var calendar_validator = $('#datevalidator')
var inputs = $("#date1, #date2, #date3, #date4");
var input_dates = [];
var dates_time_array = [];
var dates_min = 0;
var dates_max = 0;
function isValid(input){
try{
calendar_validator.datepicker('setDate', input);
return input == $.datepicker.formatDate(dateFormat, calendar_validator.datepicker('getDate'));
} catch(e) {
return false;
}
};
inputs.change(function(event){
//Validate:
var targ = event.target;
if(!isValid(targ.value)){
$(targ).addClass('invalid');
} else {
$(targ).removeClass('invalid');
}
//Sort:
dates = jQuery.map(inputs.not('.invalid'), function(i,e){
if(i.value){
return $.datepicker.parseDate(dateFormat, i.value).getTime();
}
});
dates.sort()
inputs.not('.invalid').each(function(i,e){
e.value = dates[i]? $.datepicker.formatDate(dateFormat, $.datepicker.parseDate('@', dates[i])) : '';
});
input_dates = jQuery.map(inputs.not('.invalid'),
function(i,e){return $.datepicker.parseDate(dateFormat, i.value)});
dates_time_array = jQuery.map(input_dates, function(i){ return i.getTime()});
dates_min = Math.min.apply(null, dates_time_array);
dates_max = Math.max.apply(null, dates_time_array);
calendar.datepicker('refresh');
});
inputs.focusout(function(){
lastFocused = this;
});
var calendar_properties = {
dateFormat: dateFormat,
minDate: 0,
maxDate: 330
};
var visible_calendar_properties = {
onSelect:
function(date, inst){
$(lastFocused).val(date).focus();
inputs.filter('[value=""]').first().focus();
inputs.change();
},
numberOfMonths: 2,
beforeShowDay: function(date){
var datetime = date.getTime();
i = dates_time_array.indexOf(datetime);
if(i != -1){
return [true, 'sel_date date_'+(i+1)];
} else if(dates_time_array.length > 1
&& datetime > dates_min
&& datetime < dates_max){
return [true, 'sel_date'];
} else {
return [true, ''];
}
},
onChangeMonthYear: function(year, month, inst){
}
};
jQuery.extend(true, visible_calendar_properties, calendar_properties);
calendar_validator.datepicker(calendar_properties);
calendar.datepicker(visible_calendar_properties);
});