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/* åæåå¦ç */ 10jQuery(document).ready(function() { 11 /* ãµã¸ã§ã¹ãAjaxã®URLçæ */ 12 searchSuggestURL = EC_WWW_ROOT + "/shop/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 ctrlOuterHeight = jQuery(ctrl).outerHeight(false); 149 if (ctrlOuterHeight == undefined) { 150 ctrlOuterHeight = 0; 151 } 152 var ctrlTop = ctrlOffset.top + ctrlOuterHeight; 153 suggestArea.offset({ 154 top: ctrlTop, 155 left: ctrlLeft 156 }); 157 var paddingWidth = parseInt(suggestArea.css('margin-left')) + parseInt(suggestArea.css('margin-right')) + parseInt(suggestArea.css('padding-left')) + parseInt(suggestArea.css('padding-right')); 158 var ctrlOuterWidth = jQuery(ctrl).outerWidth(true); 159 if (ctrlOuterWidth == undefined) { 160 ctrlOuterWidth = 0; 161 } 162 var width = ctrlOuterWidth - paddingWidth; 163 suggestArea.css("min-width", width); 164 /* ãµã¸ã§ã¹ãã表示ãããã©ã¼ã ãä¿æ */ 165 searchSuggestCurrentForm = inputForm; 166 /* ãµã¸ã§ã¹ãã¨ãªã¢è¡¨ç¤º */ 167 suggestArea.show(); 168} 169/* ãµã¸ã§ã¹ãã¨ãªã¢é表示å¤å®ã¨é表示å¦çå¼ã³åºã */ 170function hideSearchSuggest(e) { 171 var suggestArea = jQuery(searchSuggestAreaSelector); 172 if (suggestArea.length) { 173 var x = e.clientX + jQuery(window).scrollLeft(); 174 var y = e.clientY + jQuery(window).scrollTop(); 175 var ctrlOffset = suggestArea.offset(); 176 var startX = ctrlOffset.left; 177 var suggestOuterWidth = suggestArea.outerWidth(true); 178 if (suggestOuterWidth == undefined) { 179 suggestOuterWidth = 0; 180 } 181 var endX = startX + suggestOuterWidth; 182 var startY = ctrlOffset.top; 183 var suggestOuterHeight = suggestArea.outerHeight(true); 184 if (suggestOuterHeight == undefined) { 185 suggestOuterHeight = 0; 186 } 187 var endY = startY + suggestOuterHeight; 188 if (x < startX || x > endX || y < startY || y > endY) { 189 removeSearchSuggest(); 190 } 191 } 192} 193/* ãµã¸ã§ã¹ãã¨ãªã¢é表示å¦ç */ 194function removeSearchSuggest() { 195 jQuery(searchSuggestAreaSelector).remove(); 196 searchSuggestCurrentForm = null; 197}
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.