// JavaScript Document
var pubbanner__scrolling = false;
var pubbanner__scrollDir;
var pubbanner__targetFPS = 30;
var pubbanner__lastFrame = null;
var pubbanner__speed = 160; //px/s

function pubbanner__startScroll(dir, event) {
	try {
		if(event == null) event = window.event;
		event.preventDefault();
	}
	catch(e) { }
	
	pubbanner__scrolling = true;
	pubbanner__scrollDir = dir;
	pubbanner__lastFrame = new Date().getTime();
	setTimeout('pubbanner__scrollTick();', (1000 / pubbanner__targetFPS));
}

function pubbanner__scrollTick() {
	if(!pubbanner__scrolling) return;
	if(!pubbanner__checkEnd()) return;
	
	try {
		var tickerContainer = document.getElementById("scrollerCont");
		var tickers = tickerContainer.getElementsByTagName("a");
		
		var thisTime = new Date().getTime();
		var fps = (1.0 / ((thisTime - pubbanner__lastFrame)/1000.0));
		var delta = (pubbanner__speed / fps);
		if(pubbanner__scrollDir == 'left') delta = -delta;
		
		/*try {
			console.log('Last: '+(pubbanner__lastFrame)+' This: '+thisTime+'\nFPS: '+fps+'\nDelta: '+delta);
		} catch (e) { }*/
		
		pubbanner__lastFrame = thisTime;
		
		for(var i = 0; i < tickers.length; i++) {			
			var left = new Number(tickers[i].style.left.substr(0, tickers[i].style.left.indexOf("px")));
			left += delta;					
			tickers[i].style.left = left+"px";
		}
	}
	catch(e) {
		alert(e);	
	}
	
 	setTimeout('pubbanner__scrollTick();', (1000 / pubbanner__targetFPS));
}

function pubbanner__endScroll() {
	pubbanner__scrolling = false;		
}

function pubbanner__checkEnd() {
	var tickerContainer = document.getElementById("scrollerCont");
	var tickers = tickerContainer.getElementsByTagName("a");
	var tickerItem = (pubbanner__scrollDir != 'left') ? tickers[0] : tickers[tickers.length-1];
	
	try {
		console.log('Whole width: '+tickerContainer.offsetWidth+'\nItem left: '+tickerItem.offsetLeft+' Item width: '+tickerItem.offsetWidth);
	} catch (e) { }
	
	if(pubbanner__scrollDir == 'left') {
		if(tickerItem.offsetLeft + tickerItem.offsetWidth < tickerContainer.offsetWidth) return false;
	}
	else {
		if(tickerItem.offsetLeft > 0) return false;
	}
	
	return true;
}
