
/**
 * 
 */
(function(){
//-------------------  -------------------

var $usrParam1 = '_off.';    //
var $usrParam2 = '_on.';     //
var $usrParam3 = 30;         //

//------------------------------------------------
   var fadeImg = [];
   function set01FadeOver(){
     var insert = [];
     var elem = document.getElementsByTagName("img");
     var elemTotal = elem.length;
     if(elemTotal == 0){return;}
     for(var i=0; i<elemTotal; i++){
       var splitBox = elem[i].src.split($usrParam1);
       if(splitBox[1]){
         var imgTag = document.createElement('img');
         fadeImg.push(imgTag);
        // imgTag.type = "image";
         imgTag.src = splitBox[0]+$usrParam2+splitBox[1];
         var effect = 0;
         imgTag.currentEffect = effect;
         imgTag.style.opacity = effect/100;
         imgTag.style.filter = 'alpha(opacity='+effect+')';
         imgTag.style.position = 'absolute';
         addEvent(imgTag,'mouseover',function(){setFader(this,100);});
         addEvent(imgTag,'mouseout',function(){setFader(this,0);});
         insert[insert.length] = {position:elem[i],element:imgTag};
       }
     }
     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', clearFade);
   }


   function setFader(targetAbc,targetEffect){
     targetAbc.targetEffect = targetEffect;
     if(targetAbc.currentEffect==undefined){
       targetAbc.currentEffect = 100;
     }
     if(targetAbc.currentEffect==targetAbc.targetEffect){
       return;
     }
     if(!targetAbc.fading){
       if(!targetAbc.fader){
         targetAbc.fader = fader;
       }
       targetAbc.fading = true;
       targetAbc.fader();
     }
   }


   function fader(){
     this.currentEffect += (this.targetEffect - this.currentEffect)*0.2;
     if(Math.abs(this.currentEffect-this.targetEffect)<1){
       this.currentEffect = this.targetEffect;
       this.fading = false;
     }
     var effect = parseInt(this.currentEffect);
     this.style.opacity = effect/100;
     this.style.filter = 'alpha(opacity='+effect+')';
     if(this.fading){
       var scope = this;
       setTimeout(function(){fader.apply(scope)},$usrParam3);
     }
   }


   function clearFade(){
     for(var i=0,len=fadeImg.length; i<len; i++){
       var imgAmax = fadeImg[i];
       imgAmax.style.opacity = 0;
       imgAmax.style.filter = 'alpha(opacity=0)';
     }
   }


   function addEvent(sysParam01, sysParam02, sysParam03){
     if(sysParam01.addEventListener){
       sysParam01.addEventListener(sysParam02, sysParam03, false);
     }else if(window.attachEvent){
       sysParam01.attachEvent('on'+sysParam02, function(){sysParam03.apply(sysParam01);});
     }
   }

   addEvent(window,'load',set01FadeOver);

 })();


/**
 * 
 */
function getScrollLeft() { 
 if ((navigator.appName.indexOf("Microsoft Internet Explorer",0) != -1)) {

  docele=(document.compatMode=="CSS1Compat")?document.documentElement:document.body;

  return docele.scrollLeft;

 } else if (window.pageXOffset) {
  return window.pageXOffset;
 } else {
  return 0;
 }
}

function getScrollTop() { 
 if ((navigator.appName.indexOf("Microsoft Internet Explorer",0) != -1)) {

  docele=(document.compatMode=="CSS1Compat")?document.documentElement:document.body;
  
  return docele.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);
}





/*  ================================================================================
 *  
 *  JavaScript -Page Scroller version 2.0.1　ページスクロール
 *  (c) 2004-2007 coliss.com
 *
 *  この作品は、クリエイティブ・コモンズの表示 2.1 日本ライセンスの下で
 *  ライセンスされています。
 *  この使用許諾条件を見るには、http://creativecommons.org/licenses/by/2.1/jp/を
 *  チェックするか、クリエイティブ･コモンズに郵便にてお問い合わせください。
 *  住所は：559 Nathan Abbott Way, Stanford, California 94305, USA です。
 *
================================================================================  */


