1 var records = new Array();
4 var rresultLimit = 200;
6 var rresultIsPaged = false;
8 function rresultUnload() { removeChildren(table); table = null;}
10 attachEvt("common", "unload", rresultUnload);
11 attachEvt("common", "run", rresultDoSearch);
12 attachEvt("result", "idsReceived", rresultCollectRecords);
13 attachEvt("result", "recordDrawn", rresultLaunchDrawn);
15 hideMe($('copyright_block'));
17 function rresultDoSearch() {
19 swapCanvas($('loading_alt'));
21 table = G.ui.result.main_table;
22 hideMe(G.ui.result.row_template);
23 if( table && table.parentNode ) {
24 while( table.parentNode.rows.length <= (getDisplayCount() +1) )
25 hideMe(table.appendChild(G.ui.result.row_template.cloneNode(true)));
30 function rresultCollectIds() {
36 ids = JSON2js(cookieManager.read(COOKIE_RIDS));
37 _rresultHandleIds( ids, ids.length );
45 rresultDoRecordSearch();
49 rresultDoRecordMultiSearch();
57 rresultCollectMARCIds();
61 rresultCollectISBNIds();
65 rresultCollectTCNIds();
69 rresultCollectISSNIds();
77 var form = rresultGetForm();
78 var args = { format : form, org : getLocation(), depth : rresultGetDepth() };
80 var lasso = getLasso();
81 if (lasso) args.org = -lasso;
83 var req = new Request(FETCH_RIDS, getMrid(), args);
84 req.callback( rresultHandleRIds );
87 if( rresultGetDepth() != findOrgDepth(globalOrgTree) ) {
88 var link = $('rresult_show_all_link');
90 unHideMe($('rresult_show_all'));
91 link.appendChild( text(
92 findOrgType(globalOrgTree.ou_type()).opac_label()));
96 if( rresultGetDepth() != getDepth() ) { /* inside a limited display */
97 var link = $('rresult_show_here_link');
99 link.appendChild( text(
100 findOrgType(findOrgUnit(getLocation()).ou_type()).opac_label()));
101 unHideMe($('rresult_show_here'));
108 function rresultExpandSearch() {
110 args[PARAM_RDEPTH] = findOrgDepth(globalOrgTree);
111 goTo(buildOPACLink(args));
114 function rresultContractSearch() {
117 args[PARAM_OFFSET] = 0;
118 goTo(buildOPACLink(args));
122 function rresultGetDepth() {
123 if( getRdepth() != null) return getRdepth();
128 function rresultGetForm() {
131 if(getTform()) /* did the user select a format from the icon list (temporary) */
132 form = (getTform() == 'all') ? null : getTform();
133 else /* did the use select a format from simple search dropdown */
134 form = (getForm() == 'all') ? null : getForm();
136 if(!form) { /* did the user select a format from the advanced search */
137 form = getItemType();
138 var f = getItemForm();
141 form = form.replace(/,/,'');
142 if(f) form += '-' + f;
144 if(f) form = '-' + f;
152 function rresultCollectMARCIds() {
155 args.searches = JSON2js(getSearches());
157 args.org_unit = globalOrgTree.id();
160 rresultIsPaged = true;
161 var req = new Request(FETCH_ADV_MARC_MRIDS, args, getDisplayCount(), getOffset());
162 req.callback(rresultHandleRIds);
163 req.request.noretry = true;
168 function rresultCollectISBNIds() {
169 var req = new Request(FETCH_ADV_ISBN_RIDS, getAdvTerm() );
172 var blob = r.getResultObject();
173 _rresultHandleIds(blob.ids, blob.count);
179 function rresultCollectTCNIds() {
180 var req = new Request(FETCH_ADV_TCN_RIDS, getAdvTerm() );
183 var blob = r.getResultObject();
184 _rresultHandleIds(blob.ids, blob.count);
190 function rresultCollectISSNIds() {
191 var req = new Request(FETCH_ADV_ISSN_RIDS, getAdvTerm() );
194 var blob = r.getResultObject();
195 _rresultHandleIds(blob.ids, blob.count);
201 function rresultHandleList() {
202 var ids = new CGI().param(PARAM_RLIST);
204 if(!dojo.isArray(ids)) {
210 if(ids) _rresultHandleIds(ids, count);
213 var rresultTries = 0;
214 function rresultHandleRIds(r) {
215 var res = r.getResultObject();
217 if(!res) res = {count:0,ids:[]};
219 if( res.count == 0 && rresultTries == 0 && ! r.noretry) {
222 var form = rresultGetForm();
223 var args = { format : form, org : getLocation(), depth : findOrgDepth(globalOrgTree) };
225 var lasso = getLasso();
226 if (lasso) args.org = -lasso;
228 var req = new Request(FETCH_RIDS, getMrid(), args );
229 req.callback( rresultHandleRIds );
231 unHideMe($('no_formats'));
232 hideMe($('rresult_show_all'));
236 _rresultHandleIds(res.ids, res.count);
240 function _rresultHandleIds(ids, count) {
241 //var json = js2JSON({ids:ids,count:count});
243 cookieManager.write(COOKIE_SRIDS, json, '+1d');
246 HITCOUNT = parseInt(count);
247 runEvt('result', 'hitCountReceived');
248 runEvt('result', 'idsReceived', ids);
252 function rresultCollectRecords(ids) {
253 runEvt("result", "preCollectRecords");
255 for( var i = getOffset(); i!= getDisplayCount() + getOffset(); i++ ) {
256 if(ids[i] == null) break;
257 var req = new Request(FETCH_RMODS, parseInt(ids[i]));
258 req.callback(rresultHandleMods);
259 req.request.userdata = x++;
266 function rresultCollectRecords(ids) {
267 runEvt("result", "preCollectRecords");
270 //var base = getOffset();
272 if( rresultIsPaged ) base = 0;
274 for( var i = base; i!= getDisplayCount() + base; i++ ) {
275 if(ids[i] == null) break;
276 var req = new Request(FETCH_RMODS, parseInt(ids[i]));
277 req.callback(rresultHandleMods);
278 req.request.userdata = x++;
284 function rresultHandleMods(r) {
285 var rec = r.getResultObject();
286 runEvt('result', 'recordReceived', rec, r.userdata, false);
287 resultCollectCopyCounts(rec, r.userdata, FETCH_R_COPY_COUNTS);
288 if(resultPageIsDone()) {
289 runEvt('result', 'allRecordsReceived', recordsCache);
290 unHideMe($('copyright_block'));
294 function rresultLaunchDrawn(id, node) {
295 runEvt("rresult", "recordDrawn", id, node);
299 function rresultDoRecordSearch() {
300 rresultIsPaged = true;
301 resultCollectSearchIds(true, SEARCH_RS_QUERY, rresultFilterSearchResults );
304 function rresultDoRecordMultiSearch() {
305 rresultIsPaged = true;
306 resultCollectSearchIds(false, SEARCH_RS_QUERY, rresultFilterSearchResults );
310 function rresultFilterSearchResults(r) {
311 var result = r.getResultObject();
313 if( result.count > 0 ) {
314 for( var i = 0; i != result.ids.length; i++ )
315 ids.push(result.ids[i][0]);
318 resultCompiledSearch = result.compiled_search;
319 cookieManager.write(COOKIE_SEARCH, js2JSON(result.compiled_search), -1);
320 _rresultHandleIds( ids, result.count );