--- /dev/null
+var records = new Array();\r
+var table;\r
+var rowtemplate;\r
+var rresultLimit = 200;\r
+var resultFacetKey;\r
+\r
+var rresultIsPaged = false;\r
+\r
+function rresultUnload() { removeChildren(table); table = null;}\r
+\r
+attachEvt("common", "unload", rresultUnload);\r
+attachEvt("common", "run", rresultDoSearch);\r
+attachEvt("result", "idsReceived", rresultCollectRecords); \r
+attachEvt("result", "recordDrawn", rresultLaunchDrawn); \r
+\r
+hideMe($('copyright_block')); \r
+\r
+function rresultDoSearch() {\r
+\r
+ swapCanvas($('loading_alt'));\r
+\r
+ table = G.ui.result.main_table;\r
+ hideMe(G.ui.result.row_template);\r
+ if( table && table.parentNode ) {\r
+ while( table.parentNode.rows.length <= (getDisplayCount() +1) ) \r
+ hideMe(table.appendChild(G.ui.result.row_template.cloneNode(true)));\r
+ }\r
+ unHideMe($('results_header_bar'));\r
+ rresultCollectIds();\r
+}\r
+\r
+function rresultCollectIds() {\r
+ var ids;\r
+\r
+ var rtype = getRtype();\r
+ if (rtype && rtype.indexOf('|') > -1)\r
+ rtype = rtype.substring(0,rtype.indexOf('|'));\r
+\r
+ switch(rtype) {\r
+\r
+ case RTYPE_COOKIE:\r
+ ids = JSON2js(cookieManager.read(COOKIE_RIDS));\r
+ _rresultHandleIds( ids, ids.length );\r
+ break;\r
+\r
+ case RTYPE_TITLE:\r
+ case RTYPE_AUTHOR:\r
+ case RTYPE_SUBJECT:\r
+ case RTYPE_SERIES:\r
+ case RTYPE_KEYWORD:\r
+ rresultDoRecordSearch();\r
+ break;\r
+\r
+ case RTYPE_MULTI:\r
+ rresultDoRecordMultiSearch();\r
+ break;\r
+ \r
+ case RTYPE_LIST :\r
+ rresultHandleList();\r
+ break;\r
+\r
+ case RTYPE_MARC :\r
+ rresultCollectMARCIds();\r
+ break;\r
+\r
+ case RTYPE_ISBN :\r
+ rresultCollectISBNIds();\r
+ break;\r
+\r
+ case RTYPE_TCN :\r
+ rresultCollectTCNIds();\r
+ break;\r
+\r
+ case RTYPE_ISSN :\r
+ rresultCollectISSNIds();\r
+ break;\r
+\r
+\r
+ case RTYPE_MRID :\r
+ case null :\r
+ case "" :\r
+ default:\r
+ var form = rresultGetForm();\r
+ var args = { format : form, org : getLocation(), depth : rresultGetDepth() };\r
+\r
+ var lasso = getLasso();\r
+ if (lasso) args.org = -lasso;\r
+\r
+ var req = new Request(FETCH_RIDS, getMrid(), args);\r
+ req.callback( rresultHandleRIds );\r
+ req.send();\r
+\r
+ if( rresultGetDepth() != findOrgDepth(globalOrgTree) ) {\r
+ var link = $('rresult_show_all_link');\r
+ if(link) {\r
+ unHideMe($('rresult_show_all'));\r
+ link.appendChild( text(\r
+ findOrgType(globalOrgTree.ou_type()).opac_label()));\r
+ }\r
+\r
+ } else {\r
+ if( rresultGetDepth() != getDepth() ) { /* inside a limited display */\r
+ var link = $('rresult_show_here_link');\r
+ if(link) {\r
+ link.appendChild( text(\r
+ findOrgType(findOrgUnit(getLocation()).ou_type()).opac_label()));\r
+ unHideMe($('rresult_show_here'));\r
+ }\r
+ }\r
+ }\r
+ }\r
+}\r
+\r
+function rresultExpandSearch() {\r
+ var args = {};\r
+ args[PARAM_RDEPTH] = findOrgDepth(globalOrgTree);\r
+ goTo(buildOPACLink(args));\r
+}\r
+\r
+function rresultContractSearch() {\r
+ var args = {};\r
+ RDEPTH = null;\r
+ args[PARAM_OFFSET] = 0;\r
+ goTo(buildOPACLink(args));\r
+}\r
+\r
+\r
+function rresultGetDepth() {\r
+ if( getRdepth() != null) return getRdepth();\r
+ return getDepth();\r
+}\r
+\r
+\r
+function rresultGetForm() {\r
+ var form;\r
+\r
+ if(getTform()) /* did the user select a format from the icon list (temporary) */\r
+ form = (getTform() == 'all') ? null : getTform();\r
+ else /* did the use select a format from simple search dropdown */\r
+ form = (getForm() == 'all') ? null : getForm();\r
+\r
+ if(!form) { /* did the user select a format from the advanced search */\r
+ form = getItemType();\r
+ var f = getItemForm();\r
+\r
+ if(form) {\r
+ form = form.replace(/,/,'');\r
+ if(f) form += '-' + f;\r
+ } else {\r
+ if(f) form = '-' + f;\r
+ }\r
+ }\r
+\r
+ return form;\r
+}\r
+\r
+\r
+function rresultCollectMARCIds() {\r
+\r
+ var args = {};\r
+ args.searches = JSON2js(getSearches());\r
+ args.limit = 200;\r
+ args.org_unit = globalOrgTree.id();\r
+ args.depth = 0;\r
+\r
+ rresultIsPaged = true;\r
+ var req = new Request(FETCH_ADV_MARC_MRIDS, args, getDisplayCount(), getOffset());\r
+ req.callback(rresultHandleRIds);\r
+ req.request.noretry = true;\r
+ req.send();\r
+}\r
+\r
+\r
+function rresultCollectISBNIds() {\r
+ var req = new Request(FETCH_ADV_ISBN_RIDS, getAdvTerm() );\r
+ req.callback(\r
+ function(r) {\r
+ var blob = r.getResultObject();\r
+ _rresultHandleIds(blob.ids, blob.count);\r
+ }\r
+ );\r
+ req.send();\r
+}\r
+\r
+function rresultCollectTCNIds() {\r
+ var req = new Request(FETCH_ADV_TCN_RIDS, getAdvTerm() );\r
+ req.callback(\r
+ function(r) {\r
+ var blob = r.getResultObject();\r
+ _rresultHandleIds(blob.ids, blob.count);\r
+ }\r
+ );\r
+ req.send();\r
+}\r
+\r
+function rresultCollectISSNIds() {\r
+ var req = new Request(FETCH_ADV_ISSN_RIDS, getAdvTerm() );\r
+ req.callback(\r
+ function(r) {\r
+ var blob = r.getResultObject();\r
+ _rresultHandleIds(blob.ids, blob.count);\r
+ }\r
+ );\r
+ req.send();\r
+}\r
+\r
+function rresultHandleList() {\r
+ var ids = new CGI().param(PARAM_RLIST);\r
+ var count;\r
+ if(!dojo.isArray(ids)) {\r
+ count = 1;\r
+ ids = [ids];\r
+ } else {\r
+ count = ids.length;\r
+ }\r
+ if(ids) _rresultHandleIds(ids, count);\r
+}\r
+\r
+var rresultTries = 0;\r
+function rresultHandleRIds(r) {\r
+ var res = r.getResultObject();\r
+\r
+ if(!res) res = {count:0,ids:[]};\r
+\r
+ if( res.count == 0 && rresultTries == 0 && ! r.noretry) {\r
+\r
+ rresultTries++;\r
+ var form = rresultGetForm();\r
+ var args = { format : form, org : getLocation(), depth : findOrgDepth(globalOrgTree) };\r
+\r
+ var lasso = getLasso();\r
+ if (lasso) args.org = -lasso;\r
+\r
+ var req = new Request(FETCH_RIDS, getMrid(), args );\r
+ req.callback( rresultHandleRIds );\r
+ req.send();\r
+ unHideMe($('no_formats'));\r
+ hideMe($('rresult_show_all'));\r
+\r
+ } else {\r
+\r
+ _rresultHandleIds(res.ids, res.count);\r
+ }\r
+}\r
+\r
+function _rresultHandleIds(ids, count) {\r
+ //var json = js2JSON({ids:ids,count:count});\r
+ /*\r
+ cookieManager.write(COOKIE_SRIDS, json, '+1d');\r
+ */\r
+\r
+ HITCOUNT = parseInt(count);\r
+ runEvt('result', 'hitCountReceived');\r
+ runEvt('result', 'idsReceived', ids, getOffset());\r
+}\r
+\r
+/*\r
+function rresultCollectRecords(ids) {\r
+ runEvt("result", "preCollectRecords");\r
+ var x = 0;\r
+ for( var i = getOffset(); i!= getDisplayCount() + getOffset(); i++ ) {\r
+ if(ids[i] == null) break;\r
+ var req = new Request(FETCH_RMODS, parseInt(ids[i]));\r
+ req.callback(rresultHandleMods);\r
+ req.request.userdata = x++;\r
+ req.send();\r
+ }\r
+}\r
+*/\r
+\r
+\r
+function rresultCollectRecords(ids, base) {\r
+ runEvt("result", "preCollectRecords");\r
+ var x = 0;\r
+\r
+ if (!base) base = 0;\r
+ if( rresultIsPaged ) base = 0;\r
+\r
+ for( var i = base; i!= getDisplayCount() + base; i++ ) {\r
+ if(ids[i] == null) break;\r
+ var req = new Request(FETCH_RMODS, parseInt(ids[i]));\r
+ req.callback(rresultHandleMods);\r
+ req.request.userdata = x++;\r
+ req.send();\r
+ }\r
+}\r
+\r
+var recsReceivedCalled = false;\r
+function rresultHandleMods(r) {\r
+ var rec = r.getResultObject();\r
+ runEvt('result', 'recordReceived', rec, r.userdata, false);\r
+ resultCollectCopyCounts(rec, r.userdata, FETCH_R_COPY_COUNTS);\r
+ if(resultPageIsDone() && !recsReceivedCalled) {\r
+ recsReceivedCalled = true;\r
+ runEvt('result', 'allRecordsReceived', recordsCache);\r
+ unHideMe($('copyright_block')); \r
+ }\r
+}\r
+\r
+function rresultLaunchDrawn(id, node) {\r
+ runEvt("rresult", "recordDrawn", id, node);\r
+}\r
+\r
+\r
+function rresultDoRecordSearch() { \r
+ rresultIsPaged = true;\r
+ resultCollectSearchIds(true, SEARCH_RS_QUERY, rresultFilterSearchResults ); \r
+}\r
+\r
+function rresultDoRecordMultiSearch() { \r
+ rresultIsPaged = true;\r
+ resultCollectSearchIds(false, SEARCH_RS_QUERY, rresultFilterSearchResults ); \r
+}\r
+\r
+\r
+function rresultFilterSearchResults(r) {\r
+ var result = r.getResultObject();\r
+ var ids = [];\r
+ if( result.count > 0 ) {\r
+ for( var i = 0; i != result.ids.length; i++ ) \r
+ ids.push(result.ids[i][0]);\r
+ }\r
+\r
+ resultFacetKey = result.facet_key;\r
+ resultCompiledSearch = result.compiled_search;\r
+ cookieManager.write(COOKIE_SEARCH, js2JSON(result.compiled_search), -1);\r
+ _rresultHandleIds( ids, result.count );\r
+}\r
+\r
+function rresultHandlePlaceHold(target) {\r
+ function reload() {\r
+ location.href = location.href.replace(/&hold_target=\d+/, '');\r
+ }\r
+ attachEvt("common", "holdUpdated", reload);\r
+ attachEvt("common", "holdUpdateCanceled", reload);\r
+ attachEvt("common", "loginCanceled", reload);\r
+ holdsDrawEditor({record:target, type: 'T'});\r
+}\r
+\r