
/**
 * Automatic trigger lightbox dialog and submit form function based on jQuery selector.
 * The selector should reference a lightbox link (rel="ajax-dialog").
 * The target (page) of the link will be displayed as lightbox.
 * We need to check if the lightbox event handling is bound to this link, if not, we wait for a certain time for the framework to kick in.
 *
 * Example to be used in forms:
 *
 * <a href="SOMEURL" rel="ajax-dialog" id="loadresultslink">SOME LINK TEXT</a>
 * <script type="text/javascript">jQuery(document).ready(function(){autoDialogAndSubmit('#loadresultslink');});</script>
 *
 * @jquerySelector selector in jQuery syntax, should reference a lightbox link (rel="ajax-dialog").
 * @return VOID lightbox and form submit is triggered.
 */
var CycleADAS = 0;
function autoDialogAndSubmit(jquerySelector) {

    if (jQuery(jquerySelector).length > 0 && !jQuery(jquerySelector).parents('div:first').hasClass('displayNone')) {

        CycleADAS = CycleADAS + 1;
        var dialogBound = false;
        try {
            for (var i=0; i < jQuery(jquerySelector).data('events').click.length; i++) {
                var clickmethod = $(jquerySelector).data('events').click[i];
                if (clickmethod.handler.toString().indexOf('self.dialog.show') != -1) {
                    dialogBound = true;
                }
            }
        } catch(e) {
            // Error caught because no events data could be found
            // This should only happen if the framework has not executed any event bindings at this moment.
            // For sure we know dialog is not bound
            dialogBound = false;
        }

        if (dialogBound || CycleADAS > 10) {
            jQuery("form.nn_form :input:[type != 'hidden']:not(button)").live("IAF_ShowError", function(event, arr) {
              if (jQuery(".ajax-dialog").length > 0) {
                jQuery(".ajax-dialog").find(".close-button").click();
              }
            });
            
            jQuery(jquerySelector).click();
            // Delay form submit a little for better viewing experience
            var t1 = setTimeout(function(){ jQuery(jquerySelector).parents('form:first').submit();}, 500);
        } else {
            var t2 = setTimeout(function(){ autoDialogAndSubmit(jquerySelector);}, 100);
        }
    }
}




// Fix for IE8's javascript version not supporting 'indexOf'
// Add ECMA262-5 Array methods if not supported natively
//
if (!('indexOf' in Array.prototype)) {
    Array.prototype.indexOf= function(find, i /*opt*/) {
        if (i===undefined) i= 0;
        if (i<0) i+= this.length;
        if (i<0) i= 0;
        for (var n= this.length; i<n; i++)
            if (i in this && this[i]===find)
                return i;
        return -1;
    };
}

/**
 * Toggles (enables or disables) the the hidden input field with the name and value provided.
 * 
 * @param facetValuesHiddenFieldName The name of the hidden input field.
 * @param facetValue The value of the hidden input field.
 */
function toggleFacetItem(facetValuesHiddenFieldName, facetValue) {
  var facetValueHiddenFieldSelector = "input[type='hidden'][name='" + facetValuesHiddenFieldName + "'][value='" + facetValue + "']";
  var facetValueHiddenField = $(facetValueHiddenFieldSelector);
  
  var disabledAttribute = "disabled";
  var facetValueDisabled = facetValueHiddenField.attr(disabledAttribute);
  if (facetValueDisabled) {
    facetValueHiddenField.removeAttr(disabledAttribute);
  } else {
    facetValueHiddenField.attr(disabledAttribute, disabledAttribute);
  }
};

/***********************************************
* IFrame SSI script II- © Dynamic Drive DHTML code library (http://www.dynamicdrive.com)
* Visit DynamicDrive.com for hundreds of original DHTML scripts
* This notice must stay intact for legal use
***********************************************/

//Should script hide iframe from browsers that don't support this script (non IE5+/NS6+ browsers. Recommended):
var iframehide="yes"

var getFFVersion=navigator.userAgent.substring(navigator.userAgent.indexOf("Firefox")).split("/")[1]
var minimalHeight=300;

function resizeCaller( frameid ) 
{
  if (document.getElementById)
  {
    resizeIframe(frameid);
  }
  //reveal iframe for lower end browsers? (see var above):
  if ((document.all || document.getElementById) && iframehide=="no")
  {
    var tempobj=document.all? document.all[frameid] : document.getElementById(frameid)
    tempobj.style.display="block";
  }
}