/*  ================================================================================
TOC
====================================================================================
Set Up Object
Get Attribute
Page Scroller
Setup Attribute
================================================================================  */


/*  ================================================================================
Set Up Object
================================================================================  */
bAgent = navigator.userAgent;
bName = navigator.appName;
bPlugins = navigator.plugins;

w = window;
s = w.screen;
d = document;

usrUrl = location.href;

function sniffer(){
/* OS */
	this.Win = bAgent.indexOf("Win",0) != -1 ? 1 : 0;
	this.WinVista = bAgent.indexOf("Windows NT 6.0",0) != -1 ? 1 : 0;
	this.Mac = bAgent.indexOf("Mac",0) != -1 ? 1 : 0;
	this.MacOSX = ((bAgent.indexOf("Mozilla") != -1) && (bAgent.indexOf("Mac OS X") != -1)) ? 1 : 0;
	if(bPlugins){for(i = 0 ;i < bPlugins.length;i++){if(this.Mac && (bPlugins[i].filename.indexOf("QuickTime Plugin.plugin") != -1)){this.MacOSX = true;}}}

/* Browser */
	this.IE        = ((bAgent.indexOf("MSIE") != -1) && (bAgent.indexOf("Opera") == -1)) ? 1 : 0;
	this.NS        = ((bName == "Netscape") && (bAgent.indexOf("Opera") == -1)) ? 1 : 0;
	this.NC        = ((bName == "Netscape") && (bAgent.indexOf("Gecko") == -1) && (bAgent.indexOf("Opera") == -1)) ? 1 : 0;
	this.Gecko     = (bAgent.indexOf("Gecko") != -1) ? 1 : 0;
	this.Moz       = ((bAgent.indexOf("Gecko") != -1) && (bAgent.indexOf("Safari",0) == -1)) ? 1 : 0;
	this.OPERA     = bAgent.indexOf("Opera",0) != -1 ? 1 : 0;
	this.Firefox   = (bAgent.indexOf("Firefox") != -1) ? 1 : 0;
	this.SAFARI    = bAgent.indexOf("Safari",0) != -1 ? 1 : 0;
	this.ICAB      = bAgent.indexOf("iCab",0) != -1 ? 1 : 0;

/* Object */
/* SAFARI,Firefox,NS6+,OPERA6=4, IE5+,OPERA5,7+=3, IE4=2, NS4=1, others=0 */
	this.checkObj      = d.all ? (d.getElementById ? 3 : 2) : (d.getElementById ? 4 : (d.layers ? 1 : 0));
	this.checkObj4     = (d.getElementById && !d.all) ? 1 : 0;
	this.checkObj3     = (d.getElementById && d.all) ? 1 : 0;
	this.checkObj2     = (d.all && !d.getElementById) ? 1 : 0;
	this.checkObj1     = d.layers ? 1 : 0;
	this.allObj        = ((this.checkObj == 3) || (this.checkObj == 4));

/* Compat Mode */
	this.modeStandard  = d.compatMode == "CSS1Compat" ? 1 : 0;
	this.modeQuirks    = d.compatMode == "BackCompat" ? 1 : 0;

/* Each Browser */
	this.IE5           = (this.Win && this.IE && (bAgent.indexOf('MSIE 5.',0) != -1));
	this.IE55          = (this.Win && this.IE && (bAgent.indexOf('MSIE 5.5.',0) != -1));
	this.IE55later     = (this.Win && this.IE && (w.createPopup != -1));
	this.IE6           = (this.Win && this.IE && (bAgent.indexOf('MSIE 6.',0) != -1));
	this.IE6below      = (this.IE5 && this.IE55 && this.IE6);
	this.IE7           = (this.Win && this.IE && (bAgent.indexOf('MSIE 7.',0) != -1));

	this.WinIEs        = (this.Win && this.IE && this.modeStandard);
	this.WinIEq        = (this.Win && this.IE && this.modeQuirks);

	this.MacFirefox    = (this.Mac && this.Firefox);
	this.MacOPERA      = (this.Mac && this.OPERA);

	return this;
}
var usr = new sniffer;


