
//<![CDATA[
    function load(dataed) {
      if (GBrowserIsCompatible()) {

// A function to create the marker and set up the event window
// Dont try to unroll this function. It has to be here for the function closure
// Each instance of the function preserves the contends of a different instance
// of the "marker" and "html" variables which will be needed later when the event triggers.    
        function createMarker(point, url, icon, heuvelnaam) {
           var marker = new GMarker(point,{icon:icon, title:heuvelnaam});
           GEvent.addListener(marker, "click", function() { location.href = url });
           
           return marker;
        }

// Maakt icon voor heuvelnummer
           var rangicon = new GIcon();
           rangicon.iconSize = new GSize(20,20);
// Het eerste argument verschuift naar het westen (positief)
// Het tweede argument verschuift naar het noorden (positief)
           rangicon.iconAnchor = new GPoint(10, 6);
           rangicon.infoWindowAnchor = new GPoint(16,0);

// Maakt groene driehoek voor markering begin helling
           var groene3hoek = new GIcon();
           groene3hoek.image = "http://maps.google.com/mapfiles/kml/pal4/icon60.png"; 
           groene3hoek.iconSize = new GSize(20,20);
           groene3hoek.iconAnchor = new GPoint(10, 10);
           groene3hoek.infoWindowAnchor = new GPoint(16,0);

// Maakt rode driehoek voor markering einde helling
           var rode3hoek = new GIcon();
           rode3hoek.image = "http://maps.google.com/mapfiles/kml/pal4/icon52.png"; 
           rode3hoek.iconSize = new GSize(20,20);
           rode3hoek.iconAnchor = new GPoint(10, 10);
           rode3hoek.infoWindowAnchor = new GPoint(16,0);

// Maakt icon met bed voor B&B en hotel
           var bedicon = new GIcon();
           bedicon.image = "http://maps.google.com/mapfiles/kml/pal2/icon20.png"; 
           bedicon.iconSize = new GSize(24,24);
           bedicon.iconAnchor = new GPoint(12, 12);
           bedicon.infoWindowAnchor = new GPoint(16,0);

// Maakt icon met mes en vork voor restaurant
           var resticon = new GIcon();
           resticon.image = "http://maps.google.com/mapfiles/kml/pal2/icon32.png"; 
           resticon.iconSize = new GSize(24,24);
           resticon.iconAnchor = new GPoint(12, 12);
           resticon.infoWindowAnchor = new GPoint(16,0);

// Maakt icon met kopje voor cafe of terras
           var koffieicon = new GIcon();
           koffieicon.image = "http://maps.google.com/mapfiles/kml/pal2/icon54.png"; 
           koffieicon.iconSize = new GSize(24,24);
           koffieicon.iconAnchor = new GPoint(12, 12);
           koffieicon.infoWindowAnchor = new GPoint(16,0);

// === Define the function thats going to process the text file ===
        process_it = function(doc) {
// === split the document into lines ===

           var latcen, loncen, scale;

           var latpl = new Array();
           var lonpl = new Array();
           var index = new Array();
           var voet = new Array();
           var top = new Array();
           var klimmen = new Array();
           var helmax = new Array();
           var helgem = new Array();
           var lengte = new Array();

           var np, linebeg, lineend, ipmar, rangint, heuvelnaam, regionaam, vanuit, straten;
           var latrecl, lonrecl, urlrecl, tekstrecl, soortrecl, nrrecl;

           lines = doc.split("\n");

// === split each line into parts separated by "|" and use the contents ===
           parts = lines[0].split("|");
           regionaam = parts[0];

// === split each line into parts separated by "|" and use the contents ===
           parts = lines[1].split("|");
           latcen = parseFloat(parts[0]);
           loncen = parseFloat(parts[1]);
           scale = parseInt(parts[2]);
           nrhills = parseInt(parts[3]);
           nrrecl = parseInt(parts[4]);

           var map = new GMap2(document.getElementById("map"));
// Maakt het mogelijk in- en uit te zoemen
           map.addControl(new GSmallMapControl());
// Maakt het mogelijk om te kiezen tussen kaart en satellietbeeld
           map.addControl(new GMapTypeControl());
// Voegt schaal toe
           map.addControl(new GScaleControl());
// Voegt klein kaartje in rechter benedenhoek toe
           map.addControl(new GOverviewMapControl());

// Roept kaart op met breedtegraad, lengtegraad en schaal
           map.setCenter(new GLatLng(latcen,loncen), scale);

           for (var ihill=0; ihill<nrhills; ihill++) {
              parts = lines[2+ihill].split("|");
              index[ihill] = parseFloat(parts[0]);
              voet[ihill] = parseInt(parts[1]);
              top[ihill] = parseInt(parts[2]);
              klimmen[ihill] = parseInt(parts[3]);
              helmax[ihill] = parseFloat(parts[4]);
              helgem[ihill] = parseFloat(parts[5]);
              lengte[ihill] = parseInt(parts[6]);
           }

           var bline=2+nrhills;
           for (var ihill=0; ihill<nrhills; ihill++) {
           
              parts = lines[bline+1].split("|");
              heuvelnaam = parts[0];

              parts = lines[bline+2].split("|");
              vanuit = parts[0];

              parts = lines[bline+3].split("|");
              straten = parts[0];

              parts = lines[bline+4].split("|");
              rangint = parseInt(parts[0]);

              parts = lines[bline+5].split("|");
              np = parseInt(parts[0]);
              linebeg = bline+6;
              lineend = linebeg+np-1;

              var j=-1;
              for (var i=linebeg; i<=lineend; i++) {
                 parts = lines[i].split("\t");
                 j=j+1;
                 latpl[j] = parseFloat(parts[0]);
                 lonpl[j] = parseFloat(parts[1]);
              }

              parts = lines[lineend+1].split("|");
              ipmar = parseInt(parts[0]);
              bline = lineend+2;

// Plaatst een lijn in de kaart
              var pts = [];
              for (var i = 0; i < np; i++) {
                 pts[i] = new GLatLng(latpl[i],lonpl[i]);
              }

// % is modulo              
              var ikleur = ihill % 10;
              switch(ikleur) {
              case 0: colour="#FF0000"; break; //rood
              case 1: colour="#008000"; break; //groen
              case 2: colour="#000000"; break; //zwart
              case 3: colour="#800000"; break; //maroon-bruin
              case 4: colour="#800080"; break; //paars-purple
              case 5: colour="#FF00FF"; break; //fuchsia-violet
              case 6: colour="#000080"; break; //navy-donkerblauw
              case 7: colour="#0000FF"; break; //blauw
              case 8: colour="#008080"; break; //teal-turqoise
              case 9: colour="#00FFFF"; break; //aqua-lichblauw
              default: colour="#008000"; break;
              }

              map.addOverlay(new GPolyline(pts,colour,5));

              var htmlinfowin =
                 '<h3><strong><font color="blue">' + heuvelnaam +'</font></strong></h3><p>'
                 + '<strong>Zwaarte: <font color="red">' + index[ihill]
                 + '&nbsp;kip</font></strong> &nbsp;&nbsp;&nbsp;Rang: ' + rangint + ' (' + regionaam  + ')<br>'
                 + 'Voet: ' + voet[ihill] + '&nbsp;m &nbsp;&nbsp;&nbsp;Top: ' + top[ihill]
                 + '&nbsp;m <strong>&nbsp;&nbsp;&nbsp;Klimmen: <font color="red">' + klimmen[ihill] + '&nbsp;m</font></strong><br>'
                 + '<strong>Steilste 300 m: <font color="red">' + helmax[ihill]
                 + '%</font></strong> &nbsp;&nbsp;&nbsp;Gemiddelde helling: ' + helgem[ihill] + '%<br>'
                 + 'Lengte: ' + lengte[ihill] + '&nbsp;m<br>vanuit: ' + vanuit + ' &nbsp;&nbsp;&nbsp;Straten: '
                 + straten
                 +'<br></p>'
              var phpPage = regionaam + '/' + heuvelnaam + '.php';

// Maakt marker
              var rangnr = String(rangint+7);
              if (regionaam === 'Tilff-Bastogne-Tilff') var rangnr = String(ihill+8);
              if (rangint > 10) rangnr="49";
              rangicon.image = "http://maps.google.com/mapfiles/kml/pal3/icon" + rangnr + ".png"; 

// Plaatst groene driehoek aan begin helling
              var point = new GLatLng(latpl[0],lonpl[0]);
              var marker = createMarker(point,phpPage,groene3hoek,heuvelnaam);
              map.addOverlay(marker);

// Plaatst rode driehoek aan einde helling
              var point = new GLatLng(latpl[np-1],lonpl[np-1]);
              var marker = createMarker(point,phpPage,rode3hoek,heuvelnaam);
              map.addOverlay(marker);

// Plaatst rangnummer in kaart en opent informatiewindow
              var point = new GLatLng(latpl[ipmar-1],lonpl[ipmar-1]);
              var marker = createMarker(point,phpPage,rangicon,heuvelnaam);
              map.addOverlay(marker);

// Einde van de loop over de heuvels
           }

           if (nrrecl > 0) {
              for (var irecl=0; irecl<nrrecl; irecl++) {

                 parts = lines[bline+1].split("|");
                 latrecl   = parseFloat(parts[0]);
                 lonrecl   = parseFloat(parts[1]);

                 parts = lines[bline+2].split("|");
                 soortrecl = parseInt(parts[0]);

                 switch(soortrecl) {
                 case 0:  reclicon=bedicon; break;
                 case 1:  reclicon=resticon; break;
                 case 2:  reclicon=koffieicon; break;
                 default: reclicon=koffieicon; break;
                 }

                 parts = lines[bline+3].split("|");
                 urlrecl = parts[0];

                 parts = lines[bline+4].split("|");
                 tekstrecl = parts[0];
       
                 var point = new GLatLng(latrecl,lonrecl);
                 var marker = createMarker(point,urlrecl,reclicon,tekstrecl);
                 map.addOverlay(marker);
                 
                 bline = bline + 5;
              }
           }

        }
        
        GDownloadUrl(dataed, process_it);


      }
    }


