// Auteur: Klaas-Bindert de Haan, Dienst Ruimtelijke Ordening, Gemeente Amsterdam
// Gebaseerd op SVGMapMaker (DBXGeomatics), plugin voor MapInfo.
var deTitel = document.title;
var deLegenda;
var deSelected=0;
var deKaart;
var deGeocoder;
var deManager;
var deObjectenArray= new Array();
var deObjectenArrayNogNiet= new Array();
self.moveTo(0,0);
self.resizeTo(screen.availWidth,screen.availHeight);


  
function doeViewers() {
	self.moveTo(0,0);
	self.resizeTo(screen.availWidth,screen.availHeight);
	var deViewersString = "<table id='viewers_tabel'>";
	for (var i=0; i < deViewers.length; i++) {  
		deViewersString += "<tr><td><br />"+deViewers[i][1]+"</td></tr>";
		deViewersString += "<tr><td><a href='"+deViewers[i][0]+"' title='"+deViewers[i][1]+"' onclick='window.open(this.href); return false;'>";
		deViewersString += "<img class='viewers_images' src='"+deViewers[i][0]+".jpg' alt='"+deViewers[i][1]+"' /></a></td></tr>";
	}
	deViewersString += "</table>";  
	document.getElementById("svg").innerHTML=deViewersString;
}


function doeKaart(deCenterX,deCenterY,deZoom) {
	if (GBrowserIsCompatible()){ 
		deKaart = new GMap2(document.getElementById("kaart"));
		deKaart.setCenter(new GLatLng(deCenterX,deCenterY), deZoom);
		deKaart.addControl(new GLargeMapControl());     
		deKaart.addControl(new GMapTypeControl());
		deKaart.addControl(new GScaleControl());
		deKaart.addControl(new GOverviewMapControl());  
		deKaart.setMapType(G_SATELLITE_MAP);
		deKaart.addMapType(G_PHYSICAL_MAP);
		deKaart.removeMapType(G_NORMAL_MAP);		
		deGeocoder = new GClientGeocoder();
		deManager = new MarkerManager(deKaart);    
	}
}


