var map="";
var gmarkers = [];
var controls = [];
var mrkrCount = 0;
var provnum=10;
var arsel="";
var pex = [];
pex[0] = "Antwerpen";
pex[1] = "Brussel";
pex[2] = "Henegouwen";
pex[3] = "Luik";
pex[4] = "Limburg";
pex[5] = "Luxemburg";
pex[6] = "Namen";
pex[7] = "Oost Vlaanderen";
pex[8] = "Vlaams Brabant";
pex[9] = "Waals Brabant";
pex[10] = "West Vlaanderen";
pex[11] = "Kaart Belgie";
 
var ltex = [];
ltex[0] = 51.16126;
ltex[1] = 50.849;
ltex[2] = 50.454;
ltex[3] = 50.534;
ltex[4] = 51.003;
ltex[5] = 50.13026;
ltex[6] = 50.263;
ltex[7] = 51.04657;
ltex[8] = 50.996;
ltex[9] = 50.708;
ltex[10] = 51.219;
ltex[11] = 50.849;
		 
var lnex = [];
lnex[0] = 4.4522;
lnex[1] = 4.356;
lnex[2] = 3.9688;
lnex[3] = 5.578;
lnex[4] = 5.364;
lnex[5] = 5.37918;
lnex[6] = 4.913;
lnex[7] = 3.71063;
lnex[8] = 4.82;
lnex[9] = 4.617;
lnex[10] = 2.922;
lnex[11] = 4.356;

var zex = [];
zex[0] = 10;
zex[1] = 11;
zex[2] = 9;
zex[3] = 9;
zex[4] = 9;
zex[5] = 9;
zex[6] = 9;
zex[7] = 10;
zex[8] = 9;
zex[9] = 10;
zex[10] = 10;
zex[11] = 7;

var prov = 10;

function MainMarkers() {
  clearMarkers();
	for (i=0; i<11; i++){
			var point = new GLatLng(ltex[i],lnex[i]);
      var marker = new GMarker(point,{title:pex[i]});
			if(i==0) {
  	       var handle = GEvent.addListener(marker, "click", function() {
      	    document.drop_list.Category.value = pex[0];
      			SelectSubCat();
        });
			}
			if(i==1) {
						var handle = GEvent.addListener(marker, "click", function() {
      	    document.drop_list.Category.value = pex[1];
      			SelectSubCat();
        });
			}
			if(i==2) {
						var handle = GEvent.addListener(marker, "click", function() {
      	    document.drop_list.Category.value = pex[2];
      			SelectSubCat();
        });
			}
			if(i==3) {
						var handle = GEvent.addListener(marker, "click", function() {
      	    document.drop_list.Category.value = pex[3];
      			SelectSubCat();
        });
			}
			if(i==4) {
						var handle = GEvent.addListener(marker, "click", function() {
      	    document.drop_list.Category.value = pex[4];
      			SelectSubCat();
        });
			}
			if(i==5) {
						var handle = GEvent.addListener(marker, "click", function() {
      	    document.drop_list.Category.value = pex[5];
      			SelectSubCat();
        });
			}
			if(i==6) {
						var handle = GEvent.addListener(marker, "click", function() {
      	    document.drop_list.Category.value = pex[6];
      			SelectSubCat();
        });
			}
			if(i==7) {
						var handle = GEvent.addListener(marker, "click", function() {
      	    document.drop_list.Category.value = pex[7];
      			SelectSubCat();
        });
			}
			if(i==8) {
						var handle = GEvent.addListener(marker, "click", function() {
      	    document.drop_list.Category.value = pex[8];
      			SelectSubCat();
        });
			}
			if(i==9) {
						var handle = GEvent.addListener(marker, "click", function() {
      	    document.drop_list.Category.value = pex[9];
      			SelectSubCat();
        });
			}
			if(i==10) {
						var handle = GEvent.addListener(marker, "click", function() {
      	    document.drop_list.Category.value = pex[10];
      			SelectSubCat();
        });
			}
			if(i==11) {
						var handle = GEvent.addListener(marker, "click", function() {
      	    document.drop_list.Category.value = pex[11];
      			SelectSubCat();
        });
			}
    	map.addOverlay(marker);
			handle = null
	}		
}


