+++ /dev/null
-
-/* captures extraneous info from each record */
-
-var subjectCache = {};
-var authorCache = {};
-var seriesCache = {};
-
-function resultBuildCaches(records) {
- for( var r in records ) {
- var rec = records[r];
- for( var s in rec.subject() )
- subjectCache[s] == null ? subjectCache[s] = 1 : subjectCache[s]++;
- authorCache[rec.author()] = 1;
- for( var s in rec.series() ) seriesCache[rec.series()[s]] = 1;
- }
-}
-
-function resultSortSubjects(a, b) { return -(a.count - b.count); } /* sort in reverse */
-function resultDrawSubjects() {
-
- var subjs = [];
- for( var s in subjectCache )
- subjs.push( { sub : s, count : subjectCache[s] } );
- subjs.sort(resultSortSubjects);
-
- var ss = [];
- for( var s in subjs ) ss.push(subjs[s].sub);
-
- resultDrawSidebarTrees(
- STYPE_SUBJECT,
- "subjectSidebarTree", ss,
- $("subject_tree_sidebar"),
- $("subject_sidebar_tree_div") );
-}
-
-function resultDrawAuthors() {
- var auths = new Array();
- for( var s in authorCache ) auths.push(s);
-
- resultDrawSidebarTrees(
- STYPE_AUTHOR,
- "authorSidebarTree", auths.sort(),
- $("author_tree_sidebar"),
- $("author_sidebar_tree_div") );
-}
-
-function resultDrawSeries() {
- var sers = new Array();
- for( var s in seriesCache ) sers.push(s);
- resultDrawSidebarTrees(
- STYPE_SERIES,
- "seriesSidebarTree", sers.sort(),
- $("series_tree_sidebar"),
- $("series_sidebar_tree_div") );
-}
-
-var IESux = true;
-
-function resultDrawSidebarTrees( stype, treeName, items, wrapperNode, destNode ) {
- eval("tree = " + treeName);
-
- var xrefCache = [];
- var found = false;
- var x = 0;
- for( var i in items ) {
-
- if(isNull(items[i])) continue;
-
- /* again, IE is a turd */
- if(IE) { if(x++ > 5) break; }
- else { if(x++ > 7) break; }
-
- found = true;
-
- var item = normalize(truncate(items[i], 65));
- var args = {};
- var href = resultQuickLink( items[i], stype );
- tree.addNode( stype + "_" + items[i], treeName + 'Root', item, href );
-
-// if( !IE ) resultFireXRefReq(treeName, stype, items[i]);
-
- var a = {};
- a.type = stype;
- a.term = item;
- xrefCache.push(a);
- }
-
- if(found) {
- unHideMe(wrapperNode);
-// if(IE) resultFireXRefSingle(treeName, xrefCache, stype);
- /* XXX */ // disabled auth lookups for now
-
- if( DO_AUTHORITY_LOOKUPS ) {
- resultFireXRefBatch(treeName, xrefCache, stype);
- }
- }
-}
-
-/* XXX */
-function resultFireXRefBatch(treeName, xrefCache, stype) {
- var query = [];
- for( var i = 0; i != xrefCache.length; i++ ) {
- var topic = xrefCache[i];
- query.push( [ topic.type, topic.term ] );
- }
- var req = new Request(FETCH_CROSSREF_BATCH, query);
- var tree;
- eval('tree=' + treeName);
- req.request._tree = tree;
- req.request._stype = stype;
- req.callback(resultRenderXRefTree);
- req.send();
-}
-
-var xrefCacheIndex = {};
-xrefCacheIndex['subject'] = 0;
-xrefCacheIndex['author'] = 0;
-xrefCacheIndex['series'] = 0;
-
-function resultHandleXRefResponse(r) {
- resultFireXRefSingle( r._treename, r._cache, r._stype );
- resultAppendCrossRef(r);
-}
-
-
-function resultFireXRefSingle( treeName, xrefCache, stype ) {
- var i = xrefCacheIndex[stype]++;
- if(xrefCache[i] == null) return;
- var item = xrefCache[i].term;
- var tree;
- eval('tree=' + treeName);
- var req = new Request(FETCH_CROSSREF, stype, item);
- req.request._tree = tree;
- req.request._item = item;
- req.request._stype = stype;
- req.request._cache = xrefCache;
- req.request._treename = treeName;
- req.callback(resultHandleXRefResponse);
- req.send();
-}
-
-function resultFireXRefReq( treeName, stype, item ) {
- var tree;
- eval('tree=' + treeName);
- var req = new Request(FETCH_CROSSREF, stype, item);
- req.request._tree = tree;
- req.request._item = item;
- req.request._stype = stype;
- req.callback(resultAppendCrossRef);
- req.send();
-}
-
-
-function resultQuickLink( term, type ) {
- var args = {};
- if(SHOW_MR_DEFAULT) {
- args.page = MRESULT;
- } else {
- args.page = RRESULT;
- args[PARAM_RTYPE] = type;
- }
- args[PARAM_OFFSET] = 0;
- args[PARAM_TERM] = term;
- args[PARAM_STYPE] = type;
- return buildOPACLink(args);
-}
-
-/* XXX */
-function resultRenderXRefTree(r) {
- var tree = r._tree;
- var res = r.getResultObject();
- var stype = r._stype;
-
- for( var c in res ) {
- var cls = res[c];
- for( var t in cls ) {
- var term = res[c][t];
- var froms = term['from'];
- var alsos = term['also'];
- var total = 0;
-
- for( var i = 0; (total++ < 5 && i < froms.length); i++ ) {
- var string = normalize(truncate(froms[i], 45));
- if($(stype + '_' + froms[i])) continue;
- tree.addNode(stype + '_' + froms[i],
- stype + '_' + t, string, resultQuickLink(froms[i],stype));
- }
- for( var i = 0; (total++ < 10 && i < alsos.length); i++ ) {
- var string = normalize(truncate(alsos[i], 45));
- if($(stype + '_' + alsos[i])) continue;
- tree.addNode(stype + '_' + alsos[i],
- stype + '_' + t, string, resultQuickLink(alsos[i],stype));
- }
- }
- }
-}
-
-
-/* Addes the see-from/see-also entries for this subject item */
-function resultAppendCrossRef(r) {
- var tree = r._tree
- var item = r._item
- var stype = r._stype;
- var result = r.getResultObject();
- if(!result) return;
- var froms = result['from'];
- var alsos = result['also'];
-
- var total = 0;
-
- for( var i = 0; (total++ < 5 && i < froms.length); i++ )
- resultAddXRefItem( tree, item, stype, froms, i );
-
- for( var i = 0; (total++ < 10 && i < alsos.length); i++ )
- resultAddXRefItem( tree, item, stype, alsos, i );
-}
-
-/**
- * Adds a single entry into the see-from/also sidebar tree
- */
-var collectedStrings = [];
-function resultAddXRefItem(tree, rootItem, stype, arr, idx) {
-
- var string = normalize(truncate(arr[idx], 45));
-
- if( string == rootItem ) return;
-
- if( grep( collectedStrings,
- function(a) { return (a == string); }) ) return;
-
- if($(stype + '_' + arr[idx])) return;
-
- tree.addNode(stype + '_' + arr[idx],
- stype + '_' + rootItem, string, resultQuickLink(arr[idx],stype));
-
- collectedStrings.push(string);
-}
-
-
-
-
-
-