//*****************************************
// FunctionName : elementScroll
// Filename : elescroll.js
// Copyright (c) VERSION510. ALL RIGHTS RESERVED.
// X Library is licensed by Cross-Browser.com
//*****************************************
// 070115 Modified
// 061021 Modified
//*****************************************

// set event listener
function setScrollEvent(){
  if(window.attachEvent){  // for IE, including IE7
    var e = window.attachEvent('onscroll',elementScroll);
    return e;
  }else if(window.addEventListener){  // for Firefox, Opera
    window.addEventListener('scroll',elementScroll,false);
    return true;
  }else if(document.addEventListener){  // for Safari, Opera
    document.addEventListener('scroll',elementScroll,false);
    return true;
  }else{
    return false;
  }
}

function elementScroll(){
  var ele=document.getElementById('navi');
  var stime=550;
  var offset=document.documentElement.scrollTop;
  xSlideTo(ele,0,offset+0,stime);
}

// run
setScrollEvent();

// Use X Library - licensed by Cross-Browser.com
/* create.js compiled from X 4.01 with XC 0.29b. Distributed under GNU LGPL. For copyrights, license, documentation and more visit Cross-Browser.com */
var xOp7Up,xOp6Dn,xIE4Up,xIE4,xIE5,xNN4,xUA=navigator.userAgent.toLowerCase();
if(window.opera){
	var i=xUA.indexOf('opera');
	if(i!=-1){
		var v=parseInt(xUA.charAt(i+6));
		xOp7Up=v>=7;
		xOp6Dn=v<7;
	}
}else if(navigator.vendor!='KDE' && document.all && xUA.indexOf('msie')!=-1){
	xIE4Up=parseFloat(navigator.appVersion)>=4;
	xIE4=xUA.indexOf('msie 4')!=-1;
	xIE5=xUA.indexOf('msie 5')!=-1;
}else if(document.layers){
	xNN4=true;
}
xMac=xUA.indexOf('mac')!=-1;

function xDef(){
	for(var i=0; i<arguments.length; ++i){
		if(typeof(arguments[i])=='undefined') return false;
	}
	return true;
}

function xGetElementById(e){
	if(typeof(e)=='string') {
		if(document.getElementById) e=document.getElementById(e);
		else if(document.all) e=document.all[e];
		else e=null;
	}
	return e;
}

function xLeft(e, iX){
	if(!(e=xGetElementById(e))) return 0;
	var css=xDef(e.style);
	if (css && xStr(e.style.left)) {
		if(xNum(iX)) e.style.left=iX+'px';
		else {
			iX=parseInt(e.style.left);
			if(isNaN(iX)) iX=0;
		}
	}
	else if(css && xDef(e.style.pixelLeft)) {
		if(xNum(iX)) e.style.pixelLeft=iX;
		else iX=e.style.pixelLeft;
	}
	return iX;
}

function xMoveTo(e,x,y){
	xLeft(e,x);
	xTop(e,y);
}

function xNum(){
	for(var i=0; i<arguments.length; ++i){
		if(isNaN(arguments[i]) || typeof(arguments[i])!='number') return false;
	}return true;
}

function xSlideTo(e, x, y, uTime){
	if (!(e=xGetElementById(e))) return;
	if (!e.timeout) e.timeout = 25;
	e.xTarget = x;
	e.yTarget = y;
	e.slideTime = uTime;
	e.stop = false;
	e.yA = e.yTarget - xTop(e);
	e.xA = e.xTarget - xLeft(e);
	if (e.slideLinear) e.B = 1/e.slideTime;
	else e.B = Math.PI / (2 * e.slideTime);
	e.yD = xTop(e);
	e.xD = xLeft(e);
	var d = new Date();
	e.C = d.getTime();
	if (!e.moving) _xSlideTo(e);
}

function _xSlideTo(e){
	if (!(e=xGetElementById(e))) return;
	var now, s, t, newY, newX;
	now = new Date();
	t = now.getTime() - e.C;
	if (e.stop) {
		e.moving = false;
	}
	else if (t < e.slideTime) {
		setTimeout("_xSlideTo('"+e.id+"')", e.timeout);
		s = e.B * t;
		if (!e.slideLinear) s = Math.sin(s);
		newX = Math.round(e.xA * s + e.xD);
		newY = Math.round(e.yA * s + e.yD);
		xMoveTo(e, newX, newY);
		e.moving = true;
	}
	else {
		xMoveTo(e, e.xTarget, e.yTarget);
		e.moving = false;
		if (e.onslideend) e.onslideend();
	}
}

function xStr(s){
	for(var i=0; i<arguments.length; ++i){
		if(typeof(arguments[i])!='string') return false;
	}
	return true;
}

function xTop(e, iY){
	if(!(e=xGetElementById(e))) return 0;
	var css=xDef(e.style);
	if(css && xStr(e.style.top)) {
		if(xNum(iY)) e.style.top=iY+'px';
		else {
			iY=parseInt(e.style.top);
			if(isNaN(iY)) iY=0;
		}
	}else if(css && xDef(e.style.pixelTop)) {
		if(xNum(iY)) e.style.pixelTop=iY;
		else iY=e.style.pixelTop;
	}return iY;
}
