rem:  var errno = getWcapXmlErrno(xml); if (errno == 0 && iListener != null) { 
add: if (iListener != null) { 
context:     getFreeBusyTimes_resp:    function( wcapResponse, calId, iListener, requestId )    {        try {            var xml = wcapResponse.data; // first statement, may throw            // don't notify if one of ignored errors: 28, 29            var errno = getWcapXmlErrno(xml);            if (errno == 0 && iListener != null) {                var ret = [];                var nodeList = xml.getElementsByTagName("FB");                for ( var i = 0; i < nodeList.length; ++i ) {                    var item = nodeList.item(i);                    var str = item.textContent;                    var slash = str.indexOf( '/' );                    var start = new CalDateTime();                    start.icalString = str.substr( 0, slash );                    var end = new CalDateTime();                    end.icalString = str.substr( slash + 1 );                    var entry = {                        isBusyEntry:                        (item.attributes.getNamedItem("FBTYPE").nodeValue                         == "BUSY"),                        dtRangeStart: start,                        dtRangeEnd: end                    };                    ret.push( entry );                }                iListener.onGetFreeBusyTimes(                    requestId, calId, ret.length, ret );            }            if (LOG_LEVEL > 0) {                this.log( "getFreeBusyTimes_resp() calId=" + calId + ", " +                          getWcapRequestStatusString(xml) );            }        }        catch (exc) {            this.notifyError( exc );        }    },
meta: 9421	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/9421/318a30b964defb311d9cf0464a3354a583a7e8f0/calWcapCalendar.js/clean/calendar/providers/wcap/calWcapCalendar.js