testing commit, please ignore
[kcls-web.git] / opac / skin / css_alt / js / fgi-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 \r
25         /* set up the selector objects, etc */\r
26         G.ui.searchbar.text.value = (getTerm() != null) ? getTerm() : "";\r
27         G.ui.searchbar.facets.value = (getFacet() != null) ? getFacet() : "";\r
28         setSelector(_ts,        getStype());\r
29         setSelector(_fs,        getForm());\r
30 \r
31         depthSelInit();\r
32         \r
33         if(getSearches()) {\r
34                 var searches = JSON2js(getSearches());\r
35                 setSelector(_fs, searches[1].term);\r
36                 if(!G.ui.searchbar.text.value) G.ui.searchbar.text.value = searches[0].term;            \r
37         }\r
38 \r
39         if(!isFrontPage && (findCurrentPage() != MYOPAC)) {\r
40                 attachEvt('common','depthChanged', searchBarSubmit);\r
41         }\r
42 \r
43     if( (limit = $('opac.result.limit2avail')) ) {\r
44         if(getAvail()) limit.checked = true;\r
45         if(getSort() && getSortDir()) \r
46             setSelector($('opac.result.sort'), getSort()+'.'+getSortDir());\r
47     }\r
48         \r
49         if( (limit2 = $('opac.result.limit2avail2')) ) if(getAvail()) limit2.checked = true;\r
50 }\r
51 \r
52 function searchBarSubmit(isFilterSort) {\r
53         var text = G.ui.searchbar.text.value;\r
54         var facet_text = isFrontPage ? '' : G.ui.searchbar.facets.value;\r
55         clearSearchParams();\r
56         if(!text || text == "" || text == "Search Keyword") return;\r
57         //var d = (newSearchDepth != null) ?  newSearchDepth : depthSelGetDepth();\r
58         var d = getDepth();\r
59         if(isNaN(d)) d = 0;\r
60         var args = {};\r
61         \r
62         if(SHOW_MR_DEFAULT || (isFilterSort && findCurrentPage() == MRESULT)) {\r
63                 args.page                               = MRESULT;\r
64         } else {\r
65                 args.page                               = RRESULT;\r
66                 args[PARAM_RTYPE]               = _ts.options[_ts.selectedIndex].value;\r
67         }\r
68 \r
69         args[PARAM_STYPE] = _ts.options[_ts.selectedIndex].value;\r
70         args[PARAM_LOCATION] = depthSelGetNewLoc();\r
71         args[PARAM_DEPTH]               = d;\r
72 \r
73         var val = _fs.options[_fs.selectedIndex].value;\r
74         if(val!='') {\r
75                 args[PARAM_SEARCHES] = '[{"term":"'+text+'","restrict":[{"tag":"245","subfield":"a"}]},{"term":"'+val+'","restrict":[{"tag":"998","subfield":"d"}]}]';\r
76                 args[PARAM_ADVTYPE] = ADVTYPE_MARC;\r
77                 args[PARAM_TERM] = "";\r
78                 args[PARAM_FORM] = 'all';\r
79                 args[PARAM_RTYPE] = RTYPE_MARC;\r
80         } else {\r
81                 args[PARAM_TERM] = text;\r
82                 args[PARAM_FACET]= facet_text;\r
83         }\r
84 \r
85 \r
86     if($('opac.result.limit2avail') && !arguments[1]) {\r
87         args[PARAM_AVAIL] = ($('opac.result.limit2avail').checked) ? 1 : '';\r
88         if( (val = getSelectorVal($('opac.result.sort'))) ) {\r
89             args[PARAM_SORT] = val.split('.')[0];\r
90             args[PARAM_SORT_DIR] = val.split('.')[1];\r
91         }\r
92     } else if(arguments[1]) {\r
93         args[PARAM_AVAIL] = (arguments[1].checked) ? 1 : '';\r
94         if( (val = getSelectorVal($('opac.result.sort'))) ) {\r
95             args[PARAM_SORT] = val.split('.')[0];\r
96             args[PARAM_SORT_DIR] = val.split('.')[1];\r
97         }\r
98         }\r
99 \r
100         goTo(buildOPACLink(args));\r
101 }\r
102 \r
103 \r