/* page2top：
ページトップへ */
	
// OS・ブラウザ判別用変数の定義
var win = navigator.appVersion.indexOf('Win',0) != -1;
var mac = navigator.appVersion.indexOf('Mac',0) != -1;
var ie  = navigator.appName.indexOf("Microsoft Internet Explorer", 0) != -1;
var op = window.opera;
var n6 = document.getElementById;
var n4 = document.layers;

var loop;

// スライドの速さ（ 0 < slideSpeed < 1 とし、0に近づくほど速い ）
// Windows
if (win) var slideSpeed = 0.9;
// Macintosh
if (mac) var slideSpeed = 0.9;


// mousewheel イベントの監視
if (op) {
	document.onmousewheel = slideStop;
} else if (ie) {
	document.onmousewheel = slideStop;
} else if (n6) {
	window.addEventListener("mousewheel", slideStop, true);
} else if (n4) {
	window.captureEvents(Event.CLICK);
	window.onmousewheel = slideStop;
}

// 画面スライド処理
function slide2top() {
	if (ie) {
		// Windows IE XHTML 互換モードの場合
		offsetY = document.documentElement.scrollTop;
		if (mac) {
			offsetY = document.body.scrollTop;			
		}
	}
	else {
		offsetY = window.pageYOffset;
	}

	slideMethod();
}

function slideMethod() {
	offsetY = Math.floor (offsetY * slideSpeed);

	if (offsetY > 0) {
		window.scrollTo(0,offsetY);
		loop = setTimeout("slide2top()", 30);
	} else {
		window.scrollTo(0, 0);	
		clearTimeout(loop);
	}
}


// スライドの割り込み中断処理
// Windows IE および Mac Safari で有効
function slideStop() {
	clearTimeout(loop);
}


/* ボックス開閉
-----
This work is licensed under the Creative Commons Attribution-Share Alike 2.1 Japan License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/2.1/jp/ or send a letter to Creative Commons, 543 Howard Street, 5th Floor, San Francisco, California, 94105, USA.
Copyright (c) 2006 firstAudience.com (Keisuke Nakayama) All Rights Reserved.
-----
 */


/*----- user setting -----*/


var section_label = [".A_sec",".B_sec"];
var section_style = ["list-style: none; padding: 10px; background: no-repeat left center;","display: block; width: 120px; float: left; background: no-repeat left center; border: solid 1px white;"];

var target_label = ["A_","B_"];
var target_style = [""];
var target_bg_hide = ["/images/search/idx_hide.gif","/images/search/toggle1.gif"];
var target_bg_show = ["/images/search/idx_show.gif","/images/search/toggle2.gif"];

var browser_disable = "Your Browser is Not Supported.";


/*----- user setting -----*/


function preload(imgURL) {
	preImg = new Image();
	preImg.src=imgURL;
}
for (var i=0; i<target_bg_show.length; i++) {
	imgURL = target_bg_show[i];
	preload(imgURL);
}

document.write("<style type='text/css'>");
for (var i=0; i<target_label.length; i++) {
	document.write(section_label[i]+" { "+section_style[i]+" }");
	document.write(section_label[i]+" a{ "+target_style[i]+" }");
}
document.write("</style>");

function showHide(e){
	var target_node;
	if(e.target) {
		target_node = e.target;
		} else { target_node = e.srcElement;
		}

	if( navigator.userAgent.indexOf("Safari/1", 0) >= 0 || navigator.userAgent.indexOf("Safari/3", 0) >= 0){
		target_node = e.target.parentNode;
		}
	var target_id = target_node.getAttribute("id") , block_id = target_id + "_block", block = document.getElementById(block_id);
	var show = target_node["s_h"];
	if(show==undefined){show=false;}
	var i = target_node["tmp_i"];
	if(show) {
		target_node.style.backgroundImage = "url('"+target_bg_hide[i]+"')";
		block.style.display = "none";
	} else {
		target_node.style.backgroundImage = "url('"+target_bg_show[i]+"')";
		block.style.display = "block";
	}
	target_node["s_h"] = ! show;
}

function setListeners(e) {
	var aTag = document.getElementsByTagName("a");
	for (var i=0; i<target_label.length; i++) {
		for (var j=0; j<aTag.length; j++) {
			var listener_node = aTag[j];
			var _id = aTag[j].getAttribute("id");
			if( _id == null ) continue;
			if( _id.indexOf(target_label[i]) >= 0 ) {
				listener_node.setAttribute("href","javascript:void(0)");
				listener_node["tmp_i"] = i;
				addListener(listener_node,'click',showHide,false);
				var block_id = _id + "_block", block = document.getElementById(block_id);
				block.style.display ="none";
				listener_node.style.backgroundImage = "url('"+target_bg_hide[i]+"')";
			}
		}
	}
}

