/*
  Javascript-Bestand voor Wegwerkzaamhedensysteem
  Copyright 2008 Goudappel Coffeng, Deventer, Netherlands (Bsd)
*/

// --------------------------------
// globale variabelen
// --------------------------------


var map;
var achtergrondkaart;
var vectors,vectors_drag,markers,editLayer;
var markerpopup = new Object();
var infoLayer;
var projGoogle;
var projWGS84;
var projRD;
var style_type=new Array();
var ctrl_polygon;

var info_modus = 0;
var onderhoogte=0;
var Objecten = new Array();
var ID = "";
var redstyle, greenstyle, bluestyle, whitestyle;
var toolListeners;
var geheugen_links;

var extrarows = 0; if (OpenLayers.Util.getBrowserName()=="msie") extrarows = 1;
var extracols = 0; if (OpenLayers.Util.getBrowserName()=="msie") extracols = 6;
var markerpopup = new Object();

var undoArray = new Array();
var knopenArray = new Array();

var gemeenteKolommen = 0;
var gemeentens = new Array("Aalten","Apeldoorn","Arnhem","Barneveld","Berkelland","Beuningen","Bronckhorst","Brummen","Buren","Culemborg","Doesburg","Doetinchem","Druten","Duiven","Ede","Elburg","Epe","Ermelo","Geldermalsen","Groesbeek","Harderwijk","Hattem","Heerde","Heumen","Lingewaal","Lingewaard","Lochem","Maasdriel","Millingen aan de Rijn","Montferland", "Mook en Middelaar","Neder-Betuwe","Neerijnen","Nijkerk","Nijmegen","Nunspeet","Oldebroek","Oost Gelre","Oude Ijsselstreek","Overbetuwe", "Provincie Gelderland", "Provincie Utrecht","Putten","Renkum", "Renswoude","Rheden", "Rhenen","Rijnwaarden","Rozendaal","Scherpenzeel","Tiel","Ubbergen","Veenendaal","Voorst","Wageningen","West Maas en Waal","Westervoort","Wijchen","Winterswijk","Zaltbommel","Zevenaar","Zutphen");

// ---------------------
function init()
// ---------------------
{

  vectors = new OpenLayers.Layer.Vector("Routes");
  vectors_drag= new OpenLayers.Layer.Vector("Routes_drag",{projection:new OpenLayers.Projection("EPSG:900913") });
  markers = new OpenLayers.Layer.Markers( "Markers" );
11-3-2010
  projGoogle = new OpenLayers.Projection("EPSG:900913"); // 4326
  projWGS84 = new OpenLayers.Projection("EPSG:4326"); //
  projRD = new OpenLayers.Projection("EPSG:28992"); //
    redstyle   = {strokeColor: "#ff0000",strokeOpacity: 0.8,strokeWidth: 6,fillColor: "#800000", pointRadius: 8 };
    greenstyle = {strokeColor: "#00ff00",strokeOpacity: 0.8,strokeWidth: 6,fillColor: "#008000", pointRadius: 8 };
    bluestyle  = {strokeColor: "#0000ff",strokeOpacity: 0.8,strokeWidth: 6,fillColor: "#000080", pointRadius: 8 };
    whitestyle = {strokeColor: "#ffffff",strokeOpacity: 0.8,strokeWidth: 6,fillColor: "#ffffff", pointRadius: 8 };
  for (var i=1;i<=7;i++)
  { style_type[i] =
    {
      externalGraphic: "/images/icons/sym"+i+".png",
      graphicOpacity: 1,
      graphicYOffset: -33,
      graphicXOffset: -33,
      graphicWidth: 34,
      graphicHeight: 34
    }
  }
  style_type[7].externalGraphic = "/images/icons/meerdere.png";

  OpenLayers.IMAGE_RELOAD_ATTEMPTS = 3;
  OpenLayers.Util.onImageLoadErrorColor = "transparent";

  var options = {
      projection: new OpenLayers.Projection("EPSG:900913"),
      displayProjection: new OpenLayers.Projection("EPSG:4326"),
      units: "m",
      numZoomLevels: 18,
      maxResolution: 156543.0339,
      maxExtent: new OpenLayers.Bounds(-20037508, -20037508,20037508, 20037508.34),
      eventListeners: {"changebaselayer": resizeMap,"moveend": eventZoomend}
  };

  map = new OpenLayers.Map('map', options);

  infoLayer = new OpenLayers.Control.InfoLayer({
      //content:'<img src="buttons/legenda.jpg"><p style=\"font-size:11px\"><a class = \"tekst\" href="javascript:werkenAlsTekst()">Alle werken als tekst</a></p>',
      //content:'<img src="buttons/legenda.jpg"><p style=\"font-size:11px\"><a href="javascript:hoofdmenu()">Gratis e-mailservice &<br>Inloggen</a></p><p style=\"font-size:14px; font-weight:bold\"><a style=\"color:#c12020\" href="javascript:werkenAlsTekst()">Alle werken als tekst</a></p>',
      content:'<img src="/images/buttons/legenda.jpg"><p style=\"font-size:13px; font-weight:bold\"><a style=\"color:#c12020\" href="javascript:werkenAlsTekst()">Alle werken als tekst</a></p>',
      width: '190px',
      heigth: '300px',
      top: '229px',
      activeColor: "#b0b0b0",
      opacity:0,
      ignoreClickEvent: false
  });
  
  map.addControl(infoLayer);
  
  if (!instellingen.TilesMaxZoom) instellingen.TilesMaxZoom = 16;
  
  achtergrondkaart = new OpenLayers.Layer.TMS(
    "Achtergrondkaart",
      "",
    {
        type: 'png', getURL: osm_getTileURLachtergrondkaart,
        displayOutsideMaxExtent: true,
        isBaseLayer: true,
        attribution: ''
    }
  );
  

  if (instellingen.kaarttype==1)
    map.addLayers([achtergrondkaart, markers]);
  else
    map.addLayers([achtergrondkaart, vectors, vectors_drag, markers]);


  
  dply = new OpenLayers.Control.DrawFeature(vectors,OpenLayers.Handler.Polygon, {handlerOptions: {'freehand': false},'displayClass': 'polygoon'}); 
  but_route_kleur = new OpenLayers.Control({type: OpenLayers.Control.TYPE_TOOL,displayClass: "routekleur"  });
  but_route_blauw = new OpenLayers.Control({type: OpenLayers.Control.TYPE_TOOL,displayClass: "routeblauw"   });
  but_route_kleur.events.register("activate", but_route_kleur, function() {emptyKnopen();});
  but_route_blauw.events.register("activate", but_route_blauw, function() {emptyKnopen();});
      
  
  ZoomToBegin();
  map.zoomToMaxExtent = ZoomToBegin;
  map.isValidZoomLevel = function(zoomLevel) {
       return ( (zoomLevel != null) &&
                (zoomLevel >= 8) &&
                (zoomLevel <= 17) );
    };


  var click = new OpenLayers.Control.Click_bsd();
  click.onClick = function(evt) { Kaartclick(evt) };
  map.addControl(click);
  click.activate();

  geheugen_links = document.getElementById("hoofdnav").innerHTML;
  
  if (instellingen.kaarttype==0)
  {
    GetObjecten();
    resizeMap();
  }   

  map.addMarker = function(x,y,tekst,hyperlink,bitmap,sizex,sizey,offx,offy)
    {
    var point = new OpenLayers.LonLat(x,y);
    if (y<500) point.transform(projWGS84,projGoogle);
    
    var size = new OpenLayers.Size(sizex,sizey);
      var offset = new OpenLayers.Pixel(offx,offy);
      var icon = new OpenLayers.Icon(bitmap,size,offset);
      var marker = new OpenLayers.Marker(new OpenLayers.LonLat(point.lon,point.lat),icon);
      marker.tekst = tekst;
      marker.hyperlink = hyperlink;
    marker.events.register("mouseout", marker, function() { document.getElementById("hoofdnav").innerHTML =geheugen_links});
    marker.events.register("mousedown", marker, function() {document.location = this.hyperlink;});
    marker.events.register("mouseover", marker, function() {    if (this.tekst) { document.getElementById("hoofdnav").innerHTML = this.tekst;  }});   
        markers.addMarker(marker);
    }
  return map;
}


