

function newElement(id,next,wait,type,lightRed,lightGreen,lightBlue,lightStrength,waveAnim,waveDir,waves,filter)
{
	this.id = id;
	this.next = next;
	this.wait = wait;
	this.type = type;

	if(navigator.appName != 'Netscape')
	{
		document.all(id).style.filter = filter;
		
		if(document.all(id).style.filter.toLowerCase().indexOf("light(")!=-1)
		{
			document.all(id).filters.light.addAmbient(lightRed,lightGreen,lightBlue,lightStrength);
		}

		if(waveAnim=="true")
		{
			document.all(id).wave = wave;
			document.all(id).wavedir = waveDir;
			document.all(id).filters.wave.phase = (waveDir=="up")?0:95;
			waves[waves.length] = id;
		}	
	}
	else
	{
		document[id].width = document[id].clip.width;
		document[id].height = document[id].clip.height;
	
		filter = filter.toLowerCase();
		var startTrans = filter.indexOf("transition=");

		if(start!=-1)
		{
			var endTrans = filter.indexOf(")",startTrans);
			document[id].transition = filter.substring(startTrans+11,endTrans);
			startTrans = filter.indexOf("duration=");
			endTrans = 	filter.indexOf(",",startTrans);
			document[id].duration = filter.substring(startTrans+9,endTrans);
		}
		
		document[id].aantal = parseInt((document[id].duration*1000)/100);
		document[id].incrX = document[id].width / document[id].aantal;
		document[id].incrY = document[id].height / document[id].aantal;
		document[id].count = 0;
		document[id].status = 0;
		document[id].finishNN = finishNN;
		
		if(parseInt(document[id].transition)==23)
			document[id].transition = parseInt(Math.random()*22);
		else if(parseInt(document[id].transition)>23 || parseInt(document[id].transition)<0)
			document[id].transition = parseInt(Math.random()*22);
		
		document[id].play_transition = catchError;
		
		if(document[id].visibility=='hide')
		{
			switch(parseInt(document[id].transition)) 
			{
				case 0:
				case 1:
				case 2:
				case 3:
				case 12:
					document[id].clip.left = parseInt(document[id].width/2);
					document[id].clip.right = parseInt(document[id].width/2);
					document[id].clip.top = parseInt(document[id].height/2);
					document[id].clip.bottom = parseInt(document[id].height/2);
					document[id].play_transition = transition_boxout;
					break;
				case 4:
					document[id].clip.left = 0;
					document[id].clip.right = parseInt(document[id].width);
					document[id].clip.top = parseInt(document[id].height);
					document[id].clip.bottom = 0;
					document[id].play_transition = transition_wipeup;
					break;
				case 5:
				case 11:								
					document[id].clip.left = 0;
					document[id].clip.right = parseInt(document[id].width);
					document[id].clip.top = 0;
					document[id].clip.bottom = 0;
					document[id].play_transition = transition_wipedown;			
					break;
				case 6:
					document[id].clip.left = 0;
					document[id].clip.right = 0;
					document[id].clip.top = 0;
					document[id].clip.bottom = parseInt(document[id].height);
					document[id].play_transition = transition_wiperight;			
					break;			
				case 7:
					document[id].clip.left = parseInt(document[id].width);
					document[id].clip.right = 0;
					document[id].clip.top = 0;
					document[id].clip.bottom = parseInt(document[id].height);
					document[id].play_transition = transition_wipeleft;			
					break;		
				case 8:	
				case 13:	
				case 14:
				case 22:
					document[id].clip.left = parseInt(document[id].width/2);
					document[id].clip.right = parseInt(document[id].width/2);
					document[id].clip.top = 0;
					document[id].clip.bottom = parseInt(document[id].height);
					document[id].play_transition = transition_verticalout;
					break;
				case 9:
				case 15:	
				case 16:
				case 21:
					document[id].clip.left = 0;
					document[id].clip.right = parseInt(document[id].width);
					document[id].clip.top = parseInt(document[id].height/2);
					document[id].clip.bottom = parseInt(document[id].height/2);
					document[id].play_transition = transition_horizontalout;
					break;
				case 17:
					document[id].clip.left = 0;
					document[id].clip.right = 0;
					document[id].clip.top = 0;
					document[id].clip.bottom = 0;
					document[id].play_transition = transition_leftdown;
					break;
				case 18:
					document[id].clip.left = 0;
					document[id].clip.right = 0;
					document[id].clip.top = parseInt(document[id].height);
					document[id].clip.bottom = 0;
					document[id].play_transition = transition_leftup;
					break;
				case 10:
				case 19:
					document[id].clip.left = parseInt(document[id].width);
					document[id].clip.right = parseInt(document[id].width);
					document[id].clip.top = 0;
					document[id].clip.bottom = 0;
					document[id].play_transition = transition_rightdown;
					break;
				case 20:
					document[id].clip.left = parseInt(document[id].width);
					document[id].clip.right = parseInt(document[id].width);
					document[id].clip.top = parseInt(document[id].height);
					document[id].clip.bottom = 0;
					document[id].play_transition = transition_rightup;
					break;			
			}
		}
	}
	
	return this;
}