function addListener(elem,eventType,func,cap) {
	if(elem.addEventListener) {
		elem.addEventListener(eventType,func,cap);
	} else if(elem.attachEvent) {
		elem.attachEvent('on' + eventType,func);
	} else {
		alert(browser_disable);
		return false;
	}
}

addListener(window,'load',setListeners,false);


/**
 * クロスフェードするロールオーバー処理
 * rollover2.js
 * Copyright (c) 2007 KAZUMiX
 * http://d.hatena.ne.jp/KAZUMiX/20071017/rollover2
 * 
 * Licensed under the MIT License:
 * http://www.opensource.org/licenses/mit-license.php
 */

(function(){
   // ページ遷移時に透明にする用
   var rolloverImages = [];
   
   function setRollOver2(){
     if(!document.images){return;}
     var imgs = document.images;
     var insert = [];
     for(var i=0,len=imgs.length; i<len; i++){
       var splitname = imgs[i].src.split('_rollout.');
       if(splitname[1]){
         var rolloverImg = document.createElement('img');
         rolloverImages.push(rolloverImg);
         rolloverImg.src = splitname[0]+'_rollover.'+splitname[1];
         var alpha = 0;
         rolloverImg.currentAlpha = alpha;
         rolloverImg.style.opacity = alpha/100;
         rolloverImg.style.filter = 'alpha(opacity='+alpha+')';
         rolloverImg.style.position = 'absolute';

         //ロールオーバー・アウト処理それぞれを設定
         addEvent(rolloverImg,'mouseover',function(){setFader(this,100);});
         addEvent(rolloverImg,'mouseout',function(){setFader(this,0);});

         // 後で追加するために追加場所と共に保存しておく
         // この時点で追加するとdocument.imagesが書き換わって不都合
         insert[insert.length] = {position:imgs[i],element:rolloverImg};
       }
     }
     // ↑で作ったロールオーバー画像を追加
     for(i=0,len=insert.length; i<len ;i++){
       var parent = insert[i].position.parentNode;
       parent.insertBefore(insert[i].element,insert[i].position);
     }

     // ページ遷移時にはフェード状態をクリアする
     addEvent(window,'beforeunload', clearRollover);
   }

   // 指定要素を指定透明度にするためのフェードアニメを設定する関数

   function setFader(targetObj,targetAlpha){
     targetObj.targetAlpha = targetAlpha;
     if(targetObj.currentAlpha==undefined){
       targetObj.currentAlpha = 100;
     }
     if(targetObj.currentAlpha==targetObj.targetAlpha){
       return;
     }
     if(!targetObj.fading){
       if(!targetObj.fader){
         targetObj.fader = fader;
       }
       targetObj.fading = true;
       targetObj.fader();
     }
   }

   // アルファ値をターゲット値に近づける関数
   // ターゲット値になったら終了

   function fader(){
     this.currentAlpha += (this.targetAlpha - this.currentAlpha)*0.2;
     if(Math.abs(this.currentAlpha-this.targetAlpha)<1){
       this.currentAlpha = this.targetAlpha;
       this.fading = false;
     }
     var alpha = parseInt(this.currentAlpha);
     this.style.opacity = alpha/100;
     this.style.filter = 'alpha(opacity='+alpha+')';
     if(this.fading){
       var scope = this;
       setTimeout(function(){fader.apply(scope)},30);
     }
   }
   
   // すべてのロールオーバー画像をを透明にする関数（遷移時用）

   function clearRollover(){
     for(var i=0,len=rolloverImages.length; i<len; i++){
       var image = rolloverImages[i];
       image.style.opacity = 0;
       image.style.filter = 'alpha(opacity=0)';
     }
   }

   // イベントを追加する関数

   function addEvent(eventTarget, eventName, func){
     if(eventTarget.addEventListener){
       // モダンブラウザ
       eventTarget.addEventListener(eventName, func, false);
     }else if(window.attachEvent){
       // IE
       eventTarget.attachEvent('on'+eventName, function(){func.apply(eventTarget);});
     }
   }

   addEvent(window,'load',setRollOver2);

 })();



