PageSourceSearch

https://www.cm-boso.com/script.js?20260525

js cm-boso.com collected 2026-10-02 10:44:14 UTC 25,380 bytes, 482 lines download raw bytes

1$( function(){
2	//スクロール処理
3	$(document).on( 'click', "a", function() {
4		//処理無効
5		if ( ! ( $(this).attr('href').substr(0,1) == '#' ) ) return;
6		if ( $(this).hasClass('button') || $(this).hasClass('more_button') || $(this).hasClass('noscroll') ) return;
7		// スクロールの速度
8		var speed = 400; // ミリ秒
9		// アンカーの値取得
10		var href= $(this).attr("href");
11		// 移動先を取得
12		if ( href == "#" ) {
13			var position = 0;
14		} else {
15			var target = $(href);
16			// 移動先を数値で取得
17			var position = target.offset().top;
18		}
19		// スムーススクロール
20		$('body,html').animate({scrollTop:position}, speed, 'swing');
21		return false;
22	} );
23	//カレンダー表示
24	_setCalendar();
25	//ふわっと表示
26	_fuwatto();
27	//グローバルメニュー
28	$('#top_global_menu > ul > li').hover(
29		function(){
30			if ( $(this).find('ul').length > 0 ) {
31				$(this).find('ul').slideDown( 100 );
32			}
33		},
34		function(){
35			if ( $(this).find('ul').length > 0 && $(this).find('ul').is(':visible') ) {
36				$(this).find('ul').slideUp( 100 );
37			}
38		}
39	);
40	//メニュー
41	if ( $('#top_nav_menu').length > 0 ) {
42		index_initMenu();
43		$(document).on( 'click', '#top_nav_menu a', function(){
44			if ( $(this).find('i').hasClass('fa-times') ) {
45				$('#top_menu_area_wrap').fadeOut( 300 );
46				$('#top_menu_area').animate( { right: '-100vw' }, 300 );
47				$(this).find('i').removeClass('fa-times').addClass('fa-bars');
48			} else {
49				$(this).find('i').removeClass('fa-bars').addClass('fa-times');
50				$('#top_menu_area_wrap').fadeIn( 300 );
51				$('#top_menu_area').animate( { right: '0' }, 300 );
52			}
53			return false;
54		} );
55		$(document).on( 'click', '#top_menu_area_wrap', function(){
56			$('#top_nav_menu a').click();
57		} );
58		$(document).on( 'click', '#top_menu_area a', function(){
59			if ( $(this).closest('li').find('ul').length > 0  ) {
60				$(this).closest('li').find('ul').toggle(100, function(){
61					if ( $(this).is(':visible') ) {
62						$(this).closest('li').children('a').removeClass("child_hide").addClass("child_show");
63					} else {
64						$(this).closest('li').children('a').removeClass("child_show").addClass("child_hide");
65
66					}
67				});
68				return false;
69			}
70			$('#top_nav_menu a').click();
71		} );
72	}
73	//パララックス
74	$(window).on( 'load resize scroll', function(){
75		_parallax();
76	} );
77} );
78
79
80function _parallax(){
81	$('.parallax').each( function(){
82		var wrapH = $(this).height();
83		var wrapW = $(this).width();
84		var img = new Image( );
85		img.src = $(this).css( 'backgroundImage' ).match( /^url\(["']?(.*?)["']?\)/i )[1];
86		//横幅を合わせて縦がはみ出る時
87		if ( ( $(this).height() < img.height * ( $(this).width() / img.width ) ) && ( $(this).offset().top <= ( $(window).scrollTop() + $(window).height() ) && ( $(this).offset().top + $(this).height() ) >= $(window).scrollTop() ) ) {
88			//パララックスの量を求める
89			var pVal = ( img.height * ( $(this).width() / img.width ) - $(this).height() ) / ( $(window).height() + $(this).height() );
90			var pSize = pVal * ( $(window).scrollTop() + $(window).height() - $(this).offset().top );
91			$(this).css( {
92				backgroundSize : '100% auto',
93				backgroundPosition: 'center ' + ( pSize - ( img.height * ( $(this).width() / img.width ) - $(this).height() ) ) + 'px'
94			} );
95		} else {
96			$(this).css( {
97				backgroundSize : 'cover',
98				backgroundPosition: 'center center'
99			} );
100		}
101	} );
102}
103
104function _getActualDimension( image ) {
105	var run, mem, w, h, key = "actual";
106
107	// for Firefox, Safari, Google Chrome
108	if ("naturalWidth" in image) {
109		return {width: image.naturalWidth, height: image.naturalHeight};
110	}
111	if ("src" in image) { // HTMLImageElement
112		if (image[key] && image[key].src === image.src) {return  image[key];}
113
114		if (document.uniqueID) { // for IE
115			w = $(image).css("width");
116			h = $(image).css("height");
117		} else { // for Opera and Other
118			mem = {w: image.width, h: image.height}; // keep current style
119			$(this).removeAttr("width").removeAttr("height").css({width:"",  height:""});    // Remove attributes in case img-element has set width  and height (for webkit browsers)
120			w = image.width;
121			h = image.height;
122			image.width  = mem.w; // restore
123			image.height = mem.h;
124		}
125		return image[key] = {width: w, height: h, src: image.src}; // bond
126	}
127
128	// HTMLCanvasElement
129		return {width: image.width, height: image.height};
130}
131
132function _fuwatto(){
133	$('.fuwatto').each( function(){
134		$(this).data( 'init', $(this).css('marginTop') ).animate( { opacity: 0 }, 0 );
135	} );
136	$(window).on( 'load resize scroll', function(){
137		$('.fuwatto').each( function(){
138			if ( $(this).css( "opacity" ) == '0' && $(this).offset().top < ( $(window).scrollTop() + $(window).height() - 400 ) ) {
139				$(this).animate( { opacity: 1 }, 600 );
140			}
141		} );
142	} );
143}
144
145function _setCalendar() {
146	$(document).on( 'keypress', '.at_calendar', function( e ){
147		//escキー
148		if ( $(this).data('now') == 'calField' && e.which == 27 ) {
149			$('#at_calendar').fadeOut( 200, function(){
150				$(this).remove();
151			} );
152			$('#at_calendar_bak').fadeOut( 200, function(){
153				$(this).remove();
154			} );
155			$('.at_calendar').each( function(){
156				if ( $(this).data('now') == 'calField' ) $(this).focus().data( 'now', '' );
157			} );
158		}
159	} );
160	$(document).on( 'click', '.at_calendar', function(){
161		if ( $('#at_calendar_bak').length > 0 ) {
162			$('.at_calendar').each( function(){
163				if ( $(this).data('now') == 'calField' ) $(this).data( 'now', '' );
164			} );
165			$('#at_calendar,#at_calendar_bak').remove();	//カレンダーを消す
166		}
167		$(this).data( 'now', 'calField' );
168		orgTxt = $(this).val();
169		var txt = _getCalendar( $(this).data('type'), "" );
170		//出力処理
171		txt = '<div id="at_calendar_bak"></div><div id="at_calendar" style="display:none;">' + txt + '</div>';
172		$('body').append(txt);
173		//表示位置を決定(右に300pxの余裕がない時は右に10px余る形、下に280pxの余裕がない時は上に表示させる)
174		if ( ( $(document).height() - ( $(this).offset().top + $(this).outerHeight() ) ) < 280 ) {
175			$('#at_calendar').css( { left:( ( ( $(window).width() - $(this).offset().left ) > 300 ) ? $(this).offset().left : ( $(window).width() - 310 ) ) + 'px', top:( $(this).offset().top - $('#at_calendar').height() ) + 'px' } );
176		} else {
177			$('#at_calendar').css( { left:( ( ( $(window).width() - $(this).offset().left ) > 300 ) ? $(this).offset().left : ( $(window).width() - 310 ) ) + 'px', top:( $(this).offset().top + $(this).outerHeight() ) + 'px' } );
178		}
179		$('#at_calendar').fadeIn( 200 );
180	} );
181	$(document).on( 'focus', '.at_calendar', function(){
182		if ( $(this).data('now') == 'calField' ) return false;
183		$(this).click();
184	} );
185	//カレンダーを消す
186	$(document).on( 'click', '#at_calendar_bak', function(){
187		$('#at_calendar').fadeOut( 200, function(){
188			$(this).remove();
189		} );
190		$(this).fadeOut( 200, function(){
191			$(this).remove();
192		} );
193		$('.at_calendar').each( function(){
194			if ( $(this).data('now') == 'calField' ) $(this).focus().data( 'now', '' );
195		} );
196	} );
197	//カレンダー切り替え
198	$(document).on( 'click', '#at_calendar_header a', function(){
199		var txt = "";
200		if ( $(this).hasClass('cyear') ) {
201			txt = _getCalendar( 'month', $(this).attr('rel') );
202		} else if ( $(this).hasClass('cmonth') ) {
203			txt = _getCalendar( 'date', $(this).attr('rel') );
204		}
205		$('#at_calendar_detail').fadeOut( 200, function(){
206			$('#at_calendar').html( txt )
207			$(this).fadeIn( 100 );
208		} );
209		return false;
210	} );
211	//プルダウンによる切り替え
212	$(document).on( 'change', '#at_calendar_header select', function(){
213		txt = _getCalendar( ( $(this).closest('div').find('select[name="at_calendar_select2"]').length == 0 ? 'month' : 'data' ), ( $(this).closest('div').find('select[name="at_calendar_select2"]').length == 0 ? $(this).closest('div').find('select[name="at_calendar_select1"]').val() : $(this).closest('div').find('select[name="at_calendar_select1"]').val() + '/' + ( '00' + $(this).closest('div').find('select[name="at_calendar_select2"]').val() ).substr(-2) ) );
214		$('#at_calendar_detail').fadeOut( 200, function(){
215			$('#at_calendar').html( txt )
216			$(this).fadeIn( 100 );
217		} );
218		return false;
219	} );
220	//カレンダー入力
221	$(document).on( 'click', '#at_calendar_detail a', function(){
222		var val = $(this).attr('rel');
223		$('#at_calendar').fadeOut( 200, function(){
224			$(this).remove();
225		} );
226		$('#at_calendar_bak').fadeOut( 200, function(){
227			$(this).remove();
228		} );
229		$('.at_calendar').each( function(){
230			if ( $(this).data('now') == 'calField' ) $(this).val( val ).focus().data( 'now', '' ).change();
231		} );
232		return false;
233	} );
234	//変更時のチェック
235	$(document).on( 'change', '.at_calendar', function(){
236		var chk = true;
237		const regex1 = /^[0-9]{4}\/(0[1-9]|1[0-2])\/(0[1-9]|[12][0-9]|3[01])$/;
238		const regex2 = /^[0-9]{4}\/(0[1-9]|1[0-2])$/;
239		if ( $(this).val() != '' ) {
240			//正規表現によるチェック
241			if ( $(this).data('type') == 'month' ) {
242				if ( ! regex2.test( $(this).val() ) ) chk = false;
243			} else {
244				if ( ! regex1.test( $(this).val() ) ) chk = false;
245			}
246			//現実の日付かチェック
247			if ( $(this).data('type') == 'month' ) {
248				var dt = new Date( $(this).val().substr( 0, 4 ), Number($(this).val().substr( 5, 2 ))-1, 1 );
249				if ( ! ( Number( $(this).val().substr( 0, 4 ) ) == dt.getFullYear() && Number( $(this).val().substr( 5, 2 ) ) == ( dt.getMonth() + 1 ) ) ) {
250					chk = false;
251				} else {
252					if ( ! ( $(this).data('start') == undefined ) && ( Number( $(this).data('start').substr( 0, 4 ) ) >= 1900 && Number( $(this).data('start').substr( 0, 4 ) ) <= 2100 && Number( $(this).data('start').substr( 5, 2 ) ) >= 1 && Number( $(this).data('start').substr( 5, 2 ) ) <= 12 ) ) {
253						//指定より前で不可
254						if ( Number( $(this).val().substr( 0, 4 ) ) < Number( $(this).data('start').substr( 0, 4 ) ) || ( Number( $(this).val().substr( 0, 4 ) ) == Number( $(this).data('start').substr( 0, 4 ) ) && Number( $(this).val().substr( 5, 2 ) ) < Number( $(this).data('start').substr( 5, 2 ) ) ) ) chk = false;
255					}
256					if ( ! ( $(this).data('end') == undefined ) && ( Number( $(this).data('end').substr( 0, 4 ) ) >= 1900 && Number( $(this).data('end').substr( 0, 4 ) ) <= 2100 && Number( $(this).data('end').substr( 5, 2 ) ) >= 1 && Number( $(this).data('end').substr( 5, 2 ) ) <= 12 ) ) {
257						//指定より後で不可
258						if ( Number( $(this).val().substr( 0, 4 ) ) > Number( $(this).data('end').substr( 0, 4 ) ) || ( Number( $(this).val().substr( 0, 4 ) ) == Number( $(this).data('end').substr( 0, 4 ) ) && Number( $(this).val().substr( 5, 2 ) ) > Number( $(this).data('end').substr( 5, 2 ) ) ) ) chk = false;
259					}
260				}
261			} else {
262				var dt = new Date( $(this).val().substr( 0, 4 ), Number( $(this).val().substr( 5, 2 ))-1, $(this).val().substr( 8, 2 ) );
263				if ( ! ( Number( $(this).val().substr( 0, 4 ) ) == dt.getFullYear() && Number( $(this).val().substr( 5, 2 ) ) == ( dt.getMonth() + 1 ) && Number( $(this).val().substr( 8, 2 ) ) == dt.getDate() ) ) {
264					chk = false;
265				} else {
266					if ( ! ( $(this).data('start') == undefined ) && ( Number( $(this).data('start').substr( 0, 4 ) ) >= 1900 && Number( $(this).data('start').substr( 0, 4 ) ) <= 2100 && Number( $(this).data('start').substr( 5, 2 ) ) >= 1 && Number( $(this).data('start').substr( 5, 2 ) ) <= 12 && Number( $(this).data('start').substr( 8, 2 ) ) >= 1 && Number( $(this).data('start').substr( 8, 2 ) ) <= 31 ) ) {
267						//指定より前で選択不可
268						if ( Number( $(this).val().substr( 0, 4 ) ) < Number( $(this).data('start').substr( 0, 4 ) ) || ( Number( $(this).val().substr( 0, 4 ) ) == Number( $(this).data('start').substr( 0, 4 ) ) && Number( $(this).val().substr( 5, 2 ) ) < Number( $(this).data('start').substr( 5, 2 ) ) ) || ( Number( $(this).val().substr( 0, 4 ) ) == Number( $(this).data('start').substr( 0, 4 ) ) && Number( $(this).val().substr( 5, 2 ) ) == Number( $(this).data('start').substr( 5, 2 ) ) && Number( $(this).val().substr( 8, 2 ) ) < Number( $(this).data('start').substr( 8, 2 ) ) ) ) chk = false;
269					}
270					if ( ! ( $(this).data('end') == undefined ) && ( Number( $(this).data('end').substr( 0, 4 ) ) >= 1900 && Number( $(this).data('end').substr( 0, 4 ) ) <= 2100 && Number( $(this).data('end').substr( 5, 2 ) ) >= 1 && Number( $(this).data('end').substr( 5, 2 ) ) <= 12 && Number( $(this).data('end').substr( 8, 2 ) ) >= 1 && Number( $(this).data('end').substr( 8, 2 ) ) <= 31 ) ) {
271						//指定より後で選択不可
272						if ( Number( $(this).val().substr( 0, 4 ) ) > Number( $(this).data('end').substr( 0, 4 ) ) || ( Number( $(this).val().substr( 0, 4 ) ) == Number( $(this).data('end').substr( 0, 4 ) ) && Number( $(this).val().substr( 5, 2 ) ) > Number( $(this).data('end').substr( 5, 2 ) ) ) || ( Number( $(this).val().substr( 0, 4 ) ) == Number( $(this).data('end').substr( 0, 4 ) ) && Number( $(this).val().substr( 5, 2 ) ) == Number( $(this).data('end').substr( 5, 2 ) ) && Number( $(this).val().substr( 8, 2 ) ) > Number( $(this).data('end').substr( 8, 2 ) ) ) ) chk = false;
273					}
274				}
275			}
276		}
277		if ( ! chk ) {
278			$(this).val( orgTxt ).focus();
279			return false;
280		}
281	} );
282}
283
284function _getCalendar( tp, showDt ){
285	var txt = "";
286	var obj;
287	var chkFlg;
288	$('.at_calendar').each( function(){
289		if ( $(this).data('now') == 'calField' ) obj = $(this);
290	} );
291	if ( tp == 'month' ) {
292		//月カレンダー
293		var dt = new Date();
294		if ( showDt != '' ) {
295			var sY = Number( showDt.substr( 0, 4 ) );
296			var sM = Number( showDt.substr( 5, 2 ) );
297		} else if ( Number( orgTxt.substr( 0, 4 ) ) >= 1900 && Number( orgTxt.substr( 0, 4 ) ) <= 2100 && Number( orgTxt.substr( 5, 2 ) ) >= 1 && Number( orgTxt.substr( 5, 2 ) ) <= 12 ) {
298			var sY = Number( orgTxt.substr( 0, 4 ) );
299			var sM = Number( orgTxt.substr( 5, 2 ) );
300		} else {
301			//現在日付
302			var sY = dt.getFullYear();
303			var sM = dt.getMonth()+1;
304		}
305		var sN = ( new Date() ).getFullYear() + '/' + ( '00' + ( ( new Date() ).getMonth()+1 ) ).substr(-2);
306		var sS = orgTxt.substr( 0, 7 );
307		//ヘッダ
308		txt += '<div id="at_calendar_header">';
309		//前の年
310		txt += '<div>';
311		if ( ! ( obj.data('start') == undefined ) && ( Number( obj.data('start').substr( 0, 4 ) ) >= 1900 && Number( obj.data('start').substr( 0, 4 ) ) <= 2100 && Number( obj.data('start').substr( 5, 2 ) ) >= 1 && Number( obj.data('start').substr( 5, 2 ) ) <= 12 ) ) {
312			if ( ! ( sY <= Number( obj.data('start').substr( 0, 4 ) ) ) ) txt += '<a href="#" rel="' + ( sY - 1 ) + '" class="cyear noscroll"><i class="fas fa-chevron-circle-left"></i></a>';
313		} else {
314			txt += '<a href="#" rel="' + ( sY - 1 ) + '" class="cyear noscroll"><i class="fas fa-chevron-circle-left"></i></a>';
315		}
316		txt += '</div>';
317		if ( obj.data('pulldown') == 'show' ) {
318			txt += '<div>';
319			txt += '<select name="at_calendar_select1">';
320			for ( i=( sY-10 ); i<=( sY+10); i++ ) {
321				chkFlg = true;
322				if ( ! ( obj.data('start') == undefined ) && Number( obj.data('start').substr( 0, 4 ) ) > i ) chkFlg = false;
323				if ( ! ( obj.data('end') == undefined ) && Number( obj.data('end').substr( 0, 4 ) ) < i ) chkFlg = false;
324				if ( chkFlg ) txt += '<option value="' + i + '"' + ( i == sY ? ' selected' : '' ) + '>
324' + i + '</option>';
325			}
326			txt += '</select><span>å¹´</span> ';
327			txt += '</div>';
328		} else {
329			txt += '<div style="padding-top:6px">';
330			txt += sY + '<span>å¹´</span>';
331			txt += '</div>';
332		}
333		//次の年
334		txt += '<div>';
335		if ( ! ( obj.data('end') == undefined ) && ( Number( obj.data('end').substr( 0, 4 ) ) >= 1900 && Number( obj.data('end').substr( 0, 4 ) ) <= 2100 && Number( obj.data('end').substr( 5, 2 ) ) >= 1 && Number( obj.data('end').substr( 5, 2 ) ) <= 12 ) ) {
336			if ( ! ( sY >= Number( obj.data('end').substr( 0, 4 ) ) ) ) txt += '<a href="#" rel="' + ( sY + 1 ) + '" class="cyear noscroll"><i class="fas fa-chevron-circle-right"></i></a>';
337		} else {
338			txt += '<a href="#" rel="' + ( sY + 1 ) + '" class="cyear noscroll"><i class="fas fa-chevron-circle-right"></i></a>';
339		}
340		txt += '</div>';
341		txt += '</div>';
342		//月を出力
343		txt += '<div id="at_calendar_detail">';
344		for ( i=1; i<=12; i++ ) {
345			chkFlg = true;
346			if ( ! ( obj.data('start') == undefined ) && ( Number( obj.data('start').substr( 0, 4 ) ) >= 1900 && Number( obj.data('start').substr( 0, 4 ) ) <= 2100 && Number( obj.data('start').substr( 5, 2 ) ) >= 1 && Number( obj.data('start').substr( 5, 2 ) ) <= 12 ) ) {
347				//指定より前で選択不可
348				if ( sY < Number( obj.data('start').substr( 0, 4 ) ) || ( sY == Number( obj.data('start').substr( 0, 4 ) ) && i < Number( obj.data('start').substr( 5, 2 ) ) ) ) chkFlg = false;
349			}
350			if ( ! ( obj.data('end') == undefined ) && ( Number( obj.data('end').substr( 0, 4 ) ) >= 1900 && Number( obj.data('end').substr( 0, 4 ) ) <= 2100 && Number( obj.data('end').substr( 5, 2 ) ) >= 1 && Number( obj.data('end').substr( 5, 2 ) ) <= 12 ) ) {
351				//指定より後で選択不可
352				if ( sY > Number( obj.data('end').substr( 0, 4 ) ) || ( sY == Number( obj.data('end').substr( 0, 4 ) ) && i > Number( obj.data('end').substr( 5, 2 ) ) ) ) chkFlg = false;
353			}
354			if ( chkFlg ) {
355				txt += '<a href="#" class="noscroll at_month' + ( ( sY + '/' + ( '00' + i ).substr(-2) ) == sN ? ' at_now' : ( ( sY + '/' + ( '00' + i ).substr(-2) ) == sS ? ' at_select' : '' ) ) + '" rel="' + sY + '/' + ( '00' + i ).substr(-2) + '">' + i + '月</a>';
356			} else {
357				txt += '<div class="at_month">' + i + '月</div>';
358			}
359		}
360		txt += '</div>';
361	} else {
362		//通常カレンダー
363		if ( showDt != '' ) {
364			var dt = new Date( showDt + '/01' );
365			var sY = dt.getFullYear();
366			var sM = dt.getMonth()+1;
367			var sD = dt.getDate();
368			var sW = dt.getDay();
369		} else if ( ! isNaN( new Date( orgTxt ).getTime() ) ) {
370			var dt = new Date( orgTxt );
371			var sY = dt.getFullYear();
372			var sM = dt.getMonth()+1;
373			var sD = dt.getDate();
374			var sW = ( new Date( orgTxt.substr(0,8) + '01' ) ).getDay();
375		} else {
376			//現在日付
377			var dt = new Date();
378			var sY = dt.getFullYear();
379			var sM = dt.getMonth()+1;
380			var sD = dt.getDate();
381			var sW = ( new Date( sY+'/'+( '00'+sM ).substr(-2)+'/01' ) ).getDay();
382		}
383		//指定範囲のチェック
384		if ( ! ( obj.data('start') == undefined ) && ( Number( obj.data('start').substr( 0, 4 ) ) > sY || ( Number( obj.data('start').substr( 0, 4 ) ) == sY && Number( obj.data('start').substr( 5, 2 ) > sM ) ) ) ) {
385			sY = Number( obj.data('start').substr( 0, 4 ) );
386			sM = Number( obj.data('start').substr( 5, 2 ) );
387			sD = 1;
388			dt = new Date( sY + '/' + ( '00' + sM ).substr(-2) + '/01' );
389			sW = dt.getDay(  );
390		}
391		if ( ! ( obj.data('end') == undefined ) && ( Number( obj.data('end').substr( 0, 4 ) ) < sY || ( Number( obj.data('end').substr( 0, 4 ) ) == sY && Number( obj.data('end').substr( 5, 2 ) < sM ) ) ) ) {
392			sY = Number( obj.data('end').substr( 0, 4 ) );
393			sM = Number( obj.data('end').substr( 5, 2 ) );
394			sD = 1;
395			dt = new Date( sY + '/' + ( '00' + sM ).substr(-2) + '/01' );
396			sW = dt.getDay(  );
397		}
398		var sS = orgTxt;
399		var sL = ( new Date( dt.getFullYear(), dt.getMonth() + 1, 0 ) ).getDate();
400		var sN = ( new Date() ).getFullYear() + '/' + ( '00' + ( ( new Date() ).getMonth()+1 ) ).substr(-2) + '/' + ( '00' + ( new Date() ).getDate() ).substr(-2);
401		//ヘッダ
402		txt += '<div id="at_calendar_header">';
403		//前の月
404		txt += '<div>';
405		if ( ! ( obj.data('start') == undefined ) && ( Number( obj.data('start').substr( 0, 4 ) ) >= 1900 && Number( obj.data('start').substr( 0, 4 ) ) <= 2100 && Number( obj.data('start').substr( 5, 2 ) ) >= 1 && Number( obj.data('start').substr( 5, 2 ) ) <= 12 && Number( obj.data('start').substr( 8, 2 ) ) >= 1 && Number( obj.data('start').substr( 8, 2 ) ) <= 31 ) ) {
406			if ( sY > Number( obj.data('start').substr( 0, 4 ) ) || ( sY == Number( obj.data('start').substr( 0, 4 ) ) && sM > Number( obj.data('start').substr( 5, 2 ) ) ) ) txt += '<a href="#" rel="' + ( sM == 1 ? ( sY - 1 ) : sY ) + '/' + ( '00' + ( sM == 1 ? 12 : sM - 1 ) ).substr(-2) + '" class="cmonth noscroll"><i class="fas fa-chevron-circle-left"></i></a>';
407		} else {
408			txt += '<a href="#" rel="' + ( sM == 1 ? ( sY - 1 ) : sY ) + '/' + ( '00' + ( sM == 1 ? 12 : sM - 1 ) ).substr(-2) + '" class="cmonth noscroll"><i class="fas fa-chevron-circle-left"></i></a>';
409		}
410		txt += '</div>';
411		if ( obj.data('pulldown') == 'show' ) {
412			txt += '<div>';
413			txt += '<select name="at_calendar_select1">';
414			for ( i=( sY-10 ); i<=( sY+10); i++ ) {
415				chkFlg = true;
416				if ( ! ( obj.data('start') == undefined ) && Number( obj.data('start').substr( 0, 4 ) ) > i ) chkFlg = false;
417				if ( ! ( obj.data('end') == undefined ) && Number( obj.data('end').substr( 0, 4 ) ) < i ) chkFlg = false;
418				if ( chkFlg ) txt += '<option value="' + i + '"' + ( i == sY ? ' selected' : '' ) + '>
418' + i + '</option>';
419			}
420			txt += '</select><span>å¹´</span> ';
421			txt += '<select name="at_calendar_select2">';
422			for ( i=1; i<=12; i++ ) {
423				chkFlg = true;
424				if ( ! ( obj.data('start') == undefined ) && ( Number( obj.data('start').substr( 0, 4 ) ) > sY || ( Number( obj.data('start').substr( 0, 4 ) ) == sY && Number( obj.data('start').substr( 5, 2 ) ) > i ) ) ) chkFlg = false;
425				if ( ! ( obj.data('end') == undefined ) && ( Number( obj.data('end').substr( 0, 4 ) ) < sY || ( Number( obj.data('end').substr( 0, 4 ) ) == sY && Number( obj.data('end').substr( 5, 2 ) ) < i ) ) ) chkFlg = false;
426				if ( chkFlg ) txt += '<option value="' + i + '"' + ( i == sM ? ' selected' : '' ) + '>' + i + '</option>';
427			}
428			txt += '</select><span>月</span>';
429			txt += '</div>';
430		} else {
431			txt += '<div style="padding-top:6px">';
432			txt += sY + '<span>年</span> ' + sM + '<span>月</span>';
433			txt += '</div>';
434		}
435		//次の月
436		txt += '<div>';
437		if ( ! ( obj.data('end') == undefined ) && ( Number( obj.data('end').substr( 0, 4 ) ) >= 1900 && Number( obj.data('end').substr( 0, 4 ) ) <= 2100 && Number( obj.data('end').substr( 5, 2 ) ) >= 1 && Number( obj.data('end').substr( 5, 2 ) ) <= 12 && Number( obj.data('end').substr( 8, 2 ) ) >= 1 && Number( obj.data('end').substr( 8, 2 ) ) <= 31 ) ) {
438			if ( sY < Number( obj.data('end').substr( 0, 4 ) ) || ( sY == Number( obj.data('end').substr( 0, 4 ) ) && sM < Number( obj.data('end').substr( 5, 2 ) ) ) ) txt += '<a href="#" rel="' + ( sM == 12 ? ( sY + 1 ) : sY ) + '/' + ( sM == 12 ? 1 : sM + 1 ) + '" class="cmonth noscroll"><i class="fas fa-chevron-circle-right"></i></a>';
439		} else {
440			txt += '<a href="#" rel="' + ( sM == 12 ? ( sY + 1 ) : sY ) + '/' + ( sM == 12 ? 1 : sM + 1 ) + '" class="cmonth noscroll"><i class="fas fa-chevron-circle-right"></i></a>';
441		}
442		txt += '</div>';
443		txt += '</div>';
444		//日を出力
445		txt += '<div id="at_calendar_detail">';
446		txt += '<div class="at_week">日</div>';
447		txt += '<div class="at_week">月</div>';
448		txt += '<div class="at_week">火</div>';
449		txt += '<div class="at_week">æ°´</div>';
450		txt += '<div class="at_week">木</div>';
451		txt += '<div class="at_week">金</div>';
452		txt += '<div class="at_week">土</div>';
453		for ( i=1; i<=sW; i++ ) {
454			txt += '<div class="at_week">&nbsp;</div>';
455		}
456		for ( i=1; i<=sL; i++ ) {
457			chkFlg = true;
458			if ( ! ( obj.data('start') == undefined ) && ( Number( obj.data('start').substr( 0, 4 ) ) >= 1900 && Number( obj.data('start').substr( 0, 4 ) ) <= 2100 && Number( obj.data('start').substr( 5, 2 ) ) >= 1 && Number( obj.data('start').substr( 5, 2 ) ) <= 12 && Number( obj.data('start').substr( 8, 2 ) ) >= 1 && Number( obj.data('start').substr( 8, 2 ) ) <= 31 ) ) {
459				//指定より前で選択不可
460				if ( sY < Number( obj.data('start').substr( 0, 4 ) ) || ( sY == Number( obj.data('start').substr( 0, 4 ) ) && sM < Number( obj.data('start').substr( 5, 2 ) ) ) || ( sY == Number( obj.data('start').substr( 0, 4 ) ) && sM == Number( obj.data('start').substr( 5, 2 ) ) && i < Number( obj.data('start').substr( 8, 2 ) ) ) ) chkFlg = false;
461			}
462			if ( ! ( obj.data('end') == undefined ) && ( Number( obj.data('end').substr( 0, 4 ) ) >= 1900 && Number( obj.data('end').substr( 0, 4 ) ) <= 2100 && Number( obj.data('end').substr( 5, 2 ) ) >= 1 && Number( obj.data('end').substr( 5, 2 ) ) <= 12 && Number( obj.data('end').substr( 8, 2 ) ) >= 1 && Number( obj.data('end').substr( 8, 2 ) ) <= 31 ) ) {
463				//指定より後で選択不可
464				if ( sY > Number( obj.data('end').substr( 0, 4 ) ) || ( sY == Number( obj.data('end').substr( 0, 4 ) ) && sM > Number( obj.data('end').substr( 5, 2 ) ) ) || ( sY == Number( obj.data('end').substr( 0, 4 ) ) && sM == Number( obj.data('end').substr( 5, 2 ) ) && i > Number( obj.data('end').substr( 8, 2 ) ) ) ) chkFlg = false;
465			}
466			if ( chkFlg ) {
467				txt += '<a href="#" class="noscroll at_date' + ( ( sY + '/' + ( '00' + sM ).substr(-2) + '/' + ( '00' + i ).substr(-2) ) == sN ? ' at_now' : ( ( sY + '/' + ( '00' + sM ).substr(-2) + '/' + ( '00' + i ).substr(-2) ) == sS ? ' at_select' : '' ) ) + '" rel="' + sY + '/' + ( '00'+sM ).substr( -2 ) + '/' + ( '00'+i ).substr( -2 ) + '">' + i + '</a>';
468			} else {
469				txt += '<div class="at_date">' + i + '</div>';
470			}
471		}
472		txt += '</div>';
473	}
474	return txt;
475}
476
477function index_initMenu(){
478	$('#top_menu_area ul').append( '<li class="li_space"></li>' + $('#top_global_menu ul').html() );
479	$('#top_menu_area > ul > li > a').each( function(){
480		if ( $(this).closest('li').find('ul').length > 0 ) $(this).addClass('child_hide');
481	});
482} 

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.