/* onload時に設定されるJavaScriptです。*/


//ロールオーバーの設定です。-----------------------------------------------------------------------

function initRollovers() {
	if (!document.getElementById) return;

	var aPreLoad = new Array();
	var sTempSrc;
	var aImages = document.getElementsByTagName('img');

	for (var i = 0; i < aImages.length; i++) {
		if (aImages[i].className == 'imgover') {
			var src = aImages[i].getAttribute('src');
			var ftype = src.substring(src.lastIndexOf('.'), src.length);
			var hsrc = src.replace(ftype, '_over'+ftype);

			aImages[i].setAttribute('hsrc', hsrc);

			aPreLoad[i] = new Image();
			aPreLoad[i].src = hsrc;

			aImages[i].onmouseover = function() {
				sTempSrc = this.getAttribute('src');
				this.setAttribute('src', this.getAttribute('hsrc'));
			}

			aImages[i].onmouseout = function() {
				if (!sTempSrc) sTempSrc = this.getAttribute('src').replace('_over'+ftype, ftype);
				this.setAttribute('src', sTempSrc);
			}
		}
	}
}



//ドロップダウンの設定です。-----------------------------------------------------------------------

function initDropdown() {
	if (!document.getElementById) return;

	var dropDown = new Array();
	var ddBtnImage = new Array();
	var ddPreLoad = new Array();
	var ddTempSrc;

	//親メニューの項目数を取得
	Navi = document.getElementById('gnavi');
	ddLength = 0;
	for (var n = 0; n < Navi.childNodes.length; n++) {
		if(Navi.childNodes[n].nodeName == "LI") ddLength++;
	}

	for (var i = 0; i < ddLength; i++) {
		dropDown[i] = document.getElementById('dd' + (i+1));
    ddBtnImage[i] = dropDown[i].childNodes[0].childNodes[0];

		var src = ddBtnImage[i].getAttribute('src');
		var ftype = src.substring(src.lastIndexOf('.'), src.length);
		if (src.indexOf('_over') == -1) {
			var hsrc = src.replace(ftype, '_over'+ftype);
		} else {
			var hsrc = src;
		}

    ddBtnImage[i].setAttribute('hsrc', hsrc);

		ddPreLoad[i] = new Image();
		ddPreLoad[i].src = hsrc;

		//Netscapeバグ回避のため、表示・非表示の切換えをdisplayからvisibilityに変更
		dropDown[i].childNodes[2].style.display = 'block';
		dropDown[i].childNodes[2].style.visibility = 'hidden';

		//マウスオーバー設定
		dropDown[i].onmouseover = function() {
			this.childNodes[2].style.visibility = 'visible';
			ddTempSrc = this.childNodes[0].childNodes[0].getAttribute('src');
			this.childNodes[0].childNodes[0].setAttribute('src', this.childNodes[0].childNodes[0].getAttribute('hsrc'));
		}

		//マウスアウト設定
		dropDown[i].onmouseout = function() {
			this.childNodes[2].style.visibility = 'hidden';
			if (!ddTempSrc) ddTempSrc = this.childNodes[0].childNodes[0].getAttribute('src').replace('_over'+ftype, ftype);
			this.childNodes[0].childNodes[0].setAttribute('src', ddTempSrc);
		}
	}
}



//タブ切替の設定です。-----------------------------------------------------------------------

tabLength = 0;
tabImage = new Array();
tabBox = new Array();
tabSrc = new Array();
tabOnSrc = new Array();

function getTabLength() {
	if (!document.getElementById('tab')) return;

	var tabPreLoad = new Array();

	Tab = document.getElementById('tab');
	for (var i = 0; i < Tab.childNodes.length; i++) {
		if(Tab.childNodes[i].nodeName == "LI") tabLength++;
	}

	for (var n = 0; n < tabLength; n++) {
		tabImage[n] = document.getElementById('tab0' + (n+1)).childNodes[0].childNodes[0];
		tabSrc[n] = tabImage[n].getAttribute('src');
		var ftype = tabSrc[n].substring(tabSrc[n].lastIndexOf('.'), tabSrc[n].length);
		tabOnSrc[n] = tabSrc[n].replace(ftype, '_on'+ftype);
    tabImage[n].setAttribute('onsrc', tabOnSrc[n]);
		tabPreLoad[n] = new Image();
		tabPreLoad[n].src = tabOnSrc[n];

		tabBox[n] = document.getElementById('tabbox0' + (n+1));
	}
	tabChange(0);
}

