--- /dev/null
+/* advanced search interface */\r
+\r
+attachEvt("common", "run", advInit);\r
+\r
+function advInit() { \r
+\r
+ /* propogate these? */\r
+\r
+ depthSelInit(); \r
+ setEnterFunc( $n( $('advanced.marc.tbody'), 'advanced.marc.value'), advMARCRun );\r
+ hideMe($('adv_quick_search_sidebar'));\r
+\r
+ /*\r
+ if(isXUL()) \r
+ setSelector($('adv_quick_type'), 'tcn'); */\r
+\r
+ setEnterFunc($('adv_quick_text'), advGenericSearch);\r
+ hideMe($('adv_marc_search_sidebar'));\r
+ //hideMe($('adv_global_search'));\r
+}\r
+\r
+function __setsortsel() {\r
+ var sel = $('adv_global_sort_by');\r
+ if (sel.selectedIndex == 0) {\r
+ $("adv_global_sort_dir").disabled = true;\r
+ $("adv_global_sort_dir").selectedIndex = 0;\r
+ } else $("adv_global_sort_dir").disabled = false;\r
+}\r
+dojo.addOnLoad(__setsortsel);\r
+\r
+function advAddMARC() {\r
+ var newt = $('adv_sdbar_table').cloneNode(true);\r
+ newt.id = "";\r
+ unHideMe($n(newt, 'crow'));\r
+ $n(newt, 'advanced.marc.tag').value = "";\r
+ $n(newt, 'advanced.marc.subfield').value = "";\r
+ $n(newt, 'advanced.marc.value').value = "";\r
+ $('adv_marc_search_sidebar').insertBefore(newt, $('adv_marc_submit'));\r
+}\r
+\r
+function advMARCRun() {\r
+\r
+ clearSearchParams();\r
+\r
+ var div = $('adv_marc_search_sidebar');\r
+ var tbodies = div.getElementsByTagName('tbody');\r
+ var searches = [];\r
+\r
+ for( var i = 0; i < tbodies.length; i++ ) {\r
+ var tbody = tbodies[i];\r
+ var val = advExtractMARC(tbody);\r
+ if(val) searches.push(val);\r
+ }\r
+\r
+ if(searches.length == 0) return;\r
+\r
+ var arg = {};\r
+ arg.page = RRESULT;\r
+ arg[PARAM_FORM] = 'all';\r
+ arg[PARAM_RTYPE] = RTYPE_MARC;\r
+ arg[PARAM_OFFSET] = 0;\r
+ arg[PARAM_DEPTH] = depthSelGetDepth();\r
+ arg[PARAM_LOCATION] = depthSelGetNewLoc();\r
+ arg[PARAM_SEARCHES] = js2JSON(searches);\r
+ arg[PARAM_ADVTYPE] = ADVTYPE_MARC;\r
+ arg[PARAM_TERM] = "";\r
+\r
+ goTo(buildOPACLink(arg));\r
+}\r
+\r
+\r
+/* EXAMPLE => {"term":"0516011901","restrict":[{"tag":"020","subfield":"a"}]} */\r
+function advExtractMARC(tbody) {\r
+ if(!tbody) return null;\r
+ var term = $n(tbody, 'advanced.marc.value').value;\r
+ if(!term) return null;\r
+\r
+ var subfield = $n(tbody, 'advanced.marc.subfield').value;\r
+ if(!subfield) subfield = "_";\r
+\r
+ var tag = $n(tbody, 'advanced.marc.tag').value;\r
+ if(!tag) return null;\r
+\r
+ return { 'term' : term.toLowerCase(), 'restrict' : [ { 'tag' : tag, 'subfield' : subfield } ] };\r
+}\r
+\r
+function advGenericSearch() {\r
+ clearSearchParams();\r
+ var type = getSelectorVal($('adv_quick_type'));\r
+ \r
+ var term = $('adv_quick_text').value;\r
+ if(!term) return;\r
+\r
+ var arg = {};\r
+\r
+ switch(type) {\r
+\r
+ case 'isbn' :\r
+ arg.page = RRESULT;\r
+ arg[PARAM_STYPE] = "";\r
+ arg[PARAM_TERM] = "";\r
+ arg[PARAM_RTYPE] = RTYPE_ISBN;\r
+ arg[PARAM_OFFSET] = 0;\r
+ arg[PARAM_ADVTERM] = term.toLowerCase();\r
+ break;\r
+ \r
+ case 'issn' :\r
+ arg.page = RRESULT;\r
+ arg[PARAM_STYPE] = "";\r
+ arg[PARAM_TERM] = "";\r
+ arg[PARAM_ADVTERM] = term.toLowerCase();\r
+ arg[PARAM_OFFSET] = 0;\r
+ arg[PARAM_RTYPE] = RTYPE_ISSN;\r
+ break;\r
+\r
+ case 'tcn' :\r
+ arg.page = RRESULT;\r
+ arg[PARAM_STYPE] = "";\r
+ arg[PARAM_TERM] = "";\r
+ arg[PARAM_ADVTERM] = term;\r
+ arg[PARAM_OFFSET] = 0;\r
+ arg[PARAM_RTYPE] = RTYPE_TCN;\r
+ break;\r
+\r
+ case 'barcode':\r
+ advFindBarcode(term);\r
+ break;\r
+\r
+\r
+ case 'cn':\r
+ arg.page = CNBROWSE;\r
+ arg[PARAM_CN] = term;\r
+ arg[PARAM_DEPTH] = depthSelGetDepth();\r
+ arg[PARAM_LOCATION] = depthSelGetNewLoc();\r
+ break;\r
+\r
+ case 'lccn':\r
+ arg.page = RRESULT;\r
+ arg[PARAM_FORM] = 'all'\r
+ arg[PARAM_RTYPE] = RTYPE_MARC;\r
+ arg[PARAM_OFFSET] = 0;\r
+ arg[PARAM_DEPTH] = depthSelGetDepth();\r
+ arg[PARAM_LOCATION] = depthSelGetNewLoc();\r
+ arg[PARAM_SEARCHES] = js2JSON([{ 'term' : term.toLowerCase(), \r
+ 'restrict' : [ { 'tag' : '010', 'subfield' : '_' } ] }]);\r
+ arg[PARAM_ADVTYPE] = ADVTYPE_MARC;\r
+ arg[PARAM_TERM] = "";\r
+ break;\r
+\r
+\r
+ default: alert('not done');\r
+ }\r
+\r
+ if(arg.page) goTo(buildOPACLink(arg));\r
+}\r
+\r
+\r
+function advFindBarcode(barcode) {\r
+ var req = new Request(FETCH_BIB_ID_BY_BARCODE, barcode);\r
+ req.callback(advDrawBarcode);\r
+ req.request.alertEvent = false;\r
+ req.send();\r
+}\r
+\r
+function advDrawBarcode(r) {\r
+ titleid = r.getResultObject();\r
+ if(checkILSEvent(titleid)) {\r
+ alertId('myopac.copy.not.found');\r
+ return;\r
+ }\r
+ if(!titleid) return;\r
+ var args = {};\r
+ args.page = RDETAIL;\r
+ args[PARAM_RID] = titleid;\r
+ location.href = buildOPACLink(args);\r
+}\r
+\r
+\r
+\r