1 /* advanced search interface */
3 attachEvt("common", "run", advInit);
9 unHideMe($('adv_search_parent'));
10 /* propogate these? */
13 setEnterFunc( $n( $('advanced.marc.tbody'), 'advanced.marc.value'), advMARCRun );
14 hideMe($('adv_quick_search_sidebar'));
17 if(getAdvTerm()) $('adv_quick_text').value = getAdvTerm();
19 var rtype_val = getRtype();
20 if(rtype_val==RTYPE_MARC) rtype_val='iccn';
21 adv_set = setSelector($('adv_quick_type'), rtype_val);
24 adv_set = setSelector($('adv_quick_type'), 'cn');
25 $('adv_quick_text').value = getCallnumber();
28 setSelector($('adv_quick_type'), 'barcode');
29 $('adv_quick_text').value = getRid();
34 setSelector($('adv_quick_type'), 'tcn'); */
36 setEnterFunc($('adv_quick_text'), advGenericSearch);
37 hideMe($('adv_marc_search_sidebar'));
38 //hideMe($('adv_global_search'));
42 function advAddMARC() {
43 var newt = $('adv_sdbar_table').cloneNode(true);
45 unHideMe($n(newt, 'crow'));
46 $n(newt, 'advanced.marc.tag').value = "";
47 $n(newt, 'advanced.marc.subfield').value = "";
48 $n(newt, 'advanced.marc.value').value = "";
49 $('adv_marc_search_sidebar').insertBefore(newt, $('adv_marc_submit'));
52 function advMARCRun() {
56 var div = $('adv_marc_search_sidebar');
57 var tbodies = div.getElementsByTagName('tbody');
60 for( var i = 0; i < tbodies.length; i++ ) {
61 var tbody = tbodies[i];
62 var val = advExtractMARC(tbody);
63 if(val) searches.push(val);
66 if(searches.length == 0) return;
70 arg[PARAM_FORM] = 'all';
71 arg[PARAM_RTYPE] = RTYPE_MARC;
72 arg[PARAM_OFFSET] = 0;
73 arg[PARAM_DEPTH] = depthSelGetDepth();
74 arg[PARAM_LOCATION] = depthSelGetNewLoc();
75 arg[PARAM_SEARCHES] = js2JSON(searches);
76 arg[PARAM_ADVTYPE] = ADVTYPE_MARC;
79 goTo(buildOPACLink(arg));
83 /* EXAMPLE => {"term":"0516011901","restrict":[{"tag":"020","subfield":"a"}]} */
84 function advExtractMARC(tbody) {
85 if(!tbody) return null;
86 var term = $n(tbody, 'advanced.marc.value').value;
87 if(!term) return null;
89 var subfield = $n(tbody, 'advanced.marc.subfield').value;
90 if(!subfield) subfield = "_";
92 var tag = $n(tbody, 'advanced.marc.tag').value;
95 return { 'term' : term.toLowerCase(), 'restrict' : [ { 'tag' : tag, 'subfield' : subfield } ] };
98 function advGenericSearch() {
100 var type = getSelectorVal($('adv_quick_type'));
102 var term = $('adv_quick_text').value;
111 arg[PARAM_STYPE] = "";
112 arg[PARAM_TERM] = "";
113 arg[PARAM_RTYPE] = RTYPE_ISBN;
114 arg[PARAM_OFFSET] = 0;
115 arg[PARAM_ADVTERM] = term.toLowerCase();
120 arg[PARAM_STYPE] = "";
121 arg[PARAM_TERM] = "";
122 arg[PARAM_ADVTERM] = term.toLowerCase();
123 arg[PARAM_OFFSET] = 0;
124 arg[PARAM_RTYPE] = RTYPE_ISSN;
129 arg[PARAM_STYPE] = "";
130 arg[PARAM_TERM] = "";
131 arg[PARAM_ADVTERM] = term;
132 arg[PARAM_OFFSET] = 0;
133 arg[PARAM_RTYPE] = RTYPE_TCN;
137 advFindBarcode(term);
143 arg[PARAM_CN] = term;
144 arg[PARAM_DEPTH] = depthSelGetDepth();
145 arg[PARAM_LOCATION] = depthSelGetNewLoc();
150 arg[PARAM_FORM] = 'all'
151 arg[PARAM_RTYPE] = RTYPE_MARC;
152 arg[PARAM_OFFSET] = 0;
153 arg[PARAM_DEPTH] = depthSelGetDepth();
154 arg[PARAM_LOCATION] = depthSelGetNewLoc();
155 arg[PARAM_SEARCHES] = js2JSON([{ 'term' : term.toLowerCase(),
156 'restrict' : [ { 'tag' : '010', 'subfield' : '_' } ] }]);
157 arg[PARAM_ADVTYPE] = ADVTYPE_MARC;
158 arg[PARAM_TERM] = "";
162 default: alert('not done');
165 if(arg.page) goTo(buildOPACLink(arg));
169 function advFindBarcode(barcode) {
170 var req = new Request(FETCH_BIB_ID_BY_BARCODE, barcode);
171 req.callback(advDrawBarcode);
172 req.request.alertEvent = false;
176 function advDrawBarcode(r) {
177 titleid = r.getResultObject();
178 if(checkILSEvent(titleid)) {
179 alertId('myopac.copy.not.found');
185 args[PARAM_RID] = titleid;
186 location.href = buildOPACLink(args);
189 function __setsortsel() {
190 var sel = $('adv_global_sort_by');
191 if (sel.selectedIndex == 0) {
192 $("adv_global_sort_dir").disabled = true;
193 $("adv_global_sort_dir").selectedIndex = 0;
194 } else $("adv_global_sort_dir").disabled = false;