dAnimScroll           = function(){};
dAnimScroll.ScrollTo  = function(x, y, settings){
	var div = '';
	
	if(!settings && dAnimScroll.defaultSettings)
		settings = dAnimScroll.defaultSettings;
	else if(!settings)
		settings = {};
	
	if(!settings.delay) settings.delay = 1000;
	if(!settings.ease)  settings.ease  = 'easeInOut';
	
	settings._target = {x: x, y: y}
	dAnimScroll.defaultSettings = settings;
	dAnim.CreateAnimation('Scroll', div, settings);
}
dAnimScroll.AutoLoad  = function(confirm){
	if(confirm){
		var allEls = document.getElementsByTagName('a');
		var iof,el,ypos;
		for(var i = 0; i < allEls.length; i++){
			el  = allEls[i];
			iof = el.href.indexOf("#");
			if(iof !=-1 && !el.onclick && el.innerHTML){
				var tgName = el.href.substr(iof+1);
				allEls[i].goY     = tgName?dAnim._getElementAbsPos(document.getElementsByName(tgName)[0]).y:0;
				allEls[i].onclick = function(){
					dAnimScroll.ScrollTo(0, this.goY-20);
					return false;
				}
			}
		}
	}
	else{
		var w = window.onload;
		window.onload = function(){ if(w) w(); dAnimScroll.AutoLoad(true); }
	}
}
dAnimScroll._GetPos   = function(){
	return { x: document.body.scrollLeft, y: document.body.scrollTop };
}
dAnimScroll._Frame    = function(set, obj, act, _pc, isFirst, isLast){
	if(act.trigger == 'Scroll'){
		if(isFirst){
			act._original = dAnimScroll._GetPos();
			act._target   = set._target;
		}
	
		var calcEase = dAnim._CalcEase(set.ease, _pc/100);
		var nx = parseInt(act._original.x+(act._target.x-act._original.x)*calcEase);
		var ny = parseInt(act._original.y+(act._target.y-act._original.y)*calcEase);
		
		var ax = document.body.scrollLeft;
		var ay = document.body.scrollTop;
		
		if(act._lastPos && (act._lastPos.x != ax || act._lastPos.y != ay)){
			act.time_elapsed = act.timestamp_start + set.delay;
		}
		else{
			set._lastPos = {x: nx, y: ny};
			window.scroll(nx, ny);
		}
	}
}


// Cadastra o módulo acima no dAnim
dAnim.AddModule('Scroll', dAnimScroll._Frame);


