//	########################################################################################################################
//	scroller.js - horizontale scroller
//	NB: Alle HTML wordt dynamisch aangemaakt je hoeft dus niet aan te maken, alleen 3 CSS-classes moeten worden gedefinieerd:
//	Voorbeeld:
//
//	DIV.scrollmast	{ width:1200px; height:35px; left:20; top:120; position:absolute; overflow:hidden; }
//	DIV.scrollcont	{ width:5000px; height:35px; left:0; top:0; position:absolute; overflow:hidden; background:#ffffff; }
//	DIV.scrolldiv	{ width:auto; height:35px; left:0; top:0; position:absolute; overflow:hidden; padding-right:10px; font-size:30px; font-family:arial; font-weight:bold; text-transform:uppercase; }
//
//	########################################################################################################################

// ==================================================
// scrolling globals vars
// ==================================================

var scrollTID;
var scrollDebug 		= 0;
var scrollData; 			// = "W.P. Carey acquires French logistics portfolio through sale & leaseback with Fraikin Group (FR/US) --- ";
var scrollDataCount;
var scrollDataBuffer	= new Array();
var scrollSpeed			= 25;	// speed in FPS, (25)
var scrollStep 			= 3;	// pixels per step (2)
var scrollX 			= 0;
var scrollVisible 		= 0;
var scrollInitialised	= 0;

// ==================================================
// initialiseer scrolling
// ==================================================

function scrollInit() {

	// ------------------------------------------------------------
	// scrollmaster: div die een breedte heeft niet groter dan scherm en geen scrollbars veroorzaakt - dit is de viewport
	// ------------------------------------------------------------

	var master 			= document.createElement('div');
	master.id 			= "scrollmaster";
	master.className 	= "scrollmast";
	//master.style.left	= scrollCoords[0]+"px";
	//master.style.top	= scrollCoords[1]+"px";
	//master.style.width	= scrollCoords[2]+"px";
	//master.style.height	= scrollCoords[3]+"px";

	getElement('body').appendChild(master);

	// ------------------------------------------------------------
	// scrollcontainer: div binnen scrollmaster die een breedte heeft van 5000 pixels om alletwee de scrollers te bevatten
	// ------------------------------------------------------------

	var container 			= document.createElement('div');
	container.id 			= "scrollcontainer";
	container.className 	= "scrollcont";
	//container.style.left	= "0px";
	//container.style.top		= "0px";

	master.appendChild(container);

	// ------------------------------------------------------------
	// scrollers: 2 divs waarin 2 duplicaten van de scroller staan en elkaar afwisselen
	// ------------------------------------------------------------

	var scrw = 0;
	scrollDataCount = 0;

	for(var i=0; i<2; i++) {
		//alert(scrw);
		var scr				= document.createElement('div');
		scr.id				= "scroll"+i;
		scr.className		= "scrolldiv";
		scr.style.left		= scrw+"px";

		if (typeof(scrollData) == "string") {
			scr.innerHTML = scrollData;
		} else {
			scr.innerHTML = scrollData[ scrollDataCount++ ];
			if (scrollDataCount >= scrollData.length) scrollDataCount = 0;
		}

		if (scrollDebug) scr.style.backgroundColor = i==1 ? "#e0e0e0" : "#a0f0f0";

		container.appendChild(scr);

		scrw = getElement("scroll"+i).offsetWidth;
		//scrw = getElement("scroll"+i).style.posWidth;
	}

	scrollTID = setInterval("scrollAnimate()", Math.round(1000/scrollSpeed));

	scrollInitialised = 1;
}

// ==================================================
// doe scrolling
// ==================================================

function scrollAnimate() {
	scrollX+=scrollStep;

	// indien einde van eerste scroller is bereikt, voer dan schakeling uit
	if (scrollX+scrollStep>getElement("scroll"+scrollVisible).offsetWidth) {
		//alert('Zet scroller '+scrollVisible+' achteraan');

		// herpositioneer scrollers
		getElement("scroll"+(1-scrollVisible)).style.left = "0px";
		getElement("scroll"+scrollVisible).style.left = getElement("scroll"+(1-scrollVisible)).offsetWidth + "px";

		// check of er nieuwe gegevens zijn
		scrollRefreshData("scroll"+scrollVisible);

		// schakel scrollers om
		scrollVisible = 1 - scrollVisible;

		// reset scrollpositie
		scrollX = 0;
	}

	// update scrollpositie
	getElement('scrollcontainer').style.left = (-scrollX)+"px";

	//window.status = "Je kijkt momenteel naar scroller " + scrollVisible;
}

// ==================================================
// check of er nieuwe gegevens zijn
// ==================================================

function scrollRefreshData(objId) {
	// indien scrollData een array is
	if (typeof(scrollData) != "string") {
		getElement(objId).innerHTML = scrollData[ scrollDataCount++ ];
		if (scrollDataCount >= scrollData.length) {
			// indien scrollDataBuffer gevuld is, neem dan diens gegevens over voor de volgende scroll en leeg die buffer vervolgens
			if (scrollDataBuffer.length) {
				scrollData.length = 0;
				for(var i=0; i<scrollDataBuffer.length; i++) scrollData[i] = scrollDataBuffer[i];
				scrollDataBuffer.length = 0;
			}
			scrollDataCount = 0;
		}
	}
	return;
}