function resizeIframe( frameid )
{
  var currentfr=document.getElementById(frameid)
  var computedHeight = 0;
  var mainTableHeight = 0;
  try {
    if (currentfr && !window.opera)
    {
      currentfr.style.display="block";
      if ( currentfr.contentDocument ) //ns6 syntax
      {     
        if( currentfr.contentDocument.body.offsetHeight )
        {
          computedHeight = currentfr.contentDocument.body.offsetHeight; 
        } 
        if( currentfr.contentDocument.getElementById("main-content") )
        {
          mainTableHeight = currentfr.contentDocument.getElementById("main-content").scrollHeight;
        } 
      }
      // else if (currentfr.contentWindow.document && currentfr.document.body.scrollHeight) //ie5+ syntax
      else if ( currentfr.contentWindow.document ) //ie5+ syntax
      {
        if( currentfr.contentWindow.document.body.scrollHeight )
        {
          computedHeight = currentfr.contentWindow.document.body.scrollHeight;
        }
        if( currentfr.contentWindow.document.getElementById("main-content") )
        {
          mainTableHeight = currentfr.contentWindow.document.getElementById("main-content").scrollHeight;
        }
      }

      if( computedHeight > minimalHeight )
      {
        currentfr.height = computedHeight;
        try {
          currentfr.style.height = computedHeight + "px";
        } catch (err) {}
      }
      else if( mainTableHeight > minimalHeight )
      {
        currentfr.height = mainTableHeight;
        try {
          currentfr.style.height = mainTableHeight + "px";
        } catch (err) {}
      }
    }
  } catch (err) {}
}


function resizePoller( frameid, ix )
{
  if( true ) // ix < 300 ) // warning: unending loop
  {
    ix++;
    /* setTimeout syntax: expression, milliseconds (no terminating ;) */
    var command = "resizeIframe('" + frameid + "'); resizePoller('" + frameid + "'," + ix + ");";
    /* alert(command); */
    setTimeout( command, 1000 )
  }
}


function readjustIframe(loadevt) 
{
  var crossevt=(window.event)? event : loadevt
  var iframeroot=(crossevt.currentTarget)? crossevt.currentTarget : crossevt.srcElement
  if (iframeroot)
  resizeIframe(iframeroot.id);
}

function loadintoIframe(iframeid, url)
{
  if (document.getElementById)
  document.getElementById(iframeid).src=url
}

// Function for NN SAFs 
// Disables the checkboxes for the "employer" forms when a checkbox of the "employee" forms has been checked and vice versa.
var module3selector = '.moduledrie input[type=checkbox]';
var module45selector = '.moduleviervijf input[type=checkbox]';

function togglemodules () {
  var moduledrie    = jQuery(module3selector + ":checked").length;
  var moduleviervijf  = jQuery(module45selector + ":checked").length;

  if (moduledrie == 0 && moduleviervijf == 0) {
    jQuery(module3selector).removeAttr('disabled');
    jQuery(module45selector).removeAttr('disabled');
  } else {
    if (moduledrie > 0) {
      jQuery(module45selector).attr('checked', false);    
      jQuery(module45selector).attr('disabled', 'disabled');
    }
    if (moduleviervijf > 0) {
      jQuery(module3selector).attr('checked', false);   
      jQuery(module3selector).attr('disabled', 'disabled');
    } 
  }
}
$(document).ready(function() {
  $(module3selector).bind('click', togglemodules);
  $(module45selector).bind('click', togglemodules);

  /* add selected classname on the gender radio button which is selected when loading the page. */
  $('.gender-selection-field input[type=radio]:checked + label').addClass('selected');
  
});
function showBarGraphD(data) {
  var params = new Array();

  if(data.intro !== undefined && data.intro != null) {
    params["intro"] = data.intro;
  }

  params["barGraph"] = new Array();

  if(data.heading !== undefined && data.heading != null) {
    params["barGraph"]["heading"] = data.heading;
  }

  if(data.deposit !== undefined && data.deposit != null) {
    params["barGraph"]["deposit"] = formatTotalAmount(data.deposit);
  }

  if(data.var_rate !== undefined && data.var_rate != null) {
    params["barGraph"]["variableInterest"] = new Array();
    params["barGraph"]["variableInterest"]["rate"] = formatRate(data.var_rate);
    if(data.var_amount !== undefined && data.var_amount != null) {
      params["barGraph"]["variableInterest"]["amount"] = formatTotalAmount(data.var_amount);
    }
    if(data.dialog !== undefined && data.dialog != null) {
      params["barGraph"]["variableInterest"]["dialog"] = "<h2></h2><p>" + data.dialog + "</p>";
    }
  }

  if(data.fix_rate !== undefined && data.fix_rate != null) {
    params["barGraph"]["fixedInterest"] = new Array();
    params["barGraph"]["fixedInterest"]["rate"] = formatRate(data.fix_rate);
    if(data.fix_amount !== undefined && data.fix_amount != null) {
      params["barGraph"]["fixedInterest"]["amount"] = formatTotalAmount(data.fix_amount);
    }
  }

  if(data.fic_rate !== undefined && data.fic_rate != null) {
    params["barGraph"]["fictitiousInterest"] = new Array();
    params["barGraph"]["fictitiousInterest"]["rate"] = formatRate(data.fic_rate);
    if(data.fic_amount !== undefined && data.fic_amount != null) {
      params["barGraph"]["fictitiousInterest"]["amount"] = formatTotalAmount(data.fic_amount);
    }
  }

  params["table"] = new Array();

  if(data.tool_name !== undefined && data.tool_name != null) {
    params["table"]["tool"] = data.tool_name;
  }

  if(data.variant !== undefined && data.variant != null) {
    params["table"]["variant"] = data.variant;
  }

  if(data.deposit !== undefined && data.deposit != null) {
    params["table"]["deposit"] = formatTotalAmount(data.deposit);
  }

  if(data.var_amount !== undefined && data.var_amount != null) {
    params["table"]["variableInterestAmount"] = formatTotalAmount(data.var_amount);
  }

  if(data.fix_amount !== undefined && data.fix_amount != null) {
    params["table"]["fixedInterestAmount"] = formatTotalAmount(data.fix_amount);
  }
  
  params["copies"] = new Array();
  params["copies"]["pdfLink"] = '/web/wcbservlet/com.gxwebmanager.solutions.pdfformhandlers.pdfservlet?filename=duurverlenger.pdf';
  params["copies"]["pdfSize"] = '55Kb';
  emailLink = '/emailberekening.html';
  if ($("#emailberekening").length > 0 && $("#emailberekening").attr("href") != '') {
    emailLink = $("#emailberekening").attr("href");
  }
  params["copies"]["emailLink"] = emailLink;


  //nn.api.banksparen.resultColumn.lock();
  nn.api.banksparen.resultColumn.update(params, true);
  nn.api.banksparen.resultColumn.unlock();
  gxAjaxGeneralCallback('.copies');
    
  //API-voorbeeld voor openklappen fictieve rente-sectie                    
  nn.api.banksparen.fictitiousInterestSection.open();
}