function toonKaart(objectnummer) {
    kaartmodus = 'map';
    resizeMap();
    $('html').scrollTop(0);
    $('#gcTekstlaag').css({'position':'absolute'});
    $('#mapRuimte').css({'display':'block'});
    if (objectnummer>=0) {
        WegObjectenDetail(objectnummer);
    }
}

function toonHoofdTekst(tekst) {
    sluiten();
    var te = [];
    
   // te.push("<div style='float:right;' ><a class='tekst' href='javascript:toonKaart(-1);'><img border=1 src='/images/buttons/kaart.png'><br>");
   // te.push("Terug naar de kaart</a></div>");
    te.push(tekst);
    document.getElementById("gcTekstlaag").innerHTML = te.join("");
    kaartmodus = 'gcTekstlaag';
    resizeMap()
}

function hoofdmenu() {
    var te = [];
    //te.push("<form name=\"formular\">");
    te.push("<h1>Opties voor E-mail service</h1>");
    te.push("<p><br></p>");
    te.push("<a class='kop' href='javascript:menuNieuwEmailAbo();'><h2>Abonneren op de gratis e-mailnieuwsbrief</h2></a>");
    te.push("<p>Ja, ik wil op de hoogte blijven van de wegwerkzaamheden en mij abonneren op de gratis e-mailnieuwsbrief.</p>");
    te.push("<p><br></p>");
    te.push("<a class='kop' href='javascript:menuWijzigEmailAbo();'><h2>Ik ben al abonnee, en wil mijn instellingen wijzigen</h2></a>");
    te.push("<p>Bent u al abonnee en wilt u uw instellingen wijzigen, bijvoorbeeld van welke gemeente's u meldingen wilt ontvangen, dan kan dat hier. </p>");
    te.push("<p><br></p>");
    te.push("<a class='kop' href='javascript:menuAfmeldenEmailAbo();'><h2>Ik ben abonnee, en wil me afmelden</h2></a>");    
    te.push("<p>Bent u abonnee en wilt u zich helemaal afmelden voor de e-mailservice, dan kan dat hier. Wilt u zich alleen afmelden voor een bepaalde gemeente, ga dan naar wijzig instellingen.</p>");
    te.push("<p><br></p>");
    //te.push("<a href='javascript:menuTellaFriend();'><h2>Tell-a-friend</h2></a>");    
    //te.push("<p>Wilt u iemand op de hoogte brengen van deze website en de bijbehorende e-mailnieuwsbrief? SLIM zal dan eenmalig een email sturen naar deze persoon.</p>");
    //te.push("<p><br></p>");
    //te.push("<a href='javascript:menuTellaFriend();'><h2>Inloggen wegbeheerders</h2></a>");
    //te.push("</form>");
    toonHoofdTekst(te.join(""));
}

//<div style=\"font-size:16px\">

function menuNieuwEmailAbo() {
    var te = [];
    te.push("<h1>Ja, ik wil op de hoogte blijven van de wegwerkzaamheden<br>en mij abonneren op de gratis e-mailnieuwsbrief.</h1>");
    te.push("<input type=\"hidden\" name=\"gem\" id=\"g\" value=\"-1\">");
    te.push("<input type=\"hidden\" name=\"gem\" id=\"ID\" value=\"\">");
    te.push("<h2>Email</h2>");
    te.push("<p><input onchange=\"if (window.velden_change_event) velden_change_event();\" name=\"gem\" id=\"Email\" size=\"39\" value=\"\" class='formInput'></p>");
    te.push("<h2>Gebruikersnaam</h2>");
    te.push("<p><input name=\"gem\" id=\"Naam\" size=\"39\" value=\"\" class='formInput'></p>");
    te.push("<p>Met deze gebruikersnaam kunt u in het vervolg uw gegevens wijzigen op de website</p>");
    te.push("<h2>Wachtwoord</h2>");
    te.push("<p><input type=\"Password\" name=\"gem\" id=\"Wachtwoord\" size=\"39\" value='' class='formInput'></p>");
    te.push("<h2>E-mail-notificatie:<br>Stuur wekelijks een nieuwsbrief met wegwerkzaamheden voor de<br>volgende gebieden:</h2>");
    te.push("<table>");
    te.push("<tr><td><label for='gem_Hwn'><input id='gem_Hwn' name='gem' type='checkbox' /> doorgaande wegen</label></li></td></tr>");
    


    for (x in gemeentens)
    {
        if (gemeenteKolommen == 0) {
            te.push('</td></tr><tr><td>');
            gemeenteKolommen = gemeenteKolommen + 1;
        }
        else {
            te.push('</td><td>');
            if (gemeenteKolommen == 3) {
                gemeenteKolommen = 0;
            }
            else {
                gemeenteKolommen = gemeenteKolommen + 1;
            }
        }

        te.push("<label for='gem_"+gemeentens[x]+"'><input id='gem_"+gemeentens[x]+"' name='gem' type='checkbox' /> "+gemeentens[x]+" </label>");
    } 
    

    te.push("<p><br /></p>");
    te.push("</td></tr>");
    te.push("<tr><td colspan=5><input type=\"checkbox\" name=\"gem\" id=\"email_liveWijzingen\" >");
    te.push(" Stuur meteen een e-mail bij wijziging van een object</td></tr>");
    te.push("<tr><td colspan=5><input type=\"checkbox\" name=\"gem\" id=\"email_OVhinder\" >");
    te.push(" Alleen wegobjecten met hinder voor het openbaar vervoer</td></tr>");
    te.push("<tr><td colspan=5><input type=\"checkbox\" name=\"gem\" id=\"email_liveCalamiteiten\" >");
    te.push(" Stuur meteen een e-mail bij calamiteiten</td></tr>");
    te.push("</table><p><input type=button onclick=\"GebruikerVersturen();\" class='button' value='Opslaan'></p>");
    //te.push("<br>");
    //te.push("<p><a class='tekst' href='javascript:hoofdmenu();'>Terug naar hoofdmenu</a></p>");
       
    toonHoofdTekst(te.join(""));
}


function menuWijzigEmailAbo() {
    var te = [];
    te.push("<h1>Wijzigen instellingen</h1>");
    te.push("<p><br></p>");
    te.push("<p>Log in om toegang te krijgen tot uw instellingen</p>");
    te.push("<p><br></p>");
    te.push("<h2>Gebruikersnaam</h2>");
    te.push("<p><input name=\"Naam\" id=\"login_naam\" size=\"39\" value=\"\" class='formInput'></p>");
    te.push("<h2>Wachtwoord</h2>");
    te.push("<p><input type=\"Password\" name=\"Wachtwoord\" id=\"login_wachtwoord\" size=\"39\" value='' class='formInput'></p>");
    te.push("<p><input type=button onclick=\"Login();\" class='button' value='Login'></p>");
    te.push("<p><a class='tekst' href='javascript:menuVergeten();'>Wachtwoord vergeten?</a></p>");
    te.push("<div style='height:100px;'></div>");
    //te.push("<br>");

   // te.push("<br>");
   // te.push("<p><a class='tekst' href='javascript:hoofdmenu();'>Terug naar hoofdmenu</a></p>");
    toonHoofdTekst(te.join(""));
}

