PageSourceSearch

https://shiro-shiro.jp/ec/js/facetedNavigation.js

js shiro-shiro.jp collected 2026-10-03 19:12:34 UTC 10,460 bytes, 318 lines download raw bytes

1var contextPath = "";
2var requestedPath = '/Facet';
3var tmpParamStr  = location.search.substr(1,location.search.length);
4
5
6function createFacetBrandList(target) {
7	contextPath = $('#contextPath').val();
8	target.href = contextPath + '/cmFacetedNavigationBrandList.html?'+ tmpParamStr;
9}
10
11function doLinkFacetUrl(paramStr) {
12	contextPath = $('#contextPath').val();
13	window.location.href = contextPath + requestedPath + '?' + paramStr;
14}
15
16
17function doSearchCategory(  facetFieldName , selectedCategory) {
18	var createParamStr = '';
19	var allPramaAry = tmpParamStr.split('&');
20	var execFlg = true;
21	var currentNum = 0 ;
22	var facetFieldId = parseInt('1');
23
24	// すでに検索条件に含まれているか確認する
25	if(allPramaAry[0].length > 0){
26		for (var i = 0; i < allPramaAry.length; i++) {
27			var pramAry = allPramaAry[i].split('=');
28
29			var paramKey = pramAry[0];
30			var paramValue = pramAry[1];
31			if(paramKey == facetFieldName){
32				createParamStr += facetFieldName + "=" + encodeURIComponent(selectedCategory) + "&";
33				execFlg = false;
34			}else{
35				if(paramKey != 'page'){
36					createParamStr += allPramaAry[i] + "&";
37				}
38
39			}
40		}
41	}
42	if(execFlg){
43		createParamStr = facetFieldName + "=" + encodeURIComponent(selectedCategory) + "&" + createParamStr;
44	}
45	doLinkFacetUrl(createParamStr.substr(0,createParamStr.length-1));
46}
47function doSearchBrand(facetFieldParamId , selectedBrand) {
48
49	doLinkFacetUrl(	makeSearchBrandURL(facetFieldParamId,selectedBrand, 0));
50}
51function makeSearchBrandURL(facetFieldParamId , selectedBrand , allFlg) {
52	var createParamStr = '';
53	var allPramaAry = tmpParamStr.split('&');
54	var execFlg = true;
55	var currentNum = 0 ;
56	var fieldGroupId = parseInt(facetFieldParamId.split('_')[0]);
57
58	// すでに検索条件に含まれているか確認する
59	if(allPramaAry[0].length > 0){
60		for (var i = 0; i < allPramaAry.length; i++) {
61			var pramAry = allPramaAry[i].split('=');
62
63			var paramKey = pramAry[0];
64			var paramValue = pramAry[1];
65			if ( paramKey.indexOf('_') != -1) {
66				var loopFieldGroupId = parseInt(paramKey.split('_')[0]);
67				var loopFacetFieldId = parseInt(paramValue.split('_')[0]);
68				if(paramKey == facetFieldParamId){
69					if(allFlg == 1){
70						if(execFlg && selectedBrand.length > 0 ){
71							createParamStr += facetFieldParamId + "=" + encodeURIComponent(selectedBrand) + "&";
72							execFlg = false;
73						}
74
75					}else{
76						// すでに条件に含まれている場合
77						var brandArry = paramValue.split(encodeURIComponent(','));
78						var createBrandCond = '';
79
80						// 選択されたブランドがすでに検索条件に含まれていたら削除
81						for (var j = 0; j < brandArry.length; j++) {
82							var deleteFlg = false;
83							if(selectedBrand == brandArry[j]){
84								deleteFlg = true;
85							}
86							if(!deleteFlg){
87								createBrandCond += brandArry[j] + ",";
88							}
89						}
90						if(execFlg && createBrandCond.length > 1){
91							createParamStr += facetFieldParamId + "=" + encodeURIComponent(createBrandCond.substr(0,createBrandCond.length -1)) + "&";
92							execFlg = false;
93						}else{
94							execFlg = false;
95						}
96					}
97
98				}else{
99				//表示順の確認
100					if( execFlg &&  fieldGroupId  <  loopFieldGroupId  ){
101
102						createParamStr += facetFieldParamId + "=" + encodeURIComponent(selectedBrand) + "&";
103						execFlg = false;
104						// 既存の条件はそのまま利用する
105						createParamStr += allPramaAry[i] + "&";
106					}else{
107						// 既存の条件はそのまま利用する
108						createParamStr += allPramaAry[i] + "&";
109					}
110				}
111			}else{
112				if(paramKey != 'page'){
113					createParamStr += allPramaAry[i] + "&";
114				}
115
116			}
117
118		}
119	}
120
121	if(execFlg && selectedBrand.length > 0 ){
122		createParamStr += facetFieldParamId + "=" + encodeURIComponent(selectedBrand) + "&";
123	}
124
125	return createParamStr.substr(0,createParamStr.length-1);
126}
127function doSearchKeyWord() {
128    var exKeywordValue = $('#exKeywordFacet').val();
129    var inputKeywordValue = $('#inputKeywordFacet').val();
130    var kclsfValue = $('#kclsf').val();
131    var execFlg = true;
132
133	var createParamStr = '';
134	var pramaArr = tmpParamStr.split('&');
135	// すでに検索条件に含まれているか確認する
136	if(pramaArr[0].length > 0){
137		for (var i = 0; i < pramaArr.length; i++) {
138			var condStr = pramaArr[i].split('=');
139			if(condStr[0] == 'inputKeywordFacet'){
140				if(exKeywordValue.length > 0 || inputKeywordValue.length > 0  ){
141					createParamStr += 'inputKeywordFacet=' + encodeURIComponent(inputKeywordValue) + "&";
142					createParamStr += 'kclsf=' + encodeURIComponent(kclsfValue) + "&";
143					createParamStr += 'exKeywordFacet=' + encodeURIComponent(exKeywordValue) + "&";
144				}
145				execFlg = false;
146			}else if(condStr[0] == 'kclsf'){
147			// 何もしない
148			}else if(condStr[0] == 'exKeywordFacet'){
149				// 何もしない
150			}else{
151				createParamStr += pramaArr[i] + "&";
152			}
153
154		}
155	}
156	if(execFlg){
157		createParamStr += 'inputKeywordFacet=' + encodeURIComponent(inputKeywordValue) + "&";
158		createParamStr += 'kclsf=' + encodeURIComponent(kclsfValue) + "&";
159		createParamStr += 'exKeywordFacet=' + encodeURIComponent(exKeywordValue) + "&";
160	}
161	doLinkFacetUrl(createParamStr.substr(0,createParamStr.length-1));
162
163  }
164function doSearchFacet( facetDiv ,  fieldGroupId , facetFieldName , facetFieldId , selectCound ) {
165
166	var createParamStr = '';
167	var allPramaAry = tmpParamStr.split('&');
168	var execFlg = true;
169	var currentNum = 0 ;
170	fieldGroupId = parseInt(fieldGroupId);
171	facetFieldId = parseInt(facetFieldId);
172
173	var from = $('#' + fieldGroupId+ '_' + facetFieldName + '_' + facetFieldId +'_from').val();
174	var to = $('#' + fieldGroupId+ '_' + facetFieldName + '_' + facetFieldId +'_to').val();
175	var input = $('#' + fieldGroupId+ '_' + facetFieldName + '_' + facetFieldId +'_input').val();
176
177	// すでに検索条件に含まれているか確認する
178	if(allPramaAry[0].length > 0){
179		for (var i = 0; i < allPramaAry.length; i++) {
180			var pramAry = allPramaAry[i].split('=');
181
182			var paramKey = pramAry[0];
183			var paramValue = pramAry[1];
184			if ( paramKey.indexOf('_') != -1) {
185				var loopFieldGroupId = parseInt(paramKey.split('_')[0]);
186				var loopFacetFieldId = parseInt(paramValue.split('_')[0]);
187
188				if(loopFieldGroupId == undefined){
189					loopFieldGroupId = 1;
190				}
191				if(loopFacetFieldId == undefined){
192					loopFacetFieldId = 1;
193				}
194
195				if(paramKey == fieldGroupId + '_' + facetFieldName && facetFieldId == loopFacetFieldId){
196					// すでに条件に含まれている且つcheckボックス場合条件から削除
197					if(parseInt(facetDiv) == 2){ // 価格帯
198						if(from.length == 0 && to.length == 0){
199							execFlg = false;
200						}
201					}else if(parseInt(facetDiv) == 3){ // フリー入力の場合
202						if(input.length == 0){
203							execFlg = false;
204						}
205					}else { // リンク , チェックボックスの場合
206						execFlg = false;
207					}
208
209				}else{
210
211					//表示順の確認
212					if( execFlg &&  fieldGroupId < loopFieldGroupId ){
213						if( facetFieldId > loopFacetFieldId){ // 検索条件追加
214							if(parseInt(facetDiv) == 2){ // 価格帯
215								if(from.length > 0 ||to.length > 0){
216									createParamStr += fieldGroupId + "_" + facetFieldName + "=" + encodeURIComponent(from + '*' + to) + "&";
217								}
218							}else if(parseInt(facetDiv) == 3){ // フリー入力の場合
219								if(input.length > 0){
220									createParamStr += fieldGroupId + "_" + facetFieldName + "=" + encodeURIComponent(input) + "&";
221								}
222							}else { // リンク , チェックボックスの場合
223								createParamStr += fieldGroupId + "_" + facetFieldName + "=" + encodeURIComponent(facetFieldId +"_" +selectCound) + "&";
224							}
225							execFlg = false;
226
227						}
228						// 既存の条件はそのまま利用する
229						createParamStr += allPramaAry[i] + "&";
230					}else{
231						// 既存の条件はそのまま利用する
232						createParamStr += allPramaAry[i] + "&";
233					}
234				}
235			}else{
236				if(paramKey != 'page'){
237					createParamStr += allPramaAry[i] + "&";
238				}
239			}
240
241		}
242	}
243
244	if(execFlg){
245		if(parseInt(facetDiv) == 2){ // 価格帯
246			selectCound = from + '*' + to ;
247		}else if(parseInt(facetDiv) == 3){ // フリー入力の場合
248			selectCound = input;
249		}
250		if (selectCound !== "") {
251			createParamStr += fieldGroupId + "_" + facetFieldName + "=" + encodeURIComponent(facetFieldId + "_" + selectCound) + "&";
252		}
253	}
254
255	doLinkFacetUrl(createParamStr.substr(0,createParamStr.length-1));
256}
257
258
259function doChangePage( urlLinkId, condValue , defaultPram) {
260	var createParamStr = '';
261	var allPramaAry = tmpParamStr.split('&');
262	var execFlg = true;
263	var currentNum = 0 ;
264
265	if(allPramaAry[0].length > 0){
266		for (var i = 0; i < allPramaAry.length; i++) {
267			var pramAry = allPramaAry[i].split('=');
268
269			var paramKey = pramAry[0];
270			var paramValue = pramAry[1];
271
272			if(paramKey == urlLinkId){
273				if(defaultPram != condValue ){
274					createParamStr += urlLinkId + "=" + encodeURIComponent(condValue) + "&";
275					execFlg = false;
276				}
277			}else{
278				createParamStr += allPramaAry[i] + "&";
279
280			}
281		}
282	}
283	if(execFlg){
284		if(defaultPram != condValue ){
285			createParamStr += urlLinkId + "=" + encodeURIComponent(condValue) + "&";
286			execFlg = false;
287		}
288	}
289	doLinkFacetUrl(createParamStr.substr(0,createParamStr.length-1));
290}
291
292
293function clearBrand(){
294	$('[type="checkbox"]:checked').each(function(){
295		 $(this).prop('checked', false).change();
296		});
297
298}
299function searchBrand(){
300	var selectBrand = [];
301	var selectBrandStr = "";
302	$('[type="checkbox"]:checked').each(function(){
303		selectBrandStr += $(this).attr('facetLinkedId') + ',';
304
305	});
306	doSearchBrandList(selectBrandStr.substr(0,selectBrandStr.length-1));
307}
308function doSearchBrandList(selectBrandStr) {
309
310	contextPath = $('#contextPath').val();
311	requestedPath = $('#requestedPath').val();
312	 tmpParamStr  = location.search.substr(1,location.search.length);
313	var fieldGroupId = $('#brandFieldGroupId').val();
314	var facetFieldName = $('#brandFacetFieldName').val();
315	var facetFieldId = $('#brandFacetFieldId').val();
316	window.parent.location.href = contextPath + requestedPath + '?' + makeSearchBrandURL( fieldGroupId + '_'+facetFieldName , selectBrandStr , 1);
317
318}

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.