testing commit, please ignore
[kcls-web.git] / opac / skin / login2 / js / search_bar.js
1 var searchBarExpanded = false;\r
2 /* our search selector boxes */\r
3 var _ts, _fs;\r
4 var isFrontPage = false;\r
5 G.evt.common.init.push(searchBarInit);\r
6 \r
7 /* if set by the org selector, this will be the location used the\r
8         next time the search is submitted */\r
9 var newSearchLocation; \r
10 var newSearchDepth = null;\r
11 \r
12 \r
13 function searchBarInit() {\r
14 \r
15         _ts = G.ui.searchbar.type_selector;\r
16         _fs = G.ui.searchbar.form_selector;\r
17 \r
18         try{G.ui.searchbar.text.focus();}catch(e){}\r
19         G.ui.searchbar.text.onkeydown = function(evt) {if(userPressedEnter(evt)) { searchBarSubmit(); } };\r
20         _ts.onkeydown = function(evt) {if(userPressedEnter(evt)) { searchBarSubmit(); } };\r
21         _fs.onkeydown = function(evt) {if(userPressedEnter(evt)) { searchBarSubmit(); } };\r
22 \r
23         G.ui.searchbar.submit.onclick = searchBarSubmit;\r
24         _fs.onchange = function(e) { \r
25                 var fs = G.ui.searchbar.form_selector;\r
26                 var val = fs.options[fs.selectedIndex].value;\r
27                 \r
28                 G.ui.searchbar.facets.value = val==''?'':"identifier|mattype["+val+"]";\r
29         };\r
30 \r
31         /* set up the selector objects, etc */\r
32         var txtVal = (getTerm() != null) ? getTerm() : "";\r
33         if(getStype()=="cn") txtVal = txtVal.replace(/identifier\|bibcn:/, "");\r
34         \r
35         G.ui.searchbar.text.value = txtVal;\r
36         G.ui.searchbar.facets.value = (getFacet() != null) ? getFacet() : "";\r
37         setSelector(_ts,        getStype());\r
38         setSelector(_fs,        getForm());\r
39 \r
40         depthSelInit();\r
41         \r
42         if(getSearches()) {\r
43                 var searches = JSON2js(getSearches());\r
44                 setSelector(_fs, searches[1].term);\r
45                 if(!G.ui.searchbar.text.value) G.ui.searchbar.text.value = searches[0].term;            \r
46         }\r
47 \r
48         if(!isFrontPage && (findCurrentPage() != MYOPAC)) {\r
49                 attachEvt('common','depthChanged', searchBarSubmit);\r
50         }\r
51 \r
52     if( (limit = $('opac.result.limit2avail')) ) {\r
53         if(getAvail()) limit.checked = true;\r
54         if(getSort() && getSortDir()) \r
55             setSelector($('opac.result.sort'), getSort()+'.'+getSortDir());\r
56     }\r
57         \r
58         if( (limit2 = $('opac.result.limit2avail2')) ) if(getAvail()) limit2.checked = true;\r
59 }\r
60 \r
61 function searchBarSubmit(isFilterSort) {\r
62         var text = G.ui.searchbar.text.value;\r
63         var facet_text = isFrontPage ? '' : G.ui.searchbar.facets.value;\r
64         clearSearchParams();\r
65         if(!text || text == "" || text == "Search Keyword") return;\r
66         //var d = (newSearchDepth != null) ?  newSearchDepth : depthSelGetDepth();\r
67         var d = getDepth();\r
68         if(isNaN(d)) d = 0;\r
69         var args = {};\r
70         \r
71         var tsVal = _ts.options[_ts.selectedIndex].value;\r
72         if(SHOW_MR_DEFAULT || (isFilterSort && findCurrentPage() == MRESULT)) {\r
73                 args.page                               = MRESULT;\r
74         } else {\r
75                 args.page                               = RRESULT;\r
76                 args[PARAM_RTYPE]               = tsVal=="cn"?"keyword":tsVal;\r
77         }\r
78 \r
79     args[PARAM_STYPE]       = tsVal;\r
80     args[PARAM_TERM]        = tsVal=="cn"?"identifier|bibcn:"+text:text;\r
81     args[PARAM_FACET]       = facet_text;\r
82     args[PARAM_LOCATION] = depthSelGetNewLoc();\r
83     args[PARAM_DEPTH]       = d;\r
84     args[PARAM_FORM]        = _fs.options[_fs.selectedIndex].value;\r
85         //args[PARAM_SORT] = isFilterSort?'':'pubdate';\r
86         //args[PARAM_SORT_DIR] = isFilterSort?'':'desc';\r
87 \r
88     if($('opac.result.limit2avail') && !arguments[1]) {\r
89         args[PARAM_AVAIL] = ($('opac.result.limit2avail').checked) ? 1 : '';\r
90         if( (val = getSelectorVal($('opac.result.sort'))) ) {\r
91             args[PARAM_SORT] = val.split('.')[0];\r
92             args[PARAM_SORT_DIR] = val.split('.')[1];\r
93         }\r
94     } else if(arguments[1]) {\r
95         args[PARAM_AVAIL] = (arguments[1].checked) ? 1 : '';\r
96         if( (val = getSelectorVal($('opac.result.sort'))) ) {\r
97             args[PARAM_SORT] = val.split('.')[0];\r
98             args[PARAM_SORT_DIR] = val.split('.')[1];\r
99         }\r
100         }\r
101 \r
102         goTo(buildOPACLink(args));\r
103 }\r
104 \r
105 \r