1 AdvancedSearchPage.prototype = new Page();
2 AdvancedSearchPage.prototype.constructor = AdvancedSearchPage;
3 AdvancedSearchPage.baseClass = Page.constructor;
6 var globalAdvancedSearchPage = null;
8 // ---------------------------------------------------------------------------------
10 // ---------------------------------------------------------------------------------
11 function AdvancedSearchPage() {
13 if(globalAdvancedSearchPage)
14 return globalAdvancedSearchPage;
16 this.searchBar = new SearchBarChunk();
17 globalAdvancedSearchPage = this;
21 AdvancedSearchPage.prototype.init = function() {
22 this.searchBarForm = new SearchBarFormChunk();
23 this.searchBar = new SearchBarChunk();
25 this.advISBN = getById("adv_isbn");
28 this.globalSearchButton = getById("adv_global_search_button");
29 this.tcnText = getById("adv_tcn_text");
30 this.ISBNText = getById("adv_isbn_text");
31 this.barcodeText = getById("adv_barcode_text");
32 var refinedButton = getById("adv_search_refined_submit");
34 this.globalSearchButton.onclick = doGlobalSearch;
35 refinedButton.onclick = doGlobalSearch;
40 AdvancedSearchPage.prototype.reset = function() {
44 AdvancedSearchPage.instance = function() {
45 if(globalAdvancedSearchPage) {
46 return globalAdvancedSearchPage;
48 return new AdvancedSearchPage();
51 function doGlobalSearch() {
53 var obj = AdvancedSearchPage.instance();
55 if( obj.ISBNText.value != null
56 && obj.ISBNText.value.length > 1 ) {
57 url_redirect( [ "target", "record_result", "page", "0",
58 "search", "global", "isbn", obj.ISBNText.value ] );
62 if( obj.tcnText.value != null
63 && obj.tcnText.value.length > 1 ) {
64 url_redirect( [ "target", "record_result", "page", "0",
65 "search", "global", "tcn", obj.tcnText.value ] );
68 if( obj.barcodeText.value != null
69 && obj.barcodeText.value.length > 1 ) {
70 url_redirect( [ "target", "record_result", "page", "0",
71 "search", "global", "barcode", obj.barcodeText.value ] );
75 var allWords = getById("adv_all_words").value;
76 var exactWords = getById("adv_exact_words").value;
77 var noneWords = getById("adv_none_words").value;
78 var type = getById("adv_search_type").value;
79 if(allWords || exactWords || noneWords) {
80 var search_string = obj.buildRefinedSearch(allWords, exactWords, noneWords);
81 debug("Refined search string is [ " + search_string + " ] and type " + type);
84 "target", "mr_result",
85 "mr_search_type", type,
86 "mr_search_query", search_string,
94 AdvancedSearchPage.prototype.buildRefinedSearch =
95 function(allWords, exactWords, noneWords) {
104 if(exactWords.indexOf('"') > -1)
105 string += " " + exactWords;
107 string += " \"" + exactWords + "\"";
112 var words = noneWords.split(" ");
114 string += " -" + words[i];