function newSlide(id,next,wait)
{
	this.id = id;
	this.next = next;
	this.wait = wait;
	this.elems = new Array();
	return this;
}

function wave()
{
	if(IE)
	{
		if(this.wavedir=="up" && this.filters.wave.phase<100)
			this.filters.wave.phase = this.filters.wave.phase + 5 % 100;
		else if(this.wavedir=="down" && this.filters.wave.phase>0)	
			this.filters.wave.phase = this.filters.wave.phase - 5 % 100;
		else if(this.wavedir=="up")
			this.filters.wave.phase=0;
		else if(this.wavedir=="down")
			this.filters.wave.phase=95;

		setTimeout(this.id + ".wave()",40);	
	}
}


function startWaves()
{
	if(IE)
	{
		for(var x=0;x<wavesElements.length;x++)
		{
			document.all(wavesElements[x]).wave();
		}
	}
}

function checkValues(message)
{
	for(var x=0;x<document.forms[0].elements.length;x++)
	{
		if(document.forms[0].elements[x].getAttribute("required") != null && document.forms[0].elements[x].value.length == 0)
		{
			alert(message);
			return false;
		}
	}

	return true;	
}

var currentSlide = 0;
var oldSlide = null;
var elementName;
var currentElement;
var x=0;

var IE = (navigator.appName=="Microsoft Internet Explorer");

function start()
{
	if(x<slides[currentSlide].elems.length)
	{
		currentElement = slides[currentSlide].elems[x];
		
		if(IE)
		{
	        elementName = document.all(slides[currentSlide].elems[x++].id);
			wait = parseInt(elementName.filters(0).Duration) * 1000;
		}
		else
		{
			elementName = document[slides[currentSlide].elems[x].id];
			wait = parseInt(document[slides[currentSlide].elems[x].id].duration*1000);
			x++;
		}
	
		show(wait);
	}
}

function gotoSlide(sl)
{
	window.event.cancelBubble = true;
	oldSlide = currentSlide;
	currentSlide = sl;
	setTimeout('slidestart()',1);	
}

function show(wait)
{
	if(IE)
	{
		elementName.filters(0).Stop();
		elementName.filters(0).Apply();
		elementName.style.visibility = '';
		elementName.filters(0).Play();
	}
	else
	{
		elementName.visibility = 'visible';
		elementName.status = 1;
		elementName.play_transition();
	}
	
	while(currentElement.next == "direct")
	{
		if(x<slides[currentSlide].elems.length)
		{
			currentElement = slides[currentSlide].elems[x];
			
			if(IE)
			{
				elementName = document.all(slides[currentSlide].elems[(x++)].id);
				wait = parseInt(elementName.filters(0).Duration) * 1000;
				elementName.filters(0).Apply();
				elementName.style.visibility = '';
				elementName.filters(0).Play();
			}
			else
			{
				elementName = document[slides[currentSlide].elems[(x++)].id];	
				elementName.visibility = 'visible';
				elementName.status = 1;
				elementName.play_transition();				
			}
		}
		else
		{
			break;
		}	
	}
	
	if(currentElement.next == "timer")
	{
		setTimeout('start()', wait + (parseInt(currentElement.wait)*1000));
	}	
	else if(currentElement.next == "direct")
	{
		setTimeout('start()', wait);
	}	
}

function document_onclick()
{
	if(IE)
	{
		if(document.all(currentElement.id).filters(0).Status==0 && currentElement.next == "mouseclick")
		{
			start();
		}
	}
	else
	{
		if(document[currentElement.id].status == 2 && currentElement.next == "mouseclick")
		{
			start();			
		}
	}
}

