//スムーススクロールここから
fd = new Object();
fd.onLoad = function(e) {
	for(var module in this) {
		if(this[module].onLoad) this[module].onLoad();
	}
}
fd.getDocumentHeight = function(){
	return (document.height) ? document.height : (document.body.offsetHeight) ? document.body.offsetHeight : 0;
}
fd.getWindowHeight = function(){
	var myHeight = 0;
	if( typeof( window.innerWidth ) == 'number' ) {

		myHeight = window.innerHeight;
	} else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
		myHeight = document.documentElement.clientHeight;
	} else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
		myHeight = document.body.clientHeight;
	}
	return myHeight;
}
fd.getScrollTop = function(){
	if(document.all) return (document.documentElement.scrollTop) ? document.documentElement.scrollTop : document.body.scrollTop;
	else return window.pageYOffset;
}
fd.getElementYpos = function(el){
	var y = 0;
	while(el.offsetParent){
		y += el.offsetTop
		el = el.offsetParent;
	}
	return y;
}

fd.pageScroller = {
	speed : 10,
	maxStep: 30,
	brakeK: 2,
	hash:null,
	currentBlock:null,
	requestedY:0,
        
	onLoad: function() {
		var lnks = document.getElementsByTagName('a');
		for(var i = 0, lnk; lnk = lnks[i]; i++) {
			var lnkhash = lnk.hash;
			if ((lnk.href && lnk.href.indexOf('#') != -1 && lnkhash.length > 1) &&  ( (lnk.pathname == location.pathname) || ('/'+lnk.pathname == location.pathname) ) && (lnk.search == location.search) && lnk.className.search('no-scroll') == -1) {
				lnk.onclick = fd.pageScroller.initScroll;
			}
		}
	},
	initScroll: function(e){
		var targ;
		if (!e) var e = window.event;
		if (e.target) targ = e.target;
		else if (e.srcElement) targ = e.srcElement;
		while(targ.tagName.toUpperCase() != "A" && targ.parentNode) targ = targ.parentNode;
		fd.pageScroller.hash = targ.href.substr(targ.href.indexOf('#')+1,targ.href.length);
		fd.pageScroller.currentBlock = document.getElementById(fd.pageScroller.hash);
		if(!fd.pageScroller.currentBlock) return;
		fd.pageScroller.requestedY = fd.getElementYpos(fd.pageScroller.currentBlock) - 30;
		if(fd.pageScroller.requestedY < 0) fd.pageScroller.requestedY = 0;
		fd.pageScroller.scroll();
		return false;
	},
	scroll: function(){
		var top  = fd.getScrollTop();

		if(fd.pageScroller.requestedY > top) {
			var endDistance = Math.round((fd.getDocumentHeight() - (top + fd.getWindowHeight())) / fd.pageScroller.brakeK);
			endDistance = Math.min(Math.round((fd.pageScroller.requestedY-top)/ fd.pageScroller.brakeK), endDistance);
			var offset = Math.max(2, Math.min(endDistance, fd.pageScroller.maxStep));
		} else {
			var offset = - Math.min(Math.abs(Math.round((fd.pageScroller.requestedY-top)/ fd.pageScroller.brakeK)), fd.pageScroller.maxStep);
		}
		window.scrollTo(0, top + offset);
		if(Math.abs(top-fd.pageScroller.requestedY) <= 1 || fd.getScrollTop() == top) {
			window.scrollTo(0, fd.pageScroller.requestedY);
			location.hash = fd.pageScroller.hash;
			fd.pageScroller.hash = null;
		} else {
			setTimeout(fd.pageScroller.scroll,fd.pageScroller.speed);
		}
	}
}

var hoge_scripts = window.onload;
window.onload = function() {
	if(hoge_scripts != null) hoge_scripts();
	fd.onLoad();
}
//スムーススクロールここまで
// JavaScript Document
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 MM_addFavorite() {
	window.external.addFavorite("http://www.menkyo.org/","合宿免許の合宿免許コールセンター");
}
function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}


