diff -ur calendar/caldav.js ../calendar/caldav.js --- calendar/caldav.js 2009-03-29 23:11:04.000000000 +1030 +++ ../calendar/caldav.js 2009-06-24 17:28:14.957856726 +0930 @@ -13,7 +13,7 @@ } if ( res.getDay() > 1 ) { - res.setTime( res.getTime() - ((res.getDay() + 1) * 24 * 60 * 60 * 1000) ); + res.setTime( res.getTime() - ((res.getDay() - 1) * 24 * 60 * 60 * 1000) ); } else if ( res.getDay() == 0 ) { res.setTime( res.getTime() - (6 * 24 * 60 * 60 * 1000) ); } @@ -27,6 +27,21 @@ return lastMonday( res ); } +function formatD(d) +{ + var y = d.getFullYear(); + var m = d.getMonth()+1; + if ( m < 10) { + m = "0" + m; + } + var d = d.getDate(); + if ( d < 10) { + d = "0" + d; + } + + return y + "" + m + "" + d; +} + function formatDate( d ) { var y = d.getFullYear(); @@ -73,12 +88,11 @@ end.setTime(end.getTime() - 1000 ); - q = "\n"; + q = "\n"; q += "\n"; q += " \n"; q += " \n"; - q += " \n"; - q += " \n"; + q += " \n"; q += " \n"; q += " \n"; q += " \n"; @@ -114,11 +129,9 @@ var caldata = xmlObj.getElementsByTagNameNS('urn:ietf:params:xml:ns:caldav','calendar-data') r = '' - // var events = []; for( i=0; i < caldata.length; i++) { ev = caldata[i].childNodes[0].nodeValue; - // alert( ev ); arr = ev.split( '\n' ); var e = Object.create(IcalEvent); e.color = color; @@ -141,7 +154,14 @@ else if (arr[j].indexOf("DTEND")>=0) { end = arr[j].substring( arr[j].indexOf(":")+1) e.duration = parseTime( end ) - parseTime( e.start ); - if (e.duration == 0) { e.duration = 60 * 60 } + if (e.duration == 0) { + e.duration = 60 * 60 ; + var d1 = new Date(); + e.start= d1.getFullYear() + end.substring(4); + d1 = parseDate(e.start); + d1.setTime(d1.getTime()-(24*60*60*1000)); + e.start=formatD(d1); + } } } }