function doeKaartlaag(deKaartlaag,deIconbestand,deInfoTitel,deCheck,deZindex){
	if (deInfoTitel.substring(0,1) == "<"  && deInfoTitel.substring(2,3) == ">") deInfoTitel = deInfoTitel.substring(3,deInfoTitel.length-4);
	if (deInfoTitel.substring(0,1) == "<"  && deInfoTitel.substring(3,4) == ">") deInfoTitel = deInfoTitel.substring(4,deInfoTitel.length-5);
	deObjectenArray[deKaartlaag]= new Array();

	GDownloadUrl("../_Basis/MaakXML.php?NAAM="+deKaartlaag, function(data) {
		var deXML = GXml.parse(data);
		var deObjecten = deXML.documentElement.getElementsByTagName("object");
		for (var i = 0; i < deObjecten.length; i++) {
			var deNaam = deObjecten[i].getAttribute("NAAM");
			var deInfo = deObjecten[i].getAttribute("INFO");
			var dePuntIcon = deObjecten[i].getAttribute("PUNT_ICON");
			var dePuntSize = parseInt(deObjecten[i].getAttribute("PUNT_SIZE"));
			var deLijnKleur = deObjecten[i].getAttribute("LIJN_KLEUR");
			var deLijnTrans = parseFloat(deObjecten[i].getAttribute("LIJN_TRANS"));
			var deLijnDikte = parseInt(deObjecten[i].getAttribute("LIJN_DIKTE"));
			var deVlakVul = deObjecten[i].getAttribute("VLAK_VUL");
			var deVlakLijn = deObjecten[i].getAttribute("VLAK_LIJN");
			var deVlakKleur = deObjecten[i].getAttribute("VLAK_KLEUR");
			var deVlakTrans = parseFloat(deObjecten[i].getAttribute("VLAK_TRANS"));
			var deLat = parseFloat(deObjecten[i].getAttribute("LAT"));
			var deLng = parseFloat(deObjecten[i].getAttribute("LNG"));
			var deEncodedPoints = deObjecten[i].getAttribute("ENCODED_POINTS");
			var deEncodedLevels = deObjecten[i].getAttribute("ENCODED_LEVELS");

			var deTooltipText = deNaam;
			if (deInfo != "")	var deInformatie = "<div id='info_container'><div id='info_titel'>&nbsp;"+deInfoTitel+"</div>"+deInfo;
			else var deInformatie = "";

			if (deLat > 0) {
				var deIcon = new GIcon();
				deIcon.image = "../_Icons/"+dePuntIcon;  
				deIcon.iconSize = new GSize(dePuntSize,dePuntSize);
				var deSizeHalf = Math.round(dePuntSize/2);				
				deIcon.iconAnchor = new GPoint(deSizeHalf,deSizeHalf);
				deIcon.infoWindowAnchor = new GPoint(deSizeHalf,deSizeHalf); 
				var dePunt = new GLatLng(deLng,deLat);
				doeMarker(dePunt,deIcon,deInformatie,deKaartlaag,deTooltipText,deCheck,deZindex);
			}
			else if (deVlakKleur != "") {
				if (deVlakVul == "1") var deVlakVulJN = true;
				else var deVlakVulJN = false;
				if (deVlakLijn == "1") var deVlakLijnJN = true;
				else var deVlakLijnJN = false;
				//alert(deEncodedPoints);
				var dePolylines = new Array;
				var deEncodedPointsArray = deEncodedPoints.split(" ");
				var deEncodedLevelsArray = deEncodedLevels.split(" "); 	
				for (var j in deEncodedPointsArray) {
					dePolylines[j] = new Array;
					dePolylines[j]["points"] = deEncodedPointsArray[j];
					dePolylines[j]["levels"] = deEncodedLevelsArray[j];
					dePolylines[j]["color"] = deLijnKleur;
					dePolylines[j]["opacity"] = deLijnTrans;	
					dePolylines[j]["weight"] = deLijnDikte;	
					dePolylines[j]["numLevels"] = 18;	
					dePolylines[j]["zoomFactor"] = 2;			
				}	 
				var deVlak = new GPolygon.fromEncoded({
					polylines: dePolylines,
					fill: deVlakVulJN,
					color:deVlakKleur,
					opacity: deVlakTrans,
					outline: deVlakLijnJN
				});
				doeVlak(deVlak,deInformatie,deKaartlaag,deTooltipText,deCheck);
			}
			else {
				var deLijn = new GPolyline.fromEncoded({
					points: deEncodedPoints,
					levels: deEncodedLevels,
					color: deLijnKleur,
					opacity: deLijnTrans,
					weight: deLijnDikte,
					numLevels: 18,
					zoomFactor: 2
				});
				deKaart.addOverlay(deLijn);
				deObjectenArray[deKaartlaag].push(deLijn);
				if (deCheck=="") deLijn.hide();
			}
		}
	});
}

function doeKaartlaagDoorzichtig(){
	deKaart.clearOverlays();
	var deLegendaGroep = document.getElementsByName("AMSTELIII");
	for (var i=0; i < deLegendaGroep.length; i++) {

		var deKaartlaag = deLegendaGroep[i].id;
		for (var j in deObjectenArray[deKaartlaag]) {
			deObjectenArray[deKaartlaag][j].opacity=0.5;
			deKaart.addOverlay(deObjectenArray[deKaartlaag][j]);
		}
 	}
}



 
function doeMarker(dePunt,deIcon,deInformatie,deKaartlaag,deTooltipText,deCheck,deZindex) {
	var deMarker = new GMarker(dePunt,{icon:deIcon,zIndexProcess: function(){return deZindex}});
	if (deCheck=="") deMarker.hide();
	else deMarker.show();
	deObjectenArray[deKaartlaag].push(deMarker);
	deManager.addMarker(deMarker,0,17);
	if (deInformatie != "") GEvent.addListener(deMarker, "click", function() {doeToelichting("hidden");deMarker.openInfoWindowHtml(deInformatie);});	
	if (deTooltipText != "") {
		var deTooltip = new Tooltip(dePunt,deTooltipText,4);
		deMarker.tooltip = deTooltip;
		GEvent.addListener(deMarker, "mouseover", function() {this.tooltip.show();});
		GEvent.addListener(deMarker, "mouseout", function() {this.tooltip.hide();});       
		deKaart.addOverlay(deTooltip);
	}
}


