1 /* advanced search interface */
\r
3 attachEvt("common", "run", advInit);
\r
5 function advInit() {
\r
7 /* propogate these? */
\r
10 setEnterFunc( $n( $('advanced.marc.tbody'), 'advanced.marc.value'), advMARCRun );
\r
11 hideMe($('adv_quick_search_sidebar'));
\r
15 setSelector($('adv_quick_type'), 'tcn'); */
\r
17 setEnterFunc($('adv_quick_text'), advGenericSearch);
\r
18 hideMe($('adv_marc_search_sidebar'));
\r
19 //hideMe($('adv_global_search'));
\r
22 function __setsortsel() {
\r
23 var sel = $('adv_global_sort_by');
\r
24 if (sel.selectedIndex == 0) {
\r
25 $("adv_global_sort_dir").disabled = true;
\r
26 $("adv_global_sort_dir").selectedIndex = 0;
\r
27 } else $("adv_global_sort_dir").disabled = false;
\r
29 dojo.addOnLoad(__setsortsel);
\r
31 function advAddMARC() {
\r
32 var newt = $('adv_sdbar_table').cloneNode(true);
\r
34 unHideMe($n(newt, 'crow'));
\r
35 $n(newt, 'advanced.marc.tag').value = "";
\r
36 $n(newt, 'advanced.marc.subfield').value = "";
\r
37 $n(newt, 'advanced.marc.value').value = "";
\r
38 $('adv_marc_search_sidebar').insertBefore(newt, $('adv_marc_submit'));
\r
41 function advMARCRun() {
\r
43 clearSearchParams();
\r
45 var div = $('adv_marc_search_sidebar');
\r
46 var tbodies = div.getElementsByTagName('tbody');
\r
49 for( var i = 0; i < tbodies.length; i++ ) {
\r
50 var tbody = tbodies[i];
\r
51 var val = advExtractMARC(tbody);
\r
52 if(val) searches.push(val);
\r
55 if(searches.length == 0) return;
\r
59 arg[PARAM_FORM] = 'all';
\r
60 arg[PARAM_RTYPE] = RTYPE_MARC;
\r
61 arg[PARAM_OFFSET] = 0;
\r
62 arg[PARAM_DEPTH] = depthSelGetDepth();
\r
63 arg[PARAM_LOCATION] = depthSelGetNewLoc();
\r
64 arg[PARAM_SEARCHES] = js2JSON(searches);
\r
65 arg[PARAM_ADVTYPE] = ADVTYPE_MARC;
\r
66 arg[PARAM_TERM] = "";
\r
68 goTo(buildOPACLink(arg));
\r
72 /* EXAMPLE => {"term":"0516011901","restrict":[{"tag":"020","subfield":"a"}]} */
\r
73 function advExtractMARC(tbody) {
\r
74 if(!tbody) return null;
\r
75 var term = $n(tbody, 'advanced.marc.value').value;
\r
76 if(!term) return null;
\r
78 var subfield = $n(tbody, 'advanced.marc.subfield').value;
\r
79 if(!subfield) subfield = "_";
\r
81 var tag = $n(tbody, 'advanced.marc.tag').value;
\r
82 if(!tag) return null;
\r
84 return { 'term' : term.toLowerCase(), 'restrict' : [ { 'tag' : tag, 'subfield' : subfield } ] };
\r
87 function advGenericSearch() {
\r
88 clearSearchParams();
\r
89 var type = getSelectorVal($('adv_quick_type'));
\r
91 var term = $('adv_quick_text').value;
\r
100 arg[PARAM_STYPE] = "";
\r
101 arg[PARAM_TERM] = "";
\r
102 arg[PARAM_RTYPE] = RTYPE_ISBN;
\r
103 arg[PARAM_OFFSET] = 0;
\r
104 arg[PARAM_ADVTERM] = term.toLowerCase();
\r
108 arg.page = RRESULT;
\r
109 arg[PARAM_STYPE] = "";
\r
110 arg[PARAM_TERM] = "";
\r
111 arg[PARAM_ADVTERM] = term.toLowerCase();
\r
112 arg[PARAM_OFFSET] = 0;
\r
113 arg[PARAM_RTYPE] = RTYPE_ISSN;
\r
117 arg.page = RRESULT;
\r
118 arg[PARAM_STYPE] = "";
\r
119 arg[PARAM_TERM] = "";
\r
120 arg[PARAM_ADVTERM] = term;
\r
121 arg[PARAM_OFFSET] = 0;
\r
122 arg[PARAM_RTYPE] = RTYPE_TCN;
\r
126 advFindBarcode(term);
\r
131 arg.page = CNBROWSE;
\r
132 arg[PARAM_CN] = term;
\r
133 arg[PARAM_DEPTH] = depthSelGetDepth();
\r
134 arg[PARAM_LOCATION] = depthSelGetNewLoc();
\r
138 arg.page = RRESULT;
\r
139 arg[PARAM_FORM] = 'all'
\r
140 arg[PARAM_RTYPE] = RTYPE_MARC;
\r
141 arg[PARAM_OFFSET] = 0;
\r
142 arg[PARAM_DEPTH] = depthSelGetDepth();
\r
143 arg[PARAM_LOCATION] = depthSelGetNewLoc();
\r
144 arg[PARAM_SEARCHES] = js2JSON([{ 'term' : term.toLowerCase(),
\r
145 'restrict' : [ { 'tag' : '010', 'subfield' : '_' } ] }]);
\r
146 arg[PARAM_ADVTYPE] = ADVTYPE_MARC;
\r
147 arg[PARAM_TERM] = "";
\r
151 default: alert('not done');
\r
154 if(arg.page) goTo(buildOPACLink(arg));
\r
158 function advFindBarcode(barcode) {
\r
159 var req = new Request(FETCH_BIB_ID_BY_BARCODE, barcode);
\r
160 req.callback(advDrawBarcode);
\r
161 req.request.alertEvent = false;
\r
165 function advDrawBarcode(r) {
\r
166 titleid = r.getResultObject();
\r
167 if(checkILSEvent(titleid)) {
\r
168 alertId('myopac.copy.not.found');
\r
171 if(!titleid) return;
\r
173 args.page = RDETAIL;
\r
174 args[PARAM_RID] = titleid;
\r
175 location.href = buildOPACLink(args);
\r