// JavaScript Document





CSInit = new Array;
function CSScriptInit() {
if(typeof(skipPage) != "undefined") { if(skipPage) return; }
idxArray = new Array;
for(var i=0;i<CSInit.length;i++)
	idxArray[i] = i;
CSAction2(CSInit, idxArray);}



CSLoopIsRunning = false; CSFctArray = new Array; CSTimeoutID = null;
function CSLoop() {	
	CSLoopIsRunning = false;
	for (i=0;i<CSFctArray.length;i++) {
		var curFct = CSFctArray[i];
		if (curFct)	{
			if (curFct.DoFunction(curFct)) { CSLoopIsRunning = true; curFct.counter++; }
			else CSFctArray[i] = 0;
		}
	}
	if (CSLoopIsRunning) CSTimeoutID = setTimeout("CSLoop()", 1);
}
function CSStartFunction(fct,data) {
	if (!CSLoopIsRunning) { CSFctArray = 0; CSFctArray = new Array; }
	var fctInfo = new Object;
	fctInfo.DoFunction = fct; fctInfo.counter = 0; fctInfo.data = data;
	CSFctArray[CSFctArray.length] = fctInfo; 
	if (!CSLoopIsRunning) CSLoop();
}
function CSStopFunction(sceneName) {
	var i;
	for (i=0;i<CSFctArray.length;i++) {
		var curFct = CSFctArray[i];
		if (curFct){ if (curFct.data.name == sceneName){ CSFctArray[i] = 0; return; } }
	}
	
		
}
function CSStopComplete() {
	if (CSTimeoutID == null) return;
	clearTimeout (CSTimeoutID); CSLoopIsRunning = false; CSTimeoutID = null;
}


function CSSetStyleDepth(s,depth) {
	if (CSIsW3CDOM)document.getElementById(s).style.zIndex=depth;
	else if (IsIE())CSIEStyl(s).zIndex=depth;
	else CSNSStyl(s).zIndex=depth;
}
function CSGetStyleDepth(s) {
	if (CSIsW3CDOM){CSIDOM();return document.getElementById(s).style.zIndex;}
	else if (IsIE())return (CSIEStyl(s).zIndex);
	else return (CSNSStyl(s).zIndex);
}




