/*
 * 
 * 
 * fincieringscalculator
 * 
 * let op: bij change van #productidentification wordt aan de hand van aanwezigheid van
 * bepaalde velden bepaald of het een huurkoop of doorlopend krediet is. Dit heeft
 * invloed op het schrijven van de interface voor de rest van het programma.
 * 
 * 
 * Initiele afhandeling wanneer geconstateerd wordt dat er geen BTW (Vat) wordt meegegeven gebeurd onderaan.
 * 
 */

var isIE6 = $.browser.msie && $.browser.version == "6.0";
var inruilPercentage = 55; //55%

$(document).ready(function () {
  /* GLOBAL VARS */
  var chAppAanroep = "/asp/appmain.asp?appactie=";
  var inBTW = 19;
  var soortProduct = "";
  var loBerekeningGestart = false; // status var die wordt gezet als de berekening wordt gestart, voorkomt dat er meerdere per keer kunnen worden gestart
  var inTellerAantalBerekeningenVerstuurd = 0;
  var isoccasion = $.url.param("isoccasion");
  var soortVoertuigOmsch = "";

  /* global */
  $('.date-pick').datePicker().val(new Date().asString()).trigger('change');

  $("#final_term").hide(); // niet tonen als editable, wordt view igv van goedhart

  // verberg velden die dynamisch worden laten zien.
  $("#tr_productidentification").hide();

  // format deze velden vast, zodat er netjes EUR 0,- in staat, ook vast voor het later berekenen in fuBerekenTeFinancierenBedrag()
  //$("#options_accs").val(formatCurrency($("#options_accs").val()));
  $("#down_payment").val(formatNumberComma($("#down_payment").val()));
  $("#final_term").val(formatNumberComma($("#final_term").val()));

  // enddate zetten voor belmij datepicker
  var dtEindDatum = (new Date()).zeroTime();
  dtEindDatum = dtEindDatum.addMonths(3);  // vandaag over 2 maanden
  dtEindDatum = dtEindDatum.asString(); // maar er een string van met asString (dpSetEndDate kan geen datum zoals deze aan: Sat Jan 12 2008 00:01:00)
  $('.date-pick').dpSetEndDate(dtEindDatum);

  fuHideVelden();

  $("input[name='isprofessional']").click(function () { // let op, onderaan worden er nog initiele afhandelingen gedaan met deze click functie

    // vars
    var chCreditAmountIncomingExTax;
    var chCreditAmountIncomingInTax;
    var inAantalProducten = 0;
    var chProductDescription = "";

    // maak productidentification leeg
    $("#productidentification").empty();
    $("#tr_productidentification").hide();
    fuHideVelden();
    fuClearVelden();

    // plaats lege option
    //$('<option />').val("").text("-kies").appendTo('#productidentification');
    // haal financieringssoorten op uit 'n array
    $(arrayProducts).each(function (i) {
      if ($("input[name='isprofessional']:checked").val() == arrayProducts[i].business) {
        chProductDescription = arrayProducts[i].description;
        $('<option />').val(arrayProducts[i].code).text(chProductDescription).appendTo('#productidentification');
        inAantalProducten++;
      }
    });

    // is er maar 1 productkeuze, biedt het dan niet als keuze aan
    if (inAantalProducten == 1) {
      $("#productidentification").hide();
      $("#productidentification_alt").html(chProductDescription)
      $("#productidentification_alt").show();
      $("#productidentification_alt").next("a").hide();
    }
    else {
      $("#productidentification").show();
      $("#productidentification_alt").hide();
      $("#productidentification_alt").next("a").show();
    }


    // formateer vast het kredietbedrag incl en excl btw.
    $('#credit_amount_incoming_ex_tax').val(formatNumberComma($('#credit_amount_incoming_ex_tax').val()));
    $('#credit_amount_incoming_in_tax').val(formatNumberComma($('#credit_amount_incoming_in_tax').val()));

    chCreditAmountIncomingExTax = $("#credit_amount_incoming_ex_tax").val();
    chCreditAmountIncomingInTax = $("#credit_amount_incoming_in_tax").val();

    // maak prijs excl btw als het zakelijk is anders incl btw maken
    if ($(this).val() == 'true') { // is zakelijk
      // track deze actie in Analytics	
      pageTracker._trackPageview("/calculator/zakelijk");
      // verander de kredietprijs waarmee wordt gerekend
      $("#credit_amount_current").val($("#credit_amount_incoming_ex_tax").val());
      // pas display amount aan
      $("#credit_amount_display").attr('value', chCreditAmountIncomingExTax);
      // bepaal tooltip tekst file voor soort_financiering
      $("#jtip_soort_financiering").attr("href", "/tooltips/soort_financiering_zakelijk.htm?width=375");
    }
    else { // geen keuze of particulier
      // track deze actie in Analytics	
      pageTracker._trackPageview("/calculator/particulier");
      // verander de kredietprijs waarmee wordt gerekend
      $("#credit_amount_current").val($("#credit_amount_incoming_in_tax").val());
      // pas display amount aan
      $("#credit_amount_display").attr('value', chCreditAmountIncomingInTax);
      // bepaal tooltip tekst file voor soort_financiering
      $("#jtip_soort_financiering").attr("href", "/tooltips/soort_financiering_particulier.htm?width=375");
    }
    if (inAantalProducten > 0) {
      // tool tabel row met productkeuze
      $("#tr_productidentification").show();
      // selecteer eerste (of enige) keuze uit de selectbox
      $("#productidentification").trigger('change');
    }
  });

  $("#productidentification").change(function () {

    // track deze actie in Analytics	
    pageTracker._trackPageview("/calculator/kies_ander_product");
    $('#calculatievoorbeeld').slideUp('fast');
    $(".disclaimerDoorlopend").slideUp("fast");
    $(".disclaimerNietDoorlopend").slideUp("fast");

    // bepaal welke overige velden getoond moeten worden
    fuHideVelden();

    soortProduct = "";

    // alleen acties gaan doen als er een waarde is gekozen bij de #productidentification
    if ($("#productidentification").val() != '') {
      // vaste velden die altijd meegegeven moeten worden
      $("#credit_amount").val($("#credit_amount_current").val().replace(".", ""));
      /* format credit bedrag */
      $("#credit_amount").val($("#credit_amount").val());
      $("#tr_credit_amount").show();

      // altijd tonen
      //$("#tr_options_accs").show();			
      $("#tr_down_payment").show();

      // bepaal welke velden moeten worden getoond/gevuld voor dit product
      $(arrayProducts).each(function (i) {
        if ($("#productidentification").val() == arrayProducts[i].code) {
          $(arrayProducts[i].inputfields).each(function (j) {

            switch (arrayProducts[i].inputfields[j]) {
              case "InputFinalAmount": // slottermijn
                $("#tr_final_term").show();
                break
              case "InputTerm": // looptijd
                $("#term").empty();

                $(arrayProducts[i].term).each(function (j) {
                  // zet 36 maanden term als deze beschikbaar is		
                  if (arrayProducts[i].term[j] == "36") {
                    $('<option />').val(arrayProducts[i].term[j]).text(arrayProducts[i].term[j] + " maanden").attr("selected", "selected").appendTo('#term');
                  }
                  else {
                    $('<option />').val(arrayProducts[i].term[j]).text(arrayProducts[i].term[j] + " maanden").appendTo('#term');
                  }
                });

                // is er maar 1 maand mogelijk dan select box hiden en waarde als 'text' tonen
                if (arrayProducts[i].term.length == 1) {
                  $("#term").hide();
                  $("#term_alt").html(arrayProducts[i].term[0] + " maanden")
                  $("#term_alt").show();
                }
                else {
                  $("#term").show();
                  $("#term_alt").hide();
                }

                $("#tr_term").show();

                $("#down_payment_alt").show();

                // als LOOPTIJD een van de inputvelden is voor het product dan wordt 'aangenomen'
                // dat dit een HUUR KOOP regeling betreft en geen doorlopend krediet. hiertoe word
                // UI bepalende variabele gezet.
                soortProduct = "huurkoop";
                break
              case "InputAmount": // maandbedrag
                $("#tr_term_amount").show();

                // als MAANDBEDRAG een van de inputvelden is voor het product dan wordt 'aangenomen'
                // dat dit een DOORLOPEND KREDIET regeling betreft en geen huurkoop. hiertoe word
                // UI bepalende variabele gezet.
                soortProduct = "doorlopendkrediet";

                break
              case "InputProvisionCode": // provisiecode, voor bepaling rente en provisie bij fincieringsmij
                // zet waarde, waarde wordt uit XML meegegeven in JSON bij load aan pagina
                $("#provision_code").val(arrayProducts[i].provision_code);
                break
            }
          });
        }



        // manipuleer knoplabel van bereken knop afhankelijk van product
        $("#bereken_financiering")

        // toon knop: berekeken	
        $("#tr_bereken_financiering").show();
      });


    }
    // doe de berekening, omdat de bedragen behouden worden bij veranderen van de productidentification
    fuBerekenTeFinancierenBedrag();
  });

  $("#bereken_financiering").click(function () {
    // is er aan berekening bezig? dan afkappen
    if (loBerekeningGestart)
      return false;

    // track deze actie in Analytics	
    pageTracker._trackPageview("/calculator/bereken_financiering");
    var passOnAmount = $("#credit_amount_display").val();
    $("#credit_amount_current").val(passOnAmount);
    // doe voor de zekerheid nog eenmaal de berekening met aanbetaling en opties
    fuBerekenTeFinancierenBedrag();

    // updaten van credit amount aan de hand van het input veld

    // toon vak waarin prijs getoond gaat worden
    $("#calc_blok_bottom > div").hide();

    // leeg en hide het vak met eventuele eerdere errors
    $("#error").empty();
    $("#tr_error").hide();

    // bepaal productidentification code
    arrayProductIdentification = $("#productidentification").val().split("-");

    // doe berekening
    $.ajax({
      type: "POST",
      url: "/asp/appmain.asp",
      dataType: "json",
      data: {
        appactie: "financecalculationrequest",
        caller: $("input#caller").val(),
        credit_amount: stripNonNumeric($("#credit_amount").val()), //  waarde wordt omgezet naar getal, ipv geldbedrag notatie
        purchase_amount: stripNonNumeric($("#credit_amount_current").val()), //  is nodig voor zakelijke aanvraag... is t zelfde als credit_amountredit_amount
        final_term: stripNonNumeric($("#final_term").val()), //  waarde wordt omgezet naar getal, ipv geldbedrag notatie
        provision_code: $("#provision_code").val(),
        term: $("#term").val(),
        term_amount: stripNonNumeric($("#term_amount").val()), //  waarde wordt omgezet naar getal, ipv geldbedrag notatie
        company_number: arrayProductIdentification[0],
        product_identification: arrayProductIdentification[1],
        product_serial_number: arrayProductIdentification[2]
      },
      beforeSend: function () {
        // zet status 
        loBerekeningGestart = true;
        $('#calculatievoorbeeld').slideUp('fast');
        $(".disclaimerDoorlopend").slideUp("fast");
        $(".disclaimerNietDoorlopend").slideUp("fast");
        // toon loading img
        $("<p id='loading'><img src='/img/loading.gif'/></p>").appendTo("#calc_blok_bottom");
        $("#calc_blok_bottom").slideDown();
      },
      success: function (response) {
        /* voorbeeld JSON response bericht uit middle tier 
        { 
        error: "", 
        credit_amount: "2600.00", 
        down_payment: "0.00", 
        dealer_contribution: "0.00", 
        effective_yr_interest: "10.9", 
        final_term: "100.00", 
        term: "12", 
        term_amount: "221.15", 
        CORA_ProductIdentification: 
        { 
        company_number: "8", 
        product_identification: "1", 
        product_serial_number: "2" 
        }            
        } 
        */

        var chBtwTekst;
        var chBedrag;

        // ken response toe aan object
        var arrayCalculationResponse = [];
        arrayCalculationResponse.push(response);

        chBedrag = arrayCalculationResponse[0].term_amount; // integer value
        chBedrag = chBedrag; // allen van . een , maken, geen formatting

        // bepaal of er errors uit de back-end zijn gekomen
        if (arrayCalculationResponse[0].error != '') {

          $("#calc_blok_bottom").hide();

          $("#loading").remove();

          // er is een error opgetreden
          $("#error").html("<br/>De calculatie kan niet worden uitgevoerd. <br/>Oorzaak: " + arrayCalculationResponse[0].error);
          $("#tr_error").show();
        }
        else {
          // geen error, ga door met tonen van calculatie resultaat
          switch (soortProduct) {
            case "huurkoop":
              $("#partnerprijs_kop").html("Partnerprijs:");
              $("#soort_resultaat").html("Indicatie maandlast:");

              // bepaal of er extra info aangaande BTW moet worden getoond.
              if ($("input[name='isprofessional']:checked").val() == 'true') // is zakelijk
              {
                chBtwTekst = " excl. BTW";
                // verberg ook de knop voor prospectus, die is er niet voor zakelijk
                $("#knop_prospectus").hide();
              }
              else {
                chBtwTekst = "";
                // toon altijd de knop voor prospectus, is er particulier
                $("#knop_prospectus").show();
              }

              var final_term_calc = formatNumberNone($('#final_term_alt').val());
              var credit_amount_calc = formatNumberNone($('#credit_amount_display').val());
              var partnerprijs = formatNumberDot((parseInt(credit_amount_calc) - parseInt(final_term_calc)));

              $('#partnerplan_hidden').val(formatNumberCommaNonsym(partnerprijs));

              $("#partnerprijs").html(formatNumberComma(partnerprijs) + "<span><a id='jtip_partnerprijs' class='jTip' name='Partnerprijs' href='/tooltips/partnerprijs.htm?width=375'><img class='info' src='../img/info.gif'/></a></span>");
              $("#partnerprijs_input").val(formatNumberCommaNonsym(partnerprijs));
              $("#resultaat").val(chBedrag + chBtwTekst);
              $('#resultaat').val(formatNumberDot($('#resultaat').val()));
              $("#indicatie_maandlast").val(chBedrag);
              break
            case "doorlopendkrediet":
              $("#partnerprijs_kop").html("Partnerprijs:");
              $("#soort_resultaat").html("Indicatie looptijd:");
              $("#partnerprijs").html("&euro; " + chBedrag + chBtwTekst);
              //              $("#resultaat").html(arrayCalculationResponse[0].term + " maanden (o.b.v. &euro; " + chBedrag + " p/m)");
              $("#resultaat").val(arrayCalculationResponse[0].term + " maanden (o.b.v. " + formatNumberDot(chBedrag) + " p/m)");
              $("#indicatie_looptijd").val(arrayCalculationResponse[0].term);
              break
          }

          var chCreditAmount;
          var chDownPayment;
          var chOptionsAccs;
          var chDealerContribution;
          var chEffectiveYrInterest;
          var chFinalTerm;
          var chTerm;
          var chTermAmount;
          var chCreditAmountCurrent;

          // totale prijs van het krediet
          // looptijd * termijnbedrag + slottermijn.
          chTotalPriceCredit = parseInt(arrayCalculationResponse[0].term) * parseFloat(arrayCalculationResponse[0].term_amount) + parseInt(arrayCalculationResponse[0].final_term);
          chTotalPriceCredit = Math.round(chTotalPriceCredit * 100) / 100;
          chTotalPriceCredit = chTotalPriceCredit;

          chCreditAmount = arrayCalculationResponse[0].credit_amount;
          chDealerContribution = arrayCalculationResponse[0].dealer_contribution;

          // replace functie gebruikt om rente van 9.9 naar 9,9 te maken
          chEffectiveYrInterest = arrayCalculationResponse[0].effective_yr_interest;
          chEffectiveYrInterest = chEffectiveYrInterest.replace(".", ",");

          chFinalTerm = arrayCalculationResponse[0].final_term;
          chTerm = arrayCalculationResponse[0].term;
          //chTermAmount = fuDoeFormatCurrency(arrayCalculationResponse[0].term_amount);
          chTermAmount = arrayCalculationResponse[0].term_amount;

          // down_payment en option_accs worden niet uit de berekening gehaald, maar van het scherm
          chDownPayment = $("#down_payment").val();
          chOptionsAccs = $("#options_accs").val();

          chCreditAmuntCurrent = formatNumberNone($("#credit_amount_current").val())

          // vul overige info uit XML bericht uit back-end in hidden fields van de pagina (voor o.a. doorgift naar afdrukversie en offerte)
          //REFACTOR #007


          $("#credit_amount_current").val(formatNumberDotNonsym(chCreditAmuntCurrent));
          $("#calculated_credit_amount").val(formatNumberDotNonsym(chCreditAmount));

          //Calculatie voor Catalogusprijs met Opties en Accessoires
          Options = parseInt(formatNumberNone(chOptionsAccs));
          Calculated = parseInt(chCreditAmuntCurrent) + parseInt(Options);

          $("#calculated_credit_amount_incl_options").val(formatNumberDotNonsym(Calculated));
          $("#calculated_down_payment").val(formatNumberCommaNonsym(chDownPayment));
          $("#calculated_option_accs").val(formatNumberCommaNonsym(chOptionsAccs));
          $("#calculated_dealer_contribution").val(chDealerContribution);
          $("#calculated_effective_yr_interest").val(chEffectiveYrInterest);
          $("#calculated_final_term").val(formatNumberDotNonsym(chFinalTerm));
          $("#calculated_term").val(chTerm);
          $("#calculated_term_amount").val(formatNumberDotNonsymDec(chTermAmount));
          $("#calculated_total_price_credit").val(formatNumberDotNonsymDec(chTotalPriceCredit));

          // product naam
          $("#productnaam").val($("#productidentification option:selected").text());
          $("#producttype").val(arrayProductIdentification[3]);
          $("#minbedrag").val(arrayProductIdentification[4]);

          // vul info in berekeninsinfo vak
          $("#info_credit_amount").html(chCreditAmount);
          $("#info_credit_amount_incoming").html(chCreditAmountCurrent);
          $("#info_credit_amount2").html(chCreditAmount);
          $("#info_down_payment").html(chDownPayment);
          //$("#info_options_accs").html(chOptionsAccs);					
          $("#info_dealer_contribution").html(chDealerContribution);
          $("#info_effective_yr_interest").html(chEffectiveYrInterest);
          // vul in alle gevallen de final term, verderop nog een conditionele afvraging, niet tonen als ie leeg is.
          $("#info_final_term").html(chFinalTerm);

          $("#info_term").html(chTerm);
          $("#info_term_amount").html(chTermAmount);
          $("#info_total_price_credit").html(chTotalPriceCredit);

          // zet alle tabs op inactief
          $("ul.tabstrip > li > a").removeClass("active");
          /**********************
          * Vullen calculatie tabel
          *********************/
          var test_product = $("#producttype").val();

          if (test_product == "H" || test_product == "A") {
            $('.looptijd').html('Looptijd');
          } else {
            $('.looptijd').html('Theoretische Looptijd');
          }

          if ($("#producttype").val() != 'F') {
            $("#rekentabel").show();
            $('.kolom1').html("€ " + $('#calculated_credit_amount_incl_options').val() + "");
            $('.kolom2').html("€ " + $('#calculated_down_payment').val() + "");
            $('.kolom3').html("€ " + $('#calculated_credit_amount').val() + "");
            $('.kolom4').html($('#calculated_effective_yr_interest').val() + "%");
            $('.kolom5').html($('#calculated_effective_yr_interest').val() + "%");
            $('.kolom6').html($('#calculated_term').val() + " Maanden");
            $('.kolom7').html("€ " + $('#calculated_term_amount').val() + "");
            $('.kolom8').html("€ " + $('#calculated_total_price_credit').val() + "");

          } else {

            $("#rekentabel").hide();
            $("#calculatievoorbeeld .disclaimer").hide();
          }

          /**********************
          * Voorbereiden van verschillende Disclaimers.
          ********/
          // Vullen variabele stukken disclaimer
          var myDate = new Date();
          myDate.setDate(myDate.getDate() + 14);
          var dag = myDate.getDate();
          var maand = myDate.getMonth() + 1; // telling maanden begint bij 0.
          var jaar = myDate.getFullYear();
          var slottermijn = ""

          $("#calculatievoorbeeld .disclaimer .geldigheidsdatum").html(dag + "-" + maand + "-" + jaar);

          if (isoccasion == 'false') {
            $("#calculatievoorbeeld .disclaimer .nieuwoccasion").html("nieuwe motoren");
          } else {
            $("#calculatievoorbeeld .disclaimer .nieuwoccasion").html("occasions");
          }
          $("#calculatievoorbeeld .disclaimer .rente").html($('#calculated_effective_yr_interest').val());
          $("#calculatievoorbeeld .disclaimer .minbedrag").html(formatNumberDotNonsym($("#minbedrag").val()));

          /* SLOTTERMIJN */
          if ($("#calculated_final_term").val() != "0") {
            $("#calculatievoorbeeld .disclaimer .slottermijn").html(" - Dit krediet kent een slottermijn van  EUR " + $("#calculated_final_term").val());
          } else {
            $("#calculatievoorbeeld .disclaimer .slottermijn").html("");
          }

          if ($("#producttype").val() == 'D') {
            $("#calculatievoorbeeld .disclaimer .doorlopend").html("");
            $("#calculatievoorbeeld .disclaimer").slideDown("fast");
          } else {
            $("#calculatievoorbeeld .disclaimer .doorlopend").html("niet-");
            if ($("#producttype").val() != 'F') {
              $("#calculatievoorbeeld .disclaimer ").slideDown("fast");
            }
          }

          // alles netjes gevuld in de #calculatievoorbeeld .disclaimer, dan waarde over zetten naar hidden field
          // om gebruikt te kunnen gaan worden in de pdfjes.
          // replace van % teken, deze kan niet worden doorgegeven in een get aan de pdf rendere.
          var disclaimerval = "";
          disclaimerval = $("#calculatievoorbeeld .disclaimer").text();
          disclaimerval = disclaimerval.replace("%", "%25");
          $("#disclaimer").val(disclaimerval);


          $('#calculatievoorbeeld').slideDown('fast');

          // verwijder loading image
          $("#loading").remove();

          // toon vak
          $("#blok_calc").fadeIn("fast");

          // is de rente niet gevuld, dan tr niet tonen.
          if (chEffectiveYrInterest == "0,0") {
            $("#info_effective_yr_interest").parent("td").parent("tr").hide();
          }
          else {
            $("#info_effective_yr_interest").parent("td").parent("tr").show();
          }

          // is de finalterm 0,-, dan tr niet tonen.
          if ($("input[name='isprofessional']:checked").val() == 'true') {
            $("#info_final_term").parent("td").parent("tr").hide();
          }
          else {
            $("#info_final_term").parent("td").parent("tr").show();
          }



          // is aanvraag zakelijke (dan financial lease), dan niet totaal prijs krediet tonen
          if (chFinalTerm == "0,-") {
            $("#info_total_price_credit").parent("td").parent("tr").hide();
          }
          else {
            $("#info_total_price_credit").parent("td").parent("tr").show();
          }
        }
        loBerekeningGestart = false;
        $("#calc_blok_bottom").removeClass('h2.donker').addClass('h2.donker');
      },
      error: function (requestobject, errortype, exeptionobject) {
        // error afhandeling van 'harde' errors waardoor de call niet gedaan kon worden

        // verwijder loading image
        $("#loading").remove();

        $("#calc_blok_bottom").hide();

        $("#error").html("Er is een technisch probleem opgetreden. De calculatie kan niet worden uitgevoerd.");
        $("#tr_error").show();

        fuVerstuurError("Alcredis Webcalculator", "main_finance.js", "555", "Probleem met de response van appactie financecalculationrequest in interactie met webservice Alcredis");

        loBerekeningGestart = false;
      }

    });

  });

  /*
  * Actiebuttons
  */

  /* tabs */
  $("ul.tabstrip > li > a").click(function () {
    $("div.actie_blok").hide();
    $("div" + $(this).attr("href")).show();
    $("ul.tabstrip > li > a").removeClass("active");
    $(this).addClass("active");

    /*
    * is er een link opgenomen die automatisch geklikt moet worden (te herkennen aan class="directlink"), 
    * doe dan de benodigde link klik actie
    */
    $("div" + $(this).attr("href") + " a.directlink").click();

    return false;
  });

  /*$("#info_over_berekening_link").click(function(){
  $("#info_over_berekening_tekst").slideDown()
  return false;
  });*/

  $("#afdrukken").click(function () {

    // track deze actie in Analytics	
    pageTracker._trackPageview("/calculator/download_calculatie");

    document.financiering.action = "/asp/pdfrenderer.asp?xslfo=afdrukken_pdf.xsl"
    document.financiering.appactie.value = "afdrukken";
    document.financiering.target = "afdrukversie";
    //    window.open("", "afdrukversie", "width=900,height=720,scrollbars");
    document.financiering.submit();
    return false; // voer verder niets uit, de href dus niet
  });

  $("#prospectus").click(function () {

    // track deze actie in Analytics	
    pageTracker._trackPageview("/calculator/download_prospectus");

    switch (soortProduct) {
      case "huurkoop":
        if ($("input[name='isprofessional']:checked").val() == 'true') // is zakelijk
        // er is geen zakelijk brochure, eerder wordt de knop ook verborgen igv zakelijke calculatie
          $(this).attr({
            href: "",
            target: "_blank"
          });
        else //  is particulier
          $(this).attr({
            href: "http://www.averus.nl/Particulier/~/media/Pdf/Averus%20Classic%20%20niet%20doorlopend%20krediet%20%20prospectus.ashx", // betaalplan
            target: "_blank"
          });
        break
      case "doorlopendkrediet":
        $(this).attr({
          href: "http://www.averus.nl/Particulier/~/media/Pdf/Averus%20Classic%20%20niet%20doorlopend%20krediet%20%20prospectus.ashx", // continue rekening
          target: "_blank"
        });
        break
    }
  });

  $("#belmij_dag").change(function () {

    var waarde;
    waarde = $(this).val()

    //  28-08-2008
    //  dd-mm-jjjj
    //  0123456789

    var dtm = new Date(waarde.substring(3, 5) + "/" + waarde.substring(0, 2) + "/" + waarde.substring(6));

    if (dtm.getDayName() == "Zondag")
      alert("Kies een werkdag, wij zijn geopend van maandag t/m zaterdag.");
  });

  $("#verstuur_belmij").click(function () {
    // track deze actie in Analytics	
    pageTracker._trackPageview("/calculator/bel_mij");
    var loOk = true;

    if ($("#belmij_naam").val() == "") {
      $("#belmij_naam").siblings("label").addClass("error")
      loOk = false;
    }
    else $("#belmij_naam").siblings("label").removeClass("error")
    if ($("#belmij_telefoon").val() == "") {
      $("#belmij_telefoon").siblings("label").addClass("error")
      loOk = false;
    }
    else $("#belmij_telefoon").siblings("label").removeClass("error")

    if (loOk == true) {
      var postform;
      $(":input").each(function () {
        if ($(this).attr("name") != "disclaimer")
          postform += "&" + $(this).attr("name") + "=" + $(this).val();
      });

      $.ajax({
        type: "POST",
        url: "/asp/pdfrenderer_save_mail.asp?appactie=belmij&disclaimer=" + $("#disclaimer").val(),
        data: postform,
        beforeSend: function () {
          $("#verstuur_belmij").attr("disabled", "disabled");
          $("#blok_belmij > div").animate({ opacity: 0.4 }, 500);
        },
        success: function (response) {

          $("#blok_belmij > div").animate({ opacity: 1 }, 50);
          $("#blok_belmij > div").html("");

          if (response == "0") // mail verstuurd
          {
            $("#blok_belmij > div").append("<p><strong>Uw terugbel verzoek is naar ons verzonden. Wij trachten u op het door u aangegeven moment terug te bellen. Bedankt voor uw interesse.<strong></p>");
          }
          else {
            $("#blok_belmij > div").append("<p class='error'><strong>Er is een probleem met de verzending van het formulier. Uw gegevens zijn niet correct ontvangen.</strong></p>");
          }
        },
        error: function (requestobject, errortype, exeptionobject) {
          $("#blok_belmij > div").html("");
          $("#blok_belmij > div").append("<p class='error'>Er is een probleem met de verzending van het formulier. Uw gegevens zijn niet correct ontvangen.</p>");
          fuVerstuurError("Alcredis Webcalculator", "main_finance.js", "666", "Probleem met de response van pdfrenderer_save_mail.asp?appactie=belmij bij het versturen van een bel mij formulier naar Alcredis");
        }
      });
    }
  });

  $("#verstuur_berekeningmailen").click(function () {
    // track deze actie in Analytics	
    pageTracker._trackPageview("/calculator/berekening_mailen");
    var loOk = true;
    // naam moet gevuld zijn
    if ($("#berekeningmailen_naam").val() == "") {
      $("#berekeningmailen_naam").siblings("label").addClass("error")
      loOk = false;
    }
    else $("#berekeningmailen_naam").siblings("label").removeClass("error")
    // e-mailadres moet gevuld zijn
    if ($("#emailadres").val() == "") {
      $("#emailadres").siblings("label").addClass("error")
      loOk = false;
    }
    else $("#emailadres").siblings("label").removeClass("error")
    // bevestig emailadres moet gevuld zijn
    if ($("#bevestigemailadres").val() == "") {
      $("#bevestigemailadres").siblings("label").addClass("error")
      loOk = false;
    }
    else $("#bevestigemailadres").siblings("label").removeClass("error")

    // emailadressen moeten overeen komen, alleen testen als beide gevuld zijn
    if (loOk == true) {
      if ($("#bevestigemailadres").val() != $("#emailadres").val()) {
        $("#emailadres").siblings("label").addClass("error")
        $("#bevestigemailadres").siblings("label").addClass("error")
        loOk = false;
      }
      else {
        $("#bevestigemailadres").siblings("label").removeClass("error")
        $("#emailadres").siblings("label").removeClass("error")
      }
    }


    if (loOk == true) {

      var postform;
      $("form").find("input").each(function () {
        if ($(this).attr("name") != "disclaimer")
          postform += "&" + $(this).attr("name") + "=" + $(this).val();
      });

      $.ajax({
        type: "POST",
        url: "/asp/pdfrenderer_save_mail.asp?appactie=berekeningmailen&disclaimer=" + $("#disclaimer").val(),
        data: postform,
        beforeSend: function () {
          $("#verstuur_berekeningmailen").attr("disabled", "disabled");
          $("#blok_berekeningmailen > div").animate({ opacity: 0.4 }, 500);
        },
        success: function (response) {
          // tel het aantal berekening op dat verstuurd is om correcte melding te kunnen geven verderop
          inTellerAantalBerekeningenVerstuurd++;

          if (response == "0") // mail verstuurd
          {
            if (inTellerAantalBerekeningenVerstuurd == 1)
              $("#blok_berekeningmailen > div").append("<br/><strong class='accent'>Uw berekening is naar u verzonden per e-mail. Bedankt voor uw interesse.</strong>");
            else
              $("#blok_berekeningmailen > div").append("<br/><strong class='accent'>Er is nog een berekening naar u verzonden per e-mail.</strong>");
          }
          else {
            $("#blok_berekeningmailen > div").append("<p class='error'>Er is een probleem met de verzending van het formulier. Uw gegevens zijn niet correct ontvangen.</p>");
          }

          $("#verstuur_berekeningmailen").removeAttr("disabled");

          // maak velden leeg
          $("#berekeningmailen_naam, #emailadres, #bevestigemailadres").val("");

          $("#blok_berekeningmailen > div").animate({ opacity: 1 }, 500);

        },
        error: function (requestobject, errortype, exeptionobject) {
          $("#blok_berekeningmailen > div").html("");
          $("#blok_berekeningmailen > div").append("<p class='error'>Er is een probleem met de verzending van het formulier. Uw gegevens zijn niet correct ontvangen.</p>");
          fuVerstuurError("Alcredis Webcalculator", "main_finance.js", "777", "Probleem met de response van pdfrenderer_save_mail.asp?appactie=berekeningmailen bij het versturen van een financieringsberekening naar een Alcredis klant");
        }
      });
    }
  });

  $("#verstuur_aanvraagindienen").click(function () {
    // track deze actie in Analytics	
    pageTracker._trackPageview("/calculator/aanvraag_indienen");
    var loOk = true;

    if ($("#aanvraagindienen_naam").val() == "") {
      $("#aanvraagindienen_naam").siblings("label").addClass("error")
      loOk = false;
    }
    else $("#aanvraagindienen_naam").siblings("label").removeClass("error")
    if ($("#aanvraagindienen_telefoon").val() == "") {
      $("#aanvraagindienen_telefoon").siblings("label").addClass("error")
      loOk = false;
    }
    else $("#aanvraagindienen_telefoon").siblings("label").removeClass("error")

    if (loOk == true) {
      var postform;
      $("form").find("input").each(function () {
        if ($(this).attr("name") != "disclaimer")
          postform += "&" + $(this).attr("name") + "=" + $(this).val();
      });
      $.ajax({
        type: "POST",
        url: "/asp/pdfrenderer_save_mail.asp?appactie=aanvraagindienen&disclaimer=" + $("#disclaimer").val(),
        data: postform,
        beforeSend: function () {
          $("#verstuur_aanvraagindienen").attr("disabled", "disabled");
          $("#blok_aanvraagindienen > div").animate({ opacity: 0.4 }, 500);
        },
        success: function (response) {

          $("#blok_aanvraagindienen > div").animate({ opacity: 1 }, 50);
          $("#blok_aanvraagindienen > div").html("");


          if (response == "0") // mail verstuurd
          {
            $("#blok_aanvraagindienen > div").append("<p><strong>Uw aanvraag is ingediend. Wij nemen contact met u op om de aanvraag definitief te maken. Bedankt voor uw interesse.</strong></p>");
          }
          else {
            $("#blok_aanvraagindienen > div").append("<p class='error'>Er is probleem met de verzending van het formulier. Uw gegevens zijn niet correct ontvangen.</p>");
          }

        },
        error: function (requestobject, errortype, exeptionobject) {
          $("#blok_aanvraagindienen > div").html("");
          $("#blok_aanvraagindienen > div").append("<p class='error'>Er is probleem met de verzending van het formulier. Uw gegevens zijn niet correct ontvangen.</p>");
          fuVerstuurError("Alcredis Webcalculator", "main_finance.js", "888", "Probleem met de response van pdfrenderer_save_mail.asp?appactie=aanvraagindienen bij het versturen van een aanvraagindienen formulier naar Alcredis.");
        }
      });
    }
  });
  //"#credit_amount,#term_amount,#final_term,#options_accs,#down_payment"
  $("#credit_amount_display,#credit_amount,#term_amount,#final_term,#down_payment").focus(function () {

    if ($(this).attr('class') != "input2text") {

      // unformat het bedrag, zodat het eenvoudig te editen is
      $(this).val(formatNumberNone($(this).val()));

      var o = this;
      if (o.setSelectionRange) {     /* DOM */
        setTimeout(function () { o.setSelectionRange(0, 0); }, 2);
      }
      else if (o.createTextRange) {    /* IE */
        var r = o.createTextRange();
        r.moveStart('textedit', -20);
        r.select();
      }
    }
  });
  //"#term_amount,#final_term,#options_accs,#down_payment,credit_amount"
  $("#credit_amount, #term_amount,#final_term,credit_amount, #down_payment, #credit_amount_display").blur(function () {
    // format het bedrag, zodat het leesbaar is als geldbedrag
    if ($(this).attr('id') != '#down_payment') {
      $(this).val(formatNumberComma($(this).val()));

    }
    /*fuUpdateAanbetaling();*/
    fuBerekenTeFinancierenBedrag();

  });

  // Controle aanbetaling niet boven de 45% van de aanschafwaarde


  // bereken het te financieren bedrag op basis van de opties en aanbetaling
  //"#credit_amount_display,#options_accs,#down_payment"
  /*$("#credit_amount, #down_payment").blur(function(){
  fuUpdateAanbetaling();
  fuBerekenTeFinancierenBedrag();
  });		
	
  $('#credit_amount_display').blur(function() {	  
  fuUpdateAanbetaling();
  $(this).val(formatCurrency($(this).val()));
  fuBerekenTeFinancierenBedrag();
  });*/

  $(".infotekst").hide();



  /*
  * is er maar 1 product, dan click uitvoeren of particulier of zakelijk (afhankelijk wat het product is), keuze niet tonen 
  */
  if (arrayProducts.length == 1) {
    if (arrayProducts[0].business == true) {
      $("input[name='isprofessional'][value='false']").attr("checked", "checked")
      $("input[name='isprofessional'][value='true']").trigger("click");
      $("#tr_isprofessional").hide();
    }
    else {
      $("input[name='isprofessional'][value='false']").attr("checked", "checked")
      $("input[name='isprofessional'][value='false']").trigger("click");
      $("#tr_isprofessional").hide();
    }
  }

  /* 
  * is er geen bpm en btw meegegeven, dan keuze particulier en zakelijk niet tonen, alleen particulier mogelijk (aanname is dat bedrag dan incl btw is, bijv vanaf motoren zoeker)
  */
  if ($("#vat").val() == '0') {
    $("#tr_isprofessional").hide();
    $("input[name='isprofessional'][value='false']").attr("checked", "checked")
    $("input[name='isprofessional'][value='false']").trigger("click");
  }
  else if ($("#vat").val() == '') {
    $("#wrapper").hide()
    alert("Foutmelding: Er is geen BTW bedrag meegegeven.")
  }
});
/*
function fuUpdateAanbetaling(){

  if ($("#down_payment").val().indexOf(',') != -1){
    temp = $("#down_payment").val().split(',');
    var aanbetaling_strip = stripNonNumeric(temp[0]);
  }else if ($("#down_payment").val().indexOf('.') != -1){
    temp = $("#down_payment").val().split('.');
    var aanbetaling_strip = temp[0];
  }else {
    var aanbetaling_strip = stripNonNumeric($("#down_payment").val());  
  }    
  var aanschaf_strip = stripNonNumeric($('#credit_amount_display').val());
  var limiet = (aanschaf_strip * 0.45);
   
  
  if(aanbetaling_strip > (aanschaf_strip * 0.45) )
	{
	  $("#down_payment").val(Math.round(limiet)); 
	  $('#tr_down_payment td span').css('display', 'inline');
	  $("#down_payment").fadeOut('fast', function() { $("#down_payment").addClass('correctie'); } );		  
	  $("#down_payment").fadeIn('fast');		  
	}else
	{
	  $("#down_payment").val(aanbetaling_strip);	
	  $('#tr_down_payment td span').css('display', 'none');
	  $("#down_payment").removeClass('correctie');
	}		
		
		$("#down_payment").val(formatCurrency($("#down_payment").val()));  
		
}
*/
function fuHideVelden() {
	$("#tr_credit_amount").hide();
	//$("#credit_amount").clearFields();	
	
	//$("#tr_options_accs").hide();
	
	$("#tr_down_payment").hide();
	//$("#down_payment").clearFields();
		
	$("#tr_final_term").hide();
	//$("#final_term").clearFields();
	
	$("#tr_term").hide();
	//$("#term").clearFields();
		
	$("#tr_term_amount").hide();
	//$("#term_amount").clearFields();
		
	$("#tr_bereken_financiering").hide();		
	$("#tr_error").hide();		
	$("#calc_blok_bottom").hide();

	//$("#info_over_berekening_tekst").hide();
	
}
function fuClearVelden() {
	//$("#options_accs").val(formatCurrency("0"));
  $('#down_payment').val(formatNumberComma($('#down_payment').val()));
  $('#final_term').val(formatNumberComma($('#final_term').val()));
  $('#credit_amount').val(formatNumberComma($('#credit_amount').val()));
  $('#term_amount').val(formatNumberComma($('#term_amount').val()));
}
function fuDoeFormatCurrency(pichBedrag, piinMode, piinAantalDigits) {
    var chBedrag;

    chBedrag = pichBedrag;
    chBedrag = chBedrag + ""; // maar er een string van, anders werkt replace niet

    // kijk of er cijfers achter de komma zijn in het berekening
    // is het een heel bedrag, zet er dan ,00 achter. 
    // er wordt een split gedaan obv de komma, als die er dus niet is
    // gaat het mis.
    if (chBedrag.indexOf(',') == -1) {
        chBedrag = chBedrag + ",00";
    }
    
    chBedrag = chBedrag.replace(".", ",");
    if (piinMode != 2) {
        chBedrag = formatCurrency(chBedrag);
    }
    else {
        var newValue = '';
        var value = chBedrag;
        if (value.indexOf(',') > -1) {
            value = value.split(',');
        }
        else {
            // in sommige gevallen komt er een heel getal terug, de bovenstaande split is dan niet afgegaan
            // de rest van de functie behandeld value als een array, in de else wordt dus een arra
            value = [value, ''];
        }
        if (value[0].length < 4) {
            newValue = value[0];
        }
        else {
            newValue = value[0].substring(0, value[0].length - 3) + "." + value[0].substring(value[0].length - 3);
        }
        if (value[1].length == 1 && piinAantalDigits != 1)  // igv 1 digit, bijv bij percentage, dan niet de nul erachter plakken
            value[1] = value[1] + "0";
        if (value[1] == "") {
            value[1] = "00";
        }
        chBedrag = newValue + "," + value[1];
    }
    return chBedrag;
}
function fuBerekenTeFinancierenBedrag() {
	var inLocalCreditAmountCurrent;
	var inLocalDownPayment;
	//var inLocalOptionsAccessoires;
	var inCalculatedCreditAmount
	var inPercentageVanCreditAmount


	inLocalCreditAmountCurrent = formatNumberNone($("#credit_amount_current").val());
	inLocalDownPayment = formatNumberNone($("#down_payment").val());
	inLocalOptionsAccessoires = formatNumberNone($("#options_accs").val());

	if (inLocalCreditAmountCurrent != "")
	  inLocalCreditAmountCurrent = parseInt(inLocalCreditAmountCurrent)
	else
	  inLocalCreditAmountCurrent = 0;

	if (inLocalDownPayment != "")
	  inLocalDownPayment = parseInt(inLocalDownPayment);
	else
	  inLocalDownPayment = 0;

	//if(inLocalOptionsAccessoires != "")		
		//inLocalOptionsAccessoires = parseInt(inLocalOptionsAccessoires);
	//else
		//inLocalOptionsAccessoires = 0;	
	
	inCalculatedCreditAmount = inLocalCreditAmountCurrent - inLocalDownPayment;// + inLocalOptionsAccessoires;
	if(inCalculatedCreditAmount < 0)
		$("#credit_amount").val("0");
	else 
		$("#credit_amount").val(inCalculatedCreditAmount);

	// bereken slotwaarde / inruilwaard igv goedhart
	// hier wordt gerekend met de 'catalogus waarde' van de motor, niet het te financieren bedrag	
	inPercentageVanCreditAmount = inLocalCreditAmountCurrent / 100 * inruilPercentage;

	$("#final_term").val(Math.floor(inPercentageVanCreditAmount/100)*100);
	// wegschrijven naar het view veld
	$("#final_term_alt").val(formatNumberComma($("#final_term").val()));

  $('#credit_amount').val(formatNumberComma($('#credit_amount').val()));
	
}

