//Project:KK
Start=function(){
	w.kreken=new function(){
		var t = this;
		t.startFilm=function(){
			d.E('film')?d.E('film').as('player.play'):'';
			d.E('playkader').style.display='none';
		}
		t.switchStatus=function(statusTag){
			//alert(statusTag.className);
			toggleClass(statusTag,'uit');
			toggleClass(eMap,statusTag.className);
		}

		//kreken.Kaart
		t.Kaart=function(domElement,markerDetails,centreerX,centreerY,zoomNivo){
			var k=this;
			k._e=domElement;
			k.markers={};
			with (google.maps){//http://code.google.com/intl/nl-NL/apis/maps/documentation/
				k.map=new Map2(domElement);
				k.map.kaart=k;
				k.defaults={centrum:new LatLng(centreerX,centreerY),zoomNivo:zoomNivo};
				CimpleProxy.bewaarTag(domElement);//zodat IE m bewaart bij navigeren
				new KeyboardHandler(k.map);
				with (k.map){
					enableScrollWheelZoom();
					enableContinuousZoom();
					setMapType(G_SATELLITE_MAP);
					addControl(new SmallMapControl);
					addControl(new MapTypeControl);
					//setCenter(new LatLng(centreerX,centreerY),zoomNivo);
					//addOverlay(new GLayer('org.wikipedia.nl'));
				}
			}
			GEvent.addListener(k.map,'moveend',function(){
				if (k.map._panStart){
					k.map._panStart=false;
					//een marker wordt altijd iets ingezoomd nadat deze is gecentreerd:
					if (k.map.getZoom()<=k.defaults.zoomNivo) k.map.setZoom(k.defaults.zoomNivo+2);
				}
			});
			this.reset();
			if (w.CimpleEditModus)
				//werkt alleen als de click-event van de markeroverlay wordt getriggerd vanuit het element en in IE alleen correct als je een marker even ingedrukt houdt, lekker buggy dus
				//oplossing: draggable markers
				GEvent.addListener(k.map,'click',function(overlay,latlng){
					if (latlng&&k.actieveMarker) k.actieveMarker.updatePositie(latlng);
				});
			setTimeout(function(){
				k.vernieuwen(domElement,markerDetails);//timeout toepassen? Ja want als je in Cimple zit krijg je anders een fout
			},0);
		}
		t.Kaart.prototype.vernieuwen=function(domElement,markerDetails){
			if (this._e!==domElement){
				domElement.parentNode.replaceChild(this._e,domElement);
				//this._e=domElement;
			}
			if (this._laatsteMarkerDetails!=markerDetails){
				this._laatsteMarkerDetails=markerDetails;
				markerDetails=markerDetails.split('|');
				var k=this;
				markerDetails.verwerk(function(d){
					d=d.split(';');
					if (!k.markers[d[0]]) k.map.addOverlay(k.maakMarker.apply(k,d));
				});
			};
			this.actieveMarker=this.markers[Lokatie.Args.pagina];
			var k=this;
			if (this.actieveMarker) setTimeout(function(){k.actieveMarker.centreer()},100);
			else this.reset();
		}
		t.Kaart.prototype.maakMarker=function(projectId,statusId,titel,lat,lng){
			return this.markers[projectId]=new t.Marker(projectId,statusId,titel,new google.maps.LatLng(lat,lng));
		}
		t.Kaart.prototype.reset=function(){
			this.map.setCenter(this.defaults.centrum,this.defaults.zoomNivo);
		}
		//kreken.Marker
		t.Marker=function(projectId,statusId,titel,latlng){
			this._projectId=projectId;
			this._statusId=statusId;
			this._titel=titel;
			this._latLng=latlng;
		}
		t.Marker.tmpProto={};
		t.Marker.tmpProto.initialize=function(map){
			var m=this,a=bouw(['a#m'+this._projectId+'.marker.status_'+this._statusId,{href:'/#pagina='+this._projectId},[
				['div.marker_L'],
				['div.marker_M',_,this._titel],
				['div.marker_R']
			]]);
			//anders kan deze niet in map.onclick worden afgevangen:
			GEvent.addDomListener(a,'click',function(){GEvent.trigger(m,'click')});
			map.getPane(G_MAP_MARKER_PANE).appendChild(a);
			this.map=map;
			this.a=a;
		}
		t.Marker.tmpProto.redraw=function(force){
			if (!force) return;
			var c=this.map.fromLatLngToDivPixel(this._latLng);
			this.a.style.left=(c.x-20)+'px';
			this.a.style.top=(c.y-this.a.offsetHeight)+'px';
		}
		t.Marker.tmpProto.centreer=function(){
			var m=this;
			m.map.checkResize();
			m.map.panTo(m._latLng);
			m.map._panStart=true;
			/*
			setTimeout(function(){
				if (m.map.getZoom()<=m.map.kaart.defaults.zoomNivo) m.map.setZoom(m.map.kaart.defaults.zoomNivo+2);
			},500)
			*/
		}
		t.Marker.tmpProto.wijzigStatus=function(statusId){
			var m=this,vrz=new HTTPVerzoek();
			vrz.URL.Args={'pagina':Lokatie.Args.pagina,'Verzoek':'Koppeling','ouderid':statusId};
			vrz.Reactie=function(){
				var id=this.Respons;
				if (id>0){
					m.a.className=m.a.className.replace(m._statusId,statusId);
					m._statusId=statusId;
				}
				else alert('Het opslaan is mislukt. Probeer het later nog een keer.\n'+this.Respons);
			}
			vrz.Start();
		}
		t.Marker.tmpProto.updatePositie=function(latlng){
			var v=new HTTPVerzoek,m=this;
			v.URL.Args={
				verzoek:'schrijfPositie',
				pagina:this._projectId,
				latlng:latlng.lat()+';'+latlng.lng()
			};
			v.Reactie=function(){
				var melding='positie kon niet worden opgeslagen';
				if (this.Respons){
					alert(melding);
					throw melding+': '+this.Respons;//tbv monitoring
				}
				else{
					m._latLng=latlng;
					m.redraw(true);
					//even wachten voor centreren geeft een mooier effect
					setTimeout(function(){
						m.centreer()
					},100);
				}
			};
			v.Start();
		}
	}//einde function kreken

}//einde start

PaginaStart=function(){
	//Voor het vuurvosje
	d.E('Body').style.height=(Math.max(d.E('site').clientHeight,d.E("Venster").offsetHeight))-2+'px';
	//bewaar dynamische onderdelen:
	var t=d.E('statuslijst');
	if (t){
		if (w.eStatuslijst) t.parentNode.replaceChild(eStatuslijst,t);
		else w.eStatuslijst=CimpleProxy.bewaarTag(t);
	}
	var t=d.E('tmpkaart');
	if (t&&t!==w.eMap){
		var markers=d.E('markerDetails').innerText;
		if (kreken.kaart) kreken.kaart.vernieuwen(t,markers);
		else laadGoogleAPI('ABQIAAAA8Q3Yd71NhbBR0MWvksPETRQ-FmLh1kOnNAXq7w1BuJd3iKjaQRR54EVPiEEnTW7qKlG9HAUeqct-ng',function(){
			google.laad('maps',function(){
				extend(kreken.Marker.prototype=new google.maps.Overlay,kreken.Marker.tmpProto);//Overlay overerven
				kreken.kaart=new kreken.Kaart(w.eMap=t,markers,51.8678,4.218407,11);
			})
		});
	}
}//einde paginastart

//FLV loader functie:
stopFilm=function(){
	var t=this;
	setTimeout(function(){t.as('player.stop')},2000);
}