CSSeqArray = new Array;
function CSSeqActionFct(seq,loopCount,continueLoop) {
	if ((seq.loop < 2) || ((loopCount % 2) != 0)) {
		for (var i=0;i<seq.actionCount;i++) {
			if (seq.actions[3*i + 1] <= seq.frame) {
				if ((loopCount > 1) && (seq.actions[3*i + 1] < seq.start)) continue;
				if (seq.actions[3*i + 2] < loopCount) {
					seq.actions[3*i + 2] = loopCount; CSLoopIsRunning = true;
					CSAction(new Array(seq.actions[3*i + 0])); continueLoop = true;
				}
			} else { continueLoop = true; break; }
		}
	} else {
		for (var i=seq.actionCount-1;i>=0;i--) {
			if (seq.actions[3*i + 1] > seq.frame) {
				if (seq.actions[3*i + 1] > seq.end) continue;
				if (seq.actions[3*i + 2] < loopCount) {
					seq.actions[3*i + 2] = loopCount; CSLoopIsRunning = true;
					CSAction(new Array(seq.actions[3*i + 0])); continueLoop = true;
				}
			} else { continueLoop = true; break; }
		}
	}
	return continueLoop;
}		
function CSSeqFunction(fctInfo)
{
	var seq = fctInfo.data; var oldFrame = seq.frame;
	var newTicks = (new Date()).getTime();
	seq.frame = Math.round((seq.fps * (newTicks - seq.startTicks)/1000.0) - 0.5);
	var continueLoop  = false; var loopCount = 1;
	
	if (seq.loop > 0) {
		continueLoop = true;
		if (seq.loop == 1) {
			var iv = (seq.end - seq.start);
			var f = Math.round(((seq.frame - seq.start) / iv) - 0.5);
			if (f < 0) f = 0;
			loopCount = f+1;
			seq.frame = seq.start + ((seq.frame - seq.start) % (seq.end - seq.start));
		} else {
			var iv = (seq.end - seq.start);
			var f = Math.round(((seq.frame - seq.start) / iv) - 0.5);
			if (f < 0) f = 0;
			loopCount = f+1;
			f = (seq.frame - seq.start) % (2 * iv);
			if (f > iv) f = 2*iv - f;
			seq.frame = seq.start + f;
		}
	}
	continueLoop = CSSeqActionFct(seq,loopCount,continueLoop);
	for (var i=0;i<seq.tracks.length;i++) {
		var track = seq.tracks[i]; var frameCount = 0; var lastCount = 0; var partCount = 0;
		var partIdx = track.parts.ticks.length;
		for (var k=0;k<track.parts.ticks.length;k++) {
			frameCount += track.parts.ticks[k];
			if (frameCount > seq.frame) { partIdx = k; partCount = seq.frame - lastCount; break; }
			lastCount = frameCount;
		}
		if (partIdx < track.parts.ticks.length) {
			var type=track.parts.moveType[partIdx];
			if(type==1) CSSetLinearPos (track, partIdx, partCount);
			else if(type==2) CSSetCurvePos (track, partIdx, partCount);
			else if(type==3) if (oldFrame != seq.frame) CSSetRandomPos (track, partIdx, partCount);
							 else { x = CSGetStylePos(track.layer,0); y = CSGetStylePos(track.layer,1); }
			CSSetStyleVis(track.layer,track.parts.visibilities[partIdx]);
			CSSetStyleDepth(track.layer,track.parts.depths[partIdx]);
			continueLoop = true;
		} else {
			var partIdx = track.parts.moveType.length-1;
			var posArray = track.parts.positions;
			var x = posArray[partIdx * 6 + 0]; var y = posArray[partIdx * 6 + 1];
			CSSetStylePos(track.layer,0,x); CSSetStylePos(track.layer,1,y);
			CSSetStyleVis(track.layer,track.parts.visibilities[partIdx]);
			CSSetStyleDepth(track.layer,track.parts.depths[partIdx]);
		}
	}
	return continueLoop;
}
function CSSetLinearPos (track, partIdx, partCount) {
	var curTicks = track.parts.ticks[partIdx];
	var pIdx1 = partIdx * 6; var pIdx2 = (partIdx+1) * 6;
	var posArray = track.parts.positions;
	var x = posArray[pIdx1 + 0]; var y = posArray[pIdx1 + 1];
	var x1,x2,y1,y2;
	var factor = partCount/curTicks;
	x1 = x; y1 = y;
	x2 = posArray[pIdx2 + 0]; y2 = posArray[pIdx2 + 1];
	x = x1 * (1-factor) + x2 * factor; y = y1 * (1-factor) + y2 * factor;
	CSSetStylePos(track.layer,0,x); CSSetStylePos(track.layer,1,y);
}
function CSSetCurvePos (track, partIdx, partCount) {
	var curTicks = track.parts.ticks[partIdx];
	var pIdx1 = partIdx * 6; var pIdx2 = (partIdx+1) * 6;
	var posArray = track.parts.positions;
	var x = posArray[pIdx1 + 0]; var y = posArray[pIdx1 + 1];
	var x1,x2,x3,x4,y1,y2,y3,y4;
	var factor = partCount/curTicks;
	var t = factor; var u = t * t; var v = u * t;
	var val1 = 3*(u-t) - v + 1; var val2 = 3*(v+t - 2*u); var val3 = 3*(u-v); var val4 = v;
	x1 = x; y1 = y; x2 = posArray[pIdx1 + 2]; y2 = posArray[pIdx1 + 3];
	x3 = posArray[pIdx1 + 4]; y3 = posArray[pIdx1 + 5];
	x4 = posArray[pIdx2 + 0]; y4 = posArray[pIdx2 + 1];
	x = x1 * val1 + x2 * val2 + x3 * val3 + x4 * val4;
	y = y1 * val1 + y2 * val2 + y3 * val3 + y4 * val4;
	CSSetStylePos(track.layer,0,x); CSSetStylePos(track.layer,1,y);
}
function CSSetRandomPos (track, partIdx, partCount) {
	var curTicks = track.parts.ticks[partIdx];
	var pIdx1 = partIdx * 6; var pIdx2 = (partIdx+1) * 6;
	var posArray = track.parts.positions;
	var x = posArray[pIdx1 + 0]; var y = posArray[pIdx1 + 1];
	var x1,x2,y1,y2;
	var factor = partCount/curTicks;
	x1 = x; y1 = y;
	x2 = posArray[pIdx2 + 0]; y2 = posArray[pIdx2 + 1];
	var factorx = Math.random(); var factory = Math.random();
	x = x1 * (1-factorx) + x2 * factorx; y = y1 * (1-factory) + y2 * factory;
	CSSetStylePos(track.layer,0,x); CSSetStylePos(track.layer,1,y);
}
function CSStartSeq(name) {
	var seq = CSGetScene(name); var date = new Date()
	seq.startTicks = date.getTime()
	for (var i=0;i<seq.actionCount;i++) seq.actions[3*i+2] = 0;
	CSStartFunction(CSSeqFunction,seq);
}
function CSSceneObj (name,fps,loop,start,end,frame,sTicks,numAct,acts,tracks) {
	this.name=name;this.fps=fps;this.loop=loop;this.start=start;this.end=end;
	this.frame=frame;this.startTicks=sTicks;this.actionCount=numAct;
	this.actions=acts;this.tracks=tracks;
}
function CSTrackObj (name,partIdx,partCount,parts) {
	this.layer=name;this.partIdx=partIdx;this.partCount=partCount;this.parts=parts;
}
function CSPartObj (ticks,pos,depths,vis,moveType) {
	this.ticks=ticks;this.positions=pos;this.depths=depths;this.visibilities=vis;
	this.moveType=moveType;
}
function CSGetScene (name) {
	for (i=0;i<CSSeqArray.length;i++) { var seq = CSSeqArray[i]; if (seq.name==name) return seq; }
	return 0;
}
function CSAutoStartScene(action) { CSStartSeq (action[1]); }
CSStopExecution=false;
function CSAction(array) {return CSAction2(CSAct, array);}
function CSAction2(fct, array) { 
	var result;
	for (var i=0;i<array.length;i++) {
		if(CSStopExecution) return false; 
		var aa = fct[array[i]];
		if (aa == null) return false;
		var ta = new Array;
		for(var j=1;j<aa.length;j++) {
			if((aa[j]!=null)&&(typeof(aa[j])=="object")&&(aa[j].length==2)){
				if(aa[j][0]=="VAR"){ta[j]=CSStateArray[aa[j][1]];}
				else{if(aa[j][0]=="ACT"){ta[j]=CSAction(new Array(new String(aa[j][1])));}
				else ta[j]=aa[j];}
			} else ta[j]=aa[j];
		}			
		result=aa[0](ta);
	}
	return result;
}
CSAct = new Object;


