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_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_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_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_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}


// initRollovers
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 == 'hover')
		{
			var src = aImages[i].getAttribute('src');
			var ftype = src.substring(src.lastIndexOf('.'), src.length);
			var hsrc = src.replace(ftype, '_on'+ftype);

			aImages[i].setAttribute('hsrc', hsrc);
			
			aPreLoad[i] = new Image();
			aPreLoad[i].src = hsrc;
			
			if (aImages[i].parentNode.nodeName == "A")	
			{
				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('_on'+ftype, ftype);
					this.setAttribute('src', sTempSrc);
				}
			}
		}
	}
}


// smartScroll 1.8
function smartScroll ()
{	
	var allLinks = new Array();
	var as = document.getElementsByTagName('a');
	var areas = document.getElementsByTagName('area');
	for (var i=0; i<as.length; i++){
		allLinks.push(as[i]);
	}
	for (var i=0; i<areas.length; i++){
		allLinks.push(areas[i]);
	}
	
	for (var i=0;i<allLinks.length;i++)
	{
		var lnk = allLinks[i];
		
		if ((lnk.href && lnk.href.indexOf('#') != -1) && ((lnk.pathname == location.pathname) || ('/'+lnk.pathname == location.pathname)))
		{
			var myHash = lnk.hash.replace(/#/g,"");
			if (!(myHash.length == 0)) //hrefが"#"だった場合は処理を中止
			{
				lnk.onclick = function ()
				{
					//移動先のid名を取得
					var hash = this.hash;
					var targetId = hash.replace(/#/g,"");
				
					if (!document.getElementById(targetId)) return;
					
					//移動先の位置（y座標）
					if (document.all)
					{
						var element = document.getElementById(targetId);
						var targetY = 0;
						do
						{
							targetY += element.offsetTop || 0;
						} while (element = element.offsetParent);
					} else {
						var targetY = document.getElementById(targetId).offsetTop;
					}
					
					var scrollTop = document.body.parentNode.scrollTop || window.pageYOffset || document.body.scrollTop; //現在の表示位置（y座標）
					
					//スクール量の調整			
					var windowHeight = window.innerHeight || document.documentElement.clientHeight; //ウィンドウの高さ	
					var bodyHeight = document.body.offsetHeight; //bodyの高さ
					var footHeight = bodyHeight - targetY;
					var adjust = windowHeight - footHeight;
						
					//移動距離を計算
					if (windowHeight > footHeight)
					{				
						var toY = targetY - scrollTop - adjust;
					} else
					{
						var toY = targetY - scrollTop;
					}
					
					function windowScroll ()
					{
						var moveY = Math.floor(toY*.2);					
						window.scrollBy(0,moveY);
						toY -= moveY; 
						myTimer = setTimeout(windowScroll,30);
						if (moveY == 0) clearTimeout(myTimer);
					}								
					windowScroll();	
					return false;
				};
			}
		}
	}	
}

function init(){
	smartScroll();
	initRollovers();
}

//addLoadEvent
function addLoadEvent(func) {
	if (typeof window.addEventListener == 'function') {
		window.addEventListener('load', func, false);
		return true;
	} else if (typeof window.attachEvent == 'object') {
		window.attachEvent('onload', func);
		return true;
	}
	
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	} else {
		window.onload = function() {
			oldonload();
			func();
		}
	}
}

addLoadEvent(init);
