﻿// easeup
//###############################################################################################
//##
//##Develop Version : v3_003
//##Develop Day 	: 2009.8.19:13:12
//##Company     	: colony InteractiveInc.
//##Developer   	: noboru otsuka
//##
//#############inclued script#################################################################
//#############easeToAnchor_v3.js
//#############mousewheel.js
//############################################################################################
//##################################コメント#################################
//2009.8.19 13:00イージング中にブラウザのスクロールバーを触ろうとしたときにイージングを止める動作を追加 (マウスX位置がページ幅を超えたらイーズ止め)
//2009.8.19 13:48ブラウザごとにページ幅が違ったのでWin Firefox Opera Safariに対応 
//##################################コメント#################################
//////////////////////////////////////////////////////////

function browzerName(){
  var strUA = "";
  strUA = navigator.userAgent.toLowerCase();

  if(strUA.indexOf("safari") != -1){
    return "Safari"

  }else if(strUA.indexOf("firefox") != -1){
    return "Firefox"

  }else if(strUA.indexOf("opera") != -1){
    return "Opera"

  }else if(strUA.indexOf("netscape") != -1){
    return "Netscape"

  }else if(strUA.indexOf("msie") != -1){
    return "IE"

  }else if(strUA.indexOf("mozilla/4") != -1){
    return "Netscape.4"
  }
}

/////////////////////////////////////////////////////////////


function easeup() {
		move(0,1,5,0,getScrollTop());
}
/*
window.onScroll=function(){
	deleteEase()
}
*/

//JavaScript]IE7以降のonScrollが効かない件の解決方法CommentsAdd Star

window.onload = function() {

   	 var isIE = 0<=window.navigator.userAgent.indexOf("MSIE");

   	 	if(isIE && document.compatMode=="BackCompat"){

    		document.body.onscroll = ScrollEvent;

   	 	}else{

    		document.documentElement.onscroll = ScrollEvent;

    	}

}

function ScrollEvent(){

    //window.status += "s"; // IEのみ
	//deleteEase()
}
//var scrollbarObj=[window].scrollbar
//window.scrollbars.visible = false

//############################################################################################
//############################################################################################
/////////////////////////////////////mousewheel.js/////////////////////////////////////////start
//############################################################################################

function handle(delta) {
	
	var s = delta + ": ";
	if (delta < 0){
		s += "down";
	}else{
		s += "up";
	}
	//document.getElementById('delta').innerHTML = s;
	deleteEase()
}



function wheel(event){
	var delta = 0;
	if (!event) {
	event = window.event;
	}
	if (event.wheelDelta) {
		delta = event.wheelDelta/120; 
		if (window.opera){
		 delta = -delta;
		}
	} else if (event.detail) {
		delta = -event.detail/3;
	}
	if (delta){
		handle(delta);
	}
}

/* Initialization code. */
if (window.addEventListener)
	window.addEventListener('DOMMouseScroll', wheel, false);
window.onmousewheel = document.onmousewheel = wheel;;
//############################################################################################
//////////////////////////////////////mousewheel.js///////////////////////////////////////////end
//############################################################################################
//############################################################################################
//############################################################################################
/////////////////////////////////////easeToAnchor_v3.js/////////////////////////////////////////start
//############################################################################################
//ブラウザ判別
var IE = navigator.appName.indexOf("Microsoft Internet Explorer",0) != -1;

flag = false;

function getAnchorPos(elementID){
//ターゲットアンカーのx座標、y座標を求める

var objnew = new Object();
	if(document.getElementById){
		var obj = document.getElementById(elementID);
		objnew.x = obj.offsetLeft;
		objnew.y = obj.offsetTop;
		while((obj = obj.offsetParent) != null){
			objnew.x += obj.offsetLeft;
			objnew.y += obj.offsetTop;
		}
	}
	else if(document.all){
	var obj = document.all(elementID);
	objnew.x = obj.offsetLeft;
	objnew.y = obj.offsetTop;
	while((obj = obj.setParent) != null){
			objnew.x += obj.offsetLeft;
			objnew.y += obj.offsetTop;
		}
	}
	else if(domument.layers){
		objnew = document.anchors[elementID].x;
		objnew = document.anchors[elementID].y;
	}
	else{
		objnew .x = 0;
		objnew.y = 0;
	}
	return objnew;
}

function goToAnchor(elementID){
//アンカーに行く
	if((getAnchorPos(elementID).x >=0 || getAnchorPos(elementID).y >=0)){
		pageScroll(0,getAnchorPos(elementID).y,5);
		}
	else{
		flag = true;
	}
}
function moveToAnchor(elementID){
//アンカーに行く
	if((getAnchorPos(elementID).x >=0 || getAnchorPos(elementID).y >=0)){
		move(0,getAnchorPos(elementID).y,5,0,getScrollTop());
		}
	else{
		flag = true;
	}
}
function myFile(){
	var path=window.location.href; 
	LastNum=path.lastIndexOf('/',path.length)+1
	endNum=path.indexOf('?')
	if(endNum==0){
		endNum=path.length
		}
	
	var file=path.substring(LastNum,endNum); 
	return file;
}
function goPageAndMoveToAnchor(elementID,pageURL){
//アンカーに行く
    //location.href=pageURL
	myTitle=elementID
	nowFile=myFile()
	if(nowFile==pageURL){
		//同じページなら
		//document.write(nowFile+" : "+pageURL)
		moveToAnchor(elementID)
		}else{
		//別のページなので
			location.href= pageURL+"?title="+escape(myTitle);
		moveToAnchor(elementID)
		//別のページなので
		}
	//

}
function queryToAnchor(){
	myTitle = myGetQuery("title");
	elementID=myTitle
	if(elementID==undefined){
		//何もしない
	}else{
		elementID=myTitle		
			if((getAnchorPos(elementID).x >=0 || getAnchorPos(elementID).y >=0)){
			move(0,getAnchorPos(elementID).y,5,0,getScrollTop());
			}
			else{
			flag = true;
			}	
	}
	


}
function getInnerSize(){
//ウィンドウサイズを取得するスクリプト
var obj = new Object();
	if(document.all || (document.getElementById && IE)){
	obj.width = document.body.clientWidth;
	obj.height = document.body.clientHeight;
	}
	else if(document.layers || document.getElementById){
	obj.width = window.innerWidth;
	obj.height = window.innerHeight;
	}
	return obj;
}
function getheight(){
//縦幅を取得するスクリプト

	if(document.all || (document.getElementById && IE)){
	h = document.body.clientHeight;
	}
	else if(document.layers || document.getElementById){
	h = window.innerHeight;
	}
	return h;
}

