function TreinTimeOutExpire(moduleid, animationDuration)
{
	var TreinSchuifbalk = null;

	TreinVolgendeKnopClick('TreinSchuifbalk_'+moduleid, animationDuration, moduleid);
}

function TreinVolgendeKnopClick(id, duration, moduleId)
{
	TreinStartSlide(id, -1, duration, moduleId);
}

function TreinVorigeKnopClick(id, duration, moduleId)
{
	TreinStartSlide(id, 1, duration, moduleId);
}

function TreinModuleResetTimeout(moduleId, animationDuration)
{
	var interval = 1000;

	eval("interval = module_"+moduleId+"_interval_duration;");
	
	var code = "module_"+moduleId+"_interval = setTimeout(\" TreinTimeOutExpire(" +moduleId +"," + animationDuration + "); \", " + interval +" );";
	 
	eval(code);
}


// id : het id van het schuif element
// direction : de schuif richting
// duration : de duur van de animatie
function TreinStartSlide(id, direction, duration, moduleId)
{
	var bar = $(id); //document.all[id];
	
	var code = "if(module_"+moduleId+"_uses_interval){ clearTimeout( module_"+moduleId+"_interval ); }";
	 
	eval(code);

	// If bussy is null/undefined set it to false
	if(bar.bussy==null)
		bar.bussy = false;
	// If the bar is already bussy do not do anything
	if(bar.bussy==true)
		return;

	// Now the bar is bussy
	bar.bussy = true;

	var first = $$('#'+id+' [name=TreinItem]')[0];
	
	// Bereken de nieuwe margin
	var schuifmargin = (first.offsetWidth*direction);
	
	// Achteruit schuiven
	if(direction==1)
	{
		var items = $$('#'+id+' [name=TreinItem]');

		// Het eerste item
		var itemone = items[0];
		// De index van het laatste element
		var lastIndex = items.length-1;
		// het laatste item
		var lastItem = items[lastIndex];
		
		// Verwijder het laatste item
		bar.removeChild(lastItem);
		bar.insertBefore(lastItem, itemone);
		
		// Schuif terug
		bar.style.marginLeft = -itemone.offsetWidth;
		schuifmargin = 0;
	}

	// Maak het effect aan
	var schuifeffect = new Fx.Style( bar , 'margin-left', {duration:duration,onComplete:function() 
		{
			// Wanneer we vooruit zijn gegaan
			if(direction==-1)
			{
				// Haal alle trein item op uit de balk
				var items = $$('#'+id+' [name=TreinItem]');
				// Het eerste item in de balk
				var firstitem = items[0];
			
				// Haal het eerste item weg uit de balk
				bar.removeChild(firstitem);
				// En plaats het achteraan
				bar.appendChild(firstitem);

				eval("if(module_"+moduleId+"_uses_interval){  TreinModuleResetTimeout("+moduleId+", "+ duration+");  } ");
			}

			// margin resetten
			bar.style.marginLeft = 0;
			// We zijn klaar met het schuif effect
			bar.bussy = false;
		}
	});
	
	// Begin de anmatie
	schuifeffect.start( schuifmargin );
}