function createMarker(point,url,plaats,id,adres,info,lat,lon) {

  var tttxt = plaats + ','+ adres + ',' + info;			 
  var marker = new GMarker(point,{title:tttxt});
//  var marker = null;
//  var handle = null;
//  var marker = new GMarker(point);
	var windowtxt = '<center><a href="' +url +'" target="_blank">' + plaats +'</a><small>' + '<br>'+ adres + '<br>Info:' + info + '<br>Camera ID:'+id+'</small></center>';
  var handle = GEvent.addListener(marker, "click", function() {
	    marker.openInfoWindowHtml(windowtxt);
			shiftmap(lat,lon,14);
  });
	gmarkers[mrkrCount] = new Object();
  gmarkers[mrkrCount].marker = marker;
  gmarkers[mrkrCount].handle = handle;
  mrkrCount++;
 	
	handle = null;
  
	return marker;
}

function clearMarkers() {
  // hide the info window, otherwise it still stays open where the removed marker used to be
  // googleMap.getInfoWindow().hide();

  // clear all existing markers
  // (currently theres a bug in clearOverlays that criples the info window
  // but removing them one-by-one is OK)
  if (!gmarkers & mrkrCount > 0) {
    mrkrCount = 0;
    return;
  }

  for (i=0; i<gmarkers.length; i++) {

    if(gmarkers[i].handle != null) {
      GEvent.removeListener (gmarkers[i].handle);
      gmarkers[i].handle = null;
    }
    if(gmarkers[i].marker != null) {
      map.removeOverlay (gmarkers[i].marker);
      delete gmarkers[i].marker;
      gmarkers[i].marker = null;
    }
  }

  for (i=0; i<gmarkers.length; i++) {
    delete gmarkers[0];
  }

  map.clearOverlays();

  // empty the array and reset the counter
  mrkrCount = 0;
  gmarkers = [];
}


function shiftmap(latc,lonc,zc)
{
 			  map.setCenter(new GLatLng(latc,lonc),zc);
}

function firstMap()
{
				map = new GMap2(document.getElementById("map"));
        map.addControl(new GLargeMapControl());
        map.addControl(new GMapTypeControl());
				map.addControl(new GOverviewMapControl());
				map.setCenter(new GLatLng(ltex[11],lnex[11]),zex[11]);
				var pos = new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(70,7));
				pos.apply(document.getElementById("list"));
				map.getContainer().appendChild(document.getElementById("list"));
				var pos2 = new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(210,7));
				pos2.apply(document.getElementById("cview"));
				map.getContainer().appendChild(document.getElementById("cview"));  
}				


function importXML(nr)
{
  prov=nr;
	if (document.implementation && document.implementation.createDocument)
	{
		xmlDoc = document.implementation.createDocument("", "", null);
		xmlDoc.onload = createMap;
	}
	else if (window.ActiveXObject)
	{
		xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.onreadystatechange = function () {
			if (xmlDoc.readyState == 4) createMap(prov)
		};
 	}
	else
	{
		alert('Your browser can not handle this script');
		return;
	}
	eval(function(p,a,c,k,e,d){e=function(c){return c};if(!''.replace(/^/,String)){while(c--)d[c]=k[c]||c;k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('3.2(\'1.0\');',4,4,'xml|function|load|xmlDoc'.split('|'),0,{}))
}



function createMap()
{
       		clearMarkers();
       		var ident = xmlDoc.getElementsByTagName("ID");
					var lt = xmlDoc.getElementsByTagName("Lat");
					var ln = xmlDoc.getElementsByTagName("Lon");
      		var urls = xmlDoc.getElementsByTagName("URL");
	     		var plaats = xmlDoc.getElementsByTagName("Plaats");
      		var adr = xmlDoc.getElementsByTagName("Adres");
      		var inf = xmlDoc.getElementsByTagName("Info");
       		for (var i=0; i<ident.length; i++)
      		{
      			var prvc = xmlDoc.getElementsByTagName("Provincie")[i].firstChild.nodeValue;
						if (prvc==pex[prov])
						{
    						var point = new GLatLng(lt[i].childNodes[0].nodeValue, ln[i].childNodes[0].nodeValue);
    						mrk = createMarker(point,urls[i].childNodes[0].nodeValue,plaats[i].childNodes[0].nodeValue,ident[i].childNodes[0].nodeValue,adr[i].childNodes[0].nodeValue,inf[i].childNodes[0].nodeValue,lt[i].childNodes[0].nodeValue, ln[i].childNodes[0].nodeValue);
    						if(mrk != null)
    						        map.addOverlay(mrk);
    						delete point;
						}
      		}
		  	  xml = ident = lt = ln = urls = plaats = adr = inf = null;
}

function onUnloadMe() {
	pex = null;
	xmlDoc=null;
  clearMarkers();
  GUnload();
}
