PageSourceSearch

https://namonaki.jp/assets/common/js/utils.js

js namonaki.jp collected 2026-10-05 21:31:41 UTC 13,480 bytes, 464 lines download raw bytes

1/************************************************
2*************************************************
3
4@PC
5
6@utils.js v5.1.0
7(c) ULM Co.,Ltd. - https://www.ulm-design.com
8
9*************************************************
10************************************************/
11/*--//////////////////////////////////////////	
12
13initNavi
14
15//////////////////////////////////////////--*/
16function initNavi(option){
17  
18  //デフォルト値
19  var __id = option.id || 'top';
20  var __target = option.target || '#nav-container';
21  var __isImg = option.img || false;
22  var __tag = option.tag || 'li';
23  
24  var _navData = GLOBAL_NAVI_DATA;
25  var BASE_IMG_PATH = GLOBAL_NAVI_IMG_PATH;
26
27  var target = $(__target);
28  var txt = '';
29  var len = _navData.length;
30
31  for(var i = 0; i < len; i++){
32
33    var list = '';
34    var data = _navData[i];
35		
36    if(data.id != __id){
37			
38			//開始タグ
39      if(!data.isSmall){
40        list +='<' + __tag + ' id="nav-' + data.id + '" class="nav-box">';
41      }else{
42        list +='<' + __tag + ' id="nav-' + data.id + '" class="nav-box small">';
43      }
44			
45			//リンクタグ
46			if(!data.isComing){
47				list += '<a href="' + data.href + '" target="' + data.target + '" class="nav-btn">';
48			}else{
49				list += '<span class="nav-btn coming">';
50			}
51			
52			//テキスト or 画像
53      if(!__isImg){
54        list += data.name;
55      }else{
56        list += '<img src="' + BASE_IMG_PATH + data.id + '_off.png" alt="' + data.name + '" class="nav-img">';
57      }
58			
59			//リンク閉じタグ
60			if(!data.isComing){
61				list += '</a>';
62			}else{
63				list += '</span>';
64			}
65			
66    }else{
67			
68		//selected
69			
70			//開始タグ
71      if(!data.isSmall){
72        list += '<' + __tag + ' id="nav-' + data.id + '" class="nav-box">';
73      }else{
74        list += '<' + __tag + ' id="nav-' + data.id +'" class="nav-box small">';
75      }
76			
77      list += '<span class="nav-btn selected">';
78      
79			//テキスト or 画像
80      if(!__isImg){
81        list += data.name;
82      }else{
83        list += '<img src="' + BASE_IMG_PATH + data.id +'"_on.png" alt="' + data.name + '" class="nav-img">';
84      }
85      
86      list += '</span>';
87      
88    }
89    
90    list += '</' + __tag + '>';
91
92    txt += list;
93    
94  }//endfor
95
96  //txt += '</ul>';
97
98  target.html(txt);
99
100}//initNavi
101
102
103/*--//////////////////////////////////////////	
104
105drawer
106
107//////////////////////////////////////////--*/
108function initDrawerNavi(option){
109  
110  //デフォルト値
111  var __id = option.id || 'top';
112  var __target = option.target || '#drawer-nav-container';
113  var __isImg = option.img || false;
114  var __tag = option.tag || 'li';
115	
116  var _navData = DRAWER_NAVI_DATA;
117  var BASE_IMG_PATH = DRAWER_NAVI_IMG_PATH;
118
119  var target = $(__target);
120
121  var txt = '';
122
123  var len = _navData.length;
124
125  for(var i =0; i < len; i++){
126
127    var list = '';
128    var data = _navData[i];
129    
130    if(data.id !=__id){
131    
132      if(!data.isSmall){
133        list += '<' + __tag + ' id="drawer-nav-' + data.id + '" class="drawer-nav-box">';
134      }else{
135        list += '<' + __tag + ' id="drawer-nav-' + data.id + '" class="drawer-nav-box small">';
136      }
137      
138			//リンクタグ
139			if(!data.isComing){
140        list += '<a href="' + data.href + '" target="' + data.target + '" class="drawer-nav-btn">';
141			}else{
142				list += '<span class="drawer-nav-btn coming">';
143			}
144      
145      if(!__isImg){
146        list += data.name;
147      }else{
148        list += '<img src="' + BASE_IMG_PATH + data.id + '_off.png" alt="' + data.name + '" class="drawer-nav-img">';
149      }
150			//リンクタグ
151			if(!data.isComing){
152        list += '</a>';
153      }else{
154        list += '</span>';
155      }
156      
157    }else{
158    
159      if(!data.isSmall){
160        list += '<' + __tag + ' id="drawer-nav-' + data.id + '" class="drawer-nav-box">';
161      }else{
162        list += '<' + __tag + ' id="drawer-nav-' + data.id + '" class="drawer-nav-box small">';
163      }
164      
165      list += '<span class="drawer-nav-btn selected">';
166      
167      if(!__isImg){
168        list += data.name;
169      }else{
170        list += '<img src="' + BASE_IMG_PATH + data.id + '_on.png" alt="' + data.name + '" class="drawer-nav-img">';
171      }
172      
173      list += '</span>';
174      
175    }
176    
177    list += '</' + __tag + '>';
178    
179    txt += list;
180
181  }//endfor
182
183  //txt += '</ul>';
184
185  target.html(txt);
186
187}//initDrawerNavi
188
189/*--//////////////////////////////////////////
190
191initSNS
192
193//////////////////////////////////////////--*/
194function initSNS(option) {
195
196  //デフォルト値
197  var __target = option.target || '.social-container';
198  var __tag = option.tag || 'li';
199
200	// var SNS_URL = SNS_URL;
201	// var SNS_DATA = SNS_DATA;
202
203  var target = $(__target);
204  var txt = '';
205  var len = SNS_DATA.length;
206
207  for(var i =0; i < len; i++){
208
209    var list ="";
210    var data = SNS_DATA[i];
211
212    switch(data.id){
213
214      case "twitter":
215        list +='<'+__tag+' class="sns-btn twitter-btn"></'+__tag+'>';
216        target.append(list);
217        generateTweetBtn(SNS_URL,data.text,data.hash);
218      break;
219
220      case "facebook-like":
221        list +='<'+__tag+' class="sns-btn facebook-like"></'+__tag+'>';
222        target.append(list);
223        generateFbLikeBtn(SNS_URL,data.type,data.size,data.width,data.appId,data.appVer,data.action,data.showFace,data.share);
224      break;
225
226      case "google":
227        list +='<'+__tag+' class="sns-btn gplus-btn"></'+__tag+'>';
228        target.append(list);
229        generatePlusoneBtn(data.size);
230      break;
231
232      case "line-share":
233        list +='<'+__tag+' class="sns-btn line-share"></'+__tag+'>';
234        target.append(list);
235        generateLineShareBtn(SNS_URL);
236      break;
237
238      case "line-like":
239        list +='<'+__tag+' class="sns-btn line-like"></'+__tag+'>';
240        target.append(list);
241        generateLineLikeBtn(SNS_URL);
242      break;
243
244      case "hatena":
245        list +='<'+__tag+' class="sns-btn hatena-btn">';
246        list+=generateHatena(SNS_URL,data.text);
247        list+='</'+__tag+'>';
248        target.append(list);
249      break;
250
251      default:
252      break;
253
254    }//endswitch
255
256  }//endfor
257
258}//initSNS
259
260/*--//////////////////////////////////////////
261
262generateTweetBtn
263
264//////////////////////////////////////////--*/
265function generateTweetBtn(__url,__txt,__hash) {
266
267  if(!SNS_CUSTOM) {
268
269    window.addEventListener('load', function() {
270      var tweetElm = document.createElement('div');
271
272      tweetElm.innerHTML = '<a href="https://twitter.com/share" class="twitter-share-button" data-url="'+__url+'" data-text="'+__txt+'" data-lang="ja" data-hashtags="'+__hash+'">ツイート</a>';
273
274      document.querySelector('.twitter-btn').appendChild(tweetElm);
275
276      !function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');
277    });
278
279  } else {
280    var tweetElm = document.createElement('div');
281    tweetElm.innerHTML = '<a href="https://twitter.com/share?url=' + __url + '&text=' + __txt + '&hashtags=' + __hash + '" class="share-link-btn custom-twitter-btn" target="_blank"><span class="share-link-btn-icon"><i class="icon-twitter nav-icon"></i></span></a>';
282    // document.querySelector('.twitter-btn').appendChild(tweetElm);
283    $('.twitter-btn').append(tweetElm);
284
285  }
286
287}
288
289
290/*--//////////////////////////////////////////
291
292generateFbLikeBtn
293
294//////////////////////////////////////////--*/
295function generateFbLikeBtn(__url,__type,__size,__width,__appId,__appVer,__action,__face,__share) {
296
297  if(!SNS_CUSTOM) {
298
299    var likeElm = document.createElement('div');
300    likeElm.innerHTML = '<div class="fb-like" data-href="'+__url+'" data-layout="'+__type+'" data-action="'+__action+'" data-size="'+__size+'" data-show-faces="'+__face+'" data-share="'+__share+'"></div>';
301
302    window.addEventListener('load', function() {
303      document.querySelector('.facebook-like').appendChild(likeElm);
304
305      window.fbAsyncInit = function() {
306        FB.init({
307          appId      : ''+__appId+'',
308          xfbml      : true,
309          version    : 'v'+__appVer+''
310        });
311      };
312
313      (function(d, s, id) {
314        var js, fjs = d.getElementsByTagName(s)[0];
315        if (d.getElementById(id)) return;
316        js = d.createElement(s); js.id = id; js.async = true;
317        js.src = "//connect.facebook.net/ja_JP/sdk.js#xfbml=1&version=v"+__appVer+"&appId="+__appId+"";
318        fjs.parentNode.insertBefore(js, fjs);
319      }(document, 'script', 'facebook-jssdk'));
320
321    });
322
323  } else {
324
325    var likeElm = document.createElement('div');
326    likeElm.innerHTML = '<a href="https://www.facebook.com/sharer.php?u=' + __url + '" class="share-link-btn custom-facebook-btn" target="_blank"><span class="share-link-btn-icon"><i class="icon-facebook2 nav-icon"></i></span></a>';
327    $('.facebook-like').append(likeElm);
328  }
329
330}
331
332
333/*--//////////////////////////////////////////
334
335generateLineShareBtn
336
337//////////////////////////////////////////--*/
338function generateLineShareBtn(__url) {
339
340  if(!SNS_CUSTOM) {
341
342    var scriptElm = document.createElement('script');
343    scriptElm.src = 'https://d.line-scdn.net/r/web/social-plugin/js/thirdparty/loader.min.js';
344    //scriptElm.async = 'async';
345    scriptElm.defer = 'defer';
346    document.body.appendChild(scriptElm);
347
348    window.addEventListener('load', function() {
349      var lineElm = document.createElement('div');
350      lineElm.innerHTML = '<div class="line-it-button" data-lang="ja" data-type="share-a" data-url="'+__url+'" style="display: none;"></div>';
351
352      document.querySelector('.line-share').appendChild(lineElm);
353
354    });
355
356  } else {
357
358    var lineElm = document.createElement('div');
359    lineElm.innerHTML = '<a href="https://timeline.line.me/social-plugin/share?url=' + __url + '" class="share-link-btn custom-line-btn" target="_blank"><span class="share-link-btn-icon"><i class="icon-line nav-icon"></i></span></a>';
360    $('.line-share').append(lineElm);
361
362  }
363
364}
365
366
367
368/*--//////////////////////////////////////////
369
370generateLineLikeBtn
371
372//////////////////////////////////////////--*/
373function generateLineLikeBtn(__url) {
374
375
376  var scriptElm = document.createElement('script');
377  scriptElm.src = 'https://d.line-scdn.net/r/web/social-plugin/js/thirdparty/loader.min.js';
378  scriptElm.defer = 'defer';
379  document.body.appendChild(scriptElm);
380
381  window.addEventListener('load', function() {
382    var lineElm = document.createElement('div');
383    lineElm.innerHTML = '<div class="line-it-button" data-lang="ja" data-type="like" data-url="'+__url+'" style="display: none;"></div>';
384
385    document.querySelector('#line-like').appendChild(lineElm);
386
387    //LineIt.loadButton();
388  });
389
390
391
392}
393
394
395/*--//////////////////////////////////////////
396
397generateLineLikeBtn
398
399//////////////////////////////////////////--*/
400function generatePlusoneBtn(__size) {
401  var scriptElm = document.createElement('script');
402  scriptElm.src = 'https://apis.google.com/js/platform.js';
403  scriptElm.innerHTML = "{lang: 'ja', parsetags: 'explicit'}";
404  document.body.appendChild(scriptElm);
405
406  window.addEventListener('load', function() {
407    var gplusElm = document.createElement('div');
408    gplusElm.innerHTML = '<div class="g-plusone" data-size="'+__size+'"></div>';
409
410    document.querySelector('#gplus-btn').appendChild(gplusElm);
411
412    gapi.plusone.go();
413  });
414}
415
416
417/*--//////////////////////////////////////////
418
419hatena
420
421//////////////////////////////////////////--*/
422function generateHatena(__url,__text) {
423
424  var str = '<a href="http://b.hatena.ne.jp/entry/'+__url+'"';
425  str += ' class="hatena-bookmark-button"';
426  str += ' data-hatena-bookmark-title="'+__text+'"';
427  str += ' data-hatena-bookmark-layout="basic-label-counter"';
428  str += ' data-hatena-bookmark-lang="ja" data-hatena-bookmark-width="115" title="このエントリーをはてなブックマークに追加">';
429  str += '<img src="https://b.st-hatena.com/images/entry-button/[email protected]" alt="このエントリーをはてなブックマークに追加" width="20" height="20" style="border: none;" /></a>';
430  str += '<script type="text/javascript" src="https://b.st-hatena.com/js/bookmark_button.js" charset="utf-8" async="async"></script>';
431
432  return str;
433};
434
435
436/*--//////////////////////////////////////////
437
438initBanner
439
440//////////////////////////////////////////--*/
441function initBanner(option) {
442
443  //デフォルト値
444  var __target = option.target || '#banner-container';
445  var __tag = option.tag || 'li';
446
447  var target = $(__target);
448  /*var BANNER_IMG_PATH = BANNER_IMG_PATH
449  var BANNER_DATA = Config.getBannerData();*/
450  var bannerLength = BANNER_DATA.length;
451  var html = "";
452
453  for(var i = 0; i < bannerLength; i++){
454    var data = BANNER_DATA[i];
455    html += '<'+__tag+' class="banner-item"><p>';
456    html += '<a href="'+data.href+'" target="_blank">';
457    html += '<img src="'+ BANNER_IMG_PATH + data.src +'" alt="'+ data.alt +'" class="banner-img">';
458    html += '</a>';
459    html += '</p></'+__tag+'>';
460  }
461
462  target.html(html);
463
464}//initBanner

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.