function menuVergeten()
{
    var te = [];
    te.push("<h1>Opvragen wachtwoord</h1>");
    te.push("<p><br></p>");
    te.push("<p>Voer uw gebruikersnaam of email-adres in:<p>");
    te.push("<p><input type=\"text\" size=\"39\" id=\"geb\" name=\"geb\">");
    te.push("<p><input type=button onclick=\"javascript:handleVergeten();\" class='button' value='Opvragen wachtwoord'></p>");
 te.push("<div style='height:20px;'></div>");
    //te.push("<br>");
    //te.push("<br>");
    //te.push("<p><a class='tekst' href='javascript:hoofdmenu();'>Terug naar hoofdmenu</a></p>");
    toonHoofdTekst(te.join(""));
}


function handleVergeten()
    {
      var g="";
      var txt="";
        if (document.getElementById("geb").value.length > 0) {
        g = document.getElementById("geb").value;
        //txt = "<frame src =\"http://www.wegwerkmeldingen.nl/toegangsturen.php?regio=4&g="+g+"\" width=\"100%\" height=\"100%\"</frame>"; 
        //return window.location = ("http://www.wegwerkmeldingen.nl/toegangsturen.php?regio=4&g="+g+"");
        //document.getElementById("gcTekstlaag").innerHTML = "http://www.wegwerkmeldingen.nl/toegangsturen.php?regio=4&g="+g+"";
        //document.getElementById("gcTekstlaag").innerHTML = txt;       
        //toonHoofdTekst("txt");
      
      new OpenLayers.Ajax.Request("/proxys/Toegangsturen_wrapper.php", {
        method: 'get',
        parameters: {
            g:     g,
            toeval: Math.random()
        },
        onComplete: handleToegangsturen
    });  
      
      }else {
         alert("Geef a.u.b. een gebruikersnaam of emailadres op");
      }
    }

function handleToegangsturen(hReq) {
    if (hReq.readyState == 4) {
        var str = hReq.responseText;
                
        document.getElementById("gcTekstlaag").innerHTML = str; 
  }
}



function Login()
{
    //get by naam/id 
    //var naam = document.loginformular.Naam.value;
    //var password=document.loginformular.Wachtwoord.value;
    var naam = document.getElementById("login_naam").value;
    var password = document.getElementById("login_wachtwoord").value;
    //alert (naam);
    new OpenLayers.Ajax.Request("/proxys/Login_wrapper.php", {
        method: 'get',
        parameters: {
            naam:     naam,
            password: password,
            regio:    instellingen.regio,
            toeval: Math.random()
        },
        onComplete: handleLogin
    });
}
 
function handleLogin(hReq) {
    if (hReq.readyState == 4) {
        var str = hReq.responseText.split("|");
        global_SID = trim(str[0]);
        global_rechten = str[1];
        global_gebruiker = str[2];
        global_contact = str[5];
        //global_contactIntern = str[7];
        
        if (global_rechten==0) {
            alert("Login niet mogelijk; gebruikersnaam of password onbekend of gebruiker geblokkeerd");
            //alert(global_contact);
            return;
        } else if (str[6] == 1) {
            alert("De account waarop u inlogt is aangemaakt voor een andere regio dan "+instellingen.regioNaam+". Het is toegestaan op een andere regio in te loggen om in het kader van samenwerking met buurgemeentes meldingen te raadplegen. U hebt echter op deze regio geen schrijfrechten.");
        }
         EditGebruiker();   
  }
}
    
function EditGebruiker(){
    sluiten();
    new OpenLayers.Ajax.Request("/proxys/geb_edit_wrapper.php", { method: 'get', parameters:
    { 'ID': global_SID,
      'g': "",
      'regio': instellingen.regio,
      'toeval': Math.random()
    },
    onComplete: handleEditGebruiker
  });   
}

function handleEditGebruiker(hReq)
{
    
    if (hReq.readyState == 4)
    {
        var format = new OpenLayers.Format.XML();
        var users = format.read(hReq.responseText);
        var allUsers = users.getElementsByTagName("allUsers");
        var users = allUsers[0].getElementsByTagName("user");
        var muni = allUsers[0].getElementsByTagName("muni");
        
        var txt = "";
        var gebWachtwoord="";
        
        for (s=0;s<users.length;s++){
            
            var nieuw       = OpenLayers.Util.getXmlNodeValue(users[s].getElementsByTagName("Nieuw")[0]);
            var gebID       = OpenLayers.Util.getXmlNodeValue(users[s].getElementsByTagName("GebruikerID")[0]);
            var gebNaam         = decodeURIComponent(OpenLayers.Util.getXmlNodeValue(users[s].getElementsByTagName("Naam")[0]));
            var gebContact      = decodeURIComponent(OpenLayers.Util.getXmlNodeValue(users[s].getElementsByTagName("Contact")[0]));
            var gebContactIntern        = decodeURIComponent(OpenLayers.Util.getXmlNodeValue(users[s].getElementsByTagName("ContactIntern")[0]));
            var gebBeheersgebied    = OpenLayers.Util.getXmlNodeValue(users[s].getElementsByTagName("Beheersgebied")[0]);
            var gebEmail        = decodeURIComponent(OpenLayers.Util.getXmlNodeValue(users[s].getElementsByTagName("Email")[0]));
            var gebWachtwoord   = decodeURIComponent(OpenLayers.Util.getXmlNodeValue(users[s].getElementsByTagName("Wachtwoord")[0]));
            var gebRechten      = OpenLayers.Util.getXmlNodeValue(users[s].getElementsByTagName("rechten")[0]);
//          var gebVolnaam      = OpenLayers.Util.getXmlNodeValue(users[s].getElementsByTagName("Volnaam")[0]);
            var gebemail_Gemeente   = decodeURIComponent(OpenLayers.Util.getXmlNodeValue(users[s].getElementsByTagName("email_Gemeente")[0]));
            var gebemail_liveCalamiteiten = parseInt(OpenLayers.Util.getXmlNodeValue(users[s].getElementsByTagName("email_liveCalamiteiten")[0]));
            var gebemail_liveWijzingen = parseInt(OpenLayers.Util.getXmlNodeValue(users[s].getElementsByTagName("email_liveWijzingen")[0]));
            var gebemail_OVhinder   = parseInt(OpenLayers.Util.getXmlNodeValue(users[s].getElementsByTagName("email_OVhinder")[0]));
                                                  
      var myArray = gebemail_Gemeente.split('|');  
      //alert(myArray);
      
      }
        
    var te = [];
    //te.push("<form name=\"formular\">");
    te.push("<h1>Wijzigen instellingen e-mailnieuwsbrief</h1>");
    te.push("<input type=\"hidden\" name=\"gem\" id=\"g\" value=\""+gebID+"\">");
    te.push("<input type=\"hidden\" name=\"gem\" id=\"ID\" value=\""+global_SID+"\">");
    te.push("<h2>Email</h2>");
    te.push("<p><input onchange=\"if (window.velden_change_event) velden_change_event();\" name=\"gem\" id=\"Email\" size=\"39\" value=\""+maakText(gebEmail)+  "\" class='formInput'></p>");
    te.push("<h2>Gebruikersnaam</h2>");
    te.push("<p><input name=\"gem\" id=\"Naam\" size=\"39\" value=\""+gebNaam+"\" class='formInput'></p>");
    te.push("<p>Met deze gebruikersnaam kunt u in het vervolg uw gegevens wijzigen op de website</p>");
    te.push("<h2>Wachtwoord</h2>");
    te.push("<p><input type=\"Password\" name=\"gem\" id=\"Wachtwoord\" size=\"39\" value='"+gebWachtwoord+"' class='formInput'></p>");
    te.push("<h2>E-mail-notificatie:<br>Stuur wekelijks een nieuwsbrief met wegwerkzaamheden voor de volgende gebieden:</h2>");
    te.push("<table>");
    
       
    //if (gebemail_Gemeente == "Hwn") {
    // te.push("<tr><td><label for='gem_Hwn'><input id='gem_Hwn' name='gem_Hwn' type='checkbox' checked='checked' /> doorgaande wegen</label></li>");
    //}
    
    if( "Hwn" in oc(myArray)){
      te.push("<tr><td><label for='gem_Hwn'><input id='gem_Hwn' name='gem' type='checkbox' checked='checked' /> doorgaande wegen </label></li></td></tr>");
     }else { 
      te.push("<tr><td><label for='gem_Hwn'><input id='gem_Hwn' name='gem' type='checkbox' /> doorgaande wegen </label></li></td></tr>");
    }

    
    for (x in gemeentens)
    {
        if (gemeenteKolommen == 0) {
            te.push('</td></tr><tr><td>');
            gemeenteKolommen = gemeenteKolommen + 1;
        }
        else {
            te.push('</td><td>');
            if (gemeenteKolommen == 3) {
                gemeenteKolommen = 0;
            }
            else {
                gemeenteKolommen = gemeenteKolommen + 1;
            }
        }

        if( gemeentens[x] in oc(myArray)){
            te.push("<label for='gem_"+gemeentens[x]+"'><input id='gem_"+gemeentens[x]+"' name='gem' type='checkbox' checked='checked' /> "+gemeentens[x]+" </label>");
        } 
        else { 
            te.push("<label for='gem_"+gemeentens[x]+"'><input id='gem_"+gemeentens[x]+"' name='gem' type='checkbox' /> "+gemeentens[x]+" </label>");
        }
    } 

    
    te.push("<p><br></p>");
    te.push("</td></tr>");

    if (gebemail_liveWijzingen) 
      te.push("<tr><td colspan=5><input type=\"checkbox\" name=\"gem\" id=\"email_liveWijzingen\" checked='checked'>");
    else
      te.push("<tr><td colspan=5><input type=\"checkbox\" name=\"gem\" id=\"email_liveWijzingen\" >");
    te.push(" Stuur meteen een e-mail bij wijziging van een object</td></tr>");
    
    if (gebemail_OVhinder)
      te.push("<tr><td colspan=5><input type=\"checkbox\" name=\"gem\" id=\"email_OVhinder\" checked='checked' >");
    else 
      te.push("<tr><td colspan=5><input type=\"checkbox\" name=\"gem\" id=\"email_OVhinder\" >");
    te.push(" Alleen wegobjecten met hinder voor het openbaar vervoer</td></tr>");
    
    if (gebemail_liveCalamiteiten) 
      te.push("<tr><td colspan=5><input type=\"checkbox\" name=\"gem\" id=\"email_liveCalamiteiten\" checked='checked'>");
    else 
      te.push("<tr><td colspan=5><input type=\"checkbox\" name=\"gem\" id=\"email_liveCalamiteiten\" >");
    te.push(" Stuur meteen een e-mail bij calamiteiten</td></tr>");
    
    te.push("</table><p><input type=button onclick=\"GebruikerVersturen();\" class='button' value='Opslaan'></p>");
    
    //te.push("</form>");
    te.push("<br>");
    //te.push("<p><input type=button onclick=\"hoofdmenu();\" class='button' value='Terug naar hoofdmenu'></p>");
   // te.push("<p><a class='tekst' href='javascript:hoofdmenu();'>Terug naar hoofdmenu</a></p>");
    toonHoofdTekst(te.join(""));
  }
 }

