2 /* captures extraneous info from each record */
8 function resultBuildCaches(records) {
9 for( var r in records ) {
11 for( var s in rec.subject() )
12 subjectCache[s] == null ? subjectCache[s] = 1 : subjectCache[s]++;
13 authorCache[rec.author()] = 1;
14 for( var s in rec.series() ) seriesCache[rec.series()[s]] = 1;
18 function resultSortSubjects(a, b) { return -(a.count - b.count); } /* sort in reverse */
19 function resultDrawSubjects() {
22 for( var s in subjectCache )
23 subjs.push( { sub : s, count : subjectCache[s] } );
24 subjs.sort(resultSortSubjects);
27 for( var s in subjs ) ss.push(subjs[s].sub);
29 resultDrawSidebarTrees(
31 "subjectSidebarTree", ss,
32 $("subject_tree_sidebar"),
33 $("subject_sidebar_tree_div") );
36 function resultDrawAuthors() {
37 var auths = new Array();
38 for( var s in authorCache ) auths.push(s);
40 resultDrawSidebarTrees(
42 "authorSidebarTree", auths.sort(),
43 $("author_tree_sidebar"),
44 $("author_sidebar_tree_div") );
47 function resultDrawSeries() {
48 var sers = new Array();
49 for( var s in seriesCache ) sers.push(s);
50 resultDrawSidebarTrees(
52 "seriesSidebarTree", sers.sort(),
53 $("series_tree_sidebar"),
54 $("series_sidebar_tree_div") );
57 var _oldFashioned = true;
58 function resultDrawSidebarTrees( stype, treeName, items, wrapperNode, destNode ) {
59 eval("tree = " + treeName);
64 for( var i in items ) {
66 if(isNull(items[i])) continue;
70 var item = normalize(truncate(items[i], 65));
73 var href = resultQuickLink( items[i], stype );
74 tree.addNode( stype + "_" + items[i], treeName + 'Root', item, href );
78 setTimeout('resultFireXRefReq("'+treeName+'","'+stype+'","'+item+'");',200);
80 //if(!IE) resultFireXRefReq(treeName, stype, items[i]);
81 //resultFireXRefReq(treeName, stype, items[i]);
85 resultFireXRefReq(treeName, stype, items[i]);
87 //setTimeout('resultFireXRefReq("'+treeName+'","'+stype+'","'+item+'");', 100);
96 unHideMe(wrapperNode);
98 resultFireXRefBatch(treeName, xrefCache, stype);
102 function resultFireXRefBatch(treeName, xrefCache, stype) {
104 for( var i = 0; i != xrefCache.length; i++ ) {
105 var topic = xrefCache[i];
106 query.push( [ topic.type, topic.term ] );
108 var req = new Request(FETCH_CROSSREF_BATCH, query);
110 eval('tree=' + treeName);
111 req.request._tree = tree;
112 req.request._stype = stype;
113 req.callback(resultRenderXRefTree);
117 function resultFireXRefReq( treeName, stype, item ) {
119 eval('tree=' + treeName);
120 var req = new Request(FETCH_CROSSREF, stype, item);
121 req.request._tree = tree;
122 req.request._item = item;
123 req.request._stype = stype;
124 req.callback(resultAppendCrossRef);
129 function resultQuickLink( term, type ) {
132 args[PARAM_OFFSET] = 0;
133 args[PARAM_TERM] = term;
134 args[PARAM_STYPE] = type;
135 return buildOPACLink(args);
138 function resultRenderXRefTree(r) {
140 var res = r.getResultObject();
141 var stype = r._stype;
143 for( var c in res ) {
145 for( var t in cls ) {
146 var term = res[c][t];
147 var froms = term['from'];
148 var alsos = term['also'];
151 for( var i = 0; (total++ < 5 && i < froms.length); i++ ) {
152 var string = normalize(truncate(froms[i], 45));
153 if($(stype + '_' + froms[i])) continue;
154 tree.addNode(stype + '_' + froms[i],
155 stype + '_' + t, string, resultQuickLink(froms[i],stype));
157 for( var i = 0; (total++ < 10 && i < alsos.length); i++ ) {
158 var string = normalize(truncate(alsos[i], 45));
159 if($(stype + '_' + alsos[i])) continue;
160 tree.addNode(stype + '_' + alsos[i],
161 stype + '_' + t, string, resultQuickLink(alsos[i],stype));
168 function resultAppendCrossRef(r) {
171 var stype = r._stype;
172 var result = r.getResultObject();
174 var froms = result['from'];
175 var alsos = result['also'];
179 for( var i = 0; (total++ < 5 && i < froms.length); i++ ) {
180 var string = normalize(truncate(froms[i], 45));
181 if($(stype + '_' + froms[i])) continue;
182 tree.addNode(stype + '_' + froms[i],
183 stype + '_' + item, string, resultQuickLink(froms[i],stype));
185 for( var i = 0; (total++ < 10 && i < alsos.length); i++ ) {
186 var string = normalize(truncate(alsos[i], 45));
187 if($(stype + '_' + alsos[i])) continue;
188 tree.addNode(stype + '_' + alsos[i],
189 stype + '_' + item, string, resultQuickLink(alsos[i],stype));