1 /* advanced search interface */
3 attachEvt("common", "run", advInit);
10 setEnterFunc( $n( $('advanced.marc.tbody'), 'advanced.marc.value'), advMARCRun );
12 unHideMe($('adv_quick_search_sidebar'));
16 setSelector($('adv_quick_type'), 'tcn'); */
18 setEnterFunc($('adv_quick_text'), advGenericSearch);
20 unHideMe($('adv_marc_search_sidebar'));
21 unHideMe($('adv_authority_browse_sidebar'));
25 function advAddMARC() {
26 var newt = $('adv_sdbar_table').cloneNode(true);
28 unHideMe($n(newt, 'crow'));
29 $n(newt, 'advanced.marc.tag').value = "";
30 $n(newt, 'advanced.marc.subfield').value = "";
31 $n(newt, 'advanced.marc.value').value = "";
32 $('adv_marc_search_sidebar').insertBefore(newt, $('adv_marc_submit'));
35 function advMARCRun() {
39 var div = $('adv_marc_search_sidebar');
40 var tbodies = div.getElementsByTagName('tbody');
43 for( var i = 0; i < tbodies.length; i++ ) {
44 var tbody = tbodies[i];
45 var val = advExtractMARC(tbody);
46 if(val) searches.push(val);
49 if(searches.length == 0) return;
53 arg[PARAM_FORM] = 'all'
54 arg[PARAM_RTYPE] = RTYPE_MARC;
55 arg[PARAM_OFFSET] = 0;
56 arg[PARAM_DEPTH] = depthSelGetDepth();
57 arg[PARAM_LOCATION] = depthSelGetNewLoc();
58 arg[PARAM_SEARCHES] = js2JSON(searches);
59 arg[PARAM_ADVTYPE] = ADVTYPE_MARC;
62 goTo(buildOPACLink(arg));
66 /* EXAMPLE => {"term":"0516011901","restrict":[{"tag":"020","subfield":"a"}]} */
67 function advExtractMARC(tbody) {
68 if(!tbody) return null;
69 var term = $n(tbody, 'advanced.marc.value').value;
70 if(!term) return null;
72 var subfield = $n(tbody, 'advanced.marc.subfield').value;
73 if(!subfield) subfield = "_";
75 var tag = $n(tbody, 'advanced.marc.tag').value;
78 return { 'term' : term.toLowerCase(), 'restrict' : [ { 'tag' : tag, 'subfield' : subfield } ] };
81 function advGenericSearch() {
83 var type = getSelectorVal($('adv_quick_type'));
85 var term = $('adv_quick_text').value;
94 arg[PARAM_STYPE] = "";
96 arg[PARAM_RTYPE] = RTYPE_ISBN;
97 arg[PARAM_OFFSET] = 0;
98 arg[PARAM_ADVTERM] = term.toLowerCase();
103 arg[PARAM_STYPE] = "";
104 arg[PARAM_TERM] = "";
105 arg[PARAM_ADVTERM] = term.toLowerCase();
106 arg[PARAM_OFFSET] = 0;
107 arg[PARAM_RTYPE] = RTYPE_ISSN;
112 arg[PARAM_STYPE] = "";
113 arg[PARAM_TERM] = "";
114 arg[PARAM_ADVTERM] = term;
115 arg[PARAM_OFFSET] = 0;
116 arg[PARAM_RTYPE] = RTYPE_TCN;
120 advFindBarcode(term);
126 arg[PARAM_CN] = term;
127 arg[PARAM_DEPTH] = depthSelGetDepth();
128 arg[PARAM_LOCATION] = depthSelGetNewLoc();
133 arg[PARAM_FORM] = 'all'
134 arg[PARAM_RTYPE] = RTYPE_MARC;
135 arg[PARAM_OFFSET] = 0;
136 arg[PARAM_DEPTH] = depthSelGetDepth();
137 arg[PARAM_LOCATION] = depthSelGetNewLoc();
138 arg[PARAM_SEARCHES] = js2JSON([{ 'term' : term.toLowerCase(),
139 'restrict' : [ { 'tag' : '010', 'subfield' : '_' } ] }]);
140 arg[PARAM_ADVTYPE] = ADVTYPE_MARC;
141 arg[PARAM_TERM] = "";
145 default: alert('not done');
148 if(arg.page) goTo(buildOPACLink(arg));
152 function advFindBarcode(barcode) {
153 var req = new Request(FETCH_BIB_IDS_BY_BARCODE, barcode);
154 req.callback(advDrawBarcode);
155 req.request.alertEvent = false;
159 function advDrawBarcode(r) {
160 var title_ids = r.getResultObject();
161 if(checkILSEvent(title_ids)) {
162 alertId('myopac.copy.not.found');
165 if(!title_ids) return;
167 if (title_ids.length == 1) {
169 args[PARAM_RID] = title_ids[0];
172 args[PARAM_RTYPE] = RTYPE_LIST;
173 args[PARAM_RLIST] = title_ids;
175 location.href = buildOPACLink(args);
178 function authBrowseSubmit() {
179 var selector = dojo.byId("authority_browse_axis");
180 var args = {"page": AUTHBROWSE};
181 args[PARAM_AUTHORITY_BROWSE_AXIS] =
182 selector.options[selector.selectedIndex].value;
183 args[PARAM_AUTHORITY_BROWSE_TERM] =
184 dojo.byId("authority_browse_term").value;
185 location.href = buildOPACLink(args);