/*----------------------------------------------------------------------------
 ページ内リンクのスクロール
  
 Create  : 
 Modify  : 2007-02-17

 Tiny Scrolling - a smooth navigation between internal links and their destinations
 by Marco Rosella - http://www.centralscrutinizer.it/en/design/js-php/tiny-scrolling
 based on the works by Travis Beckham and Brian McAllister.
 v0.3 - March 27, 2006
----------------------------------------------------------------------------*/

var tinyScrolling = {
	speed       	:   30,   //ここでスクロール速度を設定(値を増加すると速度も増加) 
	maxStep     	:   150,  //ここで等速直線運動の量を設定
	brakeK      	:   3,    //ここでスローダウン係数を設定
	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;
		else if(e.srcElement) targ = e.srcElement;   
		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);
	}
}


/*----------------------------------------------------------------------------
 西暦（4桁）を書き出し
  
 Create  : 2007-02-06
 Modify  : 2007-02-06
----------------------------------------------------------------------------*/
function mpl_writeYear()  {
  var year = new Date().getYear();
  if(year < 2000)year += 1900;
  document.write(year);
}

/*----------------------------------------------------------------------------
 ロールオーバーの自動設定

 ※ 「ファイル名」+"-on"の画像をロールオーバーに設定する  
 ※ プリロード無しの暫定バージョン...

 Create  : 2007-02-06
 Modify  : 2007-02-06
----------------------------------------------------------------------------*/
function  setRollover() {
  var obj = document.getElementsByTagName('img');

  for(var i=0; i<obj.length; i++)  {
    if(obj[i].className == "rollover")  {
      var filename = obj[i].src.substring(obj[i].src.lastIndexOf('.'), obj[i].src.length);
      var rollover_src = obj[i].src.replace(filename, '_on'+filename);

      if(isIE())  {
        obj[i].setAttribute("onmouseover", new Function("this.src='"+rollover_src+"';"));
        obj[i].setAttribute("onmouseout", new Function("this.src='"+obj[i].src+"';"));
      }
      else  {
        obj[i].setAttribute("onmouseover", "this.src='"+rollover_src+"';");
        obj[i].setAttribute("onmouseout", "this.src='"+obj[i].src+"';");
      }
    }
  }

}

/*----------------------------------------------------------------------------
  ページ内のハイパーリンクに"別ウィンドウ"アイコンを設定
  
  ※target="_blank"が設定されているアンカータグのみを対象とする。
  ※ポップアップに「別ウィンドウで開きます」の文言を自動的に追加。
	※target属性の使用は望ましくないとされる。(XHTML1.1では抹消)

 Create  : 2007-01-23
 Modify  : 2007-02-06
----------------------------------------------------------------------------*/
function setAnchorsIcon() {
  if(!document.getElementById) return;
  var tagAnchors = document.getElementsByTagName('a');

  /*
  以下任意に設定
  画像のパスなどはページからみた相対パスか絶対パスで指定する
  */
  //ハイパーリンクに設定するスタイル（任意に編集・追加）
  var tagLinkStyle = 'padding-right:22px; background:url(img/icon_openwin.gif) right center no-repeat;';
  //ハイパーリンクに設定する文言（任意に編集・追加）
  var tagLinkTitle = '(別ウィンドウで開きます)';
  //ダウンロードリンクに設定するスタイル（任意に編集・追加）
  var tagDlStyle = 'padding-right:22px; background:url(img/icon_download.gif) right center no-repeat;';
  //ダウンロードリンクに設定する文言（任意に編集・追加）
  var tagDlTitle = '(ダウンロードします)';


  for(var i=0; i<tagAnchors.length; i++) {  
    if(tagAnchors[i].target == '_blank') {
			if(tagAnchors[i].innerHTML)	{
				tagAnchors[i].setAttribute('style', tagLinkStyle);
      	tagAnchors[i].style.cssText = tagLinkStyle; //IE対策
				}
			title = tagAnchors[i].title ? tagAnchors[i].title : '';
			tagAnchors[i].setAttribute('title', title+tagLinkTitle);
    }

    if(tagAnchors[i].href.match(/(xls|doc|lzh|zip|exe|fla)$/g)) {
			if(tagAnchors[i].innerHTML)	{
      	tagAnchors[i].setAttribute('style', tagDlStyle);
      	tagAnchors[i].style.cssText = tagDlStyle; //IE対策
			}
			title = tagAnchors[i].title ? tagAnchors[i].title : '';
      tagAnchors[i].setAttribute('title', title+tagDlTitle);
    }

  }
}


/*----------------------------------------------------------------------------
  ページ内の全てのアンカーの「#」リンクをJavaScriptに差し替え
  
  ※「#」を押してもページトップへ(意味無く)飛ばなくなる。

 Create  : 2007-01-23
 Modify  : 2007-02-06
----------------------------------------------------------------------------*/
function setDummyLink() {

if(!document.getElementById) return;
  var tagAnchors = document.getElementsByTagName('a');

  for(var i=0; i<tagAnchors.length; i++) {  
    var href = tagAnchors[i].getAttribute('href');
    if(href.substr(href.length-1, 1) == '#') {
      if(isIE())tagAnchors[i].setAttribute("onclick", new Function("return false;"));
      else tagAnchors[i].setAttribute('onclick', "return false;");
    }
  }

}


/*----------------------------------------------------------------------------
  ページ内の全ての画像にaltと同じ値のtitle属性を設定
  
 Create  : 2007-01-23
 Modify  : 2007-02-06
----------------------------------------------------------------------------*/
function setAlts() {
  if(!document.getElementById) return;
  var tagImgs = document.getElementsByTagName('img');

  for(var i=0; i<tagImgs.length; i++) {  
    if(!tagImgs[i].getAttribute('title')) {
      var title = tagImgs[i].getAttribute('alt');
      tagImgs[i].setAttribute('title', title);
    }
  }
}



/*----------------------------------------------------------------------------
  ウィンドウオープン（アンカーのリンク指定を取得して移動）

 Create  : 2007-01-24
 Modify  : 2007-02-06
----------------------------------------------------------------------------*/
function mplOpenWindow(owner) {
  window.open(owner.href, '');
  return false;
}


/*----------------------------------------------------------------------------
 ブラウザ判別(easy ver)

 Create  : 2007-01-24
 Modify  : 2007-02-06
----------------------------------------------------------------------------*/
function checkBrowser() {
  var ua = navigator.userAgent;

  if(ua.indexOf("Safari") > -1) return "Safari";
  if(ua.indexOf("Opera") > -1) return "Opera";
  if(ua.indexOf("MSIE") > -1) return "IE";
  return "Netscape";
}


/*----------------------------------------------------------------------------
 IE判別(easy ver)

 Create  : 2007-01-24
 Modify  : 2007-02-06
----------------------------------------------------------------------------*/
function isIE() {
  return (document.all && document.attachEvent) ? true : false;
}





/*----------------------------------------------------------------------------

初期設定

----------------------------------------------------------------------------*/

if(isIE()) {
  window.attachEvent('onload', setRollover);
  window.attachEvent('onload', setAlts);
  window.attachEvent('onload', setAnchorsIcon);
//  window.attachEvent('onload', setDummyLink);
  window.attachEvent('onload', tinyScrolling.init);
}
else {
  this.addEventListener('load', setRollover, false);
  this.addEventListener('load', setAlts, false);
  this.addEventListener('load', setAnchorsIcon, false);
//  this.addEventListener('load', setDummyLink, false);
  this.addEventListener('load', tinyScrolling.init, false);
}


// Copyright(C)K.Fujiwara. Some Rights Reserved.