function showBarGraphO1(data) {
  var params = new Array();

  if(data.intro !== undefined && data.intro != null) {
    params["intro"] = data.intro;
  }

  params["barGraph"] = new Array();

  if(data.heading !== undefined && data.heading != null) {
    params["barGraph"]["heading"] = data.heading;
  }

  if(data.deposit !== undefined && data.deposit != null) {
    params["barGraph"]["deposit"] = formatTotalAmount(data.deposit);
  }

  if(data.var_rate !== undefined && data.var_rate != null) {
    params["barGraph"]["variableInterest"] = new Array();
    params["barGraph"]["variableInterest"]["rate"] = formatRate(data.var_rate);
    if(data.var_amount !== undefined && data.var_amount != null) {
      params["barGraph"]["variableInterest"]["amount"] = formatTotalAmount(data.var_amount);
    }  
    if(data.initial_deposit !== undefined && data.initial_deposit != null) {
      params["barGraph"]["variableInterest"]["initialDepositAmount"] = formatTotalAmount(data.initial_deposit);
    }  
    if(data.dialog !== undefined && data.dialog != null) {
      params["barGraph"]["variableInterest"]["dialog"] = "<h2></h2><p>" + data.dialog + "</p>";
    }
  }

  if(data.fix_rate !== undefined && data.fix_rate != null) {
    params["barGraph"]["fixedInterest"] = new Array();
    params["barGraph"]["fixedInterest"]["rate"] = formatRate(data.fix_rate);
    if(data.fix_amount !== undefined && data.fix_amount != null) {
      params["barGraph"]["fixedInterest"]["amount"] = formatTotalAmount(data.fix_amount);
    }
  }

  if(data.fic_rate !== undefined && data.fic_rate != null) {
    params["barGraph"]["fictitiousInterest"] = new Array();
    params["barGraph"]["fictitiousInterest"]["rate"] = formatRate(data.fic_rate);
    if(data.fic_amount !== undefined && data.fic_amount != null) {
      params["barGraph"]["fictitiousInterest"]["amount"] = formatTotalAmount(data.fic_amount);
    }
  }

  params["table"] = new Array();

  if(data.tool_name !== undefined && data.tool_name != null) {
    params["table"]["tool"] = data.tool_name;
  }

  if(data.variant !== undefined && data.variant != null) {
    params["table"]["variant"] = data.variant;
  }

  if(data.deposit !== undefined && data.deposit != null) {
    params["table"]["deposit"] = formatTotalAmount(data.deposit);
  }

  if(data.var_amount !== undefined && data.var_amount != null) {
    params["table"]["variableInterestAmount"] = formatTotalAmount(data.var_amount);
  }

  if(data.savings !== undefined && data.savings != null) {
    params["table"]["savings"] = formatTotalAmount(data.savings);
  } else {
    if(data.fix_amount !== undefined && data.fix_amount != null) {
      params["table"]["fixedInterestAmount"] = formatTotalAmount(data.fix_amount);
    }
  }  

  params["copies"] = new Array();
  if(data.tool_name == 'opbouw') {
    params["copies"]["pdfLink"] = '/web/wcbservlet/com.gxwebmanager.solutions.pdfformhandlers.pdfservlet?filename=opbouw.pdf';
  } else if(data.tool_name == 'combinatie') {
    params["copies"]["pdfLink"] = '/web/wcbservlet/com.gxwebmanager.solutions.pdfformhandlers.pdfservlet?filename=combinatie.pdf';
  }
  params["copies"]["pdfSize"] = '55Kb';
  emailLink = '/emailberekening.html';
    if ($("#emailberekening").length > 0 && $("#emailberekening").attr("href") != '') {
      emailLink = $("#emailberekening").attr("href");
    }
  params["copies"]["emailLink"] = emailLink;


  //nn.api.banksparen.resultColumn.lock();
  nn.api.banksparen.resultColumn.update(params, true);
  nn.api.banksparen.resultColumn.unlock();
  gxAjaxGeneralCallback('.copies');
  
  //API-voorbeeld voor openklappen fictieve rente-sectie                    
  nn.api.banksparen.fictitiousInterestSection.open();
}

