// ======================================================================
// 
// 汎用JavaScript v1.10
// 
// ======================================================================



//　NN4ウインドウリサイズ対策
if (document.layers){
	window.captureEvents (Event.RESIZE);
	window.onresize = new Function ("location.reload()");
}



//　CSS判別
os = getOSType();
browser = getBrowserName();					// ブラウザ判別
version = getBrowserVersion();				// ブラウザバージョン判別
if (os == "MacOS"){
	if(browser == "Netscape"){
		if(version < 5){
			fileName = "css/nn4_mac.css";
		}else{
			fileName = "css/other.css";
		}
	}else{
		fileName = "css/other.css";
	}
}else{
	if(browser == "Explorer"){
		fileName = "css/ie_win.css";
	}else{
		if(version < 5){
			fileName = "css/nn4_win.css";
		}else{
			fileName = "css/other.css";
		}
	}
}



function MM_preloadImages() { //v3.0
	var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
	var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
	if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}



function MM_swapImgRestore() { //v3.0
	var i,x,a=document.MM_sr;
	for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}



function MM_findObj(n, d) { //v4.01
	var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
	d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
	if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
	for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
	if(!x && d.getElementById) x=d.getElementById(n); return x;
}



function MM_swapImage() { //v3.0
	var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
	if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}



function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}



// マウス位置を取得（Ｘ座標）
function getMouseX(evt){
	if(document.all){
		return document.body.scrollLeft + event.clientX;
	}else if(document.layers || document.getElementById){
		return evt.pageX;
	}
}



// マウス位置を取得（Ｙ座標）
function getMouseY(evt){
	if(document.all){
		return document.body.scrollTop + event.clientY;
	}else if(document.layers || document.getElementById){
		return evt.pageY;
	}
}



// レイヤードラッグ
function lyDrag(myID, evt){
	dragElement = myID;										// ドラッグレイヤーＩＤ設定
	offsetX = getMouseX(evt) - getLayerLeft(myID);			// ドラッグ差分値取得（Ｘ座標）
	offsetY = getMouseY(evt) - getLayerTop(myID);			// ドラッグ差分値取得（Ｙ座標）
	if(document.layers){									// NN4の場合
		document.captureEvents(Event.MOUSEMOVE);
		document.captureEvents(Event.MOUSEUP);
	}
	document.onmousemove = startDrag;
	document.onmouseup = endDrag;
}



// ドラッグ開始
function startDrag(evt){
	if(dragElement){
		lyMove(dragElement, getMouseX(evt) - offsetX, getMouseY(evt) - offsetY);
	}
}



// ドラッグ解除
function endDrag() {
	dragElement = null;
}



// レイヤー移動
function lyMove(myID, left, top, clpTop, clpRight, clpButtom, clpLeft){
	var Layer = lyName(myID);
	Layer.top = top;
	Layer.left = left;
	if(clpTop != null){										// クリッピングレイヤーの場合
		if(document.layers){								// NN4の場合
			Layer.clip.top = clpTop;
			Layer.clip.right = clpRight;
			Layer.clip.bottom = clpButtom;
			Layer.clip.left = clpLeft;
		}else{
			Layer.clip = "rect("+ clpTop +","+ clpRight +","+ clpButtom +","+ clpLeft +")";
		}
	}
}



// レイヤー表示
function lyVis(myID, cenFlg, pos){
	var Layer = lyName(myID);
	if(cenFlg){
		var width = winWidth();
		Layer.left = width/2 + pos;							// 表示位置
	}
	Layer.visibility = "visible";
}



// レイヤー非表示
function lyHid(myID){
	var Layer = lyName(myID);
	Layer.visibility = "hidden";
}



// ブラウザ毎のレイヤー設定
function lyName(myID){
	var Layer;
	if(navigator.appName == "Netscape"){					// NNの場合
		if(document.layers){
			Layer = document.layers[myID];					// NN4の場合
		}else{
			Layer = document.getElementById(myID).style;	// NN6の場合
		}
	}else{													// IEの場合
		Layer = document.all[myID].style;
	}
	return Layer;
}



