<!--
	/*
		TileNavigator - Written By M.F. Wieland.
		Copyright (c) 2011 M.F. Wieland
	*/

	var tileObjects 		= [];
	var tilePosition		= 0;
	var globaltileTimerID	= -1;
	var scrollActive		= 0;
	var xPos				= 0;
	var xDest				= 0;
	var scrollDir			= 1;
	
	function tileObject( id ) 
	{
		tileObjects[id] 		= this;
		this.id					= id;
		this.scrollIntervalID	= -1;
		this.accel 				= 0;
		this.scrollDir 			= scrollDir;
	}
		
	tileObject.prototype.startScroll = function() 
	{
		if(scrollActive==0&&this.scrollIntervalID==-1) 
		{
			scrollActive = 1; 
			this.accel	= 0;
			xDest = tilePosition * tileWidth;
			this.scrollIntervalID = setInterval( 'tileObjects[' + tilePosition + '].scrollTo()', animScrollDelay );
		}
	}
		
	tileObject.prototype.stopScroll = function() 
	{
		if(scrollActive==1&&this.scrollIntervalID!=-1) 
		{
			scrollActive = 0;
			clearInterval( this.scrollIntervalID );
			this.scrollIntervalID = -1;
		}
	}
		
	tileObject.prototype.scrollTo = function() 
	{
		var p = 0;
		
		var aObj = document.getElementById( 'tileNav' );
		if( aObj ) 
		{
			if(this.scrollDir==1) 
			{
				xPos+= animScrollStep+this.accel;
				p = ((xDest-xPos)/tileWidth)*100;
				if( p >= animAccelStop ) this.accel+=animAccelStep;
					else this.accel-=animAccelStep;
				if( this.accel<0 ) this.accel=0;
				if(p<=0) 
				{
					this.accel=0;
					xPos=this.id*tileWidth;
					this.stopScroll();
				}
			}
			if(this.scrollDir==0) 
			{
				xPos-= animScrollStep+this.accel;
				p = Math.ceil( ((xPos-xDest)/tileWidth)*100 );
				if( p >= animAccelStop ) this.accel+=animAccelStep;
					else this.accel-=animAccelStep;
				if( this.accel<0 ) this.accel=0;
				if(p<=0) 
				{
					this.accel=0;
					xPos=this.id*tileWidth;
					this.stopScroll();
				}
			}
			aObj.scrollLeft = xPos;
		}
	}		

	function createtileImageObject(src) 
	{
		var id 				= tileImageObjects.length;
		var imgTag 			= document.createElement("img");
		imgTag.src			= src;
		imgTag.id 			= "tile_" + id;
		imgTag.className 	= "tileObj";  
		document.body.appendChild( imgTag );
		new imageObject( id );
	}
		
	function scantiletileObjects(className) 
	{
		var node = document.getElementsByTagName("body")[0];
 
		var objCounter = 0;
		var re = new RegExp('\\b' + className + '\\b');
		var els = node.getElementsByTagName("*");
		for( var i=0,j=els.length; i<j; i++)
		if(re.test(els[i].className)) 
		{
			new tileObject(objCounter,els[i]);
			els[i].className 	= 'tileObj';
			els[i].id			= 'tile_' + objCounter;
			tileObjects[ objCounter ].width  = els[i].width;
			tileObjects[ objCounter ].height = els[i].height;
			objCounter++;
		}
	}
		
	function tileInit() 
	{
		scantiletileObjects('tilePreload');
		globaltileTimerID = setTimeout("tileDirector(0)",500);
	}
		
	function tileDirector(navDir) 
	{
		//tileshow director.. navDir: 0=first, 1=next,2=prev, 3=last, 4=start, 5=stop
		var dir = 1;
		if(scrollActive==0) 
		{
			clearTimeout(globaltileTimerID);
			switch(navDir) 
			{
				case 0 		: tilePosition = 0;break
				case 1		: tilePosition++;dir=1;break;
				case 2		: tilePosition--;dir=0;break;
				case 3 		: tilePosition = tileObjects.length-1;break;
			}
			//check if tilePosition is correct
			if(tilePosition>tileObjects.length-tileCount) 
			{
				tilePosition = 0;
				dir = 0
			}
			if(tilePosition<0) 
			{
				tilePosition = tileObjects.length-tileCount;
				dir = 1;
			}
			//if no stop is pending, go!
			if(navDir!=5) 
			{
				tileScroller( tilePosition,dir );
				globaltileTimerID = setTimeout("tileDirector(1)",animTileDelay);
			}
		}
	}
		
	function tileScroller(id,dir) 
	{
		tileObjects[ id ].scrollDir = dir;
		tileObjects[ id ].startScroll();
	}
		
	window.onload=tileInit;
-->
