1 /* advanced search interface */
3 attachEvt("common", "run", advInit);
11 setEnterFunc( $n( $('advanced.marc.tbody'), 'advanced.marc.value'), advMARCRun );
13 unHideMe($('adv_quick_search_sidebar'));
15 setSelector($('adv_quick_type'), 'tcn');
16 setEnterFunc($('adv_quick_text'), advGenericSearch);
18 unHideMe($('adv_marc_search_sidebar'));
22 function advAddMARC() {
23 var newt = $('adv_sdbar_table').cloneNode(true);
25 unHideMe($n(newt, 'crow'));
26 $n(newt, 'advanced.marc.tag').value = "";
27 $n(newt, 'advanced.marc.subfield').value = "";
28 $n(newt, 'advanced.marc.value').value = "";
29 $('adv_marc_search_sidebar').insertBefore(newt, $('adv_marc_submit'));
32 function advMARCRun() {
34 var div = $('adv_marc_search_sidebar');
35 var tbodies = div.getElementsByTagName('tbody');
38 for( var i = 0; i < tbodies.length; i++ ) {
39 var tbody = tbodies[i];
40 var val = advExtractMARC(tbody);
41 if(val) searches.push(val);
44 if(searches.length == 0) return;
48 arg[PARAM_FORM] = 'all'
49 arg[PARAM_RTYPE] = RTYPE_MARC;
50 arg[PARAM_OFFSET] = 0;
51 arg[PARAM_DEPTH] = depthSelGetDepth();
52 arg[PARAM_LOCATION] = depthSelGetNewLoc();
53 arg[PARAM_SEARCHES] = js2JSON(searches);
54 arg[PARAM_ADVTYPE] = ADVTYPE_MARC;
57 goTo(buildOPACLink(arg));
61 /* EXAMPLE => {"term":"0516011901","restrict":[{"tag":"020","subfield":"a"}]} */
62 function advExtractMARC(tbody) {
63 if(!tbody) return null;
64 var term = $n(tbody, 'advanced.marc.value').value;
65 if(!term) return null;
67 var subfield = $n(tbody, 'advanced.marc.subfield').value;
68 if(!subfield) subfield = "_";
70 var tag = $n(tbody, 'advanced.marc.tag').value;
73 return { 'term' : term.toLowerCase(), 'restrict' : [ { 'tag' : tag, 'subfield' : subfield } ] };
76 function advGenericSearch() {
77 var type = getSelectorVal($('adv_quick_type'));
79 var term = $('adv_quick_text').value;
88 arg[PARAM_STYPE] = "";
90 arg[PARAM_RTYPE] = RTYPE_ISBN;
91 arg[PARAM_OFFSET] = 0;
92 arg[PARAM_ADVTERM] = term.toLowerCase();
97 arg[PARAM_STYPE] = "";
99 arg[PARAM_ADVTERM] = term.toLowerCase();
100 arg[PARAM_OFFSET] = 0;
101 arg[PARAM_RTYPE] = RTYPE_ISSN;
106 arg[PARAM_STYPE] = "";
107 arg[PARAM_TERM] = "";
108 arg[PARAM_ADVTERM] = term.toLowerCase();
109 arg[PARAM_OFFSET] = 0;
110 arg[PARAM_RTYPE] = RTYPE_TCN;
116 arg[PARAM_CN] = term;
117 arg[PARAM_DEPTH] = depthSelGetDepth();
118 arg[PARAM_LOCATION] = depthSelGetNewLoc();
123 arg[PARAM_FORM] = 'all'
124 arg[PARAM_RTYPE] = RTYPE_MARC;
125 arg[PARAM_OFFSET] = 0;
126 arg[PARAM_DEPTH] = depthSelGetDepth();
127 arg[PARAM_LOCATION] = depthSelGetNewLoc();
128 arg[PARAM_SEARCHES] = js2JSON([{ 'term' : term.toLowerCase(),
129 'restrict' : [ { 'tag' : '010', 'subfield' : '_' } ] }]);
130 arg[PARAM_ADVTYPE] = ADVTYPE_MARC;
131 arg[PARAM_TERM] = "";
135 default: alert('not done');
138 if(arg.page) goTo(buildOPACLink(arg));