// レイヤーのLeft値を取得
function getLayerLeft(myID){
	var left;
	var Layer = lyName(myID);
	if(document.all){
		left = Layer.pixelLeft;
	}else if(document.layers || document.getElementById){
		left = parseInt(Layer.left);						// 整数値に変換
	}
	return left;
}



// レイヤーのTop値を取得
function getLayerTop(myID){
	var top;
	var Layer = lyName(myID);
	if(document.all){
		top = Layer.pixelTop;
	}else if(document.layers || document.getElementById){
		top = parseInt(Layer.top);							// 整数値に変換
	}
	return top;
}



// レイヤーの高さを取得
function getLayerH(myID){
	var LayerH;
	if(document.layers){							// NN4の場合
		LayerH = document.layers[myID].clip.height;
	}else if(document.getElementById){				// NN6以上,Mozillaの場合
		LayerH = document.getElementById(myID).offsetHeight;
	}else{											// IEの場合
		LayerH = document.all(myID).clientHeight;
	}
	return LayerH;
}



// ブラウザウィンドウ幅を取得
function winWidth(){
	var width;
	if(navigator.appName == "Netscape"){					// NNの場合
		width = window.innerWidth;
	}else{													// IEの場合
		width = window.document.body.clientWidth;
	}
	return width;
}



//　ウィンドウスクロール
function scrl(){
	var st = (new Date()).getTime();
	var time = 20;							//　繰返し間隔
	var height = 1;							//　移動初期値
	var isize;
	var browser = getBrowserName();			//　ブラウザ判別
	if (browser == "Explorer") isize = document.body.scrollTop;
	if (browser == "Netscape") isize = pageYOffset;

	while (isize > 0){
		var tm = (new Date()).getTime() - st;
		if(tm > time){
			height *= 1.8;					//　移動値を増加
			height = Math.round(height);
			isize -= height;
			scrollTo(0, isize);
			st = (new Date()).getTime();
		}
	}
	scrollTo(0, 0);
}



//　サブウィンドウオープン
function subwin(url, winName, option){
	win = window.open(url, winName, option);
	win.focus();
}



//　OS判別
//　Macintosh           　->  MacOS
//　Windows95/98/NT/2000  ->　Windows
//　UNIX                  ->　UNIX
function getOSType()
{
    var uAgent  = navigator.userAgent.toUpperCase();
    if (uAgent.indexOf("MAC") >= 0) return "MacOS";
    if (uAgent.indexOf("WIN") >= 0) return "Windows";
    if (uAgent.indexOf("X11") >= 0) return "UNIX";
    return "";
}



//　ブラウザ判別
//　Netscape Navigator ->  Netscape
//　Internet Explorer  ->　Explorer
function getBrowserName()
{
	var aName  = navigator.appName.toUpperCase();
	if (aName.indexOf("NETSCAPE") >= 0)  return "Netscape";
	if (aName.indexOf("MICROSOFT") >= 0) return "Explorer";
	return "";
}



//　ブラウザバージョン判別
function getBrowserVersion()
{
	var browser = getBrowserName();
	var version = 0;
	var s = 0;
	var e = 0;
	var appVer  = navigator.appVersion;
	if (browser == "Netscape")
	{
		s = appVer.indexOf(" ",0);
		version = eval(appVer.substring(0,s));
		if (version >= 5) version++;
	}
	if (browser == "Explorer")
	{
		appVer  = navigator.userAgent;
		s = appVer.indexOf("MSIE ",0) + 5;
		e = appVer.indexOf(";",s);
		version = eval(appVer.substring(s,e));
	}
	return version;
}



// Flashプラグイン判定
function flashCheck(version){
	var flag;
	var plugin = (navigator.mimeTypes && navigator.mimeTypes["application/x-shockwave-flash"]) ? navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin : 0;
	if (plugin){
		var words = navigator.plugins["Shockwave Flash"].description.split(" ");
	    for (var i=0; i<words.length; ++i){
			if ( isNaN(parseInt(words[i])) )
			continue;
			var MM_PluginVersion = words[i]; 
	    }
		flag = MM_PluginVersion >= version;
	}
	return flag;
}
