
/**
 *  borgdorff class with utility functions
 */
var borgdorff = 
{  
  /**
    updateAfterGefactureerdToggle 
  */
  updateAfterGefactureerdToggle : function(result)
  {
    var span = dojo.byId('advertentiekosten_gefactureerd');
    if (span)
      span.innerHTML = result.params.advertentiekosten_gefactureerd;
  },  
  /**
    kopieAfgehaaktNaarInteresse make copy of afgehaakt klant and place in 'ingeschreven'
  */
  kopieAfgehaaktNaarInteresse : function(path, klant_id, klantcode)
  {
    smoothy.ajax.postParams({ path: path,
                              edit_mode: 2,
                              id: klant_id,
                              status: 'ingeschreven', // was 'geïnteresseerde': IE doesn't like utf-8 strings in HTTP GET, so use POST
                              opmerkingen: 'klant eerder afgehaakt zie klantcode ' + klantcode
                            });
  },
  /**
    updateVervaltermijnGereed update 'gereed' on the server (create update or delete vervaltermijn) 
  */
  updateVervaltermijnGereed : function(path, termijnstaat_id, bouwnummer_id, termijnnummer)
  {
    // construct the element_id of the textbox
    var element_id = termijnstaat_id + '-' + bouwnummer_id + '-' + termijnnummer;
    
    if (validateTextfieldDateDMY(element_id)) // client side validation
      smoothy.ajax.postParams({ path: path,
                                _one_way: 'true',
                                action: 'new_date',
                                termijnstaat: termijnstaat_id,
                                bouwnummer: bouwnummer_id,
                                termijnnummer: termijnnummer,
                                value: get_element_value(element_id)
                              });
  },
  /**
    requestInterestKAOPage used on interest & KAO pages
    filter_name is optional (can be project_id bouwnummer_id or KAO)
  */
  requestInterestKAOPage : function(path, filter_name)
  {
    var url = "?path=" + path;
    if (filter_name)
    {
      var filter_element = "select_" + filter_name;
      var filter_value = get_element_value(filter_element);
      url += "&action=filter&name=" + filter_name + "&value=" + filter_value;
    }
    url += "&datum_KAO=" + get_element_value("datum_KAO") +
           "&include_parkinglots=" + get_element_checked("include_parkinglots");
    request_url(url);
  },
  /**
    requestBriefPage
    filter_name is optional (can be klant_id or sjabloon)
  */
  requestBriefPage : function(path, filter_name)
  {
    var url = "?path=" + path;
    if (filter_name)
    {
      var filter_element = "select_" + filter_name;
      var filter_value = get_element_value(filter_element);
      url += "&action=filter&name=" + filter_name + "&value=" + filter_value;
    }
    url += "&datum_brief=" + get_element_value("datum_brief");
    request_url(url);
  },
  /**
    showGoogleMap("map_canvas", 'De 3 torus', 'Nijverheidstraat', '\'s Gravenzande', 12.4323, 11.324);
  */
  showGoogleMap : function(nodeId, project_naam, project_straat, project_plaats, lat, lng)
  {
    var location;
    if (lat && lng)
      location = new GLatLng(lat, lng);
    else
      location = project_straat + ',' + project_plaats + ", The Netherlands";
                                        
    add_window_onload_event(function() 
                        {
                          borgdorff.showGoogleMap2(nodeId,
                                                   location,
                                                   project_naam + "\n" + project_straat + "\n" + project_plaats,
                                                   16);
                        }
                        );
  
  },
  /**
    showGoogleMap2
      * G_NORMAL_MAP
      * G_SATELLITE_MAP
      * G_HYBRID_MAP
  */    
  showGoogleMap2 : function(idName, addressOrPoint, info, zoom, mapType)
  {
    if (GBrowserIsCompatible()) 
    {
      // default args:
      if (typeof addressOrPoint == "undefined")
        addressOrPoint = "Nijverheidstraat 1, \'s Gravenzande, The Netherlands";
      if (typeof info == "undefined")
        info = '';
      if (typeof zoom == "undefined")
        zoom = 16;  
      if (typeof mapType == "undefined")
        mapType = G_NORMAL_MAP;  
    
      var map = new GMap2(dojo.byId(idName));
      map.setMapType(mapType);
      map.addControl(new GSmallMapControl());
      map.addControl(new GMapTypeControl());      
      
      if (idName == 'map_canvas_editable') // only in NBWA to edit location
        GEvent.addListener(map, 'click', function(overlay, point) 
          {
            if (overlay) 
            {
              map.removeOverlay(overlay);
            }
            if (point) 
            {
              map.clearOverlays();
              map.panTo(point);
              var marker = new GMarker(point);
              map.addOverlay(marker);
              dojo.byId("input_latitude").value = point.y;
              dojo.byId("input_longitude").value = point.x;
            }
         });
    
      if (typeof addressOrPoint == 'GLatLng') // no geocoder pressure
      {
        borgdorff.showMarkerAndInfoWindow(map, addressOrPoint, zoom, info)
      }
      else
      {
        var geocoder = new GClientGeocoder();
        geocoder.getLatLng(addressOrPoint,   
                           function(point)
                           {     
                              if (!point)
                                point = new GLatLng(52.00440, 4.16470); // default
                                
                              borgdorff.showMarkerAndInfoWindow(map, point, zoom, info);
                            }
                           );
      }
    }
    else 
    {
      alert("Sorry, the Google Maps API is not compatible with this browser");
    }
  },
  /**
    showMarkerAndInfoWindow
  */
  showMarkerAndInfoWindow : function(map, point, zoom, info)
  {
    map.setCenter(point, zoom);     
    var marker = new GMarker(point);  
    map.addOverlay(marker);
    if (info)
      marker.openInfoWindowHtml(info.replace(/\n/g, '<br />'));      
  },
  /**
    printPrijslijst
  */
  printPrijslijst : function(project_id)
  {
    url = '?path=/output/prijslijst&project_id='+project_id+'&_fflags=1';
    showUrl(url); // calling win.print(); doesn't work: access denied, calling window.print from the page itself does work...
  },
         
  filmTimerId : 0,
 
  /**
   * borgdorff.playImagesInContainer('div2', 2000, 4000);
   */
  playImagesInContainer : function(containerId, fadeTime, duration)
  {      
	if (borgdorff.filmTimerId) // already playing
	  return;
	  
	filmTimerFunc = function()
	{
	  if (dojo.byId(containerId))
		smoothy.ui.fadeNextImagesInContainer(containerId, fadeTime); 
	  else
		clearInterval(borgdorff.filmTimerId);
	}
	filmTimerFunc();
	borgdorff.filmTimerId = setInterval(filmTimerFunc, duration); // image switch time
  },
  
  /**
   * borgdorff.pauseImagesInContainer();
   */
  pauseImagesInContainer : function()
  {
	if (borgdorff.filmTimerId)     
	  clearInterval(borgdorff.filmTimerId);
	borgdorff.filmTimerId = 0;
  },

  /**
   * borgdorff.showPreviousImageInContainer('imgContainer');
   */  
  showPreviousImageInContainer : function(containerId)
  {
    borgdorff.pauseImagesInContainer();
    smoothy.ui.fadePreviousImagesInContainer(containerId, 1000);
  },
  /**
   * borgdorff.showNextImageInContainer('imgContainer');
   */  
  showNextImageInContainer : function(containerId)
  {
    borgdorff.pauseImagesInContainer();
    smoothy.ui.fadeNextImagesInContainer(containerId, 2000);
  },
  /**
   * borgdorff.fadeToImageInContainer('imgContainer', 1000, {$smarty.foreach.i.index});
   */  
  fadeToImageInContainer : function(containerId, duration, index)
  {
    borgdorff.pauseImagesInContainer();
	smoothy.ui.fadeToImageInContainer(containerId, duration, index);  
  },
  /**
   * borgdorff.registerIFrameUrl(url);
   *
  registerIFrameUrl : function(path, iframe)
  {
    alert('1:' + iframe.src);
    alert('2:' + dojo.byId('iframeid').getAttribute('src'));
    //alert('3:' + window.frames['realworks_iframe'].location);
    alert('4:' + dojo.byId('iframeid').contentWindow.location.href);
    url = document.getElementById('iframeid').src;
    var divid = 'addthisdiv' + path.replace(/\//g, '-');
    smoothy.ajax.get('?path=/output/iframeurl&_ajax_response=true&iframe_url=' + url, function(result) 
      { 
        alert(result.params.iframe_url_id + ' = ' + url);
        document.getElementById(divid).setAttribute("addthis:url", 'http://borgdorff.nl/?path=' + path + '&url_id=' + result.params.iframe_url_id);  
      },
      'main_ajax.php',
      'json');
  }*/
}

