var delay = 20;
var divide = 8;

var timer;

bodyElement = null;
scrollInitFlg = false;
function scrollInit() {
	if ( document.all ) {
		if ( document.compatMode && document.compatMode == "CSS1Compat") {
			bodyElement = document.documentElement;
		}
		if ( document.body ) {
			bodyElement = document.body;
		}
	}
	scrollInitFlg = true;
	document.onmousedown = scrollCancel;
}

function scrollCancel() {
	clearInterval(timer);
	timer = null;
	
	document.onmousedown
}

// ページ先頭にスクロール
function scrollToTop() {
	var move;
	var nowY = 0;
	var targetY = 0;
	
	if ( document.all ) {
		if (!scrollInitFlg) {
			scrollInit();
		}
		
		if ( bodyElement ) {
			move = nowY = bodyElement.scrollTop;
		} else {
			move = nowY = 0;
		}
	} else if (window.pageYOffset) {
		move = nowY = window.pageYOffset;
	} else {
		move = nowY = 0;
	}
	
	move += (targetY - nowY) / divide;
	if(move < 0){
		move = 0;
	}
	
	window.scrollTo(0,Math.floor(move));
	
	if(nowY != targetY){
		if (!timer) {
			timer = setInterval('scrollToTop()',delay);
		}
	} else {
		scrollCancel();
	}
}

function scrollToAnchor( anchorName, workNowY ) {
	var move;
	var nowY = 0;
	
	if ( document.layers ) {
		targetY = document.layers[ anchorName ].pageY;
	} else if ( document.all ) {
		targetY = document.all.item( anchorName ).offsetTop;
	} else if ( document.getElementById ) {
		targetY = document.getElementById( anchorName ).offsetTop;
	}
	
	if( timer ) { clearTimeout(timer); }
	
	if ( document.all ) {
		
		var bodyElement;
		if ( document.body ) {
			bodyElement = document.body;
		}
		if ( document.compatMode && document.compatMode == "CSS1Compat" ) {
			bodyElement = document.documentElement;
		}
		
		if ( bodyElement ) {
			move = nowY = bodyElement.scrollTop;
		} else {
			move = nowY = 0;
		}
		
		//move = nowY = document.body.scrollTop;
	} else if ( window.pageYOffset ) {
		move = nowY = window.pageYOffset;
	} else {
		move = nowY = 0;
	}
	
	if ( nowY == workNowY ) {
		clearTimeout( timer );
		return;
	}
	
	movedivide = targetY - nowY;
	if ( movedivide < 0 ) {
		move += Math.floor( ( movedivide ) / divide );
	} else {
		move += Math.ceil( ( movedivide ) / divide );
	}

	if( move < 1 ) {
		move = 0;
	}

	window.scrollTo( 0, move );

	if ( nowY != targetY ) {
		timer = setTimeout( "scrollToAnchor('" + anchorName + "'," + nowY + ")", delay );
	} else {
		clearTimeout( timer );
	}
}
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_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}
