///////////////////////////////////////// DE VARIABELEN ///

/**
 * Globale variabele voor de pan modus.
 */
var panMode = false;
var infoMode = false;

/**
 * Globale variabele voor de zoom modus.
 */
var zoomMode = false;

/**
 * Globale variabele voor de sumbit modus.
 */
var submitting = false;

/**
 * Globale variabele waarin staat of geforceerd gezoomed wordt.
 */
var zoomSet = false;
var themaSet = false;
var searchSet = false;

///////////////////////////////////////// DE METHODEN /////

/**
 * Functie om de adresgegevens in een array te plaatsen.
 */
function fillForm(selectObj) {
  selectedString = selectObj.options[selectObj.options.selectedIndex].value;
  selectedArray  = selectedString.split(",");

  document.forms[0].elements["straat"].value     = selectedArray[0]
  document.forms[0].elements["huisnummer"].value = selectedArray[1];
  document.forms[0].elements["postcode_n"].value = selectedArray[2];
  document.forms[0].elements["postcode_a"].value = selectedArray[3];
  document.forms[0].elements["x_coord"].value    = selectedArray[4];
  document.forms[0].elements["y_coord"].value    = selectedArray[5];
}

/**
 * Functie om de straat in te vullen.
 */
function setStreet(selectObj) {
  document.forms[0].elements["straat"].value = selectObj.options[selectObj.options.selectedIndex].value;
}

/**
 * Functie om de zoom in te vullen.
 */
function setZoom(zoomValue) {
  currentZoomValue = document.forms[0].elements["zoom"].value;

  document.forms[0].elements["zoom"].value = zoomValue;

  var img = document.getElementsByName(zoomValue);
  var curImg = document.getElementsByName(currentZoomValue);

  img[0].src = '../images/' + img[0].alt + '_ro.gif';
  curImg[0].src = '../images/' + curImg[0].alt + '.gif';
  
  document.forms[0].elements["panning"].value = '';
  zoomSet = true;
}

/**
 * Functie om de view te wijzigen.
 */
function fillView(view,map) {

  document.forms[0].elements["view"].value = view;
  document.forms[0].elements["laag"].value = map;
  themaSet = (view != '');
}



/**
 * Functie om de nieuwe lijst te tonen
 */
function toonLijst(thema, view, map) {

  document.forms[0].elements["legenda"].value = thema;
  submitForm();
}



/**
 * Functie voor nieuwe zoekopdracht
 */
function NieuweZoekopdracht() {

mode = document.forms[0].elements["mode"].value;

if (mode == 'eenStraatGevonden') {

 document.forms[0].elements["mode"].value = '';
 document.forms[0].elements["straat_hidden"].value = '';
 document.forms[0].elements["straat_text"].value = '';
 document.forms[0].elements["huisnummer"].value = '';
 document.forms[0].elements["postcode_n"].value = '';
 document.forms[0].elements["postcode_a"].value = '';
 document.forms[0].elements["x_coord"].value = '';
 document.forms[0].elements["y_coord"].value = '';
 document.forms[0].elements["point"].value = 'true';
 submitForm();
 }


if (mode == 'meerdereStraatGevonden') {

 document.forms[0].elements["mode"].value = '';
 document.forms[0].elements["straat_hidden"].value = '';
 document.forms[0].elements["huisnummer"].value = '';
 document.forms[0].elements["postcode"].value = '';
 submitForm();
 }

}



/**
 * Functie om een radiobutton te selecteren wanneer er op een link wordt geklikt.
 */
function getRadioByValue(radioButtonOrGroup, value) {
  if(!radioButtonOrGroup.length) {
    if(radioButtonOrGroup.value == value) {
      fillView(radioButtonOrGroup);
      return radioButtonOrGroup;
    } else {
      return null;
    }
  } else {
    for(var b = 0; b < radioButtonOrGroup.length; b++) {
      if(radioButtonOrGroup[b].value == value) {
        fillView(radioButtonOrGroup[b]);
        return radioButtonOrGroup[b];
      }
    }
    return null;
  }
}

/**
 * Functie om de panning aan of uit te zetten.
 */
function setPanning(val) {
  document.forms[0].elements["panning"].value = val?val:'';
  document.forms[0].elements["point"].value = val?'':val;
}

/**
 * Functie om te zoomen...
 */
function fillZoomAndSend(zoomValue,firstZoom) {
  fillZoom(zoomValue,firstZoom);
  document.forms[0].submit();
}

/**
 * Functie voor het in/uitzoomen op de kaart.
 */