/////////////////////////////////////////////////////////////////
// HuidigeWoning

function setShowKoopwoningNodes(show)
{
  smoothy.ui.setShowNode('tr_restant_hypotheekbedrag', show);
  smoothy.ui.setShowNode('tr_verkoopprijs_eigen_woning', show);
  smoothy.ui.setShowNode('tr_interesse_in_waardebepaling', show);  
}

function setShowHuurwoningNodes(show)
{
  smoothy.ui.setShowNode('tr_verhuurder', show);
  smoothy.ui.setShowNode('tr_kale_huurprijs', show);
}

function onRadioClickhuidige_woning_field0(node)
{
  assert(node.value == 'koopwoning', 'onRadioClickhuidige_woning_field0 mismatch');
  setShowKoopwoningNodes(true);
  setShowHuurwoningNodes(false);
}
function onRadioClickhuidige_woning_field1(node)
{
  assert(node.value == 'huurwoning', 'onRadioClickhuidige_woning_field1 mismatch');
  setShowKoopwoningNodes(false);
  setShowHuurwoningNodes(true);
}
function onRadioClickhuidige_woning_field2(node)
{
  assert(node.value == 'inwonend', 'onRadioClickhuidige_woning_field2 mismatch'); 
  setShowKoopwoningNodes(false);
  setShowHuurwoningNodes(false);
}
// none clicked:
function onRadioDefaulthuidige_woning_field0(node)
{
  assert(node.value == 'koopwoning', 'onRadioDefaulthuidige_woning_field0 mismatch');  
  setShowKoopwoningNodes(false);
  setShowHuurwoningNodes(false);
}

