+++ /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