function showBarGraphO2(data) {
  var params = new Array();

  if(data.intro !== undefined && data.intro != null) {
    params["intro"] = data.intro;
  }

  params["barGraph"] = new Array();

  if(data.heading !== undefined && data.heading != null) {
    params["barGraph"]["heading"] = data.heading;
  }

  if(data.deposit !== undefined && data.deposit != null) {
    params["barGraph"]["deposit"] = formatTotalAmount(data.deposit);
  }

  if(data.var_rate !== undefined && data.var_rate != null) {
    params["barGraph"]["variableInterest"] = new Array();
    params["barGraph"]["variableInterest"]["rate"] = formatRate(data.var_rate);
    if(data.var_amount !== undefined && data.var_amount != null) {
      params["barGraph"]["variableInterest"]["amount"] = formatTotalAmount(data.var_amount);
    }  
    if(data.initial_deposit !== undefined && data.initial_deposit != null) {
      params["barGraph"]["variableInterest"]["initialDepositAmount"] = formatTotalAmount(data.initial_deposit);
    }  
    if(data.dialog !== undefined && data.dialog != null) {
      params["barGraph"]["variableInterest"]["dialog"] = "<h2></h2><p>" + data.dialog + "</p>";
    }
  }

  if(data.fic_rate !== undefined && data.fic_rate != null) {
    params["barGraph"]["fictitiousInterest"] = new Array();
    params["barGraph"]["fictitiousInterest"]["rate"] = formatRate(data.fic_rate);
    if(data.fic_amount !== undefined && data.fic_amount != null) {
      params["barGraph"]["fictitiousInterest"]["amount"] = formatTotalAmount(data.fic_amount);
    }
  }

  params["table"] = new Array();

  if(data.tool_name !== undefined && data.tool_name != null) {
    params["table"]["tool"] = data.tool_name;
  }

  if(data.variant !== undefined && data.variant != null) {
    params["table"]["variant"] = data.variant;
  }

  if(data.deposit !== undefined && data.deposit != null) {
    params["table"]["initialDeposit"] = formatTotalAmount(data.deposit);
  }

  if(data.var_amount !== undefined && data.var_amount != null) {
    params["table"]["variableInterestAmount"] = formatTotalAmount(data.var_amount);
  }
  
  
  if(data.monthly_deposit !== undefined && data.monthly_deposit != null) {    
    params["table"]["monthlyDeposit"] = data.monthly_deposit;
  }

  params["copies"] = new Array();
  params["copies"]["pdfLink"] = '/web/wcbservlet/com.gxwebmanager.solutions.pdfformhandlers.pdfservlet?filename=opbouw.pdf';
  params["copies"]["pdfSize"] = '55Kb';
  emailLink = '/emailberekening.html';
  if ($("#emailberekening").length > 0 && $("#emailberekening").attr("href") != '') {
    emailLink = $("#emailberekening").attr("href");
  }
  params["copies"]["emailLink"] = emailLink;

  //nn.api.banksparen.resultColumn.lock();
  nn.api.banksparen.resultColumn.update(params, true);
  nn.api.banksparen.resultColumn.unlock();
  gxAjaxGeneralCallback('.copies');
  
  //API-voorbeeld voor openklappen fictieve rente-sectie                    
  nn.api.banksparen.fictitiousInterestSection.open();
}