function oc(a)
{
  var o = {};
  for(var i=0;i<a.length;i++)
  {
    o[a[i]]='';
  }
  return o;
}
    
function menuAfmeldenEmailAbo() {
    var te = [];
    //te.push("<form name=\"formular\">");
    te.push("<h1>Afmelden e-mailservice</h1>");
    te.push("<p><br></p>");
    te.push("<p>Als u zich wilt afmelden voor de e-mailservice dan kunt u hieronder uw <b>gebruikersnaam</b> <br>invoeren. U krijgt dan een e-mail om u definitief af te melden.</p>");
    te.push("<p><input name=\"Afmelden\" id=\"Afmelden\" size=\"39\" value=\"\" class='formInput'><input type=button onclick=\"afmelden();\" class='button' value='Afmelden e-mailserice'></p>");
    //te.push("</form>");
    te.push("<br>");
 te.push("<div style='height:130px;'></div>");
    //te.push("<p><input type=button onclick=\"hoofdmenu();\" class='button' value='Terug naar hoofdmenu'></p>");
    //te.push("<p><a class='tekst' href='javascript:hoofdmenu();'>Terug naar hoofdmenu</a></p>");
    toonHoofdTekst(te.join(""));
}
    
/*
function handleAfmeldenEmailAbo()
    {
      var gebruiker="";
      var txt="";
        if (document.getElementById("Afmelden").value.length > 0) {
        gebruiker = document.getElementById("Afmelden").value;
              
      new OpenLayers.Ajax.Request("Afmelden_wrapper.php", {
        method: 'get',
        parameters: {
            gebruiker:     gebruiker,
            toeval: Math.random()
        },
        onComplete: handleLogout
    });  
      
      }else {
         alert("Geef a.u.b. een gebruikersnaam of emailadres op");
      }
    }


function handleLogout(hReq) 
{
    if (hReq.readyState == 4) {
        var str = hReq.responseText;
                
        document.getElementById("gcTekstlaag").innerHTML = str; 
  }
}
*/

function afmelden()
    {
      var naam="";
      var str = "";
        //if (document.formular.elements['Afmelden'].value.length > 0) {
        //naam = document.formular.elements['Afmelden'].value;
        if (document.getElementById("Afmelden").value.length > 0) {
        naam = document.getElementById("Afmelden").value;
        //alert (naam);
        //str = "<a target=\"_blank\" href=\"http://www.wegwerkmeldingen.nl/Logout.php?naam=\""+naam+"</a>";
        //return (str);
        //return '<a target="_blank" href="http://www.wegwerkmeldingen.nl/Logout.php?naam='+naam+'"</a>';
        //return '<p class="plinkmenu"><a class="tlinkmenu" href="'+actie+'">'+tekst+'</a></p>';
        return window.location = ("http://www.wegwerkmeldingen.nl/Logout.php?naam="+naam+"");
      }else {
         alert("Geef a.u.b. een gebruikersnaam op");
      }
    }


function chkForm()
     {
        if (document.getElementById("Wachtwoord").value.length > 0){
         if (true){
            if (document.getElementById("Wachtwoord").value.length < 6)
        { alert("Het wachtwoord moet minimaal 6 tekens bevatten");
             return false;
        }else{
           var dummy;
/*                  if (document.formular.elements["bevestigWachtwoord"].value != document.formular.elements["Wachtwoord"].value){
                        alert("Het wachtwoord komt niet overeen met het bevestigde wachtwoord");
                        return false;
                    }
*/
          }
        }else {
         alert("Bevestig a.u.b. uw wachtwoord");
         return false;
        }
       } else {
        alert("Geef a.u.b. een wachtwoord op");
        return false;
       }

       //if (document.formular.elements["Rechten"] && document.formular.elements["Beheersgebied"] && (document.formular.elements["Rechten"].value < 3) && (document.formular.elements["Beheersgebied"].value >0))
       //{ alert("Bij deze rechten past geen gebied voor wegbeheerder. Kies hogere rechten of kies 'geen' als beheersgebied");
       //  return false;
       //}

        if (document.getElementById("Email")){
           if (document.getElementById("Email").value.length < 1)
           { alert("Geef a.u.b. een emailadres op");
             return false;
           }
    }

       if (document.getElementById("Naam")){
           if (document.getElementById("Naam").value.length < 1)
           { alert("Geef a.u.b. een gebruikersnaam op");
             return false;
           }
    }

         
       if (document.getElementById("Naam"))
         if (document.getElementById("Naam").value.split(" ").length > 1)
         { alert("De gebruikersnaam mag geen spaties bevatten");
           return false;
         }
       return true;
    }

function velden_change_event()
    {
       var arr = document.getElementById("Email").value.split('@');
       if (document.getElementById("Naam"))
         if (document.getElementById("Naam").value.length < 1)
           document.getElementById("Naam").value = arr[0];
    }