function getScrollLeft(){
//現在の横位置を取得
	if(IE){
		return document.body.scrollLeft;
	}
	else if(window.pageXOffset){
	return window.pageXOffset;
	}
	else{
	return 0;
	}
}

function getScrollTop(){
//現在の縦位置を取得
	if(IE){
		//document.getElementById("IE").innerHTML="IEモード"
		//return document.body.scrollTop;
		return document.body.parentNode.scrollTop;/////////////////////////////////////////////////////////v3
		
	}else if(window.pageYOffset){
		//document.getElementById("IE").innerHTML="Fireモード"
		return window.pageYOffset;
	}else{
		//document.getElementById("IE").innerHTML="そのほかモード"
		return 0;
	}

}

var easeID;
//大塚がつけくわえた下に行くスクロール
var movePosiYToEndX
function move(endX,endY,frms,cuX,cuY) {
	ido=1.2
	if(easeID){
	clearTimeout(easeID);
	}
	cuX = (cuX+endX*ido-endX)/ido;
	cuY = (cuY+endY*ido-endY)/ido;
	var posiX = Math.floor(cuX);
	var posiY = Math.floor(cuY);
	//javascript標準イベント
	window.scrollTo(posiX,posiY);
	
	
	

	if(Math.floor(posiX) != endX || Math.floor(posiY) != endY){
		easeID = setTimeout("move("+endX+","+endY+","+frms+","+cuX+","+cuY+")",20);
	}else{
		posiX = endX 
		posiY = endY	
	}
	
	
	////////////////////////////ブラウザのスクロールバーを触ったらバグ
	mouseX=
	mouseY=
	
	movePosiYToEndX=Math.abs(posiY-Math.floor(endY))
	//document.getElementById("movePosiYToEndX").innerHTML="movePosiYToEndX="+movePosiYToEndX
}
function deleteEase(){
 clearTimeout(easeID);
}


function setPosition(){
  //target = document.getElementById('sampleform');
   window.document.onmousemove = function(e){
   	//target.onmouseX.value = getMousePosition(e).x;
  	//target.onmouseY.value = getMousePosition(e).y;
  	var mouseXvalue=getMousePosition(e).x
  	var mouseYvalue=getMousePosition(e).y;
  	//document.getElementById("mouseXvalue").innerHTML="mouseX="+mouseXvalue
  	//document.getElementById("mouseYvalue").innerHTML="mouseY="+mouseYvalue
	
	var windowWidth
	var isMSIE = /*@cc_on!@*/false;
				if (isMSIE) {
					//alert("IE")
					windowWidth=getInnerSize().width
				} else {
					//alert('not IE!');
					if(browzerName()=="Safari"){
						windowWidth=getInnerSize().width-18
					}
					if(browzerName()=="Firefox"){
						windowWidth=getInnerSize().width-15
					}
					if(browzerName()=="Opera"){
						windowWidth=getInnerSize().width-17
					}
					
				}
	
	//document.getElementById("windowWidth").innerHTML="windowWidth="+windowWidth
	//document.getElementById("browzerNameValue").innerHTML="browzerNameValue="+browzerName()
	
  	if(mouseXvalue>=windowWidth){
		
		deleteEase()
	}
  }
}


//この関数をOnloadで実行して描写する。座標の取得タイミングは上記では「onmousemove」になっていますが、たとえば「onmousedown」でも可能です。

function getMousePosition(e) {
  var obj = new Object();
   
  if(e) {
 		 obj.x = e.pageX;
 		 obj.y = e.pageY;
  }else {
	  var eX=event.x
	  var eY=event.y
	  if(document==undefined){
		  
	  }else{
		if(document.body==undefined){
			
		}else{
			if(document.body.scrollLeft==undefined){
			  obj.x =0
				obj.y =0
			}else{
				
				
				
				
				
				 var dbsL=document.body.scrollLeft;
				var dbsT=document.body.scrollTop;
				obj.x =eX  + dbsL
				obj.y =eY  + dbsT
			}

		}
		  
	  }
	  
	  	
	  
  }
 	return obj;
}


window.onload=setPosition





//onscroll=function(){deleteEase()}
//frames[0].document.body.onscroll=deleteEase
//############################################################################################
/////////////////////////////////////easeToAnchor_v3.js////////////////////////////////////////end
//############################################################################################
//############################################################################################

