rem: var rangeXml = <time-range start={aRangeStart.icalString} end={aRangeEnd.icalString}/>; 
add: var queryRangeStart = aRangeStart.clone(); var queryRangeEnd = aRangeEnd.clone(); queryRangeStart.isDate = false; if (queryRangeEnd.isDate) {   queryRangeEnd.day++; queryRangeEnd.normalize(); queryRangeEnd.isDate = false; } var rangeXml = <time-range start={queryRangeStart.getInTimezone("UTC").icalString} end={queryRangeEnd.getInTimezone("UTC").icalString}/>; 
context:     getItems: function (aItemFilter, aCount, aRangeStart, aRangeEnd, aListener)    {        if (!aListener)            return;        // this is our basic report xml        var C = new Namespace("C", "urn:ietf:params:xml:ns:caldav");        var D = new Namespace("D", "DAV:");        default xml namespace = C;        var queryXml =           <calendar-query xmlns:D={D}>            <D:prop>              <calendar-data/>            </D:prop>            <filter>              <comp-filter name="VCALENDAR">                <comp-filter/>              </comp-filter>            </filter>          </calendar-query>;        // figure out         var compFilterNames = new Array();        compFilterNames[calICalendar.ITEM_FILTER_TYPE_TODO] = "VTODO";        compFilterNames[calICalendar.ITEM_FILTER_TYPE_VJOURNAL] = "VJOURNAL";        compFilterNames[calICalendar.ITEM_FILTER_TYPE_EVENT] = "VEVENT";        var filterTypes = 0;        for (var i in compFilterNames) {            if (aItemFilter & i) {                // XXX CalDAV only allows you to ask for one filter-type                // at once, so if the caller wants multiple filtern                // types, all they're going to get for now is events                // (since that's last in the Array).  Sorry!                ++filterTypes;                queryXml[0].C::filter.C::["comp-filter"]                    .C::["comp-filter"] =                     <comp-filter name={compFilterNames[i]}/>;            }        }        if (filterTypes < 1) {            debug("No item types specified\n");            // XXX should we just quietly call back the completion method?            throw NS_ERROR_FAILURE;        }        // if a time range has been specified, do the appropriate restriction.        // XXX express "end of time" in caldav by leaving off "start", "end"        if (aRangeStart && aRangeStart.isValid &&             aRangeEnd && aRangeEnd.isValid) {            var rangeXml = <time-range start={aRangeStart.icalString}                                       end={aRangeEnd.icalString}/>;            // append the time-range as a child of our innermost comp-filter            queryXml[0].C::filter.C::["comp-filter"]                .C::["comp-filter"].appendChild(rangeXml);        }        var queryString = xmlHeader + queryXml.toXMLString();        debug("getItems(): querying CalDAV server for events: \n" +               queryString + "\n");        var occurrences = (aItemFilter &                           calICalendar.ITEM_FILTER_CLASS_OCCURRENCES) != 0;         this.reportInternal(queryString, occurrences, aRangeStart, aRangeEnd,                            aCount, aListener);    },
meta: 9421	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/9421/e94bcf0cf438ddea5391b0f2a0055c90fa3edcfb/calDavCalendar.js/clean/calendar/providers/caldav/calDavCalendar.js