function GebruikerVersturen() {
    if(chkForm()){

    var str="regio="+instellingen.regio;
        str += "&toeval="+encodeURIComponent(Math.random());
                
    //for (s=0;s<document.formular.elements.length;s++){
        //  if(document.formular.elements[s].value == 'on'){
        //      str += "&"+document.formular.elements[s].name+"="+document.formular.elements[s].checked;
        //  } else {
        //      str += "&"+document.formular.elements[s].name+"="+encodeURIComponent(document.formular.elements[s].value);
        //  }
        //}
    
    
    for (s=0;s<document.getElementsByName("gem").length;s++){
    if(document.getElementsByName("gem")[s].value == 'on'){
            //alert ("gechecked");
                str += "&"+document.getElementsByName("gem")[s].id+"="+document.getElementsByName("gem")[s].checked;
            } else {
                str += "&"+document.getElementsByName("gem")[s].id+"="+encodeURIComponent(document.getElementsByName("gem")[s].value);
            }
        }
    
    
      OpenLayers.Request.POST({
            url: "/proxys/geb_versturen_wrapper.php",
            data: str,
            success: handleGebruikerVersturen,
            failure: handleGebruikerVersturen,
            headers: { "CONTENT-TYPE": "application/x-www-form-urlencoded",
                       "CONTENT-LENGTH": str.length,
                       "CONNECTION":"close"}
          });
          toonKaart(-1);
    }
}

function handleGebruikerVersturen(hReq) {
    if (hReq.readyState == 4)
    {
        var str = hReq.responseText;
        alert(str);
    }
}

function werkenAlsTekst() {
    
    var te = [];
    te.push("<h1>Actuele wegwerkmeldingen Provincie Gelderland</h1>");
    var eenObject;
    for(var t=0,aant=Objecten.length;t<aant;t++) {
      eenObject = Objecten[t];
      if(eenObject.Typ < 7) {
          te.push("<h2><img src=\"/images/icons/sym"+eenObject.Typ+".png" + "\"> ");
          te.push(L_Typ[eenObject.Typ]+"</h2>");
          te.push("<h1 style='clear:left'>"+eenObject.Titel +"</h1>");
          te.push("<p>"+eenObject.Wanneer +"</p>");
          te.push("<p>"+maakLinks(eenObject.Tekst) +"</p>");
          te.push("<p>"+eenObject.Locatie);
          if (eenObject.plaatsnaam) te.push("<br>"+eenObject.plaatsnaam);
          te.push("</p>");
          te.push("<p><a class='tekst' target=\"_blank\" href=\"http://www.wegwerkmeldingen.nl/pdf/maakpdf.php?Objectnummer="+eenObject.Objectnummer+"&regio="+instellingen.regio+"\">Download pdf</a> ");
          te.push("<a class='tekst' href=\"javascript:toonKaart("+t+")\">Bekijk op kaart</a></p>");
      }
    }
    $('#gcTekstlaag').css({'position':'static'});
    $('#mapRuimte').css({'display':'none'});
    toonHoofdTekst(te.join(""));
}

function ZoomToBegin()
{   
  var arr = instellingen.zoomTo.split("-");
  if (arr.length==4)
  {
    var bounds = new OpenLayers.Bounds(arr[0],arr[3],arr[2],arr[1]);
        map.zoomToExtent(bounds, true);
  }
  else
  {
    var point = new OpenLayers.LonLat(6.5, 52.4);
    point.transform(projWGS84,projGoogle);
    map.setCenter(point,10);
  }
}

function janee(j)
{ if (j && ( (j==1)||(j=="j")) ) return "ja"; else return "nee"; }


var detailinfo = false;
function MoveOut()
{
  if (!detailinfo) MaakMenu();
  map.removePopup(markerpopup);
}

function sluiten()
{
  detailinfo = false;
  vectors.destroyFeatures();
  vectors_drag.destroyFeatures();             
  EditObject=null;
  herberekenIcons();
  MaakMenu();
}


function emptyKnopen(){
 knopenArray = new Array(); 
}


function clone(obj){
    if(obj == null || typeof(obj) != 'object')
        return obj;

    var temp = obj.constructor(); // changed

    for(var key in obj)
        temp[key] = clone(obj[key]);
    return temp;
}


// -----------------------------------------
function Kaartclick(evt)
// -----------------------------------------
// event: op de kaart geklikt
// in editmodus: gebruik tools
// in viewmodus: sluit eventuele detailinformatie (want klik naast een object)
// -----------------------------------------
{
    if (Laatsteklik != evt.clientX + evt.clientY*2000) // check of niet 2 keer dezelfde punt
    sluiten();
}


// -----------------------------------------
function MoveOverObject(i)
// -----------------------------------------
{
    if (!detailinfo) {

        map.removePopup(markerpopup);
    
        var o=-1;
        if (this.id) o=parseInt(this.id.substr(4));
        if ((i==0) || (parseInt(i)>0)) {
            direct=true; o=parseInt(i);
        }
    
        if (o>=0) {
            te = [];
            te.push("<div id='popup' width=\""+(instellingen.linksbreedte-5)+"\">");
            if (Objecten[o].arr.length>1) {
                te.push("<h1><img width=20 height=20 src=\"/images/icons/meerdere.png\">");
                te.push(Objecten[o].arr.length + " Objecten</h1>");
                for (var i=0;i<Objecten[o].arr.length;i++) {
                    te.push("<h1>"+(i+1)+". "+Objecten[Objecten[o].arr[i]].Titel+"</h1>");
                    te.push("<p>"+Objecten[Objecten[o].arr[i]].Wanneer +"</p>");
                }
                te.push("<p class='klein'>Klik op het symbool om in te zoomen naar deze werken</p></div>");
            } else {
                te.push("<h1>"+Objecten[o].Titel + "</h1>");
                te.push("<p><img width=20 height=20 src=\"/images/icons/sym"+Objecten[o].Typ+".png" + "\">");
                te.push(L_Typ[Objecten[o].Typ]);
                te.push("</p>");
                te.push("<h1>Wanneer?</h1>");
                te.push("<p>"+shortenText(Objecten[o].Wanneer) +"</p>");
                te.push("<p class='klein'>Klik op het symbool voor uitvoerige informatie</p></div>");
            }
        }
        
        markerpopup = new OpenLayers.Popup.FramedCloud(
            "TITEL",
            new OpenLayers.LonLat(parseInt(Objecten[o].x),parseInt(Objecten[o].y)),
            new OpenLayers.Size(200,370),
            te.join(" "),
            this.icon,
            false
        );
        markerpopup.panMapIfOutOfView = false;
        map.addPopup(markerpopup);
    }
}

function toonInfoLinks(txt)
{
  map.removePopup(markerpopup);
//  document.getElementById("links").innerHTML = "<div id='left-project'><div id='left-inhoud'>"+ txt + "</div><div id=\'left-bottom\'></div></div>";
  document.getElementById("hoofdnav").innerHTML =
     "<div id='left-project'><div id='left-inhoud'>" +
     txt +
     "</div></div>";
}

function shortenText(txt){
    if(txt.length > 100) return txt.substr(0,100)+"...";
  else return txt;
}