/*  ================================================================================
Get Attribute
================================================================================  */
function setObj(idName){
	return d.getElementById ? d.getElementById(idName) : d.all(idName);
}

function getScreenSize(type){
	if(type == "width"){
		if(usr.allObj){
			return(s.width);
		}
	}else if(type == "height"){
		if(usr.allObj){
			return(s.height);
		}
	}
}

function getBrowseSize(type){
	if(type == "width"){
		if(w.innerWidth){
			return(w.innerWidth);
		}else if(usr.modeStandard && d.documentElement.clientWidth){
			return(d.documentElement.clientWidth);
		}else{
			return(d.body.clientWidth);
		}
	}else if(type == "height"){
		if(w.innerHeight){
			return(w.innerHeight);
		}else if(usr.modeStandard && d.documentElement.clientHeight){
			return(d.documentElement.clientHeight);
		}else{
			return(d.body.clientHeight);
		}
	}
}

function getBodySize(type){
	if(type == "width"){
		if(usr.allObj){
			return(d.body.scrollWidth);
		}
	}else if(type == "height"){
		if(usr.allObj){
			return(d.body.scrollHeight);
		}
	}
}

function getDocumentSize(type){
	if(type == "width"){
		if(usr.allObj){
			return(d.getElementById('allDocument').offsetWidth);
		}
	}else if(type == "height"){
		if(usr.allObj){
			return(d.getElementById('allDocument').offsetHeight);
		}
	}
}

function getWindowOffset(type){
	if(type == "x"){
		if(usr.SAFARI){
			return(window.pageXOffset);
		}else if((usr.checkObj == 3) && (!usr.WinIEs)){
			return(d.body.scrollLeft);
		}else if((usr.checkObj == 4) || (usr.WinIEs)){
			return(d.body.parentNode.scrollLeft);
		}
	}else if(type == "y"){
		if(usr.SAFARI){
			return(window.pageYOffset);
		}else if((usr.checkObj == 3) && (!usr.WinIEs)){
			return(d.body.scrollTop);
		}else if((usr.checkObj == 4) || (usr.WinIEs)){
			return(d.body.parentNode.scrollTop);
		}
	}
}

function getScrollRange(type){
	if(type == "x"){
		if(usr.allObj){
			return (getDocumentSize('width') - getBrowseSize('width'));
		}
	}else if(type == "y"){
		if(usr.allObj){
			return (getDocumentSize('height') - getBrowseSize('height'));
		}
	}
}

function getElementPosition(type,idName){
	var obj = setObj(idName);
	var tagCoords = new Object();
	if(type == "left"){
		if(usr.allObj){
			tagCoords.x = obj.offsetLeft;
			while((obj = obj.offsetParent) != null){
				tagCoords.x += obj.offsetLeft;
			}
		}if((tagCoords.x * 0) == 0){
			return(tagCoords.x);
		}else{
			return(idName);
		}
	}else if(type == "top"){
		if(usr.allObj){
			tagCoords.y = obj.offsetTop;
			while((obj = obj.offsetParent) != null){
				tagCoords.y += obj.offsetTop;
			}
		}if((tagCoords.y * 0) == 0){
			if(usr.Mac && usr.SAFARI){		// temp
				return(tagCoords.y + 0);
			}else{
				return(tagCoords.y);
			}
		}else{
			return(idName);
		}
	}
}

function getElementSize(type,idName){
	if(type == "width"){
		if(usr.allObj){
			return(d.getElementById(idName).clientWidth);
		}
	}else if(type == "height"){
		if(usr.allObj){
			return(d.getElementById(idName).clientHeight);
		}
	}
}


