Initial dev repository
[kcls-web.git] / opac / skin / kcls / js / search_bar.js
diff --git a/opac/skin/kcls/js/search_bar.js b/opac/skin/kcls/js/search_bar.js
new file mode 100644 (file)
index 0000000..ae63f13
--- /dev/null
@@ -0,0 +1,105 @@
+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
+       _fs.onchange = function(e) { \r
+               var fs = G.ui.searchbar.form_selector;\r
+               var val = fs.options[fs.selectedIndex].value;\r
+               \r
+               G.ui.searchbar.facets.value = val==''?'':"identifier|mattype["+val+"]";\r
+       };\r
+\r
+       /* set up the selector objects, etc */\r
+       var txtVal = (getTerm() != null) ? getTerm() : "";\r
+       if(getStype()=="cn") txtVal = txtVal.replace(/identifier\|bibcn:/, "");\r
+       \r
+       G.ui.searchbar.text.value = txtVal;\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
+       var tsVal = _ts.options[_ts.selectedIndex].value;\r
+       if(SHOW_MR_DEFAULT || (isFilterSort && findCurrentPage() == MRESULT)) {\r
+               args.page                               = MRESULT;\r
+       } else {\r
+               args.page                               = RRESULT;\r
+               args[PARAM_RTYPE]               = tsVal=="cn"?"keyword":tsVal;\r
+       }\r
+\r
+    args[PARAM_STYPE]       = tsVal;\r
+    args[PARAM_TERM]        = tsVal=="cn"?"identifier|bibcn:"+text: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
+       //args[PARAM_SORT] = isFilterSort?'':'pubdate';\r
+       //args[PARAM_SORT_DIR] = isFilterSort?'':'desc';\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