function doeVlak(deVlak,deInformatie,deKaartlaag,deTooltipText,deCheck) {
	deKaart.addOverlay(deVlak);
	//deVlak.show();
	deObjectenArray[deKaartlaag].push(deVlak);
	if (deCheck == "") deVlak.hide();
	if (deInformatie != "") GEvent.addListener(deVlak, "click", function(point){doeToelichting("hidden");deKaart.openInfoWindowHtml(point,deInformatie);});
	if (deTooltipText != "") {
		var deTooltip = new Tooltip(deVlak.getBounds().getCenter(),deTooltipText,4);
		deVlak.tooltip = deTooltip;
		GEvent.addListener(deVlak, "mouseover", function() {this.tooltip.show();});
		GEvent.addListener(deVlak, "mouseout", function() {this.tooltip.hide();});   	
		deKaart.addOverlay(deTooltip);
	}
}


function doeToggle(deKaartlaag) {
	doeToelichting('hidden');
	for (var i in deObjectenArray[deKaartlaag]) {
		var deObject = deObjectenArray[deKaartlaag][i];
		if (deObject.isHidden()) deObject.show();
		else deObject.hide();
	}
}


function doeAlles(deCheck,deLegendaGroepsnaam) {
	doeToelichting('hidden');  
 	var deLegendaGroep = document.getElementsByName(deLegendaGroepsnaam);
	for (var i=0; i < deLegendaGroep.length; i++) {
		deLegendaGroep[i].checked = deCheck;
		var deKaartlaag = deLegendaGroep[i].id;
		for (var j in deObjectenArray[deKaartlaag]) {     
			var deObject = deObjectenArray[deKaartlaag][j];
			if (deCheck) deObject.show();
			else deObject.hide();
		}
	} 
} 

function doeRadio(deKaartlaag,deLegendaGroepsnaam) {
	doeToelichting('hidden');  
 	var deLegendaGroep = document.getElementsByName(deLegendaGroepsnaam);
	for (var i=0; i < deLegendaGroep.length; i++) {
		var deChecklaag = deLegendaGroep[i].id;
		if (deChecklaag == deKaartlaag) {
			for (var j in deObjectenArray[deChecklaag]) deObjectenArray[deChecklaag][j].show();
		}
		else for (var j in deObjectenArray[deChecklaag]) deObjectenArray[deChecklaag][j].hide();
 	}
	if (deLegendaGroepsnaam == "AMSTELIII") doeLegenda2(deKaartlaag);
} 



function doeHoogte(){ 
	var screenH = 0; 
	if (document.layers || (document.getElementById && !document.all)){screenH = window.innerHeight - 112;} 
	else if (document.all) {
		if (parseInt(navigator.appVersion.indexOf("6") == -1)){screenH = document.body.clientHeight - 112;} 
		else {screenH = document.documentElement.clientHeight - 112;}
	}
	return screenH; 
}


function doeKaartHoogte(){
	document.getElementById("kaart").style.height = doeHoogte() + "px";
	document.getElementById("vlak_legenda").style.height = (doeHoogte() +112)+ "px";  
}


function doeToelichting(aanuit){
	deKaart.getInfoWindow().hide();
	document.getElementById("toelichting_container").style.visibility=aanuit;
}