function fillZoom(zoomValue,firstZoom) {
  if(firstZoom) {
    var xCoord = '';
    var yCoord = '';
    
    if(document.forms[0].elements["x_coord"] == null &&
       document.forms[0].elements["y_coord"] == null &&
       document.forms[0].elements["zoom"].value != '')
    {
      // wanneer er geen x of y is ingevuld, bereken hem dan a.d.h.v. de minx,
      // maxx, miny en maxy.
      xCoord = (parseFloat(document.forms[0].elements["minx"].value) + parseFloat(document.forms[0].elements["maxx"].value))/2;
      yCoord = (parseFloat(document.forms[0].elements["miny"].value) + parseFloat(document.forms[0].elements["maxy"].value))/2;
    } else {
      xCoord = document.forms[0].elements["x_coord"].value;
      yCoord = document.forms[0].elements["y_coord"].value;
    }
  
    var width = document.forms[0].elements["map_width"].value;
    var height = document.forms[0].elements["map_height"].value;
  
    var maxx = parseFloat(xCoord) + (0.000264 * parseFloat(width) * parseFloat(zoomValue));
    var minx = parseFloat(xCoord) - (0.000264 * parseFloat(width) * parseFloat(zoomValue));
    var maxy = parseFloat(yCoord) + (0.000264 * parseFloat(height) * parseFloat(zoomValue));
    var miny = parseFloat(yCoord) - (0.000264 * parseFloat(height) * parseFloat(zoomValue));

    document.forms[0].elements["minx"].value = minx;
    document.forms[0].elements["maxx"].value = maxx;
    document.forms[0].elements["miny"].value = miny;
    document.forms[0].elements["maxy"].value = maxy;
  } 
  
  //setPanning(true);
  //setZoom(zoomValue);
  document.forms[0].elements["panning"].value = 'true';
  document.forms[0].elements["zoom"].value = zoomValue;
}

/**
 * Functie om bij een submit van het form alle submitbuttons te disablen
 * om te voorkomen dat een gebruiker erop blijft rammen
 */
function disableSubmitters() {
  if (!submitting) {
    swapImage('../images/wait.gif', 'formpijl_00003', getElt('allecontent'));
    document.body.style.cursor = 'wait';
    submitting = true;
    return submitting;
  }
  else return false;
}


/**
 * Functie om de globale variabele panMode te togglen tussen aan/uit en
 * daarmee het gedrag van de kaart en de muis te beinvloeden of zo
 */
function swapPan() {
  panMode=!panMode;
  
  if(document.all["mapguide_input"]) {
    document.all["mapguide_input"].style.display = (zoomMode||panMode)?"block":"none";
    document.images["mapguide"].style.display = !(zoomMode||panMode)?"block":"none";
  }
  if(panMode) {
    //document.forms[0].elements["pan_click"].src = '../images/center-info_center.gif';
    document.forms[0].elements["pan_click"].src = '../images/zoom-info_zoom.gif';
  } else {
    document.forms[0].elements["pan_click"].src = '../images/zoom-info_info.gif';
    //document.forms[0].elements["pan_click"].src = '../images/center-info_info.gif';
  }
  
  //document.forms[0].elements["panning"].value = panMode;
  setPanning(panMode);
}

/**
 * Functie om de globale variabele panMode te togglen tussen aan/uit en
 * daarmee het gedrag van de kaart en de muis te beinvloeden of zo
 */
function swapInfo() {
  infoMode=!infoMode;

  if(document.all["mapguide_input"]) {
    document.all["mapguide_input"].style.display = !(infoMode)?"block":"none";
    document.images["mapguide"].style.display = (infoMode)?"block":"none";
  }
  if(infoMode) {
    document.forms[0].elements["pan_click"].src = '../images/zoom-info_info.gif';
  } else {
    document.forms[0].elements["pan_click"].src = '../images/zoom-info_zoom.gif';
  }
  
  //document.forms[0].elements["panning"].value = panMode;
  //setPanning(panMode);
}

/**
 * Functie om de globale variabele zoomMode te togglen tussen aan/uit en
 * daarmee het gedrag van de kaart en de muis te beinvloeden of zo
 */
function swapZoom(zoomValue,zoomPic) {
  zoomMode=!zoomMode;
  
  if(document.all["mapguide_input"]) {
    document.all["mapguide_input"].style.display = (zoomMode||panMode)?"block":"none";
    document.images["mapguide"].style.display = !(zoomMode||panMode)?"block":"none";
  }  
  /*
  if(zoomMode) {
    changeZoomPic(zoomPic,zoomMode);
  } else {
    changeZoomPic(zoomPic,zoomMode);
  }*/
  
  //document.forms[0].elements["zoom"].value = zoomValue;
  setZoom(zoomValue);
  document.forms[0].elements["panning"].value = zoomMode;
  //setPanning(zoomMode);
}

/**
 * Functie waarmee de plaatjes voor het zoomen/pannen worden gezet.
 */