// -----------------------------------------
function handleWegObjectenDetail(hReq)
// -----------------------------------------
{    
  sluiten();
  detailinfo = true;
  var eenObject;
  var format = new OpenLayers.Format.XML();
  var nodes = format.read(hReq.responseText);
  var allNodes = nodes.getElementsByTagName("objecten");
  var segments = allNodes[0].getElementsByTagName("Werk");
  var object_Feature, omleiding_Feature;
  var te = [];
  var point;
  
  for (s=0;s<segments.length;s++) {
      var allNodes = segments[s].getElementsByTagName("*");
      eenObject = new Object();
      for(var i=0; i<allNodes.length; ++i) {
          eenObject[allNodes[i].nodeName]=decodeURIComponent(OpenLayers.Util.getXmlNodeValue(allNodes[i]));
      }

      point = new OpenLayers.LonLat(eenObject.x, eenObject.y);
      map.setCenter(point,14);
  
      te.push("<table width=100%><tr><td align=left>");
      te.push("<h1><img src=\"/images/icons/sym"+eenObject.Typ+".png" + "\"> ");
      te.push(L_Typ[eenObject.Typ]+"</h1></td>");
      te.push("<td align=right valign=top><img border=0 class='formDivTitelImage' src=\"/images/buttons/sluitenklein.png\" onclick=\"sluiten();\"></td></tr></table>");
      te.push("<h1 style='clear:left'>"+eenObject.Titel +"</h1>");
      te.push("<h2>Wanneer</h2>");
      //oud
      //te.push("<p>"+eenObject.Wanneer +"</p>");
      
      //nieuw
      
      if((eenObject.MeerdereTijden != "") && (eenObject.MeerdereTijden != "undefined") && (eenObject.MeerdereTijden != undefined)) {
                  
        var arrayTijden = eenObject.MeerdereTijden.split("|");  
        tijdenCount = arrayTijden.length;
        var currentTime = new Date();
  	    var month = currentTime.getMonth() + 1;
  	    var day = currentTime.getDate();
  	    var year = currentTime.getFullYear();
        if(month < 10) month = "0" + month;
        if(day < 10) day = "0" + day;	
  	    var datumVandaag = year + "-" + month + "-" + day;
      
        for (var i=0; i<tijdenCount; i++) {
          arrayRecord = arrayTijden[i].split(",");
          
          //oude italic weergeven
          if(arrayRecord[2] < datumVandaag) {
              te.push("<p><i>van: "+DateOmdraaien(arrayRecord[0])+" ("+arrayRecord[1]+")</i></p>");
              te.push("<p><i>tot: "+DateOmdraaien(arrayRecord[2])+" ("+arrayRecord[3]+")</i></p><br>");
          } else {
              te.push("<p>van: "+DateOmdraaien(arrayRecord[0])+" ("+arrayRecord[1]+")</p>");
              te.push("<p>tot: "+DateOmdraaien(arrayRecord[2])+" ("+arrayRecord[3]+")</p><br>");
          }
        }  
      } else if ((eenObject.DagvdWeek != "") && (eenObject.DagvdWeek != "undefined") && (eenObject.DagvdWeek != undefined)) {
          te.push("<p class=\"maptipInhoud\">"+maakDagvdWeekString(eenObject)+"</p>");
      } else {     
          te.push("<p class=\"maptipInhoud\">"+eenObject.Wanneer +"</p>");
      }
           
      te.push("<h2>Wat</h2>");
      te.push("<p>"+maakLinks(eenObject.Tekst) +"</p>");
      te.push("<h2>Waar</h2>");
      te.push("<p>"+eenObject.Locatie);
      if (eenObject.plaatsnaam) te.push("<br>"+eenObject.plaatsnaam );
      te.push("</p>");
      te.push("<h2>Contact</h2>");
      te.push("<p>"+maakLinks(eenObject.Contact) + "</p>");
      te.push("<h2>Afdrukken / Download</h2>");
      te.push("<p><a target=\"_blank\" href=\"http://www.wegwerkmeldingen.nl/pdf/maakpdf.php?Objectnummer="+eenObject.Objectnummer+"&regio="+instellingen.regio+"\">Download pdf</a></p>");
      TekenGeometrie(eenObject,false);
      //alert(te.join(" "));
  }
  
  toonInfoLinks(te.join(" "));
}

// ------------------------------------
var Laatsteklik = -1;
function WegObjectenDetail(evt)
// ------------------------------------
{
    var o;
    var direct=false;
    if (this.id) o=parseInt(this.id.substr(4));
    if ((evt==0) || (parseInt(evt)>0)) {direct=true; o=parseInt(evt); }    
  
    if (o>=0) {
        if ((Objecten[o].arr.length==1) || direct) { // een object
            detailinfo = true;
            new OpenLayers.Ajax.Request("/proxys/GetWegObjecten_wrapper.php", { method: 'get', parameters:
              {'ID': '', van:'2000-1-1', tot:'2099-1-1', directnaarID_andor: 1, directnaarID:Objecten[o].Objectnummer, layout:6, toeval:Math.random() },
              onComplete: handleWegObjectenDetail
            });
        } else {
            var point = new OpenLayers.LonLat(Objecten[o].x, Objecten[o].y);
            if (map.zoom<14) map.setCenter(point,14);
        }
    }
    Laatsteklik = evt.clientX + evt.clientY*2000;
}

// -----------------------------
function TekenGeometrie(eenObject,tekenIcon)
// -----------------------------
// voeg geometrie uit database-strings toe in vectors
// tekenIcon=true: draggable icon wordt getekent (bij editable) 
// -----------------------------
{
  vectors.destroyFeatures();
  vectors_drag.destroyFeatures();
  var WKTreader = new OpenLayers.Format.WKT();
    if (eenObject.geo_object.length>0)
  { 
    arr=eenObject.geo_object.split("|");
    for (var i=0;i<arr.length;i++)
    { object_Feature = WKTreader.read(arr[i]);
      if (object_Feature)
      {    
          object_Feature.style = getStyleKleur(eenObject.Typ);
          if (object_Feature.geometry.CLASS_NAME == "OpenLayers.Geometry.Point")
          { if (object_Feature.geometry.y < 0)
            { object_Feature.geometry.y = -object_Feature.geometry.y;
              object_Feature.style=whitestyle;
            }
          }
          object_Feature.id = "Obj:"+arr[i];
        vectors.addFeatures(object_Feature);
      }            
        }        
    }

  if (eenObject.geo_omleiding.length>0)
    { 
    arr=eenObject.geo_omleiding.split("|");
    for (var i=0;i<arr.length;i++)
    { omleiding_Feature = WKTreader.read(arr[i]);
        { if (omleiding_Feature)
            {
                omleiding_Feature.style=bluestyle;
                omleiding_Feature.id = "Oml:"+arr[i];
              vectors.addFeatures(omleiding_Feature);
            }
          }
        }  
  }
          
  if (tekenIcon)
  {
    aFeature = WKTreader.read("POINT("+eenObject.x+" "+eenObject.y+")");
      aFeature.style=style_type[eenObject.Typ];
    aFeature.id = 'icon';  
      vectors_drag.addFeatures(aFeature);
    } 
}

function event_DragFeature(feature)
{
  if (!feature) { alert("PuntDrag op niet bestaand feature"); return false }
  if (!EditObject) return false;
  var x = feature.geometry.x;
  var y = feature.geometry.y;
  if (feature.id == 'icon')
  { EditObject.x=x;
    EditObject.y=y;
  }
  TekenGeometrie(EditObject,true);
}





var EditObject=null;

var in_options = {
    'internalProjection': new OpenLayers.Projection("EPSG:900913"),
    'externalProjection': new OpenLayers.Projection("EPSG:900913")
}

