1var searchSuggestFormSelector = ".js-suggest-search"; 2var searchSuggestAreaSelector = "#search_suggest_area_"; 3var searchSuggestPendingTime = 200; 4var searchSuggestMinLength = 1; 5var searchSuggestURL = ''; 6var searchSuggestAreaTmpl = '<div id="search_suggest_area_" class="block-search-suggest"></div>'; 7var searchSuggestTimer = null; 8var searchSuggestCurrentForm = null; 9/* åæåå¦ç */ 10function InitSuggest(){ 11 /* ãµã¸ã§ã¹ãAjaxã®URLçæ */ 12 searchSuggestURL = EC_WWW_ROOT + "/site/search/searchsuggest.aspx"; 13 /* ãã¼ã¯ã¼ããå ¥åãããã¾ãã¯ããã¼ã¯ã¼ãã«ãã©ã¼ã«ã¹ããå ´åã®ã¤ãã³ã */ 14 jQuery(searchSuggestFormSelector).on("keyup focus input", function(e) { 15 triggerSearchSuggest(e, jQuery(this)); 16 }); 17 jQuery(searchSuggestFormSelector).on("keydown", function(e) { 18 if (e.which == 40) { 19 jQuery(searchSuggestAreaSelector).find('a:first').focus(); 20 e.preventDefault(); 21 e.stopPropagation(); 22 } 23 }); 24 jQuery(document).on("keydown", searchSuggestAreaSelector, function(e) { 25 if (e.which == 38) { 26 var prevObj = jQuery(document.activeElement).parent().prev(); 27 var prevObjParent = jQuery(document.activeElement).parent().parent().prev(); 28 if (!prevObj[0] && !prevObjParent[0]) { 29 jQuery(searchSuggestAreaSelector).find('a:last').focus(); 30 } else if (prevObj[0]) { 31 prevObj.find('a:last').focus(); 32 } else if (prevObjParent[0]) { 33 prevObjParent.children(':last').find('a:last').focus(); 34 } 35 e.preventDefault(); 36 e.stopPropagation(); 37 } 38 if (e.which == 40) { 39 var nextObj = jQuery(document.activeElement).parent().next(); 40 var nextObjParent = jQuery(document.activeElement).parent().parent().next(); 41 if (!nextObj[0] && !nextObjParent[0]) { 42 jQuery(searchSuggestAreaSelector).find('a:first').focus(); 43 } else if (nextObj[0]) { 44 nextObj.find('a:first').focus(); 45 } else if (nextObjParent[0]) { 46 nextObjParent.children(':first').find('a:first').focus(); 47 } 48 e.preventDefault(); 49 e.stopPropagation(); 50 } 51 if (e.which == 13) { 52 return jQuery(document.activeElement).click(); 53 } 54 }); 55 /* ãµã¸ã§ã¹ããã¼ã¯ã¼ããã¯ãªãã¯ãããå ´åã®ã¤ãã³ã */ 56 jQuery(document).on("click", ".js-search-suggest-keyword-entry", function() { 57 selectSearchSuggestKeyword(jQuery(this)); 58 return false; 59 }); 60 /* ãµã¸ã§ã¹ãååãã¯ãªãã¯ãããå ´åã®ã¤ãã³ã */ 61 jQuery(document).on("click", ".js-search-suggest-goods", function() { 62 selectSearchSuggestGoods(jQuery(this)); 63 }); 64 /* ãµã¸ã§ã¹ãã¨ãªã¢å¤ãã¯ãªãã¯ãããå ´åã®ã¤ãã³ã */ 65 jQuery("body").on("click", function(e) { 66 hideSearchSuggest(e); 67 }); 68} 69/* ãµã¸ã§ã¹ããã¼ã¯ã¼ã鏿æã®å¦ç */ 70function selectSearchSuggestKeyword(entry) { 71 jQuery(searchSuggestCurrentForm).val(entry.text()); 72 if (jQuery(searchSuggestCurrentForm).data("suggest-submit") == "on") { 73 /* suggest-submitãonã®æã¯formãsubmit */ 74 jQuery(searchSuggestCurrentForm).closest("form").submit(); 75 } else { 76 /* suggest-submitãoffã®æã¯ãµã¸ã§ã¹ãã¨ãªã¢ãéãã */ 77 removeSearchSuggest(); 78 } 79} 80/* ãµã¸ã§ã¹ãåå鏿æã®å¦ç */ 81function selectSearchSuggestGoods(entry) { 82 location.href = entry.find("a").attr("href"); 83} 84/* ãã¼ã¯ã¼ãå ¥åå¾ãµã¸ã§ã¹ã表示ã¿ã¤ãã¼éå§å¦ç */ 85function triggerSearchSuggest(e, inputForm) { 86 var inputKeyword = inputForm.val(); 87 /* ã¨ã³ã¿ã¼ã®å ´åã¯ä¸æ */ 88 if (e.keyCode == 13) { 89 return false; 90 } 91 /* æ¢ã«è¡¨ç¤ºã¿ã¤ãã¼ãéå§ããã¦ããå ´åã¯åãæ¶ã */ 92 if (searchSuggestTimer) { 93 clearTimeout(searchSuggestTimer); 94 searchSuggestTimer = null; 95 } 96 /* å ¥åã空ãæä½å ¥åæåæ°ã«æºããªãå ´åã¯ä¸æ */ 97 if (inputKeyword == '' || inputKeyword.length < searchSuggestMinLength) { 98 removeSearchSuggest(); 99 return false; 100 } 101 /* 表示ã¿ã¤ãã¼ãã»ãã */ 102 searchSuggestTimer = setTimeout(function() { 103 searchSuggestTimer = null; 104 requestSearchSuggest(inputForm, inputKeyword); 105 }, searchSuggestPendingTime); 106}
107/* ãµã¸ã§ã¹ã表示ã¿ã¤ãã¼ãã¿ã¤ã ã¢ã¦ãå¾ã®å¦ç */ 108function requestSearchSuggest(inputForm, inputKeyword) { 109 jQuery.ajax({ 110 url: searchSuggestURL, 111 type: "POST", 112 dataType: "html", 113 cache: false, 114 data: { 115 input_keyword: inputKeyword 116 }, 117 success: function(responseHtml) { 118 /* ãµã¸ã§ã¹ãã¨ãªã¢æ¶å» */ 119 removeSearchSuggest(); 120 /* ãµã¸ã§ã¹ããã¼ã¿ãåä¿¡ããããã¼ã¯ã¼ããã¯ãªã¢ããã¦ããå ´åã¯ä¸æ */ 121 if (inputForm.val() == '') { 122 return; 123 } 124 /* ãµã¸ã§ã¹ããã¼ã¿ãç©ºï¼æ¹è¡ã®ã¿ã®å ´åãå«ãï¼ã®å ´åã¯ä¸æ */ 125 if (responseHtml.replace(/\s+$/, "") == '') { 126 return; 127 } 128 /* ãµã¸ã§ã¹ããã¼ã¿ãã»ãã·ã§ã³åãHTMLçã«ç½®ãæãã£ã¦ããå ´åã¯ä¸æ */ 129 if (responseHtml.indexOf("suggest_keyword_list") == -1 && responseHtml.indexOf("suggest_goods_list") == -1) { 130 return; 131 } 132 /* ãµã¸ã§ã¹ãã¨ãªã¢è¡¨ç¤º */ 133 showSearchSuggest(inputForm, responseHtml); 134 } 135 }); 136} 137/* ãµã¸ã§ã¹ãã¨ãªã¢è¡¨ç¤ºå¦ç */ 138function showSearchSuggest(inputForm, responseHtml) { 139 /* ãµã¸ã§ã¹ãã¨ãªã¢ã®ãã³ãã¬ã¼ãã追å */ 140 jQuery("body").append(searchSuggestAreaTmpl); 141 /* ãµã¸ã§ã¹ãã¨ãªã¢ã®HTMLãã»ãã */ 142 var suggestArea = jQuery(searchSuggestAreaSelector); 143 suggestArea.html(responseHtml); 144 /* 表示ä½ç½®ã®èª¿æ´ */ 145 var ctrl = inputForm; 146 var ctrlOffset = ctrl.offset(); 147 var ctrlLeft = ctrlOffset.left; 148 var ctrlTop = ctrlOffset.top + jQuery(ctrl).outerHeight(false); 149 suggestArea.offset({ 150 top: ctrlTop, 151 left: ctrlLeft 152 }); 153 var paddingWidth = parseInt(suggestArea.css('margin-left')) + parseInt(suggestArea.css('margin-right')) + parseInt(suggestArea.css('padding-left')) + parseInt(suggestArea.css('padding-right')); 154 var width = jQuery(ctrl).outerWidth(true) - paddingWidth; 155 suggestArea.css("min-width", width); 156 /* ãµã¸ã§ã¹ãã表示ãããã©ã¼ã ãä¿æ */ 157 searchSuggestCurrentForm = inputForm; 158 /* ãµã¸ã§ã¹ãã¨ãªã¢è¡¨ç¤º */ 159 suggestArea.show(); 160} 161/* ãµã¸ã§ã¹ãã¨ãªã¢é表示å¤å®ã¨é表示å¦çå¼ã³åºã */ 162function hideSearchSuggest(e) { 163 var suggestArea = jQuery(searchSuggestAreaSelector); 164 if (suggestArea.size()) { 165 var x = e.clientX + jQuery(window).scrollLeft(); 166 var y = e.clientY + jQuery(window).scrollTop(); 167 var ctrlOffset = suggestArea.offset(); 168 var startX = ctrlOffset.left; 169 var endX = startX + suggestArea.outerWidth(true); 170 var startY = ctrlOffset.top; 171 var endY = startY + suggestArea.outerHeight(true); 172 if (x < startX || x > endX || y < startY || y > endY) { 173 removeSearchSuggest(); 174 } 175 } 176} 177/* ãµã¸ã§ã¹ãã¨ãªã¢é表示å¦ç */ 178function removeSearchSuggest() { 179 jQuery(searchSuggestAreaSelector).remove(); 180 searchSuggestCurrentForm = null; 181}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.