1 var records = new Array();
4 var rresultLimit = 200;
7 var rresultIsPaged = false;
9 function rresultUnload() { removeChildren(table); table = null;}
11 attachEvt("common", "unload", rresultUnload);
12 attachEvt("common", "run", rresultDoSearch);
13 attachEvt("result", "idsReceived", rresultCollectRecords);
14 attachEvt("result", "recordDrawn", rresultLaunchDrawn);
16 hideMe($('copyright_block'));
18 function rresultDoSearch() {
20 swapCanvas($('loading_alt'));
22 table = G.ui.result.main_table;
23 hideMe(G.ui.result.row_template);
24 if( table && table.parentNode ) {
25 while( table.parentNode.rows.length <= (getDisplayCount() +1) )
26 hideMe(table.appendChild(G.ui.result.row_template.cloneNode(true)));
28 unHideMe($('results_header_bar'));
32 function rresultCollectIds() {
35 var rtype = getRtype();
36 if (rtype && rtype.indexOf('|') > -1)
37 rtype = rtype.substring(0,rtype.indexOf('|'));
40 var htarget = cgi.param('hold_target');
42 rresultHandlePlaceHold(htarget);
49 ids = JSON2js(cookieManager.read(COOKIE_RIDS));
50 _rresultHandleIds( ids, ids.length );
58 rresultDoRecordSearch();
62 rresultDoRecordMultiSearch();
70 rresultCollectMARCIds();
74 rresultCollectISBNIds();
78 rresultCollectTCNIds();
82 rresultCollectISSNIds();
90 var form = rresultGetForm();
91 var args = { format : form, org : getLocation(), depth : rresultGetDepth() };
93 var lasso = getLasso();
94 if (lasso) args.org = -lasso;
96 var req = new Request(FETCH_RIDS, getMrid(), args);
97 req.callback( rresultHandleRIds );
100 if( rresultGetDepth() != findOrgDepth(globalOrgTree) ) {
101 var link = $('rresult_show_all_link');
103 unHideMe($('rresult_show_all'));
104 link.appendChild( text(
105 findOrgType(globalOrgTree.ou_type()).opac_label()));
109 if( rresultGetDepth() != getDepth() ) { /* inside a limited display */
110 var link = $('rresult_show_here_link');
112 link.appendChild( text(
113 findOrgType(findOrgUnit(getLocation()).ou_type()).opac_label()));
114 unHideMe($('rresult_show_here'));
121 function rresultExpandSearch() {
123 args[PARAM_RDEPTH] = findOrgDepth(globalOrgTree);
124 goTo(buildOPACLink(args));
127 function rresultContractSearch() {
130 args[PARAM_OFFSET] = 0;
131 goTo(buildOPACLink(args));
135 function rresultGetDepth() {
136 if( getRdepth() != null) return getRdepth();
141 function rresultGetForm() {
144 if(getTform()) /* did the user select a format from the icon list (temporary) */
145 form = (getTform() == 'all') ? null : getTform();
146 else /* did the use select a format from simple search dropdown */
147 form = (getForm() == 'all') ? null : getForm();
149 if(!form) { /* did the user select a format from the advanced search */
150 form = getItemType();
151 var f = getItemForm();
154 form = form.replace(/,/,'');
155 if(f) form += '-' + f;
157 if(f) form = '-' + f;
165 function rresultCollectMARCIds() {
168 args.searches = JSON2js(getSearches());
170 args.org_unit = globalOrgTree.id();
173 rresultIsPaged = true;
174 var req = new Request(FETCH_ADV_MARC_MRIDS, args, getDisplayCount(), getOffset());
175 req.callback(rresultHandleRIds);
176 req.request.noretry = true;
181 function rresultCollectISBNIds() {
182 var req = new Request(FETCH_ADV_ISBN_RIDS, getAdvTerm() );
185 var blob = r.getResultObject();
186 _rresultHandleIds(blob.ids, blob.count);
192 function rresultCollectTCNIds() {
193 var req = new Request(FETCH_ADV_TCN_RIDS, getAdvTerm() );
196 var blob = r.getResultObject();
197 _rresultHandleIds(blob.ids, blob.count);
203 function rresultCollectISSNIds() {
204 var req = new Request(FETCH_ADV_ISSN_RIDS, getAdvTerm() );
207 var blob = r.getResultObject();
208 _rresultHandleIds(blob.ids, blob.count);
214 function rresultHandleList() {
215 var ids = new CGI().param(PARAM_RLIST);
217 if(!dojo.isArray(ids)) {
223 if(ids) _rresultHandleIds(ids, count);
226 var rresultTries = 0;
227 function rresultHandleRIds(r) {
228 var res = r.getResultObject();
230 if(!res) res = {count:0,ids:[]};
232 if( res.count == 0 && rresultTries == 0 && ! r.noretry) {
235 var form = rresultGetForm();
236 var args = { format : form, org : getLocation(), depth : findOrgDepth(globalOrgTree) };
238 var lasso = getLasso();
239 if (lasso) args.org = -lasso;
241 var req = new Request(FETCH_RIDS, getMrid(), args );
242 req.callback( rresultHandleRIds );
244 unHideMe($('no_formats'));
245 hideMe($('rresult_show_all'));
249 _rresultHandleIds(res.ids, res.count);
253 function _rresultHandleIds(ids, count) {
254 //var json = js2JSON({ids:ids,count:count});
256 cookieManager.write(COOKIE_SRIDS, json, '+1d');
259 HITCOUNT = parseInt(count);
260 runEvt('result', 'hitCountReceived');
261 runEvt('result', 'idsReceived', ids, getOffset());
265 function rresultCollectRecords(ids) {
266 runEvt("result", "preCollectRecords");
268 for( var i = getOffset(); i!= getDisplayCount() + getOffset(); i++ ) {
269 if(ids[i] == null) break;
270 var req = new Request(FETCH_RMODS, parseInt(ids[i]));
271 req.callback(rresultHandleMods);
272 req.request.userdata = x++;
279 function rresultCollectRecords(ids, base) {
280 runEvt("result", "preCollectRecords");
284 if( rresultIsPaged ) base = 0;
286 for( var i = base; i!= getDisplayCount() + base; i++ ) {
287 if(ids[i] == null) break;
288 var req = new Request(FETCH_RMODS, parseInt(ids[i]));
289 req.callback(rresultHandleMods);
290 req.request.userdata = x++;
295 var recsReceivedCalled = false;
296 function rresultHandleMods(r) {
297 var rec = r.getResultObject();
298 runEvt('result', 'recordReceived', rec, r.userdata, false);
299 resultCollectCopyCounts(rec, r.userdata, FETCH_R_COPY_COUNTS);
300 if(resultPageIsDone() && !recsReceivedCalled) {
301 recsReceivedCalled = true;
302 runEvt('result', 'allRecordsReceived', recordsCache);
303 unHideMe($('copyright_block'));
307 function rresultLaunchDrawn(id, node) {
308 runEvt("rresult", "recordDrawn", id, node);
312 function rresultDoRecordSearch() {
313 rresultIsPaged = true;
314 resultCollectSearchIds(true, SEARCH_RS_QUERY, rresultFilterSearchResults );
317 function rresultDoRecordMultiSearch() {
318 rresultIsPaged = true;
319 resultCollectSearchIds(false, SEARCH_RS_QUERY, rresultFilterSearchResults );
323 function rresultFilterSearchResults(r) {
324 var result = r.getResultObject();
326 if( result.count > 0 ) {
327 for( var i = 0; i != result.ids.length; i++ )
328 ids.push(result.ids[i][0]);
331 resultFacetKey = result.facet_key;
332 resultCompiledSearch = result.compiled_search;
333 cookieManager.write(COOKIE_SEARCH, js2JSON(result.compiled_search), -1);
334 _rresultHandleIds( ids, result.count );
337 function rresultHandlePlaceHold(target) {
339 location.href = location.href.replace(/&hold_target=\d+/, '');
341 attachEvt("common", "holdUpdated", reload);
342 attachEvt("common", "holdUpdateCanceled", reload);
343 attachEvt("common", "loginCanceled", reload);
344 holdsDrawEditor({record:target, type: 'T'});