function showBarGraphO3(data) {
  var params = new Array();

  if(data.intro !== undefined && data.intro != null) {
    params["intro"] = data.intro;
  }

  params["barGraph"] = new Array();

  if(data.heading !== undefined && data.heading != null) {
    params["barGraph"]["heading"] = data.heading;
  }

  if(data.total_deposit !== undefined && data.total_deposit != null) {
    params["barGraph"]["deposit"] = formatTotalAmount(data.total_deposit);
  }

  if(data.var_rate !== undefined && data.var_rate != null) {
    params["barGraph"]["variableInterest"] = new Array();
    params["barGraph"]["variableInterest"]["rate"] = formatRate(data.var_rate);
    if(data.var_amount !== undefined && data.var_amount != null) {
      params["barGraph"]["variableInterest"]["amount"] = formatTotalAmount(data.var_amount);
    }  
    if(data.initial_deposit !== undefined && data.initial_deposit != null) {
      params["barGraph"]["variableInterest"]["initialDepositAmount"] = formatTotalAmount(data.initial_deposit);
    }  
    if(data.dialog !== undefined && data.dialog != null) {
      params["barGraph"]["variableInterest"]["dialog"] = "<h2></h2><p>" + data.dialog + "</p>";
    }
  }
  
  if(data.fic_rate !== undefined && data.fic_rate != null) {
    params["barGraph"]["fictitiousInterest"] = new Array();
    params["barGraph"]["fictitiousInterest"]["rate"] = formatRate(data.fic_rate);
    if(data.fic_amount !== undefined && data.fic_amount != null) {
      params["barGraph"]["fictitiousInterest"]["amount"] = formatTotalAmount(data.fic_amount);
    }
    if(data.initial_deposit !== undefined && data.initial_deposit != null) {
      params["barGraph"]["fictitiousInterest"]["initialDepositAmount"] = formatTotalAmount(data.initial_deposit);
    } 
  }

  params["table"] = new Array();

  if(data.tool_name !== undefined && data.tool_name != null) {
    params["table"]["tool"] = data.tool_name;
  }

  if(data.variant !== undefined && data.variant != null) {
    params["table"]["variant"] = data.variant;
  }

  if(data.initial_deposit !== undefined && data.initial_deposit != null) {
    params["table"]["initialDeposit"] = formatTotalAmount(data.initial_deposit);
  } 

  if(data.total_periodical_deposit !== undefined && data.total_periodical_deposit != null) {
    params["table"]["totalPeriodicalDeposit"] = formatTotalAmount(data.total_periodical_deposit);
  }

  if(data.periodical_deposit !== undefined && data.periodical_deposit != null) {
    params["table"]["periodicalDeposit"] = formatTotalAmount(data.periodical_deposit);    
  }

  if(data.periodical_deposit_period !== undefined && data.periodical_deposit_period != null) {
    params["table"]["periodicalDepositPeriod"] = data.periodical_deposit_period;
  }

  if(data.total_deposit !== undefined && data.total_deposit != null) {
    params["table"]["totalDeposit"] = formatTotalAmount(data.total_deposit);
  }

  if(data.savings !== undefined && data.savings != null) {
    params["table"]["savings"] = formatTotalAmount(data.savings);
  }

  params["copies"] = new Array();
  params["copies"]["pdfLink"] = '/web/wcbservlet/com.gxwebmanager.solutions.pdfformhandlers.pdfservlet?filename=opbouw.pdf';
  params["copies"]["pdfSize"] = '55Kb';
  emailLink = '/emailberekening.html';
  if ($("#emailberekening").length > 0 && $("#emailberekening").attr("href") != '') {
    emailLink = $("#emailberekening").attr("href");
  }
  params["copies"]["emailLink"] = emailLink;
  
  //nn.api.banksparen.resultColumn.lock();
  nn.api.banksparen.resultColumn.update(params, true);
  nn.api.banksparen.resultColumn.unlock();
  gxAjaxGeneralCallback('.copies');
  
  //API-voorbeeld voor openklappen fictieve rente-sectie                    
  nn.api.banksparen.fictitiousInterestSection.open();
}

