1 var records = new Array();
4 var rresultLimit = 200;
6 function rresultUnload() { removeChildren(table); table = null;}
8 attachEvt("common", "unload", rresultUnload);
9 attachEvt("common", "run", rresultDoSearch);
10 attachEvt("result", "idsReceived", rresultCollectRecords);
11 attachEvt("result", "recordDrawn", rresultLaunchDrawn);
13 hideMe($('copyright_block'));
15 function rresultDoSearch() {
16 table = G.ui.result.main_table;
17 hideMe(G.ui.result.row_template);
18 while( table.parentNode.rows.length <= (getDisplayCount() +1) )
19 hideMe(table.appendChild(G.ui.result.row_template.cloneNode(true)));
23 function rresultCollectIds() {
28 ids = JSON2js(cookieManager.read(COOKIE_RIDS));
29 _rresultHandleIds( ids, ids.length );
37 rresultDoRecordSearch();
41 rresultDoRecordMultiSearch();
49 rresultCollectMARCIds();
56 var form = rresultGetForm();
57 var args = { format : form, org : getLocation(), depth : rresultGetDepth() };
58 var req = new Request(FETCH_RIDS, getMrid(), args);
59 req.callback( rresultHandleRIds );
62 if( rresultGetDepth() != findOrgDepth(globalOrgTree) ) {
63 unHideMe($('rresult_show_all'));
64 var link = $('rresult_show_all_link');
65 link.appendChild( text(
66 findOrgType(globalOrgTree.ou_type()).opac_label()));
69 if( rresultGetDepth() != getDepth() ) { /* inside a limited display */
70 var link = $('rresult_show_here_link');
71 link.appendChild( text(
72 findOrgType(findOrgUnit(getLocation()).ou_type()).opac_label()));
73 unHideMe($('rresult_show_here'));
79 function rresultExpandSearch() {
80 var link = buildOPACLink();
81 link += "&tmpdepth=" + findOrgDepth(globalOrgTree);
86 function rresultGetDepth() {
88 if(cgi.param('tmpdepth'))
89 return cgi.param('tmpdepth');
94 function rresultGetForm() {
97 form = (getTform() == 'all') ? null : getTform();
99 form = (getForm() == 'all') ? null : getForm();
104 function rresultCollectMARCIds() {
107 args.searches = JSON2js(getSearches());
109 args.org_unit = globalOrgTree.id();
112 var req = new Request(FETCH_ADV_MARC_MRIDS, args);
113 req.callback(rresultHandleRIds);
117 function rresultHandleList() {
118 var ids = new CGI().param(PARAM_RLIST);
119 if(ids) _rresultHandleIds(ids, ids.length);
122 var rresultTries = 0;
123 function rresultHandleRIds(r) {
124 var res = r.getResultObject();
126 if( res.count == 0 ) {
128 if( rresultTries == 0 ) {
130 var form = rresultGetForm();
131 var args = { format : form, org : getLocation(), depth : findOrgDepth(globalOrgTree) };
132 var req = new Request(FETCH_RIDS, getMrid(), args );
133 req.callback( rresultHandleRIds );
135 unHideMe($('no_formats'));
136 hideMe($('rresult_show_all'));
141 _rresultHandleIds(res.ids, res.count);
145 function _rresultHandleIds(ids, count) {
146 HITCOUNT = parseInt(count);
147 runEvt('result', 'hitCountReceived');
148 runEvt('result', 'idsReceived', ids);
151 function rresultCollectRecords(ids) {
152 runEvt("result", "preCollectRecords");
154 for( var i = getOffset(); i!= getDisplayCount() + getOffset(); i++ ) {
155 if(ids[i] == null) break;
156 var req = new Request(FETCH_RMODS, parseInt(ids[i]));
157 req.callback(rresultHandleMods);
158 req.request.userdata = x++;
163 function rresultHandleMods(r) {
164 var rec = r.getResultObject();
165 runEvt('result', 'recordReceived', rec, r.userdata, false);
166 resultCollectCopyCounts(rec, r.userdata, FETCH_R_COPY_COUNTS);
167 if(resultPageIsDone()) {
168 runEvt('result', 'allRecordsReceived', recordsCache);
169 unHideMe($('copyright_block'));
174 function rresultLaunchDrawn(id, node) {
175 runEvt("rresult", "recordDrawn", id, node);
179 function rresultDoRecordSearch() {
180 resultCollectSearchIds(true, SEARCH_RS, rresultFilterSearchResults ); }
181 function rresultDoRecordMultiSearch() {
182 resultCollectSearchIds(false, SEARCH_RS, rresultFilterSearchResults ); }
185 function _rresultCollectSearchIds( type ) {
187 var sort = (getSort() == SORT_TYPE_REL) ? null : getSort();
188 var sortdir = (sort) ? ((getSortDir()) ? getSortDir() : SORT_DIR_ASC) : null;
190 var form = parseForm(getForm());
191 var item_type = form.item_type;
192 var item_form = form.item_form;
198 args.searches[getRtype()] = {};
199 args.searches[getRtype()].term = getTerm();
201 args.searches = JSON2js(getAdvTerm());
204 args.org_unit = getLocation();
205 args.depth = getDepth();
206 args.limit = rresultLimit;
207 args.offset = getOffset();
209 if(sort) args.sort = sort;
210 if(sortdir) args.sort_dir = sortdir;
211 if(item_type) args.item_type = item_type;
212 if(item_form) args.item_form = item_form;
214 var req = new Request(SEARCH_RS, args);
215 req.callback(rresultFilterSearchResults);
221 function rresultFilterSearchResults(r) {
222 var result = r.getResultObject();
224 for( var i = 0; i != result.ids.length; i++ )
225 ids.push(result.ids[i][0]);
226 _rresultHandleIds( ids, result.count );