// global vars
var numStep = 0;
var currentStep = 0;
var errors;
var submitUrl = new Array();
var jaarPremies = new Array();

// --------------------------------------- configurable vars -------------------

ictKorting = 200;                           // 200 euro extra ICT~Office korting
premieKorting = 10;                         // 10% standaard korting
numStep = 3;
submitUrl['online'] = '/aanvragen';
submitUrl['telefonisch'] = '/bel_mij_terug';
jaarPremies['250000'] = 1150;
jaarPremies['500000'] = 2150;
jaarPremies['750000'] = 3250;
jaarPremies['1000000'] = 4625;
jaarPremies['1500000'] = 6000;
jaarPremies['2000000'] = 7750;
jaarPremies['2500000'] = 9200;
jaarPremies['3000000'] = 10000;
jaarPremies['3000000plus'] = 'n.v.t.';

// --------------------------------------- EOF: configurable vars --------------

formatCurrency = function(num, withLabel)
{
    withLabel = (withLabel == undefined) || withLabel;
    
    num = num.toString().replace(/\$|\,/g, '');
    if (isNaN(num))
        num = '0';
    
    sign = (num == (num = Math.abs(num)));
    num = Math.floor(num * 100 + 0.50000000001);
    cents = num % 100;
    num = Math.floor(num / 100).toString();
    
    if (cents < 10)
        cents = '0' + cents;
    
    if (cents == '00')
        cents = '-';
    
    for (var i = 0; i < Math.floor((num.length - (1 + i)) / 3); i++)
        num = num.substring(0, num.length - (4 * i + 3)) + '.' + num.substring(num.length - (4 * i + 3));
    
    return (((sign) ? '' : '-') + ((withLabel) ? 'EUR ' : '') + num + ',' + cents);
}

showStep = function(step)
{
    currentStep = step;
    
    if (eval('initStep' + step + '()')) {
        checkStepControls();
        
        // step content divs, only one can be active at any time
        $('.step').removeClass('step_active');
        $('#step' + step).addClass('step_active');
        
        // step buttons which switch through step content divs
        $('.step_button').unbind().click(function()
        {
            targetStep = $(this).attr('rel');
            
            if (targetStep <= step) {
                showStep(targetStep);
            } else if (!$(this).hasClass('step_button_inactive')) {
                nextStep(step, targetStep);
            }
        });
    }
}

nextStep = function(currentStep, targetStep)
{
    var valid = eval('validateStep' + currentStep + '()');
    
    if (valid) {
        showStep(targetStep);
    } else {
        alert(errors.join('<br />'));
    }
}

checkStepControls = function()
{
    var highestAllowedStep = 0;
    
    for (var i = 1; i <= numStep; i++) {
        if (i == 1) {
            // first step is always available
            $('#step_indicator_1').removeClass('step_button_inactive');
        } else {
            var valid = eval('validateStep' + (i - 1) + '()');
            
            if (valid && i <= (parseInt(currentStep) + 1)) {
                $('#button_next_step' + (i - 1)).removeClass('step_button_inactive');
                $('#step_indicator_' + i).removeClass('step_button_inactive');
            } else {
                highestAllowedStep = i;
                $('#button_next_step' + (i - 1)).addClass('step_button_inactive');
                $('#step_indicator_' + i).addClass('step_button_inactive');
            }
        }
    }
}

initStep1 = function()
{
	sitestat('http://nl.sitestat.com/aon/avonline/s?beroepsaansprakelijkheid.premieberekening.uw_voorkeuren&amp;website=ictverzekeringen');
	
    $('#step1 :radio').unbind('click').click(checkStepControls);
    
    return true;
}

initStep2 = function()
{
	sitestat('http://nl.sitestat.com/aon/avonline/s?beroepsaansprakelijkheid.premieberekening.premieoverzicht&amp;website=ictverzekeringen');
	
    if (parseInt($('#module_form input[name=vantoepassing]:checked').val()) == 1 || $('#jaaromzet').val() == '3000000plus') {
        document.location.href = submitUrl['online'];
        return false;
    }
    
    updatePremie();
    
    var jaarOmzet = $('#jaaromzet').val();
    $('#label_jaaromzet').html('Tot ' + formatCurrency(jaarOmzet));
    
    if (parseInt($('#module_form input[name=aangesloten]:checked').val()) == 1) {
        $('#label_aangesloten_info').html('Uw premie is inclusief de ' + formatCurrency(ictKorting) + ' korting op uw jaarpremie, omdat uw bedrijf reeds aangesloten is bij ICT~Office.');
    } else {
	    $('#label_aangesloten_info').html('Uw premie kan een stuk gunstiger voor u uitvallen! Wanneer u uw bedrijf aansluit bij <a class="inline" href="http://www.ict-office.nl/" target="_blank">ICT~Office</a>, ontvangt u maar liefst ' + formatCurrency(ictKorting) + ' korting op uw jaarpremie!');
    }
    
    return true;
}

