﻿var id = "ddlInleverpunt" 
$(document).ready(function() {
  var myDate = new Date();
  myDate.setDate(myDate.getDate());
  var myBeginDate = new Date();
  myBeginDate.setDate(myBeginDate.getDate() + 6);
  var bonusDate = new Date()
  bonusDate.setDate(bonusDate.getDate() + 30);
  
  $('.date-pick')
    .datePicker(
            {
              startDate: myDate.asString(),
              clickInput: true,
              renderCallback: function($td, thisDate, month, year) {
                if (thisDate.isWeekend()) {
                  $td.addClass('weekend');
                  $td.addClass('disabled');
                }
              }
            }
    )
		.bind(
			'dateSelected',
			function(e, selectedDate, $td) {
			  //nog checken of de gekozen datum niet buiten de einddatum ligt
			  if (selectedDate < myBeginDate) {
			    $("#message").html("Het Flexleasecontract heeft een opzegtermijn van 5 werkdagen. Eerder inleveren kan wel, maar je zal dan wel voor deze 5 dagen gefactureerd worden.");
			    $("#message").css("color", "red");
			    $("#inleverbonus").html("0,00");
			  } else if (selectedDate >= bonusDate) {
			    $("#message").html("U ontvangt een inleverbonus omdat u ons meer dan 30 dagen van tevoren op de hoogte stelt!");
			    $("#message").css("color", "green");
			    $("#inleverbonus").html("50,00");
			  } else {
			    $("#message").html("");
			    $("#inleverbonus").html("0,00");
			  }
			}
    );
  if ($('.date-pick').val() == ""){
    $('.date-pick').datePicker().val(myBeginDate.asString()).trigger('change');
  }
  
  toggleFields("ddlInleverpunt");
  showLocation();
});

function toggleFields(id) {
  if ($("#" + id).val() == "0") {
    //inleveren bij flexlease
    $(".toggle").hide();
    //$(".toggle").css('background-color', 'grey');
    $("#ophaalkosten").html("n.v.t.");
    $("#afstand").html("n.v.t.");
    $("#txtStraat").val("");
    $("#txtPostcode").val("");
    $("#txtPlaats").val("");
    $("#btnSubmit").removeAttr("disabled");
    $("#btnSubmit").attr("value", "Inlevering doorgeven");
    $("#divAkkoord").hide();
    
    $.ajax({
      url: "/auto_inleveren/getcost.aspx?killsession=1&inlever=true&forajax=true&km=0",
      cache: false,
      success: function(data) {
        //nothing
      }
    });
  } else {
    $(".toggle").show();
    //$(".toggle").css('background-color', 'white');
    $("#divAkkoord").show();
    initialize();
    showLocation();
    $("#btnSubmit").attr("disabled", "disabled");
    $("#btnSubmit").attr("value", "Formulier nog niet compleet...");
  }
  //console.log($("#" + id).val() == undefined);
  if ($("#" + id).val() == undefined) {
    $("#btnSubmit").removeAttr("disabled");
  }
}

function fillForm() {
  var naam = $("#contracts :selected").attr("naam");
  var email = $("#contracts :selected").attr("email");
  var telefoon = $("#contracts :selected").attr("telefoon");

  $("#txtContactpersoon").val(naam);
  $("#txtEmail").val(email);
  $("#txtTelefoon").val(telefoon);
}

var geocoder, location1, location2, gDir;

function initialize() {

  geocoder = new GClientGeocoder();
  gDir = new GDirections();
  GEvent.addListener(gDir, "load", function() {
    var drivingDistanceMiles = gDir.getDistance().meters / 1609.344;
    var drivingDistanceKilometers = gDir.getDistance().meters / 1000;
    //console.log('<strong>Address 1: </strong>' + location1.address + ' (' + location1.lat + ':' + location1.lon + ')<br /><strong>Address 2: </strong>' + location2.address + ' (' + location2.lat + ':' + location2.lon + ')<br /><strong>Driving Distance: </strong>' + drivingDistanceMiles + ' miles (or ' + drivingDistanceKilometers + ' kilometers)');
    $("#afstand").html((drivingDistanceKilometers.toFixed(2)).replace(".", ",") + " km");
    $("#ophaalkosten").html("Ophaal kosten worden opgehaald...Een moment a.u.b.");
    $.ajax({
      url: "/auto_inleveren/getcost.aspx?inlever=true&forajax=true&km=" + drivingDistanceKilometers,
      cache: false,
      success: function(data) {
        $("#ophaalkosten").html("€ " + parseFloat(data).toFixed(2).replace(".", ","));
      }
    });
  });
}

function checkForm() {
  var valid = true;
  try {
    if ($("#akkoord").is(':checked')) {
      valid = true;
    } else if ($("#divAkkoord").is(':visible')) {
      alert("U dient akkoord te gaan met de achteraf inname.");
      valid = false;
    }
  } catch (e) {

  }
  if (!valid) {
    return false;
  }
  if (($("#ddlInleverpunt :selected").val() == "1" && valid) || !$("#txtStraat").is(':hidden')) {
    if ($("#txtStraat").val() != "" && $("#txtPostcode").val() != "" && $("#txtPlaats").val() != "") {
      return true;
    }
    //alert("Vergeet niet uw adres in te vullen wanneer u kiest om de auto op te laten halen!");
    //return false;
  } else {
    return true;
  }
  return valid;
}

function showLocation() {
  geocoder = new GClientGeocoder();
  if (($("#" + id).val() != undefined && $("#ddlInleverpunt :selected").val() == "1") || (window.location.href).indexOf("load") > -1) {
    geocoder.getLocations("1099 CC Amsterdam", function(response) {
      if (!response || response.Status.code != 200) {
        alert("Sorry, we were unable to geocode the first address");
      }
      else {
        location1 = { lat: response.Placemark[0].Point.coordinates[1], lon: response.Placemark[0].Point.coordinates[0], address: response.Placemark[0].address };
        geocoder.getLocations($("#txtPostcode").val() + ", " + $("#txtPlaats").val(), function(response) {
          if (!response || response.Status.code != 200) {
            $("#afstand").html("<font color='red'>Adres is niet herkend, controleer uw invoer!</font>");
            $("#btnSubmit").attr("disabled", "disabled");
            $("#btnSubmit").attr("value", "Formulier nog niet compleet...");
          }
          else {
            location2 = { lat: response.Placemark[0].Point.coordinates[1], lon: response.Placemark[0].Point.coordinates[0], address: response.Placemark[0].address };
            gDir.load('from: ' + location1.address + ' to: ' + location2.address);
            $("#btnSubmit").removeAttr("disabled");
            $("#btnSubmit").attr("value", "Inlevering doorgeven");
          }
        });
      }
      
    });
  }
}