Initial dev repository
[kcls-web.git] / opac / skin / phasefx / js / miker-search_bar.js
diff --git a/opac/skin/phasefx/js/miker-search_bar.js b/opac/skin/phasefx/js/miker-search_bar.js
new file mode 100644 (file)
index 0000000..a6a1c50
--- /dev/null
@@ -0,0 +1,113 @@
+var searchBarExpanded = false;\r
+/* our search selector boxes */\r
+var _ts, _fs;\r
+var isFrontPage = false;\r
+G.evt.common.init.push(searchBarInit);\r
+\r
+/* if set by the org selector, this will be the location used the\r
+       next time the search is submitted */\r
+var newSearchLocation; \r
+var newSearchDepth = null;\r
+\r
+\r
+function searchBarInit() {\r
+\r
+       _ts = G.ui.searchbar.type_selector;\r
+       _fs = G.ui.searchbar.form_selector;\r
+\r
+       try{G.ui.searchbar.text.focus();}catch(e){}\r
+       G.ui.searchbar.text.onkeydown = function(evt) {if(userPressedEnter(evt)) { searchBarSubmit(); } };\r
+       _ts.onkeydown = function(evt) {if(userPressedEnter(evt)) { searchBarSubmit(); } };\r
+       _fs.onkeydown = function(evt) {if(userPressedEnter(evt)) { searchBarSubmit(); } };\r
+\r
+       G.ui.searchbar.submit.onclick = searchBarSubmit;\r
+\r
+       /* set up the selector objects, etc */\r
+       G.ui.searchbar.text.value = (getTerm() != null) ? getTerm() : "";\r
+       G.ui.searchbar.facets.value = (getFacet() != null) ? getFacet() : "";\r
+       setSelector(_ts,        getStype());\r
+       setSelector(_fs,        getForm());\r
+\r
+       depthSelInit();\r
+       \r
+       if(getSearches()) {\r
+               var searches = JSON2js(getSearches());\r
+               setSelector(_fs, searches[1].term);\r
+               if(!G.ui.searchbar.text.value) G.ui.searchbar.text.value = searches[0].term;            \r
+       }\r
+\r
+       if(!isFrontPage && (findCurrentPage() != MYOPAC)) {\r
+               attachEvt('common','depthChanged', searchBarSubmit);\r
+       }\r
+\r
+    if( (limit = $('opac.result.limit2avail')) ) {\r
+        if(getAvail()) limit.checked = true;\r
+        if(getSort() && getSortDir()) \r
+            setSelector($('opac.result.sort'), getSort()+'.'+getSortDir());\r
+    }\r
+       \r
+       if( (limit2 = $('opac.result.limit2avail2')) ) if(getAvail()) limit2.checked = true;\r
+}\r
+\r
+function searchBarSubmit(isFilterSort) {\r
+       var text = G.ui.searchbar.text.value;\r
+       var facet_text = isFrontPage ? '' : G.ui.searchbar.facets.value;\r
+       clearSearchParams();\r
+       if(!text || text == "" || text == "Search Keyword") return;\r
+       //var d = (newSearchDepth != null) ?  newSearchDepth : depthSelGetDepth();\r
+       var d = getDepth();\r
+       if(isNaN(d)) d = 0;\r
+       var args = {};\r
+       \r
+       if(SHOW_MR_DEFAULT || (isFilterSort && findCurrentPage() == MRESULT)) {\r
+               args.page                               = MRESULT;\r
+       } else {\r
+               args.page                               = RRESULT;\r
+               args[PARAM_RTYPE]               = _ts.options[_ts.selectedIndex].value;\r
+       }\r
+\r
+// The following commented-out code does not do what it is apparently\r
+// intended to do and has no effect on search other than causing load\r
+/*\r
+       args[PARAM_STYPE] = _ts.options[_ts.selectedIndex].value;\r
+       args[PARAM_LOCATION] = depthSelGetNewLoc();\r
+       args[PARAM_DEPTH]               = d;\r
+\r
+       var val = _fs.options[_fs.selectedIndex].value;\r
+       if(val!='') {\r
+               args[PARAM_SEARCHES] = '[{"term":"'+text+'","restrict":[{"tag":"245","subfield":"a"}]},{"term":"'+val+'","restrict":[{"tag":"998","subfield":"d"}]}]';\r
+               args[PARAM_ADVTYPE] = ADVTYPE_MARC;\r
+               args[PARAM_TERM] = "";\r
+               args[PARAM_FORM] = 'all';\r
+               args[PARAM_RTYPE] = RTYPE_MARC;\r
+       } else {\r
+               args[PARAM_TERM] = text;\r
+               args[PARAM_FACET]= facet_text;\r
+       }\r
+*/\r
+\r
+    args[PARAM_STYPE]       = _ts.options[_ts.selectedIndex].value;\r
+    args[PARAM_TERM]        = text;\r
+    args[PARAM_FACET]       = facet_text;\r
+    args[PARAM_LOCATION] = depthSelGetNewLoc();\r
+    args[PARAM_DEPTH]       = d;\r
+    args[PARAM_FORM]        = _fs.options[_fs.selectedIndex].value;\r
+\r
+    if($('opac.result.limit2avail') && !arguments[1]) {\r
+        args[PARAM_AVAIL] = ($('opac.result.limit2avail').checked) ? 1 : '';\r
+        if( (val = getSelectorVal($('opac.result.sort'))) ) {\r
+            args[PARAM_SORT] = val.split('.')[0];\r
+            args[PARAM_SORT_DIR] = val.split('.')[1];\r
+        }\r
+    } else if(arguments[1]) {\r
+        args[PARAM_AVAIL] = (arguments[1].checked) ? 1 : '';\r
+        if( (val = getSelectorVal($('opac.result.sort'))) ) {\r
+            args[PARAM_SORT] = val.split('.')[0];\r
+            args[PARAM_SORT_DIR] = val.split('.')[1];\r
+        }\r
+       }\r
+\r
+       goTo(buildOPACLink(args));\r
+}\r
+\r
+\r