function showBarGraphU1(data) {
  var params = new Array();

  if(data.intro !== undefined && data.intro != null) {
    params["intro"] = data.intro;
  }

  params["barGraph"] = new Array();

  if(data.heading !== undefined && data.heading != null) {
    params["barGraph"]["heading"] = data.heading;
  }
 
  if(data.annuity !== undefined && data.annuity != null) {
    params["barGraph"]["fixedInterest"] = new Array();
    params["barGraph"]["fixedInterest"]["rate"] = formatRate(data.annuity);
    if(data.periodical_payment !== undefined && data.periodical_payment != null) {
      params["barGraph"]["fixedInterest"]["amount"] = formatTotalAmount(data.periodical_payment);
    } else if(data.payment !== undefined && data.payment != null) {
      params["barGraph"]["fixedInterest"]["amount"] = formatTotalAmount(data.payment);
    }
  }

  if(data.fic_rate !== undefined && data.fic_rate != null) {
    params["barGraph"]["fictitiousInterest"] = new Array();
    params["barGraph"]["fictitiousInterest"]["rate"] = formatRate(data.fic_rate);
    if(data.fic_amount !== undefined && data.fic_amount != null) {
      params["barGraph"]["fictitiousInterest"]["amount"] = formatTotalAmount(data.fic_amount);
    }
  }

  params["table"] = new Array();

  if(data.tool_name !== undefined && data.tool_name != null) {
    params["table"]["tool"] = data.tool_name;
  }

  if(data.variant !== undefined && data.variant != null) {
    params["table"]["variant"] = data.variant;
  }

  if(data.deposit !== undefined && data.deposit != null) {
    params["table"]["deposit"] = formatTotalAmount(data.deposit);
  }
  
  if(data.savings !== undefined && data.savings != null) {
    params["table"]["savings"] = formatTotalAmount(data.savings);
  }
  
  if(data.total_savings !== undefined && data.total_savings != null) {
    params["table"]["totalSavings"] = formatTotalAmount(data.total_savings);
  }
  
  if(data.payment !== undefined && data.payment != null) {
    params["table"]["payment"] = formatTotalAmount(data.payment);
  }
  
  if(data.periodical_payment !== undefined && data.periodical_payment != null) {
    params["table"]["periodicalPayment"] = formatTotalAmount(data.periodical_payment);
  }
  
  if(data.payment_period !== undefined && data.payment_period != null) {
    params["table"]["paymentPeriod"] = data.payment_period;
  }
  
  if(data.periodical_payment_period !== undefined && data.periodical_payment_period != null) {
      params["table"]["periodicalPaymentPeriod"] = data.periodical_payment_period;
  }
  
  if(data.balance !== undefined && data.balance != null) {
    params["table"]["balance"] = formatTotalAmount(data.balance);
  }
  
  params["copies"] = new Array();
  params["copies"]["pdfLink"] = '/web/wcbservlet/com.gxwebmanager.solutions.pdfformhandlers.pdfservlet?filename=uitkering.pdf';
  params["copies"]["pdfSize"] = '55Kb';
  emailLink = '/emailberekening.html';
  if ($("#emailberekening").length > 0 && $("#emailberekening").attr("href") != '') {
    emailLink = $("#emailberekening").attr("href");
  }
  params["copies"]["emailLink"] = emailLink;
  
  //nn.api.banksparen.resultColumn.lock();
  //nn.api.banksparen.resultColumn.clear();
  nn.api.banksparen.resultColumn.update(params, true);
  nn.api.banksparen.resultColumn.unlock();
  gxAjaxGeneralCallback('.copies');
  
  //API-voorbeeld voor openklappen fictieve rente-sectie                    
  nn.api.banksparen.fictitiousInterestSection.open();
}

function showBarGraphU2(data) {
  var params = new Array();

  if(data.intro !== undefined && data.intro != null) {
    params["intro"] = data.intro;
  }

  params["barGraph"] = new Array();

  if(data.heading !== undefined && data.heading != null) {
    params["barGraph"]["heading"] = data.heading;
  }
 
  if(data.annuity !== undefined && data.annuity != null) {
    params["barGraph"]["fixedInterest"] = new Array();
    params["barGraph"]["fixedInterest"]["rate"] = formatRate(data.annuity);
    if(data.necessary_amount !== undefined && data.necessary_amount != null) {
      params["barGraph"]["fixedInterest"]["amount"] = formatTotalAmount(data.necessary_amount);
    }
  }

  if(data.fic_rate !== undefined && data.fic_rate != null) {
    params["barGraph"]["fictitiousInterest"] = new Array();
    params["barGraph"]["fictitiousInterest"]["rate"] = formatRate(data.fic_rate);
    if(data.fic_amount !== undefined && data.fic_amount != null) {
      params["barGraph"]["fictitiousInterest"]["amount"] = formatTotalAmount(data.fic_amount);
    }
  }

  params["table"] = new Array();

  if(data.tool_name !== undefined && data.tool_name != null) {
    params["table"]["tool"] = data.tool_name;
  }

  if(data.variant !== undefined && data.variant != null) {
    params["table"]["variant"] = data.variant;
  }

  if(data.payment_per_period !== undefined && data.payment_per_period != null) {
    params["table"]["paymentPerPeroid"] = formatTotalAmount(data.payment_per_period);
  }
  
  if(data.necessary_amount !== undefined && data.necessary_amount != null) {
    params["table"]["necessaryAmount"] = formatTotalAmount(data.necessary_amount);
  }
  
  if(data.periodical_payment !== undefined && data.periodical_payment != null) {
    params["table"]["periodicalPayment"] = formatTotalAmount(data.periodical_payment);
  }
    
  if(data.payment_period !== undefined && data.payment_period != null) {
    params["table"]["paymentPeriod"] = data.payment_period;
  }
  
  if(data.periodical_payment_period !== undefined && data.periodical_payment_period != null) {
      params["table"]["periodicalPaymentPeriod"] = data.periodical_payment_period;
  }
    
  if(data.balance !== undefined && data.balance != null) {
    params["table"]["balance"] = formatTotalAmount(data.balance);
  }
  
  params["copies"] = new Array();
  params["copies"]["pdfLink"] = '/web/wcbservlet/com.gxwebmanager.solutions.pdfformhandlers.pdfservlet?filename=uitkering.pdf';
  params["copies"]["pdfSize"] = '55Kb';
  emailLink = '/emailberekening.html';
  if ($("#emailberekening").length > 0 && $("#emailberekening").attr("href") != '') {
    emailLink = $("#emailberekening").attr("href");
  }
  params["copies"]["emailLink"] = emailLink;

  //nn.api.banksparen.resultColumn.lock();
  nn.api.banksparen.resultColumn.update(params, true);
  nn.api.banksparen.resultColumn.unlock();
  gxAjaxGeneralCallback('.copies');
  
  //API-voorbeeld voor openklappen fictieve rente-sectie                    
  nn.api.banksparen.fictitiousInterestSection.open();
}