/* volgende onderdelen aanpassen voor verschillende verplaatsingen op de site*/

CSSeqArray[CSSeqArray.length] = new CSSceneObj(/*CMP*/"Scene 1",15,0,0,95,/*totaal lengte animatie in frames*/0,0,0,new Array(),new Array(

new CSTrackObj(/*CMP*/"skets",0,0,new CSPartObj(new Array(0/*startframe*/,15/*snelheid*/,0),new Array(0,0,0,0,0,0,1261/*left begin*/,64/*top begin*/,0,0,0,0,609/*left einde*/,64/*top einde*/,0,0,0,0),new Array(0,0,1),new Array(0/*zichtbaar begin*/,1/*zichtbaar eind*/,1),new Array(0,1,1))),
		
new CSTrackObj(/*CMP*/"actueel",0,0,new CSPartObj(new Array(0,15,0),new Array(0,0,0,0,0,0,/**/-1432,64,0,0,0,0,/**/0,64,0,0,0,0),new Array(0,0,1),new Array(0,1,1),new Array(0,1,1))),


new CSTrackObj(/*CMP*/"interieur",0,0,new CSPartObj(new Array(8,15,0),new Array(0,0,0,0,0,0,/**/-1064,140,0,0,0,0/**/,368,140,0,0,0,0),new Array(0,0,1),new Array(0,1,1),new Array(0,1,1))),

new CSTrackObj(/*CMP*/"ontwikkeling",0,0,new CSPartObj(new Array(8,15,0),new Array(0,0,0,0,0,0,/**/1422,140,0,0,0,0,/**/711,140,0,0,0,0),new Array(0,0,1),new Array(0,1,1),new Array(0,1,1))),

new CSTrackObj(/*CMP*/"stedenbouw",0,0,new CSPartObj(new Array(12,15,0),new Array(0,0,0,0,0,0,/**/-1432,140,0,0,0,0,/**/0,140,0,0,0,0),new Array(0,0,1),new Array(0,1,1),new Array(0,1,1))),



new CSTrackObj(/*CMP*/"klein",0,0,new CSPartObj(new Array(16,15,0),new Array(0,0,0,0,0,0,/**/-1218,216,0,0,0,0,/**/214,216,0,0,0,0),new Array(0,0,1),new Array(0,1,1),new Array(0,1,1))),

new CSTrackObj(/*CMP*/"scholen",0,0,new CSPartObj(new Array(16,15,0),new Array(0,0,0,0,0,0,/**/1356,216,0,0,0,0,/**/645,216,0,0,0,0),new Array(0,0,1),new Array(0,1,1),new Array(0,1,1))),

new CSTrackObj(/*CMP*/"utiliteit",0,0,new CSPartObj(new Array(22,15,0),new Array(0,0,0,0,0,0,/**/-1432,216,0,0,0,0,/**/0,216,0,0,0,0),new Array(0,0,1),new Array(0,1,1),new Array(0,1,1))),



new CSTrackObj(/*CMP*/"archlandschap",0,0,new CSPartObj(new Array(24,15,0),new Array(0,0,0,0,0,0,/**/-1432,292,0,0,0,0,/**/0,292,0,0,0,0),new Array(0,0,1),new Array(0,1,1),new Array(0,1,1))),

new CSTrackObj(/*CMP*/"zorg",0,0,new CSPartObj(new Array(24,15,0),new Array(0,0,0,0,0,0,/**/1232,292,0,0,0,0,/**/521,292,0,0,0,0),new Array(0,0,1),new Array(0,1,1),new Array(0,1,1))),


new CSTrackObj(/*CMP*/"contact",0,0,new CSPartObj(new Array(32,15,0),new Array(0,0,0,0,0,0,/**/1009,368,0,0,0,0,/**/298,368,0,0,0,0),new Array(0,0,1),new Array(0,1,1),new Array(0,1,1))),

new CSTrackObj(/*CMP*/"woningbouw",0,0,new CSPartObj(new Array(32,15,0),new Array(0,0,0,0,0,0,/**/-1432,368,0,0,0,0,/**/0,368,0,0,0,0),new Array(0,0,1),new Array(0,1,1),new Array(0,1,1))),





new CSTrackObj(/*CMP*/"home",0,0,new CSPartObj(new Array(33,10,0),new Array(0,0,0,0,0,0,/**/-35,454,0,0,0,0,/**/903,454,0,0,0,0),new Array(0,0,1),new Array(0,1,1),new Array(0,1,1))),
new CSTrackObj(/*CMP*/"info",0,0,new CSPartObj(new Array(38,10,0),new Array(0,0,0,0,0,0,/**/-82,454,0,0,0,0,/**/856,454,0,0,0,0),new Array(0,0,1),new Array(0,1,1),new Array(0,1,1))),
new CSTrackObj(/*CMP*/"mail",0,0,new CSPartObj(new Array(43,10,0),new Array(0,0,0,0,0,0,/**/-129,454,0,0,0,0,/**/809,454,0,0,0,0),new Array(0,0,1),new Array(0,1,1),new Array(0,1,1))),
new CSTrackObj(/*CMP*/"back",0,0,new CSPartObj(new Array(48,10,0),new Array(0,0,0,0,0,0,/**/-938,454,0,0,0,0,/**/13,454,0,0,0,0),new Array(0,0,1),new Array(0,1,1),new Array(0,1,1))),
																																											
new CSTrackObj(/*CMP*/"rss",0,0,new CSPartObj(new Array(63,10,0),new Array(0,0,0,0,0,0,/**/900,517,0,0,0,0,/**/900,517,0,0,0,0),new Array(0,0,1),new Array(0,1,1),new Array(0,1,1))),
new CSTrackObj(/*CMP*/"linkedin",0,0,new CSPartObj(new Array(65,10,0),new Array(0,0,0,0,0,0,/**/822,517,0,0,0,0,/**/822,517,0,0,0,0),new Array(0,0,1),new Array(0,1,1),new Array(0,1,1))),
new CSTrackObj(/*CMP*/"facebook",0,0,new CSPartObj(new Array(67,10,0),new Array(0,0,0,0,0,0,/**/747,517,0,0,0,0,/**/747,517,0,0,0,0),new Array(0,0,1),new Array(0,1,1),new Array(0,1,1))),
new CSTrackObj(/*CMP*/"twitter",0,0,new CSPartObj(new Array(69,10,0),new Array(0,0,0,0,0,0,/**/643,517,0,0,0,0,/**/643,517,0,0,0,0),new Array(0,0,1),new Array(0,1,1),new Array(0,1,1)))



));
CSInit[CSInit.length] = new Array(CSAutoStartScene,/*CMP*/'Scene 1');

																									  



