PageSourceSearch

http://michitabi.com/common/js/lib.js?1790789518

js michitabi.com collected 2026-09-30 17:32:20 UTC 7,946 bytes, 316 lines download raw bytes

1/* IE用 背景画像読込キャッシュ
2#
3# スプライト画像、背景画像などのチラつき防止
4#
5--------------------------------------------------------------------*/
6try{ document.execCommand('BackgroundImageCache', false, true); }catch(e){}
7
8
9/* IE判別
10#
11# IEであれば バージョン番号、IEでなければ undefine
12#
13--------------------------------------------------------------------*/
14var ie = (function(){
15	var undef,
16		v = 3,
17		div = document.createElement('div'),
18		all = div.getElementsByTagName('i');
19	while (
20		div.innerHTML = '<!--[if gt IE ' + (++v) + ']><i></i><![endif]-->',
21		all[0]
22    );
23    return v > 4 ? v : undef;
24}());
25
26
27/* addEvent 関数
28#
29# イベントの追加用
30#
31--------------------------------------------------------------------*/
32var addEvent = function(event, func){
33	try {
34		window.addEventListener(event, func, false);
35	} catch (e) {
36		window.attachEvent('on'+event, func);
37	}
38}
39
40
41/* addEventFunc 関数
42#
43# onload イベントの追加用
44#
45--------------------------------------------------------------------*/
46var addEventFunc = function(func){
47	try {
48		window.addEventListener('load', func, false);
49	} catch (e) {
50		window.attachEvent('onload', func);
51	}
52}
53
54
55/* objCheck 関数
56#
57# オブジェクトチェック用関数
58#
59# 戻り値
60#  true: 有効なオブジェクト
61#  false: 無効なオブジェクト(undefined,null,'')
62#
63--------------------------------------------------------------------*/
64function objCheck(obj) {
65	return (typeof obj == 'undefined' || obj == null || obj == '') ? false : true;
66}
67
68
69/* smartRollover 関数
70#
71# 画像のロールオーバーを画像名で判断して設定する
72#
73--------------------------------------------------------------------*/
74var smartRollover = {
75	init: function(){
76		smartRollover.setup('img');
77		smartRollover.setup('input');
78	},
79	setup: function(tag) {
80		var ovr = '_on2.';
81		var out = '_off2.';
82
83		var obj = document.getElementsByTagName(tag);
84		if(objCheck(obj) == false) return false;
85
86		var preload = [];
87		for(var i=0; i<obj.length; i++) {
88			if(obj[i].src.indexOf(out) != -1){
89				var src = obj[i].src;
90				obj[i].ext = src.slice(src.lastIndexOf('.')+1, src.length);
91				obj[i].nimg = src;
92				obj[i].oimg = src.replace(out + obj[i].ext, ovr + obj[i].ext);
93
94				preload[i] = new Image();
95				preload[i].src = obj[i].oimg;
96
97				obj[i].onmouseover = function() {
98					this.setAttribute('src', this.oimg);
99				};
100				obj[i].onmouseout = function() {
101					this.setAttribute('src', this.nimg);
102				};
103			}
104		}
105		return false;
106	}
107}
108addEventFunc(smartRollover.init);
109
110
111/* myCookie 関数
112#
113# クッキーの読み込み書き込み
114#
115--------------------------------------------------------------------*/
116var sDays = 3000;
117var myCookie = {
118	set: function(myCookie,myValue,myDay) {
119		var myExp = new Date();
120		myExp.setTime(myExp.getTime()+(myDay*24*60*60*1000));
121		var myItem = '@' + myCookie + '=' + escape(myValue) + ';';
122		var myExpires = 'expires='+myExp.toGMTString();
123		document.cookie = myItem + myExpires + '; path=/';
124	},
125	get: function(myCookie) {
126		myCookie = '@' + myCookie + '=';
127		var myValue = null;
128		var myStr = document.cookie + ';' ;
129		var myOfst = myStr.indexOf(myCookie);
130		if (myOfst != -1){
131			var myStart = myOfst + myCookie.length;
132			var myEnd   = myStr.indexOf(';' , myStart);
133			myValue = unescape(myStr.substring(myStart,myEnd));
134		}
135		return myValue;
136	}
137};
138
139
140/* formCharsetReset 関数
141#
142# IE用 フォーム送信時の文字化け対策
143#
144--------------------------------------------------------------------*/
145function formCharsetReset(){
146	if(/*@cc_on!@*/false){
147		document.charset = 'utf-8';
148		return;
149	} else {
150		return
151	}
152}
153
154//検索遷移の直前にCharsetを戻す
155if(/*@cc_on!@*/false){
156	addEvent('beforeunload', (function(){
157		if(document.charset != 'utf-8'){
158			document.charset = 'utf-8';
159		}
160	}));
161}
162
163
164/* フローティング メニュー
165#
166# グローバルナビ各種設定
167#
168--------------------------------------------------------------------*/
169addEventFunc((function(){
170	var gnavi =  document.getElementById('globalNavi');
171	if(objCheck(gnavi) == false) return false;
172
173	if(ie <= 6){
174		var iframe = document.createElement('iframe');
175		iframe.id = 'shim';
176		iframe.src = 'javascript:;';
177		iframe.width = '952';
178		iframe.style.position = 'absolute';
179		iframe.style.zIndex = '-1';
180		iframe.style.display = 'none';
181		gnavi.appendChild(iframe);
182	}
183
184	var navs = gnavi.getElementsByTagName('li');
185	var links = gnavi.getElementsByTagName('a');
186
187	for(var i=0,len=navs.length; i<len; i++){
188		if(navs[i].id.indexOf('li') != -1){
189			navs[i].onmouseover = function(){
190				if(this.className.indexOf('hover') == -1){
191					this.className = 'hover';
192					if(ie <= 6){
193						var shim = document.getElementById('shim');
194						var child = this.getElementsByTagName('div');
195						if(objCheck(child[0])){
196							shim.height = child[0].offsetHeight - 7;
197							shim.style.display = 'block';
198						}
199					}
200				}
201			};
202			navs[i].onmouseout = function(){
203				if(this.className.indexOf('hover') != -1){
204					this.className = '';
205					if(ie <= 6){
206						var shim = document.getElementById('shim');
207						shim.style.display = 'none';
208					}
209				}
210			};
211			if(ie){
212				navs[i].onselectstart = function(){ return false; }
213			}
214		}
215	}
216	for(var i=0,len=links.length; i<len; i++){
217		if(links[i].className.indexOf('close2menu') != -1){
218			links[i].onclick = function(){
219				var id = this.href.substr(this.href.lastIndexOf('#') + 1);
220				var menu = document.getElementById(id);
221				if(menu.className.indexOf('hover') != -1){
222					menu.className = '';
223					if(ie <= 6){
224						var shim = document.getElementById('shim');
225						shim.style.display = 'none';
226					}
227				}
228				return false;
229			}
230		}
231	}
232
233}));
234
235
236
237/* スマホの場合、cssを入れる
238#
239#
240#
241--------------------------------------------------------------------*/
242addEventFunc((function(){
243	var css_files = document.getElementsByTagName('link');
244	
245	var noselect_css = '_noselect';
246	var menu_sub_css = '_sub';
247	var extent_css = '.css';
248	var css_path = '/css/menu/';
249	
250	//スマホかどうか判定
251	var ua = navigator.userAgent;
252	if ( (ua.indexOf('iPhone') < 0) && (ua.indexOf('iPod') < 0) && (ua.indexOf('Android') < 0) ){
253		
254		return false;
255	}
256		
257	for(i=0; i<css_files.length; i++) {
258		if((css_files[i].getAttribute('rel').indexOf('style') != -1)){
259
260			var s_menuxx = css_files[i].getAttribute('href').replace(css_path + 'menu','');
261			s_menuxx = s_menuxx.replace(extent_css,'');
262			
263			//menuxx.css
264			if (! isNaN(s_menuxx)){
265				cssCreate(css_path + 'menu' + s_menuxx + '_sp' +extent_css);
266			}else{
267				s_menuxx = s_menuxx.replace(noselect_css,'');
268			
269				//menuxx_noselect_sp.css
270				if (! isNaN(s_menuxx)){
271					//alert(css_path + 'menu' + s_menuxx + noselect_css + '_sp' +extent_css);
272					cssCreate(css_path + 'menu' + s_menuxx + noselect_css + '_sp' +extent_css);
273				}else{
274					s_menuxx = s_menuxx.replace(menu_sub_css,'');
275					s_menuxx = s_menuxx.replace(extent_css,'');
276				
277					//menu_subxx_sp.css
278					if (! isNaN(s_menuxx)){
279						//alert(css_path + 'menu'+ menu_sub_css + s_menuxx + '_sp' +extent_css);
280						cssCreate(css_path + 'menu'+ menu_sub_css + s_menuxx + '_sp' +extent_css);
281					}
282				}	
283			}
284		}
285
286	}
287	
288	function cssCreate( file ){  
289    var link = document.createElement('link');  
290    with( link ) {  
291        href = file;  
292        type = 'text/css';  
293        rel = 'stylesheet';  
294    }  
295      
296    var head = document.getElementsByTagName('head');  
297    head.item(0).appendChild(link);  
298} 
299
300	
301	
302}));
303
304/**
305 * 全角から半角文字へ変換する関数
306 *
307 */
308function zenToHanString(id)
309{
310    //var str = document.getElementById(id).value;
311    //var halfVal = str.replace(/[!-~]/g, function(tmpStr){
312      // 文字コードをシフト
313    //  return String.fromCharCode( tmpStr.charCodeAt(0) - 0xFEE0 );
314    //});
315    //document.getElementById(id).value = halfVal;
316}

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.