0001806: Date problems fixed and new date formats MmmDDYYYY, DDMmmYYYY and YYYYMmmDD...
[fa-stable.git] / js / inserts.js
index 2e706fb5e89b8dcab06b78d44192118b845890cf..a22238b6dc899531452ca61340cc0e518694790f 100644 (file)
@@ -213,47 +213,40 @@ function passBack(value) {
 */
 function fix_date(date, last)
 {
-       var regex = /(\d+)[^\d]*(\d+)*[^\d]*(\d+)*/;
-       var dat = regex.exec(last);
-       var cur = regex.exec(date);
+       var dat = last.split(user.datesep);
+       var cur = date.split(user.datesep);
        var day, month, year;
+       var day1, month1, year1;
 
 // TODO: user.date as default?
 // TODO: user.datesys
-       if (!dat || !cur) return date;
-
-       if (cur[3] != undefined) // full date entered
-               dat = cur;
-
-       if (user.datefmt == 0) // set defaults
+       if (date == "" || date == last) // should we return an empty date or should we return last?
+               return date;
+       if (user.datefmt == 0 || user.datefmt == 3) // set defaults
        {
-               day = dat[2]; month = dat[1]; year = dat[3];
-       } else if (user.datefmt == 1)
-       {
-               day = dat[1]; month = dat[2]; year = dat[3];
+               day = dat[1]; month = dat[0]; year = dat[2];
+               day1 = cur[1]; month1 = cur[0]; year1 = cur[2];
+       } else if (user.datefmt == 1 || user.datefmt == 4){
+               day = dat[0]; month = dat[1]; year = dat[2];
+               day1 = cur[0]; month1 = cur[1]; year1 = cur[2];
        } else {
-               day = dat[3]; month = dat[2]; year = dat[1];
-       }
-
-       if (cur[2] == undefined) // only day entred
-               day = cur[1];
-       else // day + month
-               if (cur[2] != undefined)
-               {
-                       if (user.datefmt==1)
-                               { day = cur[1]; month = cur[2] }
-                       else
-                               { day = cur[2]; month = cur[1] }
-               }
-
-       if (day<10) day = '0'+parseInt(day, 10);
-       if (month<10) month = '0'+parseInt(month, 10);
+               day = dat[2]; month = dat[1]; year = dat[0];
+               day1 = cur[2]; month1 = cur[1]; year1 = cur[0];
+       }       
+       if (day1 != undefined && day1 != "") // day entered
+               day = day1;
+       if (month1 != undefined && month1 != "") // month entered
+               month = month1;
+       if (year1 != undefined && year1 != "") // year entered
+               year = year1;
+       if (user.datefmt<3 && day<10) day = '0'+parseInt(day, 10);
+       if (user.datefmt<3 && month<10) month = '0'+parseInt(month, 10);
        if (year<100) year = year<60 ? (2000+parseInt(year,10)) : (1900+parseInt(year,10));
 
 //     console.info(day,month,year)
-       if (user.datefmt == 0)
+       if (user.datefmt == 0 || user.datefmt==3)
                return month+user.datesep+day+user.datesep+year;
-       if (user.datefmt == 1)
+       if (user.datefmt == 1 || user.datefmt==4)
                return day+user.datesep+month+user.datesep+year;
        return year+user.datesep+month+user.datesep+day;
 }