function playSound(id)
{
		sobj = 'document.' + id;
		sdo = 'run()';
		
		if(navigator.appName == 'Netscape')
		{
		if(sdo.indexOf('run')!=-1) 
			eval(sobj+ '.play(false)');
		else
			eval(sobj+'.'+sdo);
		}
		else
		{
		if(eval(sobj+".FileName"))
			{
				eval(sobj+ '.stop()');
				eval(sobj+ '.' + sdo);
			}	
		}		
}

function transition_boxout()
{
	if(this.clip.left>0)
	{
		this.clip.left = parseInt((this.width / 2) - (getRound(this,0)/2));
		this.clip.right = parseInt((this.width / 2) + (getRound(this,0)/2));
		this.clip.top = parseInt((this.height / 2) - (getRound(this,1)/2));
		this.clip.bottom = parseInt((this.height / 2) + (getRound(this,1)/2));
		this.count++;
		setTimeout("document['" + this.name + "'].play_transition()",100);
	}
	else
		this.finishNN();
}

function transition_wipeup()
{
	if(this.clip.top>0)
	{
		this.clip.top = parseInt(this.height - getRound(this,1));
		this.count++;
		setTimeout("document['" + this.name + "'].play_transition()",100);
	}
	else
		this.finishNN();
}

function transition_wipedown()
{
	if(this.clip.bottom<parseInt(this.height))
	{
		this.clip.bottom = getRound(this,1);
		this.count++;
		setTimeout("document['" + this.name + "'].play_transition()",100);
	}
	else
		this.finishNN();
}

function transition_wiperight()
{
	if(this.clip.right<parseInt(this.width))
	{
		this.clip.right = getRound(this,0);
		this.count++;
		setTimeout("document['" + this.name + "'].play_transition()",100);
	}
	else
		this.finishNN();
}

function transition_wipeleft()
{
	if(this.clip.left>0)
	{
		this.clip.left = parseInt(this.width - getRound(this,0));
		this.count++;
		setTimeout("document['" + this.name + "'].play_transition()",100);
	}
	else
		this.finishNN();
}

function transition_verticalout()
{
	if(this.clip.left>0)
	{
		this.clip.left = parseInt((this.width/2) - (getRound(this,0)/2));
		this.clip.right = parseInt((this.width/2) + (getRound(this,0)/2));
		this.count++;
		setTimeout("document['" + this.name + "'].play_transition()",100);
	}
	else
		this.finishNN();
}

function transition_horizontalout()
{
	if(this.clip.top>0)
	{
		this.clip.top = parseInt((this.height/2) - (getRound(this,1)/2));
		this.clip.bottom = parseInt((this.height/2) + (getRound(this,1)/2));
		this.count++;
		setTimeout("document['" + this.name + "'].play_transition()",100);
	}
	else
		this.finishNN();
}

function transition_leftdown()
{
	if(this.clip.right<this.width)
	{
		this.clip.right = getRound(this,0);
		this.clip.bottom = getRound(this,1);
		this.count++;
		setTimeout("document['" + this.name + "'].play_transition()",100);
	}
	else
		this.finishNN();
}

function transition_leftup()
{
	if(this.clip.top>0)
	{
		this.clip.right = getRound(this,0);
		this.clip.top = parseInt(this.height - getRound(this,1));
		this.count++;
		setTimeout("document['" + this.name + "'].play_transition()",100);
	}
	else
		this.finishNN();
}

function transition_rightdown()
{
	if(this.clip.left>0)
	{
		this.clip.left = parseInt(this.width - getRound(this,0));
		this.clip.bottom = getRound(this,1);
		this.count++;
		setTimeout("document['" + this.name + "'].play_transition()",100);
	}
	else
		this.finishNN();
}

function transition_rightup()
{
	if(this.clip.top>0)
	{
		this.clip.left = parseInt(this.width - getRound(this,0));
		this.clip.top = parseInt(this.height - getRound(this,1));
		this.count++;
		setTimeout("document['" + this.name + "'].play_transition()",100);
	}
	else
		this.finishNN();
}

function getRound(id,type)
{
	if(type==0)
		return Math.round(id.count * id.incrX);
	else	
		return Math.round(id.count * id.incrY);
}		

function finishNN()
{
	this.clip.left = 0;
	this.clip.right	= this.width;
	this.clip.top = 0;
	this.clip.bottom = this.height;
	this.status = 2;
}

document.onclick = document_onclick;