initStep3 = function()
{
	sitestat('http://nl.sitestat.com/aon/avonline/s?beroepsaansprakelijkheid.keuzescherm.index&amp;website=ictverzekeringen');
	
    return true;
}

validateStep1 = function()
{
    errors = new Array();
    
    if ($('#jaaromzet').val().length == 0) {
        errors.push('U heeft geen jaaromzet aangegeven.');
    }
    
    if ($('#module_form input[name=vantoepassing]:checked').length == 0) {
        errors.push('U heeft niet aangegeven of een van de geschetste scenario\'s op uw situatie van toepassing is.');
    }
    
    if ($('#module_form input[name=aangesloten]:checked').length == 0) {
        errors.push('U heeft niet aangegeven of u reeds aangesloten bent bij ICT~Office.');
    }
    
    return (errors.length == 0);
}

validateStep2 = function()
{
    errors = new Array();
    
    return (errors.length == 0);
}

validateStep3 = function()
{
    errors = new Array();
    
    return (errors.length == 0);
}

updatePremie = function()
{
    var extraKorting = (parseInt($('#module_form input[name=aangesloten]:checked').val()) == 1) ? ictKorting : 0;
    var jaarOmzet = $('#jaaromzet').val();
    var premieFrequentie = 'jaar';
    
    var premie_zonder_korting = jaarPremies[jaarOmzet];
    var premie_percentage_korting = premie_zonder_korting * (premieKorting / 100);
    var premie_ict_korting = ictKorting;
    var premie_met_korting = premie_zonder_korting - premie_percentage_korting - extraKorting;
    var premie = premie_met_korting;
    
    if (premieFrequentie == 'maand') {
        premie_zonder_korting = (premie_zonder_korting / 12).toFixed(2);
        premie_percentage_korting = (premie_percentage_korting / 12).toFixed(2);
        premie_ict_korting = (premie_ict_korting / 12).toFixed(2);
        premie_met_korting = (premie_met_korting / 12).toFixed(2);
        premie = (premie / 12).toFixed(2);
    }
    
    $('#label_premie_ict_korting').css('color', ((extraKorting == 0) ? '#ABABAB' : '#2E1771'));
    $('#label_premie_zonder_korting').html(formatCurrency(premie_zonder_korting));
    $('#label_premie_percentage_korting').html(formatCurrency(premie_percentage_korting));
    $('#label_premie_ict_korting').html(formatCurrency(premie_ict_korting));
    $('#label_premie').html(formatCurrency(premie));
    $('#label_premie_per').html(premieFrequentie);
    $('#premie').val(premie);
}

/*
postPrepareForm = function(submitUrl)
{
    var jaarOmzet = $('input[name=jaaromzet]:checked').val();
    
    submitUrl = submitUrl + '/?premie=' + formatCurrency($('#premie').val(), false);
    submitUrl = submitUrl + '&jaaromzet=' + formatCurrency(jaarOmzet, false);
    submitUrl = submitUrl + '&vantoepassing=' + ((parseInt($('input[name=vantoepassing]:checked').val()) == 1) ? 'Ja' : 'Nee');
    submitUrl = submitUrl + '&aangesloten=' + ((parseInt($('input[name=aangesloten]:checked').val()) == 1) ? 'Ja' : 'Nee');
    submitUrl = submitUrl + '&premie_per=' + $('input[name=premie_per]:checked').val().charAt(0).toUpperCase() + $('input[name=premie_per]:checked').val().substring(1);
    
    document.location = submitUrl;
}
*/

postPrepareForm = function(submitUrl, code)
{
    var jaarOmzet = $('#jaaromzet').val();
    var premieFrequentie = 'jaar';
    
    $('#quinity_code').val(code);
    $('#quinity_premie').val(formatCurrency($('#premie').val(), false));
    $('#quinity_jaaromzet').val(formatCurrency(jaarOmzet, false));
    $('#quinity_vantoepassing').val(((parseInt($('#module_form input[name=vantoepassing]:checked').val()) == 1) ? 'Ja' : 'Nee'));
    $('#quinity_aangesloten').val(((parseInt($('#module_form input[name=aangesloten]:checked').val()) == 1) ? 'Ja' : 'Nee'));
    $('#quinity_premie_per').val(premieFrequentie.charAt(0).toUpperCase() + premieFrequentie.substring(1));
    
    $('#module_iframe').show();
    $('#module').hide();
    
//    $('#module_form_quinity').attr('action', submitUrl);
    $('#module_form_quinity').submit();
}

$(document).ready(function()
{
    showStep(1);
});