/*  ================================================================================
Page Scroller
================================================================================  */
var pageScrollTimer;
function pageScroll(toX,toY,frms,frX,frY){
	if(pageScrollTimer)clearTimeout(pageScrollTimer);
	var spd = usr.Mac?60:20;
	var actX = getWindowOffset('x');
	var actY = getWindowOffset('y');
	if(!toX || toX < 0)toX = 0;
	if(!toY || toY < 0)toY = 0;
	//if(!frms)frms = (usr.Mac && (usr.OPERA || usr.NS6)) ? 3 : usr.NS6 ? 4 : usr.NS ? 7 : 5;
	if(!frms)frms = (usr.Win&&usr.SAFARI)?6:(usr.Mac&&(usr.OPERA||usr.NS6))?3:usr.NS6?4:usr.NS?7:5;
	if(!frX)frX = 0 + actX;
	if(!frY)frY = 0 + actY;

	frX += (toX - actX) / frms;
	if(frX < 0)frX = 0;
	frY += (toY - actY) / frms;
	if(frY < 0)frY = 0;
	var posX = Math.ceil(frX);
	var posY = Math.ceil(frY);
	w.scrollTo(posX, posY);
	if((Math.floor(Math.abs(actX - toX)) < 1) && (Math.floor(Math.abs(actY-toY)) < 1)){
		clearTimeout(pageScrollTimer);
		w.scroll(toX,toY);
	}else if((posX != toX) || (posY != toY)){
		pageScrollTimer = setTimeout("pageScroll("+toX+","+toY+","+frms+","+frX+","+frY+")",spd);
	}else{
		clearTimeout(pageScrollTimer);
	}
}

function toAnchor(idName,longitudinalAdj,traverser){
	if(usr.allObj){
		if(!!idName){
			var anchorX = traverser ? getElementPosition('left',idName) : 0;
			var anchorY = longitudinalAdj ? getElementPosition('top',idName) - longitudinalAdj : getElementPosition('top',idName) - 0;
			var dMaxX = getScrollRange('x');
			var dMaxY = getScrollRange('y');
			if(((anchorX*0) == 0) || ((anchorY*0) == 0)){
				var setX = (anchorX < 1) ? 0 : (anchorX > dMaxX) ? dMaxX : anchorX;
				var setY = (anchorY < 1) ? 0 : (anchorY > dMaxY) ? dMaxY : anchorY;
				pageScroll(setX,setY);
			}else{
				location.hash = idName;
			}
		}else{
			pageScroll(0,0);
		}
	}else{
		!!idName ? location.hash = idName : location.hash = "top";
	}
}

var checkAnchor = usrUrl.indexOf("#",0);
var checkPageScroller = usrUrl.match("pSc");
function initializePage(){
	if(!!checkPageScroller){
		anchorId = usrUrl.substring(usrUrl.lastIndexOf("?pSc")+4,usrUrl.length);
		timerID=setTimeout("toAnchor(anchorId,13)",400);
	}
	if(!checkAnchor){
		window.scroll(0,0);
	}else return true;
}


/*  ================================================================================
Setup Attribute
================================================================================  */
function initializeScript(){
	screenSizeWidth     = getScreenSize('width');
	screenSizeHeight    = getScreenSize('height');
	browseSizeWidth     = getBrowseSize('width');
	browseSizeHeight    = getBrowseSize('height');
	bodySizeWidth       = getBodySize('width');
	bodySizeHeight      = getBodySize('height');
	documentSizeWidth   = getDocumentSize('width');
	documentSizeHeight  = getDocumentSize('height');
	windowOffsetX       = getWindowOffset('x');
	windowOffsetY       = getWindowOffset('y');
	scrollRangeX        = getScrollRange('x');
	scrollRangeY        = getScrollRange('y');
}

window.onload = function(e){
	if(usr.allObj)initializeScript();
}
window.onresize = function(e){
	if(usr.allObj)initializeScript();
}

