
//------------------------------------------------------------------------------
//	ページの先頭へ戻るスクロール
//------------------------------------------------------------------------------
function getScrollLeft() { 
 if ((navigator.appName.indexOf("Microsoft Internet Explorer",0) != -1)) {
  return document.body.scrollLeft;
 } else if (window.pageXOffset) {
  return window.pageXOffset;
 } else {
  return 0;
 }
}

function getScrollTop() { 
 if ((navigator.appName.indexOf("Microsoft Internet Explorer",0) != -1)) {
  return document.body.scrollTop;
 } else if (window.pageYOffset) {
  return window.pageYOffset;
 } else {
  return 0;
 }
}

var pageScrollTimer;
function pageScroll(toX,toY,frms,cuX,cuY) { 
 if (pageScrollTimer) clearTimeout(pageScrollTimer);
 if (!toX || toX < 0) toX = 0;
 if (!toY || toY < 0) toY = 0;
 if (!cuX) cuX = 0 + getScrollLeft();
 if (!cuY) cuY = 0 + getScrollTop();
 if (!frms) frms = 6;

 if (toY > cuY && toY > (getAnchorPosObj('end','enddiv').y) - getInnerSize().height) toY = (getAnchorPosObj('end','enddiv').y - getInnerSize().height) + 1;
 cuX += (toX - getScrollLeft()) / frms; if (cuX < 0) cuX = 0;
 cuY += (toY - getScrollTop()) / frms;  if (cuY < 0) cuY = 0;
 var posX = Math.floor(cuX);
 var posY = Math.floor(cuY);
 window.scrollTo(posX, posY);

 if (posX != toX || posY != toY) {
  pageScrollTimer = setTimeout("pageScroll("+toX+","+toY+","+frms+","+cuX+","+cuY+")",16);
 }
}

function jumpToPageTop() { 
  pageScroll(0,0,3);
}



//------------------------------------------------------------------------------
//	ページの先頭へ戻るスクロール2
//　onclick="toAnchor(); return false;" onkeypress="toAnchor(); return false;"
//------------------------------------------------------------------------------
cAgent = navigator.userAgent;
cName = navigator.appName;
cVer = parseInt(navigator.appVersion);
cPlugins = navigator.plugins;
Vmajor = parseInt(navigator.appVersion);	// ex. 3
Vminor = parseFloat(navigator.appVersion);	// ex. 3.01

Win = (cAgent.indexOf("Win",0) != -1);
Mac = (cAgent.indexOf("Mac",0) != -1);
MacOSX = ((cAgent.indexOf("Mozilla") != -1) && (cAgent.indexOf("Mac OS X") != -1));
if(cPlugins){for(i=0;i<cPlugins.length;i++){if(Mac && (cPlugins[i].filename.indexOf("QuickTime Plugin.plugin")!=-1)){MacOSX=true;}}}
IE = (cName == "Microsoft Internet Explorer");
NS = (cName == "Netscape")
Moz = (cAgent.indexOf("Gecko") != -1);
ICAB = (cAgent.indexOf("iCab",0) != -1);
OPERA = (cAgent.indexOf("Opera",0) != -1);
NS6 = (cAgent.indexOf("Netscape6") != -1);
MacIE5 = ((Mac && cAgent.indexOf('MSIE 5',0) != -1) || (Mac && IE && cVer > 4));
MacIE4 = ((Mac && cAgent.indexOf('MSIE 4.',0) != -1));
MacIE3 = ((Mac && cAgent.indexOf('MSIE 3.',0) != -1));


/*user-defined object check*/
/*NS4 = 1, IE4 = 2, IE5+ = 3, NS6 = 4, others = 0*/
checkObj = document.all?(document.getElementById?3:2):(document.getElementById?4:(document.layers?1:0));
function initObj(){
	checkObj = document.all?(document.getElementById?3:2):(document.getElementById?4:(document.layers?1:0));
}



function getWindowXOffset(){
	if(checkObj == 2 || checkObj == 3){
		if (document.documentElement && document.documentElement.scrollTop)
			return document.documentElement.scrollTop;
		else
			return document.body.scrollLeft;
	}else if(checkObj == 1 || checkObj == 4){
		return window.pageXOffset;
	}else{
		return 0;
	}
}

function getWindowYOffset(){
	if(checkObj == 2 || checkObj == 3){
		//return document.body.scrollTop;
		return document.documentElement.scrollTop;
	}else if(checkObj == 1 || checkObj == 4){
		return window.pageYOffset;
	}else{
		return 0;
	}
}


/*PageScroller*/
var pageScrollTimer;
function pageScroll(toX,toY,frms,cuX,cuY) {
	if(pageScrollTimer) clearTimeout(pageScrollTimer);
	if(!toX || toX < 0) toX = 0;
	if(!toY || toY < 0) toY = 0;
	if(!cuX) cuX = 0 + getWindowXOffset();
	if(!cuY) cuY = 0 + getWindowYOffset();
	if(!frms) frms = 6;

	cuX += (toX - getWindowXOffset()) / frms;
	if (cuX < 0) cuX = 0;
	cuY += (toY - getWindowYOffset()) / frms;
	if (cuY < 0) cuY = 0;
	posX = Math.floor(cuX);
	posY = Math.floor(cuY);
	window.scrollTo(posX, posY);
	if(posY < 1){
		window.scroll(0,0);
	}else if(posX != toX || posY != toY){
		pageScrollTimer = setTimeout("pageScroll("+toX+","+toY+","+frms+","+cuX+","+cuY+")",16);
	}else{
		clearTimeout(pageScrollTimer);
	}
}

function toAnchor(idName) {
	if(checkObj == 1 || checkObj == 2 || checkObj == 3 || checkObj == 4){
		if(!!idName){
			anchorX = 0;
			anchorY = getTagTop(idName);
			mouseX = getWindowXOffset();
			mouseY = getWindowYOffset();
			endY = endPositionY();
			if(anchorY < 1){
				location.hash = idName;
			}else if(anchorY > endY){
				pageScroll(anchorX,endY,10,mouseX,mouseY);
			}else{
				pageScroll(anchorX,anchorY,10,mouseX,mouseY);
			}
		}else{
			pageScroll(0,0,5);
		}
	}else{
		if(!!idName){
			location.hash = idName;
		}else{
			location.hash = "top";
		}
	}
}