function showBarGraphMortgage(data) {
  var params = new Array();

  if(data.intro !== undefined && data.intro != null) {
    params["intro"] = data.intro;
  }

  params["barGraph"] = new Array();

  if(data.heading !== undefined && data.heading != null) {
    params["barGraph"]["heading"] = data.heading;
  }
  
  if(data.deposit !== undefined && data.deposit != null) {
    params["barGraph"]["deposit"] = formatTotalAmount(data.hypotheekbedrag);
  }
  
  if(data.rente !== undefined && data.rente != null) {
    params["barGraph"]["mortgage"] = new Array();
    params["barGraph"]["mortgage"]["rate"] = formatRate(data.rente);
    if(data.hypotheekbedrag !== undefined && data.hypotheekbedrag != null) {
      params["barGraph"]["mortgage"]["amount"] = formatTotalAmount(data.hypotheekbedrag);
    }
    if(data.dialog !== undefined && data.dialog != null) {
      params["barGraph"]["mortgage"]["dialog"] = "<h2></h2><p>" + data.dialog + "</p>";
    }
  }

  params["table"] = new Array();

  if(data.tool_name !== undefined && data.tool_name != null) {
    params["table"]["tool"] = data.tool_name;
  }

  if(data.variant !== undefined && data.variant != null) {
    params["table"]["variant"] = data.variant;
  }
    
  if(data.netto_maandlasten !== undefined && data.netto_maandlasten != null) {
    params["table"]["deposit"] = formatTotalAmount(data.netto_maandlasten);
    params["table"]["variableInterestAmount"] = formatTotalAmount(data.netto_maandlasten);
  }

  if(data.bruto_maandlasten !== undefined && data.bruto_maandlasten != null) {
    params["table"]["necessaryAmount"] = formatTotalAmount(data.bruto_maandlasten);
  }
  
  if(data.hypotheekbedrag !== undefined && data.hypotheekbedrag != null) {
    params["table"]["savings"] = formatTotalAmount(data.hypotheekbedrag);
  }
  
  params["copies"] = new Array();
  params["copies"]["pdfLink"] = '';
  params["copies"]["pdfSize"] = '55Kb';
  emailLink = '/emailberekening.html';
  if ($("#emailberekening").length > 0 && $("#emailberekening").attr("href") != '') {
    emailLink = $("#emailberekening").attr("href");
  }
  params["copies"]["emailLink"] = emailLink;  

  //nn.api.banksparen.resultColumn.lock();
  nn.api.banksparen.resultColumn.update(params, true);
  nn.api.banksparen.resultColumn.unlock();
  gxAjaxGeneralCallback('.copies');
  
  //als DIV met css class 'intro' links bevat, open die in een lighbox
  nn.handlers.initializeObjects($('.intro'));
  
  //API-voorbeeld voor openklappen banner sectie
  nn.api.banksparen.bannerSection.open();
}