/////////////////////////////////////////////////////////////////
// Verplichtingen

function setVerplichtingenNodes(node)
{
  var show_tr_details_verplichtingen = false;
  var show_tr_maandlast = false;
  var show_tr_looptijd = false;
  var show_tr_hoogte_krediet = false;
  if (node.value.indexOf('alimentatie') >= 0)
  {
    show_tr_maandlast = true;
  }
  if (node.value.indexOf('lening') >= 0)
  {
    show_tr_maandlast = true;
    show_tr_looptijd = true;
  }
  if (node.value.indexOf('krediet') >= 0)
  {
    show_tr_hoogte_krediet = true;
  }
  if (node.value.indexOf('anders') >= 0)
  {
    show_tr_details_verplichtingen = true;
  }
  
  smoothy.ui.setShowNode('tr_details_verplichtingen', show_tr_details_verplichtingen);
  smoothy.ui.setShowNode('tr_maandlast', show_tr_maandlast);  
  smoothy.ui.setShowNode('tr_looptijd', show_tr_looptijd);    
  smoothy.ui.setShowNode('tr_hoogte_krediet', show_tr_hoogte_krediet);  
}

function onCheckboxClickverplichtingen_field0(node)
{
  setVerplichtingenNodes(node);
}
function onCheckboxClickverplichtingen_field1(node)
{
  setVerplichtingenNodes(node);
}
function onCheckboxClickverplichtingen_field2(node)
{
  setVerplichtingenNodes(node);
}
function onCheckboxClickverplichtingen_field3(node)
{
  setVerplichtingenNodes(node);
}

/////////////////////////////////////////////////////////////////
// PersoonlijkeVerplichtingen

function setPersoonlijkeVerplichtingenNodes(show)
{
  smoothy.ui.setShowNode('tr_verplichtingen', show);
  smoothy.ui.setShowNode('tr_details_verplichtingen', show);
  smoothy.ui.setShowNode('tr_maandlast', show);  
  smoothy.ui.setShowNode('tr_looptijd', show);  
  smoothy.ui.setShowNode('tr_hoogte_krediet', show);  
}

function onRadioClickpersoonlijke_verplichtingen_field0(node)
{
  assert(node.value == 'ja', 'onRadioClickpersoonlijke_verplichtingen_field0 mismatch'); 
  setPersoonlijkeVerplichtingenNodes(true);
}
function onRadioClickpersoonlijke_verplichtingen_field1(node)
{
  assert(node.value == 'nee', 'onRadioClickpersoonlijke_verplichtingen_field1 mismatch'); 
  setPersoonlijkeVerplichtingenNodes(false);
}

/////////////////////////////////////////////////////////////////
// Object

function setWoningNodes(show)
{
  smoothy.ui.setShowNode('tr_verplichte_parkeerplaats_id', show);
  smoothy.ui.setShowNode('tr_aantal_kamers', show);
  smoothy.ui.setShowNode('tr_woonoppervlak', show);  
  smoothy.ui.setShowNode('tr_etage', show);  
  smoothy.ui.setShowNode('tr_plaats', show);  
  smoothy.ui.setShowNode('tr_postcode', show);  
  smoothy.ui.setShowNode('tr_huisnummer', show);  
  smoothy.ui.setShowNode('tr_straat', show);
  smoothy.ui.setShowNode('tr_tuinligging', show); 
  smoothy.ui.setShowNode('tr_kavel_oppervlakte', show); 
  smoothy.ui.setShowNode('tr_appartement_index_berging', show); 
  smoothy.ui.setShowNode('tr_aandeel_berging', show);
}

function onRadioClickobject_field0(node)
{
  assert(node.value == 'woning', 'onRadioClickobject_field0 mismatch'); 
  setWoningNodes(true);
}
function onRadioClickobject_field1(node)
{
  assert(node.value == 'parkeerplaats', 'onRadioClickobject_field1 mismatch');
  setWoningNodes(false);
}
function onRadioClickobject_field2(node) // not used now
{
  assert(node.value == 'berging', 'onRadioClickobject_field2 mismatch');
  setWoningNodes(false);
}

