var navigatorUA = navigator.userAgent.toLowerCase();
var isOpera = navigatorUA.indexOf('opera') >= 0? true: false;
var isIE = navigatorUA.indexOf('msie') >= 0 && !isOpera? true: false;
var isSafari = navigatorUA.indexOf('safari') >= 0 || navigatorUA.indexOf('khtml') >= 0? true: false;

function onClickTrigger(){
	
	var triggerRenban=0;
	var triggers = document.getElementsByTagName('a');
	for (i=0 ; i < triggers.length; i++ ) {
		var trigger = triggers[i];
		if(trigger.className.indexOf('returnTop') >= 0){
			try {
				
				if(trigger.id == ""){
					trigger.id = "returnTop_" + triggerRenban;
					triggerRenban++;
				}
				
				if(trigger.addEventListener){
					trigger.addEventListener('click',backToTop, false);
				}else if(trigger.attachEvent){
					
					trigger.attachEvent('onclick', backToTop);
				}
				
			} catch(err) {
				trigger = null;
			}
			
		}
	}
}



function backToTop() {
  var x1 = x2 = x3 = 0;
  var y1 = y2 = y3 = 0;
  if (document.documentElement) {
      x1 = document.documentElement.scrollLeft || 0;
      y1 = document.documentElement.scrollTop || 0;
  }
  if (document.body) {
      x2 = document.body.scrollLeft || 0;
      y2 = document.body.scrollTop || 0;
  }
  x3 = window.scrollX || 0;
  y3 = window.scrollY || 0;
  var x = Math.max(x1, Math.max(x2, x3));
  var y = Math.max(y1, Math.max(y2, y3));
  window.scrollTo(Math.floor(x / 2), Math.floor(y / 2));
  if (x > 0 || y > 0) {
      window.setTimeout("backToTop()", 25);
  }
}

// BackScrollイベント処理
function doBackScroll() {
    var pos = getScrollPosition();
    window.scrollTo(Math.max(Math.floor(pos.x / 2),0), Math.max(Math.floor(pos.y - (pos.y / 5)),0));
    if (pos.x > 0 || pos.y > 0) {
        window.setTimeout("doBackScroll()", 35);
        return false;
    }
}

// スクロール量を取得し、オブジェクトとして返す
function getScrollPosition() {
    var obj = new Object();
    obj.x = document.body.scrollLeft || document.documentElement.scrollLeft;
    obj.y = document.body.scrollTop || document.documentElement.scrollTop;
    return obj;
}

// イベントリスナー登録
function addListener(elem, eventType, funcRef, capture) {
    if(!elem) { return false; }

    if(elem.addEventListener) {
        elem.addEventListener(eventType, funcRef, capture);
    } else if(elem.attachEvent) {
        elem.attachEvent('on' + eventType, funcRef);
    } else {
        return false;
    }
    return true;
}

// WindowLoad時の処理
if(isIE){
	window.attachEvent("onload" , onClickTrigger);
}else{
	window.addEventListener("load" , onClickTrigger , true);
}