PageSourceSearch

https://www.town.yoshino.nara.jp/theme/base/js/sub.js

js town.yoshino.nara.jp collected 2026-10-02 05:57:22 UTC 11,218 bytes, 290 lines download raw bytes

1/**
2 * サブページ専用jsセット
3 */
4
5$(function(){
6	//文字サイズ変更監視 ボックスの高さを揃える
7	$.fn.fontSizeChange({func:function(){
8		$(".level1col2").eqGroupHeight(2);
9		$(".level2col1 .list").eqGroupHeight(2);
10    $(".level1-gaiyo").eqGroupHeight(2);
11    $(".level1col2-gaiyo .col").eqGroupHeight(2);
12
13    $(".level2col2 .box2 .list").eqGroupHeight(2);
14
15    //混在用
16    $(".level2col1-mixed .list").eqGroupHeight(2);
17    $(".level2col2-mixed .col").eqGroupHeight(2);
18    $(".level2col2-mixed .box2 .list").eqGroupHeight(2);
19    $(".level2col2-mixed-js .col").eqGroupHeight(2);
20    $(".level2col2-mixed-js .box2 .list").eqGroupHeight(2);
21
22    $(".thumbnail-list-area .list").eqGroupHeight(3);
23
24		$("#wrapper").show();
25	}});
26
27
28	// wysiwygとフリーレイアウトエリア内で使用されるh2,h3,h4などに装飾用要素を追加
29  (function(){
30    //ターゲット要素
31    $target = $('.wysiwyg h2,.wysiwyg h3,.wysiwyg h4,.wysiwyg h5,.wysiwyg h6,.free-layout-area h2,.free-layout-area h3,.free-layout-area h4,.free-layout-area h5,.free-layout-area h6');
32    //装飾用要素
33    $innerElm1 = $('<span class="bg"></span>');
34    $innerElm2 = $('<span class="bg2"></span>');
35    $innerElm3 = $('<span class="bg3"></span>');
36    //ターゲット要素に装飾用要素を内包
37    $target.each(function(){
38      $this = $(this);
39      if($this.find('span').length == 0){
40        $this.wrapInner($innerElm3);
41        $this = $this.wrapInner($innerElm2);
42        $this = $this.wrapInner($innerElm1);
43      }
44    });
45  })();
46
47	//2階層2列(管理画面で並べないモード。ページ優先・カテゴリ優先用)
48	$(".level2col2,.level2col2js").level2Col2();
49
50	//2階層1列
51	$(".level2col1").level2Col1();
52
53	// 左寄せ画像、右寄せ画像の最初の要素は上マージンを持たせない
54	$('.img-text .wysiwyg').each(function() {
55		$(this).find(' > :first').addClass('firstTopCom');
56	});
57
58  //横並び画像
59  $(window).on('load resize',function(){
60    $(".col-area").colImgSetWidth();
61    $(".thumbnail-list-area .list").eqGroupHeight(3);
62  });
63
64  //イベントスライダーの実行
65  $("body").eventSlider();
66
67  //大カテゴリトップスライダー
68  $('#large-category-slider .bxslider .list').bxSlider({
69    auto: true
70    ,autoControls: true
71    ,speed: 1000
72    ,pause: 5000
73    ,slideWidth: 700
74    ,maxSlides: 1
75    ,minSlides: 1
76    ,pager: false
77    ,slideMargin: 0
78  });
79
80  (function(){
81    var newsList = 5;
82    var newsMoreText = '新着情報を更に表示';
83    var newsListSize = $('#contents-large-category .news-area .list li').length;
84
85    if (newsListSize > newsList) {
86      $('#contents-large-category .news-area .in').append('<ul class="more"><li><a href="#">' + newsMoreText + '</a></li></ul>');
87      $('#contents-large-category .news-area .list li:not(:lt(' + newsList + '))').hide();
88
89      $('#contents-large-category .news-area .more li a').click(function(e){
90        e.preventDefault();
91        if ($('#contents-large-category .news-area .list li:eq(' + newsList + ')').is(':hidden')){
92          $('#contents-large-category .news-area .list li:hidden').show();
93          $('#contents-large-category .news-area .more').hide();
94        }
95      });
96    }
97
98  })();
99
100
101  //カレンダーの検索エリアの表示制御
102  //#formEventSearch が存在する場合=calendarページだけ以下の処理を行う
103  if (document.getElementById('formEventSearch') != null) {
104    //「種類で探す」の選択肢の数(デフォルトで空白のoptionが1つある)
105    var kindSearchNum = document.querySelectorAll('#formEventSearchType > option').length - 1;
106    //「エリアで探す」の選択肢の数(選択肢がない場合はinputがそもそもない=0)
107    var areaSearchNum = document.querySelectorAll('#formEventSearch .formEventAreaBox input').length;
108    //「キーワード検索」がONかどうか
109    var isKeywordSearchEnabled = document.querySelector('#formEventSearch .formEventKeywordBox') !== null;
110
111    if (kindSearchNum == 0 && areaSearchNum == 0 && !isKeywordSearchEnabled) {
112      //「種類で探す」と「エリアで探す(複数選択可能)」のデータが無く、「キーワード検索」もOFFの場合は、検索エリア全体(div.calendar-search-area)を非表示にする。
113      document.querySelector('.calendar-search-area').style.display = 'none';
114    } else {
115      if (kindSearchNum == 0) {
116        //「種類で探す」のデータが無い場合は、該当項目の見
116出しとフォームパーツ(dl.formEventTypeBox)を非表示にする。
117        document.querySelector('#formEventSearch .formEventTypeBox').style.display = 'none';
118      }
119      if (areaSearchNum == 0) {
120        //「エリアで探す(複数選択可能)」のデータが無い場合は、該当項目の見出しとフォームパーツ(dl.formEventAreaBox)を非表示にする。
121        document.querySelector('#formEventSearch .formEventAreaBox').style.display = 'none';
122      }
123      //「キーワード検索」がOFFならそもそも表示されないので if(!isKeywordSearchEnabled)〜 は必要ない
124    }
125  }
126
127
128});
129
130$(window).on('load resize orientationchange',function(){
131
132  function calendarBoxStyleChange(){
133
134    var $calendarTarget = $(".calendar-box-area .calendar-area");
135    var $calendarWeekTarget = $(".calendar-box-area .calendar-area .week-row th");
136
137    var sunW = $calendarWeekTarget.eq(0).width();
138    var monW = $calendarWeekTarget.eq(1).width();
139    var tueW = $calendarWeekTarget.eq(2).width();
140    var wedW = $calendarWeekTarget.eq(3).width();
141    var thuW = $calendarWeekTarget.eq(4).width();
142    var friW = $calendarWeekTarget.eq(5).width();
143    var satW = $calendarWeekTarget.eq(6).width();
144
145    $calendarTarget.css({
146      "background-positionX": (sunW + monW + tueW + wedW + thuW + friW) + "px," + (sunW + monW + tueW + wedW + thuW) + "px," + (sunW + monW + tueW + wedW) + "px," + (sunW + monW + tueW) + "px," + (sunW + monW) + "px," + sunW + "px," + "0px"
147    });
148
149  }
150
151  var $calendarChangeTarget = $(".calendar-list-area .changeCalendarType, .calendar-box-area .calGoCurrentMonth, .calendar-box-area .calGoPrevMonth, .calendar-box-area .calGoNextMonth");
152
153  $calendarChangeTarget.click(function(){
154
155    calendarBoxStyleChange();
156
157  });
158
159  calendarBoxStyleChange();
160
161});
162
163
164/*
165 * 外部リンクに任意テキストを表示する
166 * $('.link-item, .wysiwyg').outerLinkAddText("任意テキスト");
167*/
168$.fn.outerLinkAddText = function(txt) {
169  var target = this;
170
171  // プレビューからの印刷画面かどうかの判定
172  if($('body').attr('data-print') !== 'preview') {
173
174    target.find('a').each(function() {
175      $this = $(this);
176
177      // 判定用フラグ
178      var outLinkFlg = false;
179
180      // 対象URL
181      var this_url = $this.attr('href');
182
183      // 判定用URL
184      var my_domain = site_domain.replace(/^http:\/\//, '').replace(/^https:\/\//, '').replace(/^\/\//, '');
185      my_domain = my_domain === '.' ? 'localhost' : my_domain;
186      var url = [ my_domain ];
187      var regs = [];
188      for(var i=0; i < url.length; i++) {
189        regs.push( new RegExp('^(http://|https://|//)' + url[i], 'i') );
190      }
191
192      //相対リンク、アンカーリンク、mailリンク、telリンク,ファイルリンク、@を除外
193      if((/^\.*\//).test(this_url) || (/^#/).test(this_url) || (/^mailto:/).test(this_url) || (/^tel:/).test(this_url) ||(/\/material\//).test(this_url) || (/^@/).test(this_url)){
194        if(!(/^\/\//).test(this_url)) {
195          return true;
196        }
197      };
198      // 外部リンク判定
199      if(this_url) {
200        for(var i=0; i < regs.length; i++) {
201          if(regs[i].test(this_url)) {
202            outLinkFlg = false;
203            break;
204          } else {
205            outLinkFlg = true;
206          }
207        }
208      }
209      // テキスト表示
210      if(outLinkFlg) {
211        // 画像を除外
212        if($this.find('img').length === 0) {
213          // 印刷時2つ表示されないように
214          //if($this.text().indexOf('(' + txt + ')') === -1) {
215            $this.after('(' + txt + ')');
216          //}
217        }
218      }
219    });
220
221  }
222  // 印刷画面除外用フラグの設定
223  $('body').attr('data-print', 'preview');
224
225};
226
227/*
228  * Google Analytics Ranking
229  * $('#ga-カテゴリのディレクトリ名-list').gaRanking({profileNo:プロファイルNo,limit:最大表示件数(デフォルトは10),printError:'エラー出力要素(デフォルトはthis以下の.in'});
230  */
231$(window).on('load',function(){
232
233  //特定カテゴリ配下のみアナリティクス連携を行なう
234  function getParentPathName(path){
235    var regPath = new RegExp(path, "i");
236    var req = location.pathname;
237    req = req.replace(regPath, '$1');
238    return req;
239  };
240  var cat_name = getParentPathName('^(/[^/]+/).*$'); //本番​
241
242
243  // --------------------------------
244  // データが蓄積後下記コードにて表示
245  // --------------------------------
246
247  switch (cat_name){
248    case '/kurashi/':
249    $('.ranking-area').attr("id", "cat_1").css("display",'block');
250  break;
251    case '/kosodate-manabi/':
252    $('.ranking-area').attr("id", "cat_2").css("display",'block');
253  break;
254  case '/kenko-fukushi/':
255    $('.ranking-area').attr("id", "cat_3").css("display",'block');
256  break;
257  case '/sangyo-machizukuri/':
258    $('.ranking-area').attr("id", "cat_4").css("display",'block');
259  break;
260  case '/chosei/':
261    $('.ranking-area').attr("id", "cat_5").css("display",'block');
262  break;
263  case '/jigyosha/':
264    $('.ranking-area').attr("id", "cat_6").css("display",'block');
265  break;
266  default:
267    $('.ranking-area').attr("id", "hide").css("display",'none');
268  }
269
270  if(pluginExists('gaRanking')){
271    if ($('#cat_1').length) {
272      $('#cat_1').gaRanking({titleName:"よく見られるページ",profileNo:1,limit:5,printError:'.ranking-area .in .list',replaceStr:'/吉野町'});
273    }
274    if ($('#cat_2').length) {
275      $('#cat_2').gaRanking({titleName:"よく見られるページ",profileNo:2,limit:5,printError:'.ranking-area .in .list',replaceStr:'/吉野町'});
276    }
277    if ($('#cat_3').length) {
278      $('#cat_3').gaRanking({titleName:"よく見られるページ",profileNo:3,limit:5,printError:'.ranking-area .in .list',replaceStr:'/吉野町'});
279    }
280    if ($('#cat_4').length) {
281      $('#cat_4').gaRanking({titleName:"よく見られるページ",profileNo:4,limit:5,printError:'.ranking-area .in .list',replaceStr:'/吉野町'});
282    }
283    if ($('#cat_5').length) {
284      $('#cat_5').gaRanking({titleName:"よく見られるページ",profileNo:5,limit:5,printError:'.ranking-area .in .list',replaceStr:'/吉野町'});
285    }
286    if ($('#cat_6').length) {
287      $('#cat_6').gaRanking({titleName:"よく見られるページ",profileNo:6,limit:5,printError:'.ranking-area .in .list',replaceStr:'/吉野町'});
288    }
289  }
290});

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.