1 /* advanced search interface */
3 attachEvt("common", "run", advInit);
11 setEnterFunc($('opac.advanced.quick.isbn'), advISBNRun );
12 setEnterFunc($('opac.advanced.quick.issn'), advISSNRun );
13 setEnterFunc($('opac.advanced.quick.cn'), advCNRun );
14 setEnterFunc( $n( $('advanced.marc.tbody'), 'advanced.marc.value'), advMARCRun );
16 unHideMe($('adv_quick_search_sidebar'));
18 setSelector($('adv_quick_type'), 'tcn');
19 setEnterFunc($('adv_quick_text'), advGenericSearch);
22 function advISBNRun() {
23 var isbn = $('opac.advanced.quick.isbn').value;
27 arg[PARAM_STYPE] = "";
29 arg[PARAM_RTYPE] = RTYPE_ISBN;
30 arg[PARAM_OFFSET] = 0;
31 arg[PARAM_ADVTERM] = isbn;
32 goTo(buildOPACLink(arg));
35 function advISSNRun() {
36 var issn = $('opac.advanced.quick.issn').value;
40 arg[PARAM_STYPE] = "";
42 arg[PARAM_ADVTERM] = issn;
43 arg[PARAM_OFFSET] = 0;
44 arg[PARAM_RTYPE] = RTYPE_ISSN;
45 goTo(buildOPACLink(arg));
49 var cn = $('opac.advanced.quick.cn').value;
54 goTo(buildOPACLink(arg));
58 function advAddMARC() {
59 var newrow = $('advanced.marc.template').cloneNode(true);
60 $n(newrow, 'advanced.marc.tag').value = "";
61 $n(newrow, 'advanced.marc.subfield').value = "";
62 $n(newrow, 'advanced.marc.value').value = "";
63 $('advanced.marc.tbody').insertBefore(newrow, $('advanced.marc.submit.row'));
66 function advMARCRun() {
68 var t = $('advanced.marc.tbody');
71 var children = t.getElementsByTagName('tr');
72 for( var c in children ) {
73 var child = children[c];
74 if(!(child && child.innerHTML)) continue;
75 var val = advExtractMARC(child);
76 if(val) searches.push(val);
79 if(searches.length == 0) return;
83 arg[PARAM_FORM] = 'all'
84 arg[PARAM_RTYPE] = RTYPE_MARC;
85 arg[PARAM_OFFSET] = 0;
86 arg[PARAM_DEPTH] = depthSelGetDepth();
87 arg[PARAM_LOCATION] = depthSelGetNewLoc();
88 arg[PARAM_SEARCHES] = js2JSON(searches);
89 arg[PARAM_ADVTYPE] = ADVTYPE_MARC;
92 goTo(buildOPACLink(arg));
96 /* EXAMPLE => {"term":"0516011901","restrict":[{"tag":"020","subfield":"a"}]} */
97 function advExtractMARC(row) {
98 if(!row || row.id == 'advanced.marc.submit.row') return null;
99 var term = $n(row, 'advanced.marc.value').value;
100 if(!term) return null;
102 var subfield = $n(row, 'advanced.marc.subfield').value;
103 if(!subfield) subfield = "_";
105 var tag = $n(row, 'advanced.marc.tag').value;
106 if(!tag) return null;
108 return { 'term' : term, 'restrict' : [ { 'tag' : tag, 'subfield' : subfield } ] };
111 function advGenericSearch() {
112 var type = getSelectorVal($('adv_quick_type'));
113 var term = $('adv_quick_text').value;
122 arg[PARAM_STYPE] = "";
123 arg[PARAM_TERM] = "";
124 arg[PARAM_RTYPE] = RTYPE_ISBN;
125 arg[PARAM_OFFSET] = 0;
126 arg[PARAM_ADVTERM] = term
131 arg[PARAM_STYPE] = "";
132 arg[PARAM_TERM] = "";
133 arg[PARAM_ADVTERM] = term;
134 arg[PARAM_OFFSET] = 0;
135 arg[PARAM_RTYPE] = RTYPE_ISSN;
140 arg[PARAM_STYPE] = "";
141 arg[PARAM_TERM] = "";
142 arg[PARAM_ADVTERM] = term;
143 arg[PARAM_OFFSET] = 0;
144 arg[PARAM_RTYPE] = RTYPE_TCN;
150 arg[PARAM_CN] = term;
153 default: alert('not done yet');
157 if(arg.page) goTo(buildOPACLink(arg));