function doeStadsdeelXY(){
	var deStadsdeelID = document.getElementById('stadsdeel_opties').value;
	if (deStadsdeelID =="0") deKaart.setCenter(new GLatLng(52.360925, 4.900589), 12);
	if (deStadsdeelID =="H") deKaart.setCenter(new GLatLng(52.380629, 4.851236), 15);
	if (deStadsdeelID =="A") deKaart.setCenter(new GLatLng(52.373189, 4.901190), 14);
	if (deStadsdeelID =="J") deKaart.setCenter(new GLatLng(52.366455, 4.856257), 15);
	if (deStadsdeelID =="P") deKaart.setCenter(new GLatLng(52.375232, 4.799309), 14);
	if (deStadsdeelID =="N") deKaart.setCenter(new GLatLng(52.398963, 4.933720), 13);
	if (deStadsdeelID =="U") deKaart.setCenter(new GLatLng(52.348029, 4.932861), 14);
	if (deStadsdeelID =="Q") deKaart.setCenter(new GLatLng(52.358514, 4.788666), 14);
	if (deStadsdeelID =="D") deKaart.setCenter(new GLatLng(52.364830, 4.869390), 15);
	if (deStadsdeelID =="V") deKaart.setCenter(new GLatLng(52.349025, 4.877157), 14);
	if (deStadsdeelID =="R") deKaart.setCenter(new GLatLng(52.351542, 4.828320), 14);
	if (deStadsdeelID =="C") deKaart.setCenter(new GLatLng(52.385711, 4.876642), 14);
	if (deStadsdeelID =="B") deKaart.setCenter(new GLatLng(52.406399, 4.806690), 13);
	if (deStadsdeelID =="G") deKaart.setCenter(new GLatLng(52.362393, 4.976978), 13);
	if (deStadsdeelID =="W") deKaart.setCenter(new GLatLng(52.335392, 4.874840), 14);
	if (deStadsdeelID =="T") deKaart.setCenter(new GLatLng(52.304910, 4.975262), 13);
	window.setTimeout(function() {document.getElementById('stadsdeel_opties').value="_";},5000);  
}



function doeAdresXY() {
	var deAdres = document.getElementById('adres_input').value;
	var deAdresAmsterdam = deAdres+" Amsterdam";
	deGeocoder.getLatLng(deAdresAmsterdam, function(point1) {
		if (!point1) {
			deGeocoder.getLatLng(deAdres, function(point2) {
				if (!point2) {
					alert(deAdres + " niet gevonden.");
					document.getElementById('adres_input').value="Typ hier een adres";           
				}
				else {
    				deKaart.setCenter(point2, 18);
    				var deMarker = new GMarker(point2);
    				deKaart.addOverlay(deMarker);
    				window.setTimeout(function() {
						deKaart.removeOverlay(deMarker);
						document.getElementById('adres_input').value="Typ hier een adres";
					},5000);
				}
			});
		}
		else {
			deKaart.setCenter(point1, 18);
	    	var deMarker = new GMarker(point1);
			deKaart.addOverlay(deMarker);
			window.setTimeout(function() {
				deKaart.removeOverlay(deMarker);
				document.getElementById('adres_input').value="Typ hier een adres";
			},5000);
		};
	});
}


function doeLeegAdres(){
	document.getElementById('adres_input').value="";
}



function doeEmail(){
	for (i=0; i<=(document.links.length-1); i++){
		if (document.links[i].href.indexOf("[at]")!=-1) {
			document.links[i].href=document.links[i].href.split("[at]")[0]+"@"+document.links[i].href.split("[at]")[1];
		}
	}
}




function doeSelectieVak() {
	if (deSelectie) {
		var deSelectieString = "<select id='selectie_opties' onchange='doeSVG(this.value)' name='selectie'>";
		for (var i=0; i < deSelectieOpties.length; i++) {         
			if (i == deSelected) deSelectieString += "<option value='"+deSelectieOpties[i][0]+"' selected='selected'>"+deSelectieOpties[i][1]+"</option>";   
			else deSelectieString += "<option value='"+deSelectieOpties[i][0]+"'>"+deSelectieOpties[i][1]+"</option>";
		} 
		deSelectieString += "</select>";
		document.getElementById('balk_grijs').innerHTML=deSelectieString;
	}
}