var kaartmodus = 'map';
function resizeMap()
{
  if (instellingen.noresize) {
      if (kaartmodus == 'map') {
          document.getElementById("gcTekstlaag").style.visibility = "hidden";
          document.getElementById("map").style.visibility = "visible";
      } else {
          document.getElementById("gcTekstlaag").style.visibility = "visible";
          document.getElementById("map").style.visibility = "hidden";
      }
      return
  };

  var centre = map.getCenter();
  var zoom = map.getZoom();
  var dddb = document.body;
  var w = mygetWndW();
  var h = mygetWndH();
  
  //document.getElementById("hoofdnav").style.position = "absolute";
  //document.getElementById("hoofdnav").style.left = "0px";
  //document.getElementById("hoofdnav").style.top = "0px";
  ///document.getElementById("hoofdnav").style.width = "250px";
  //document.getElementById("hoofdnav").style.height = (h-10)+"px";
  //document.getElementById("hoofdnav").style.overflow = "visible";

  if (kaartmodus == 'map') {
      document.getElementById("gcTekstlaag").style.visibility = "hidden";
      document.getElementById("map").style.visibility = "visible";
      document.getElementById("map").style.position = "absolute";
      document.getElementById("map").style.left = "227px";
      document.getElementById("map").style.top = "100px";
      document.getElementById("map").style.width = (w-240)+"px";
      document.getElementById("map").style.height = (h-100)+"px";
      //document.getElementById("mapRuimte").style.height = (h-100)+"px";
      
      infoLayer.positie((h*0.7-300)+"px");
      map.setCenter(centre, zoom);
  } else {
      document.getElementById("gcTekstlaag").style.visibility = "visible";
      document.getElementById("map").style.visibility = "hidden";
     // document.getElementById("gcTekstlaag").style.position = "absolute";
      document.getElementById("gcTekstlaag").style.left = "227px";
      document.getElementById("gcTekstlaag").style.top = "100px";
      //document.getElementById("gcTekstlaag").style.width = (w*0.6)+"px";
      //document.getElementById("gcTekstlaag").style.height = (h*0.7)+"px";
      //document.getElementById("gcTekstlaag").style.overflow = "scroll";
  }
}

function eventZoomend()
{ window.setTimeout("herberekenIcons();", 100); }


var ri = 0;
function herberekenIcons()
{
    if (instellingen.kaarttype>0) return;
  DeleteMarkers(markers);
  var marker;
  var p,pointFeature;
  var aant = 0;
  var i = 0, j;
  var x,y;

    var groot,klein;
    if (map.zoom<=8)  { groot = 20; klein = 14;    }
    if (map.zoom==9)  { groot = 22; klein = 16;    }
    if (map.zoom==10) { groot = 26; klein = 20;    }
    if (map.zoom==11) { groot = 30; klein = 24;    }
    if (map.zoom>=12) { groot = 34; klein = 34;    }

  var dist = 30*map.getResolution();
  if (map.zoom>=13) dist=0;
  if (Objecten) aant = Objecten.length;
  var bounds = map.calculateBounds();

// pass 1: voorbereiden, samenvatten dicht bijelkaar liggende objecten
  //if (EditObject) alert(Objecten[0].Objectnummer +" == "+ EditObject.Objectnummer);
  for(var t=0;t<aant;t++)
  {
      if (EditObject && (Objecten[t].Objectnummer == EditObject.Objectnummer))
        Objecten[t].o=-1;
      else  
      {
        x = Objecten[t].x;
        y = Objecten[t].y;
        Objecten[t].arr = new Array();
        Objecten[t].o = 0;
        if (bounds.contains(x,y,true))
        {        
            Objecten[t].arr.push(t);
            if (Objecten[t].Typ > 99) {
              Objecten[t].s = klein;
              if (map.zoom > 10) Objecten[t].o=1; else if (map.zoom > 8) Objecten[t].o=0.6; else  Objecten[t].o=0;
            } else
            {
              if(Objecten[t].Level == 0) Objecten[t].s = klein; else Objecten[t].s = groot;
              Objecten[t].o=1;
            }
            if ((map.zoom<=8) && (Objecten[t].s == klein)) Objecten[t].o=0; // niet-hoofdwegen onzichtbaar op kleine schaal
        
            // zoek naar object in de buurt
            for (j=0;j<t;j++)
            {
                if ((Objecten[j].o>0) && (afstand(Objecten[j].x - x,Objecten[j].y - y)<dist))
              { Objecten[t].o=0;
                Objecten[t].arr = new Array(); // actueel object leeg maken
                Objecten[j].arr.push(t);       // toevoegen bij eerste object
                Objecten[j].s = Math.max(Objecten[j].s,Objecten[t].s);  // size aanpassen
                break;
              }
            }
          }
      }
    }

// pass 2: markers zetten waar nodig
  for(var t=0;t<aant;t++)
  {
    if (Objecten[t].o>0)
    {
        if (Objecten[t].arr.length>1) {
            g = "/images/icons/meerdere.png";
        } else {
            if(Objecten[t].Typ != 7) {
                g = "/images/icons/sym"+Objecten[t].Typ+".png";
            }
            if(Objecten[t].Typ == 7) {
                g = "";
                Objecten[t].s = 0;
            }
        }
      var size = new OpenLayers.Size(Objecten[t].s,Objecten[t].s);
      var offset = new OpenLayers.Pixel(-Objecten[t].s+1, -Objecten[t].s+1);
      var icon = new OpenLayers.Icon(g,size,offset);
      marker = new OpenLayers.Marker(new OpenLayers.LonLat(parseInt(Objecten[t].x),parseInt(Objecten[t].y)),icon)
      marker.id ="oid_"+t;
      marker.events.register("mouseout", marker, MoveOut);
      marker.events.register("mousedown", marker, WegObjectenDetail);
      marker.events.register("mouseover", marker, MoveOverObject);

      markers.addMarker(marker);        
    }
  }
  //window.status = ' recalculate icons '+ri + " - " + markers.markers.length; ri++;
}

var tpoint;
function handleGetObjecten(hReq)
{

  Objecten = new Array();
  var eenObject;
  var format = new OpenLayers.Format.XML();
  var nodes = format.read(hReq.responseText);
  
  
      var allNodes = nodes.getElementsByTagName("objecten");
      
     if(allNodes[0] != undefined){
         
      var segments = allNodes[0].getElementsByTagName("Werk");
      var z;
    
      for (s=0;s<segments.length;s++)
      {
        var allNodes = segments[s].getElementsByTagName("*");
        var potentialNode, fullName;
        eenObject = new Object();
        for(var i=0; i<allNodes.length; ++i) eenObject[allNodes[i].nodeName]=decodeURIComponent(OpenLayers.Util.getXmlNodeValue(allNodes[i]));
        Objecten[s] = eenObject;
        }
    }
    eventZoomend();
  MoveOut();   
}

function GetObjecten() {
    document.getElementById("hoofdnav").innerHTML = "<div id='left-project'><div id='left-inhoud'><h1>Haal Wegwerkzaamheden<br>op ...<br><img src=\"/images/buttons/wait.gif\"></h1><p>&nbsp;</p></div><div id=\'left-bottom\'></div></div>";

    new OpenLayers.Ajax.Request("/proxys/GetWegObjecten_wrapper.php", { method: 'get', parameters:
      { directnaarID:-1,
        layout:5,
        toeval:Math.random()
      },
      onComplete: handleGetObjecten
    });
}
 

function MaakMenu()
{
  document.getElementById("hoofdnav").innerHTML = geheugen_links;
  $('#container > #hoofdnav > ul > li').hover(function(){
        $(this).addClass('menuhover');
        }, 
        function(){
        $(this).removeClass('menuhover');   
    });
}

// ------------
// Hulpfuncties
// ------------
function Maak01(truefalse) { if (truefalse) return 1; else return 0; }

function Stratentext(straat)
  { var a=straat.split(":");  return trim(a[0]); }

function Menuitem(tekst,actie){    
    if(instellingen.menulogo != "") return '<img src="'+instellingen.menulogo+'" height=16><a class="tlink" href="'+actie+'">'+tekst+'</a><br>';
    else return '<a class="tlink" href="'+actie+'">'+tekst+'</a><br>';    
}

function afstand(dx,dy)
  { return Math.sqrt(dx*dx+dy*dy); }

function DateGeldig(s)
{
  var geldig = false;
  var ar = s.split("-");
  var aDate = new Date(ar[2],ar[1],ar[0]);
  if (ar.length == 3)
    if ((ar[2]<2050) && (ar[2]>2000) && (ar[1]<=12) && (ar[0]<=31) && (ar[1]>=1) && (ar[0]>=1))
      geldig = true;
  return geldig;    
}    
  