function showBarGraphMonthlyCharges(data) {
  var params = new Array();

  if(data.intro !== undefined && data.intro != null) {
    params["intro"] = unescape(data.intro);
  }

  params["barGraph"] = new Array();

  if(data.heading !== undefined && data.heading != null) {
    params["barGraph"]["heading"] = data.heading;
  }
  
  if(data.deposit !== undefined && data.deposit != null) {
    params["barGraph"]["deposit"] = formatTotalAmount(data.hypotheekbedrag);
  }
  
  if(data.rente !== undefined && data.rente != null) {
    params["barGraph"]["grossMonthlyCharges"] = new Array();
    params["barGraph"]["grossMonthlyCharges"]["rate"] = formatRate(data.rente);
    if(data.netto_maandlasten !== undefined && data.netto_maandlasten != null) {
      params["barGraph"]["grossMonthlyCharges"]["amount"] = formatTotalAmount(data.bruto_maandlasten);
    }
    if(data.gross_dialog !== undefined && data.gross_dialog != null) {
      params["barGraph"]["grossMonthlyCharges"]["dialog"] = "<h2></h2><p>" + data.gross_dialog + "</p>";
    }
    
    params["barGraph"]["netMonthlyCharges"] = new Array();
    params["barGraph"]["netMonthlyCharges"]["rate"] = formatRate(data.rente);
    if(data.bruto_maandlasten !== undefined && data.bruto_maandlasten != null) {
      params["barGraph"]["netMonthlyCharges"]["amount"] = formatTotalAmount(data.netto_maandlasten);
    }
    if(data.net_dialog !== undefined && data.net_dialog != null) {
      params["barGraph"]["netMonthlyCharges"]["dialog"] = "<h2></h2><p>" + data.net_dialog + "</p>";
    }
  }

  params["table"] = new Array();

  if(data.tool_name !== undefined && data.tool_name != null) {
    params["table"]["tool"] = data.tool_name;
  }

  if(data.variant !== undefined && data.variant != null) {
    params["table"]["variant"] = data.variant;
  }
    
  if(data.netto_maandlasten !== undefined && data.netto_maandlasten != null) {
    params["table"]["deposit"] = formatTotalAmount(data.netto_maandlasten);
  }

  if(data.netto_maandlasten !== undefined && data.netto_maandlasten != null) {
    params["table"]["variableInterestAmount"] = formatTotalAmount(data.netto_maandlasten);
  }

  if(data.bruto_maandlasten !== undefined && data.bruto_maandlasten != null) {
    params["table"]["necessaryAmount"] = formatTotalAmount(data.bruto_maandlasten);
  }
  
  if(data.hypotheekbedrag !== undefined && data.hypotheekbedrag != null) {
    params["table"]["savings"] = formatTotalAmount(data.hypotheekbedrag);
  }
  
  params["copies"] = new Array();
  params["copies"]["pdfLink"] = '';
  params["copies"]["pdfSize"] = '55Kb';
  emailLink = '/emailberekening.html';
  if ($("#emailberekening").length > 0 && $("#emailberekening").attr("href") != '') {
    emailLink = $("#emailberekening").attr("href");
  }
  params["copies"]["emailLink"] = emailLink;  

  //nn.api.banksparen.resultColumn.lock();
  nn.api.banksparen.resultColumn.update(params, true);
  nn.api.banksparen.resultColumn.unlock();
  gxAjaxGeneralCallback('.copies');
  
  //als DIV met css class 'intro' links bevat, open die in een lighbox
  nn.handlers.initializeObjects($('.intro'));
  
  //API-voorbeeld voor openklappen banner sectie
  nn.api.banksparen.bannerSection.open();
}

function formatTotalAmount(amount) {
  /*pos = amount.indexOf('.');
  if(pos != -1) {
    return amount.substr(0,pos);
  } else {
    return amount;
  }*/
  return amount*1.0;
}

//** Remove trailing zeros **//
function formatRate(rate) {
  rate = rate.replace(/0*$/, '');  
  if(rate.match(/\.$/) == '.' ) {
    rate = rate.replace('.', '');
  }
  return rate;
}


function setCookie(name, value, expire, escape) {
  var myValue;
  if (escape == undefined || escape) {
    myValue = escape(value);
  } else {
    myValue = value;
  }
  if (expire == '') {
    document.cookie = name + '=' + myValue + '; path=/';
  } else {
    var expires = new Date();
    expires.setTime(expires.getTime() + expire);

    document.cookie = name + '=' + myValue + ((expire == null) ? '' : ('; expires=' + expires.toGMTString())) + '; path=/';
  }
}

function getCookie(name) {
   var search = name + "=";
   var val = "";
   var offset,end;
   
   if(document.cookie.length > 0) { // if there are any cookies
      offset = document.cookie.indexOf(search) 

      if(offset != -1) { // if cookie exists 
         offset += search.length;

         // set index of beginning of value
         end = document.cookie.indexOf(";", offset) 

         // set index of end of cookie value
         if (end == -1) {
            end = document.cookie.length;
         }

         val = unescape(document.cookie.substring(offset, end));
      } 
   }

   return val;
}
function deleteCookie (name) {
  if ( getCookie(name) ) document.cookie = name + "=";
}
