/*
lädt ein Werk ins div
*/
var gWorkIds;
var gDelta;
var gSpeed = 0.02;
function initWorks(ids)
{
	gWorkIds = ids;
	gLastIndex = gWorkIds.length-1;
	r = ids.length > 4 ? 3 : gLastIndex;
	loadFirst = ids.slice(0, r+1);
	
	if(gWorkIds.length > 4)
		initScroll();
	
	for(i=loadFirst.length-1;i>=0;i--)
	{
		x = i*236;
		loadWork(i, x);
	}
	
	
}


function loadWork(index, x)
{
	id = gWorkIds[index];
	workDiv = mE('div');
	workDiv.className = 'work';
	workDiv.workid = id;
	workDiv.rand = str_replace('.', '', (Math.random()).toString());
	workDiv.id = 'werk_'+id+'_'+workDiv.rand;
	workDiv.index = index;
	workDiv.style.left = x+'px';
	gE('container').appendChild(workDiv);
	url = '../../resources/xml/loadwork.php?id='+id+'&r='+workDiv.rand;
	ax = new ajax(url, displayWork);
	ax.doGet();
}

function displayWork()
{
	r = PHP_Unserialize(arguments[0]);
	if(!gE('werk_'+r[0]+'_'+r[2])) return;
	
	gE('werk_'+r[0]+'_'+r[2]).innerHTML = decodeURIComponent(r[1]);
	//gE('werk_'+r[0]+'_'+r[2]).style.backgroundImage = 'none';
}

function initScroll()
{
	gDelta = 0;
	init_mousemove();
	sintvl = setInterval('doScroll()', 30);
}

function doScroll()
{
	if(gE('overlay').style.display != 'none') return;
	cont = gE('container');
	pos = findPos(cont);
	contLeft = pos[0];
	if(xPos == null)
		gDelta = 10;
	else
		gDelta = xPos - 460 - contLeft;
	gDelta = gDelta * -gSpeed;
	divs = cont.getElementsByTagName('div');
	// alle verschieben
	for(i=0;i<divs.length;i++)
	{
		l = parseInt(divs[i].style.left);
		lnew = Math.round(l + gDelta);
		divs[i].style.left = lnew+'px';
	}

	// in welche richtung wird verschoben?
	if(gDelta > 0)		// elemente verschwinden auf der rechten seite
	{
		// das linkste element finden
		links = getLeftestDiv();
		x = parseInt(links.style.left);
		if(x > 0)
		{
			index = links.index -1;
			if(index < 0) index = gLastIndex;
			loadWork(index, x-236);
		}
		// das rechteste löschen, wenn x > 920 ist
		rechts = getRightestDiv();
		x = parseInt(rechts.style.left);
		if(x > 920) 
			cont.removeChild(rechts);
	}
	else if(gDelta < 0)	// elemente verschwinden auf der linken seite
	{
		// das rechteste element finden
		rechts = getRightestDiv();
		x = parseInt(rechts.style.left);
		if(x < 920)
		{
			index = rechts.index + 1;
			if(index > gLastIndex) index = 0;
			loadWork(index, x+236);
		}
		
		// das linkste löschen, wenn x < 0
		links = getLeftestDiv();
		x = parseInt(links.style.left);
		if (x < -236)
			cont.removeChild(links);
	}
}

function getLeftestDiv()
{
	divs = gE('container').getElementsByTagName('div');
	x = 920;
	for(i=0;i<divs.length;i++)
	{
		l = parseInt(divs[i].style.left);
		if(l < x)
		{
			x = l;
			leftDiv = divs[i];
		}
	}
	return leftDiv;
}

function getRightestDiv()
{
	divs = gE('container').getElementsByTagName('div');
	x = 0;
	for(i=0;i<divs.length;i++)
	{
		l = parseInt(divs[i].style.left);
		if(l > x)
		{
			x = l;
			rightDiv = divs[i];
		}
	}
	return rightDiv;
}
