02111-1307, USA.
*/
+function uixEarlierDate(date1, date2) {
+ // can this be done in a sane way?
+ if (date1.getYear() < date2.getYear()) return date1;
+ if (date1.getYear() > date2.getYear()) return date2;
+ // same year
+ if (date1.getMonth() < date2.getMonth()) return date1;
+ if (date1.getMonth() > date2.getMonth()) return date2;
+ // same month
+ if (date1.getDay() < date2.getDay()) return date1;
+ if (date1.getDay() > date2.getDay()) return date2;
+ // same day
+ return null;
+}
+
function validateAptEditor() {
- var e;
+ var e, startdate, enddate, tmpdate;
- e = document.getElementById('summary');
- if (e.value.length == 0) {
- if (!confirm(labels.validate_notitle))
- return false;
- }
+ e = document.getElementById('summary');
+ if (e.value.length == 0) {
+ if (!confirm(labels.validate_notitle))
+ return false;
+ }
- e = document.getElementById('startTime_date');
- if (e.value.length != 10) {
- alert(labels.validate_invalid_startdate);
- return false;
- }
- if (calendar_startTime_date.prs_date(e.value) == null)
- return false;
+ e = document.getElementById('startTime_date');
+ if (e.value.length != 10) {
+ alert(labels.validate_invalid_startdate);
+ return false;
+ }
+ startdate = calendar_startTime_date.prs_date(e.value);
+ if (startdate == null) {
+ alert(labels.validate_invalid_startdate);
+ return false;
+ }
- e = document.getElementById('endTime_date');
- if (e.value.length != 10) {
- alert(labels.validate_invalid_enddate);
- return false;
- }
- if (calendar_endTime_date.prs_date(e.value) == null)
+ e = document.getElementById('endTime_date');
+ if (e.value.length != 10) {
+ alert(labels.validate_invalid_enddate);
+ return false;
+ }
+ enddate = calendar_endTime_date.prs_date(e.value);
+ if (enddate == null) {
+ alert(labels.validate_invalid_enddate);
+ return false;
+ }
+
+ tmpdate = uixEarlierDate(startdate, enddate);
+ if (tmpdate == enddate) {
+ alert(labels.validate_endbeforestart);
+ return false;
+ }
+ else if (tmpdate == null /* means: same date */) {
+ // TODO: check time
+ var start, end;
+
+ start = document.forms[0]['startTime_time_hour'].value;
+ end = document.forms[0]['endTime_time_hour'].value;
+ if (start > end) {
+ alert(labels.validate_endbeforestart);
+ return false;
+ }
+ else if (start == end) {
+ start = document.forms[0]['startTime_time_minute'].value;
+ end = document.forms[0]['endTime_time_minute'].value;
+ if (start > end) {
+ alert(labels.validate_endbeforestart);
return false;
+ }
+ }
+ }
- // TODO: parse start/enddate and ensure that start is before end
-
- return true;
+ return true;
}