function DateOmdraaien(s)
{
  var ar = s.split("-");
  if (ar.length == 3)
    return ar[2]+"-"+ar[1]+"-"+ar[0];
  else
    return "";  
}    
  
function Date2Num(s,NL_Datum)
// NL_Datum = true:  voorbeeld '26-02-2007'
// NL_Datum = false: voorbeeld '2007-02-26'
{
  var num = -1;
  //alert(s);
  var ar = s.split("-");
  if (ar.length == 3)
  {
     if (NL_Datum)         
       var aDate = new Date(ar[2],ar[1],ar[0]);         
     else
       var aDate = new Date(ar[0],ar[1],ar[2]);         
     num = aDate.getTime();
  }   
  return num;
}  

function DatumVerleden(s)
{
  var ar = s.split("-");
  if (ar.length == 3)
  {
    var vandaag = new Date();
    var testdatum = new Date(ar[2],ar[1]-1,ar[0]);         
    return (testdatum<vandaag);
  }  
}  
      
function Num2Date(n,maandjaar)
// maandjaar = true:  voorbeeld '02-2007'
// maandjaar = false: voorbeeld '26-02-2007'
{
    
  var d = new Date(n);
  var month=new Array(12);
month[0]="jan";
month[1]="feb";
month[2]="mrt";
month[3]="apr";
month[4]="mei";
month[5]="jun";
month[6]="jul";
month[7]="aug";
month[8]="sep";
month[9]="okt";
month[10]="nov";
month[11]="dec";
  if (maandjaar)
    return month[d.getMonth()] + "-" + d.getFullYear();
  else  
    return d.getDate() + "-" + month[d.getMonth()] + "-" + d.getFullYear();
}  

function maakListTyp(def,naam,akt)
{
  var txt = "<select name=\""+naam+"\" size=\"1\" class='formInput' ";
  if (akt){ 
    txt += "onchange=\"gemuteerd=1; AktualiseerWegObjectBitmap();\" ";
  } else {  
    txt += "onchange=\"gemuteerd=1; \" ";
  }
  txt += ">";
  for (var ii=0; ii<L_Typi.length;ii++)
  { 
    i=L_Typi[ii];
    if (i==def) txt += "<option selected"; else txt += "<option";
    txt += " value=\""+i+"\">"+ L_Typ[i]+"</option>";  
  }  
  return txt + "</select>";
  
  }

function maakList(arr,def,naam,akt)
{
  var txt = "<select name=\""+naam+"\" size=\"1\" class='formInput' ";
  if (akt) 
    txt += "onchange=\"gemuteerd=1; AktualiseerWegObjectBitmap();\" ";
  else  
    txt += "onchange=\"gemuteerd=1; \" ";
  txt += ">";
  for (var i=0; i<arr.length;i++)
  { if (arr[i])
    { if (i==def) txt += "<option selected"; else txt += "<option";
      txt += " value=\""+i+"\">"+ arr[i]+"</option>";  
    }
  }  
  return txt + "</select>";
}

function maakText(te)
{
  if ((te==undefined) || (te=="undefined")) return ""; else return te;
}
function maakCheckbox(def,naam)
{
  var txt = "<input type=\"checkbox\" name=\""+naam+"\"";
  txt += "onchange=\"gemuteerd=1; \" onclick=\"gemuteerd=1; \" ";
  if (def==1) txt += " checked ";
  return txt + ">";
}

function getStyleKleur(Typ)
{
  if ((Typ==1)||(Typ==3)||(Typ==5))
        return greenstyle;
  else
        return redstyle;
}        

function Verwijderen_deelstring(verzameling,zoekstring)
{
  var arr = verzameling.split("|");
  var eerste = true;
  var ret = "";
  for (var i=0;i<arr.length;i++)
  {
    if (zoekstring != arr[i])
    {
      if (eerste) { ret += arr[i]; eerste=false; }
      else ret += "|"+arr[i]        
    }
  }
  return ret;
}

function maakDagvdWeekString (eenObject) {

  var weekday=new Array(7);
  weekday[0]="zondag";
  weekday[1]="maandag";
  weekday[2]="dinsdag";
  weekday[3]="woensdag";
  weekday[4]="donderdag";
  weekday[5]="vrijdag";
  weekday[6]="zaterdag";
      
  var arrayDagen = eenObject.DagvdWeek.split("|");  
  arrayRecord = arrayDagen[0].split("-");
  datum = new Date(arrayRecord[0],(arrayRecord[1] - 1),arrayRecord[2]);
  dagvdweek = weekday[datum.getDay()];
  beginTijd = arrayRecord[3]; 
  eindTijd = arrayRecord[4]; 
            
  txt = "Elke " + dagvdweek + " tussen " + beginTijd + " en " + eindTijd + "";

  return txt;
}

// -----------------------------------------
// constanten voor editformulier
// -----------------------------------------
var L_Typ = new Array("","Werk met hinder","Werk met afsluiting","Evenement met hinder","Evenement met afsluiting","Calamiteit met hinder","Calamiteit met afsluiting", "Hoofdproject");
var L_Typi= new Array(1,2,3,4,5,6,7);
var L_Zeker = new Array("Onbekend", "Intentie","Ingepland","Zeker");
var L_Openbaar = new Array("Nee","Ja");
var L_Dagdeel = new Array("onbekend","hele dag","overdag","buiten de spits","`s avonds en `s nachts","`s avonds", "`s nachts", "in het weekeinde", "onregelmatig");
var L_DagdeelBeS = new Array("dag","dag","dag","dag (buiten de spits)","dag (`s avonds en `s nachts)","avond", "nacht", "weekeinde", "dag");
var L_DagdeelBeP = new Array("dagen","dagen","dagen","dagen (buiten de spits)","dagen (`s avonds en `s nachts)","avonden", "nachten", "weekeinden", "dagen");
var L_Level = new Array("regionaal Hoofdwegennet", "overige wegen");
var L_OmleidingJaNee = new Array("Nee", "Ja");
var L_HinderOV = new Array("Nee", "Ja");


// -----------------------------------------
function maakLinks(s)
// -----------------------------------------
{
  if (!s) s="";
  var p1=-1,p2=-1,p3 = -1;
  while (true)
  { p1=s.indexOf("[link]");
    p2=s.indexOf("[text]");
    p3=s.indexOf("[end]");
    if (p1<0 || p2<0 || p3<0) break;
    s = s.substr(0,p1-1)+"<a target=\"_blank\" href=\""+s.substr(p1+6,p2-p1-6)+"\">"+s.substr(p2+6,p3-p2-6)+"</a>"+s.substr(p3+5);
  }
  return s;
}


function osm_getTileURLachtergrondkaart(bounds)
{
  var res = this.map.getResolution();
  
  var x = Math.round((bounds.left - this.maxExtent.left) / (res * this.tileSize.w));
 // console.log(x,res,bounds.left,this.maxExtent.left);
  var y = Math.round((this.maxExtent.top - bounds.top) / (res * this.tileSize.h));
  var z = this.map.getZoom();
  var limit = Math.pow(2, z);

  if (y < 0 || y >= limit) {
      return OpenLayers.Util.getImagesLocation() + "404.png";
  } else {
      x = ((x % limit) + limit) % limit;
      if (z>instellingen.TilesMaxZoom || z<8)
          return "http://a.tile.openstreetmap.org/" + z + "/" + x + "/" + y + "." + this.type;
      else if (z>11)
        return instellingen.achtergrondTilesStandaard+ z + "/" + x + "/" + y + "." + this.type;
      else  {
          //alert(instellingen.TilesURL + z + "/" + x + "/" + y + "." + this.type);
          return instellingen.achtergrondTilesLokaal + z + "/" + x + "/" + y + "." + this.type;
          //return instellingen.TilesURL + z + "/" + x + "/" + y + "." + this.type;
    }
  }
}