function tabChange(num) {
	for (var n = 0; n < tabLength; n++) {
		tabImage[n].setAttribute('src', tabSrc[n]);
		tabBox[n].style.display = 'none';
	}
	tabImage[num].setAttribute('src', tabOnSrc[num]);
	tabBox[num].style.display = 'block';
}



//スクロール処理の設定です。-----------------------------------------------------------------------

var tinyScrolling = {
	speed : 30,      //set here the scroll speed: when this value increase, the speed decrease. 
	maxStep: 200,	 //set here the "uniform motion" step for long distances
	brakeK: 5,		 //set here the coefficient of slowing down
	hash:null,		
	currentBlock:null,
	requestedY:0,
	init: function() {
			var lnks = document.getElementsByTagName('a');   
			for(var i = 0, lnk; lnk = lnks[i]; i++) {   
				if ((lnk.href && lnk.href.indexOf('#') != -1) &&  ( (lnk.pathname == location.pathname) ||
				('/'+lnk.pathname == location.pathname) ) && (lnk.search == location.search)) {  
				lnk.onclick = tinyScrolling.initScroll;   		
				}   
			}
	},
	getElementYpos: function(el){
			var y = 0;
			while(el.offsetParent){  
				y += el.offsetTop    
				el = el.offsetParent;
			}	return y;
	},		
	getScrollTop: function(){
			if(document.all) return (document.documentElement.scrollTop) ? document.documentElement.scrollTop : document.body.scrollTop;
			else return window.pageYOffset;   
	},	
	getWindowHeight: function(){
			if (window.innerHeight)	return window.innerHeight;
			if(document.documentElement && document.documentElement.clientHeight) return document.documentElement.clientHeight;
	},
	getDocumentHeight: function(){
			if (document.height) return document.height;
			if(document.body.offsetHeight) return document.body.offsetHeight;
	},
	initScroll: function(e){
			var targ; 
			if (!e) var e = window.event;
			if (e.target) targ = e.target.parentNode;
			else if (e.srcElement) targ = e.srcElement.parentNode;
			tinyScrolling.hash = targ.href.substr(targ.href.indexOf('#')+1,targ.href.length); 
			tinyScrolling.currentBlock = document.getElementById(tinyScrolling.hash);   
			if(!tinyScrolling.currentBlock) return;
			tinyScrolling.requestedY = tinyScrolling.getElementYpos(tinyScrolling.currentBlock); 
			tinyScrolling.scroll();  
			return false;
	},
	scroll: function(){
			var top  = tinyScrolling.getScrollTop();
			if(tinyScrolling.requestedY > top) {  
				var endDistance = Math.round((tinyScrolling.getDocumentHeight() - (top + tinyScrolling.getWindowHeight())) / tinyScrolling.brakeK);
				endDistance = Math.min(Math.round((tinyScrolling.requestedY-top)/ tinyScrolling.brakeK), endDistance);
				var offset = Math.max(2, Math.min(endDistance, tinyScrolling.maxStep));
			} else { var offset = - Math.min(Math.abs(Math.round((tinyScrolling.requestedY-top)/ tinyScrolling.brakeK)), tinyScrolling.maxStep);
			} window.scrollTo(0, top + offset);  
			if(Math.abs(top-tinyScrolling.requestedY) <= 1 || tinyScrolling.getScrollTop() == top) {
				window.scrollTo(0, tinyScrolling.requestedY);
				if(!document.all || window.opera) location.hash = tinyScrolling.hash;
				tinyScrolling.hash = null;
			} else 	setTimeout(tinyScrolling.scroll,tinyScrolling.speed);
	}		
}



//onload時に関数を呼び出します。-----------------------------------------------------------------------

window.onload = function() {
	initDropdown();
	initRollovers();
	getTabLength();
	tinyScrolling.init();
}