function changeZoomPic(zoomPic,zoomMode) {
  if(zoomPic == 'zoom_zoomin') {
    if(zoomMode) {
      document.forms[0].elements["zoom_zoomin"].src = '../images/zoom_zoomin_ro.gif';
      document.forms[0].elements["zoom_zoomuit"].src = '../images/zoom_zoomuit_sel.gif';
    } else {
      document.forms[0].elements["zoom_zoomuit"].src = '../images/zoom_zoomuit_sel.gif';
      document.forms[0].elements["zoom_zoomin"].src = '../images/zoom_zoomin_sel.gif';
    }
  } else if(zoomPic == 'zoom_zoomuit') {
    if(zoomMode) {
      document.forms[0].elements["zoom_zoomuit"].src = '../images/zoom_zoomuit_ro.gif';
      document.forms[0].elements["zoom_zoomin"].src = '../images/zoom_zoomin_sel.gif';
    } else {
      document.forms[0].elements["zoom_zoomin"].src = '../images/zoom_zoomin_sel.gif';
      document.forms[0].elements["zoom_zoomuit"].src = '../images/zoom_zoomuit_sel.gif';
    }
  }
}

/**
 * Functie om jezelf op de kaart te verplaatsen.
 */
function moveOnMap(object) {
  var maxX  = document.forms[0].elements["maxx"].value;
  var maxY  = document.forms[0].elements["maxy"].value;
  var minX  = document.forms[0].elements["minx"].value;
  var minY  = document.forms[0].elements["miny"].value;
  var zoom  = document.forms[0].elements["zoom"].value;

  var factor = parseInt(zoom)/10;

  // naar links op de kaart
  if(object == "west") {
    document.forms[0].elements["minx"].value = parseFloat(minX) - parseFloat(factor);
    document.forms[0].elements["maxx"].value = parseFloat(maxX) - parseFloat(factor);
  }

  // naar boven op de kaart
  else if(object == "noord") {
    document.forms[0].elements["miny"].value = parseFloat(minY) + parseFloat(factor);
    document.forms[0].elements["maxy"].value = parseFloat(maxY) + parseFloat(factor);
  }

  // naar rechts op de kaart
  else if(object == "oost") {
    document.forms[0].elements["minx"].value = parseFloat(minX) + parseFloat(factor);
    document.forms[0].elements["maxx"].value = parseFloat(maxX) + parseFloat(factor);
  }

  // naar beneden op de kaart
  else if(object == "zuid") {
    document.forms[0].elements["miny"].value = parseFloat(minY) - parseFloat(factor);
    document.forms[0].elements["maxy"].value = parseFloat(maxY) - parseFloat(factor);
  }

  var point = document.forms[0].elements["point"].value;

  setPanning(true);

  document.forms[0].elements["point"].value = point;
  
  document.forms[0].submit();
}

/**
 * Functie voor het bekijken van de kaart wanneer slechts alleen op de kaart
 * geklikt wordt.
 */
function setPoint() {
 setZoom(nextZoomValue);

 document.forms[0].elements["point"].value = 'true';
 document.forms[0].elements["minx"].value = startMinX;
 document.forms[0].elements["maxx"].value = startMaxX;
 document.forms[0].elements["miny"].value = startMinY;
 document.forms[0].elements["maxy"].value = startMaxY;
}

/**
 * Functie om een formulier te verzenden, wordt gevuurd onsubmit van het form.
 */
function formSubmit() {
  determineBeforeSubmit();
  if(!zoomSet && searchSet) {
    setZoom(defaultZoom);
  }
  return disableSubmitters();
}

/**
 * Functie om een formulier te verzenden, wordt gevuurd door links, knopjes e.d.
 */
function submitForm() {
  determineBeforeSubmit();
  if(disableSubmitters()) {
    if(!zoomSet && searchSet) {
      setZoom(defaultZoom);
    }
    document.forms[0].submit();
  }
}


/**
 * Functie om bij een submit van het form de pointvalue eventueel te zetten
 */

function determineBeforeSubmit() {
  var point = true;
  if (document.forms[0].elements["straat"] && document.forms[0].elements["straat"].value != "") {
    point = false;
  }
  if (document.forms[0].elements["zoekstraat"] && document.forms[0].elements["zoekstraat"].value != "") {
    point = false;
    searchSet = true;
  }

   if (document.forms[0].elements["postcode"] && document.forms[0].elements["postcode"].value != "") {
      point = false;
      searchSet = true;
  }
  
  
  if (document.forms[0].elements["point"] && point) {
    document.forms[0].elements["point"].value = "true"; 
  }

}


function emptyPoint() {
  document.forms[0].elements["point"].value = '';
}
