$(function() {

    /**********   Visual  **********/


    $('#PredictiveYearlyInterest').click(function(){
        if($(this).is(':checked')){
            $('#YearlyInterestBlock').show();
        }else{
            $('#YearlyInterestBlock').hide();
        }
    });

    ($('#PredictiveYearlyInterest').is(':checked')) ? "" : $('#PredictiveYearlyInterest').trigger('click').removeAttr('checked');

    $('.PersonLifeInsuranceIs').click(function(){
        var id = $(this).attr('id').split('-')[1];

        if ($(this).is(':checked')){
            $('#Person-'+id+'-LifeInsuranceBlock').show();
        }else{
            $('#Person-'+id+'-LifeInsuranceBlock').hide();
        }

    });
    $.each($('.PersonLifeInsuranceIs'),function(){if ( $(this).is(':checked')){$(this).trigger('click').attr('checked','checked')};});

    $('.PersonAdditionalInsuranceIs').click(function(){
        var id = $(this).attr('id').split('-')[1];
        processAdditionalInsurance(id);
    });

    $('.PersonAdditionalInsurance').change(function(){
        var id = $(this).attr('id').split('-')[1];
        processAdditionalInsurance(id);
    });

    $.each($('.PersonAdditionalInsuranceIs'),function(){if ( $(this).is(':checked')){$(this).trigger('click').attr('checked','checked')};});


    $('.PersonAddInsurDailyIs').click(function(){

        var id = $(this).attr('id').split('-')[1];

        if ($(this).is(':checked')){
            $('#Person-'+id+'-AddInsurDailyBlock').show();
        }else{
            $('#Person-'+id+'-AddInsurDailyBlock').hide();
        }

    });
    $.each($('.PersonAddInsurDailyIs'),function(){if ( $(this).is(':checked')){$(this).trigger('click').attr('checked','checked')};});


    $('.PersonCriticalDiseaseInsuranceIs').click(function(){
        var id = $(this).attr('id').split('-')[1];

        if ($(this).is(':checked')){
            $('#Person-'+id+'-CriticalDiseaseInsuranceBlock').show();
        }else{
            $('#Person-'+id+'-CriticalDiseaseInsuranceBlock').hide();
        }
    });
    $.each($('.PersonCriticalDiseaseInsuranceIs'),function(){if ( $(this).is(':checked')){$(this).trigger('click').attr('checked','checked')};});


    $('.addperson, .hideperson').click(function(){

        var id = $(this).attr('id').split('_')[1];

        $(this).hide();
        if ($(this).hasClass('addperson')){
            $(this).toggleClass('sel');
            $('#hideperson_'+id+', #insuredperson_'+id).show();
            $('#SpreadsheetPerson'+id+'Is').val(1);
            $(this).parents('.field:first').nextAll('.insuredpersonNav:first').show();
        }else{
            $('#insuredperson_'+id).hide();
            $('#addperson_'+id).show();
            $('#SpreadsheetPerson'+id+'Is').val(0);
            $nextblocks =  $(this).parents('.field:first').nextAll('.insuredpersonNav');
            $nextblocks.hide();
            $('.hideperson',$nextblocks).trigger('click');
        }
        return false;
    });

    $('input[type=reset]').click(function(){
        $.each($('#insuredperson_1 input[type=checkbox]'), function(){ if ( $(this).is(':checked')){ $(this).removeAttr('checked').trigger('click')}; });
        $('.hideperson').trigger('click');
    });


    /**********   Validation  **********/

    $('#PeriodicalPayment').blur(function(){
        //periodine();
        //imoka();
        triggerValidation();
    });

    $('#FirstPayment').blur(function(){
        //imoka();
        triggerValidation();
    });

    $('#PaymentPeriodicity').change(function(){
        //periodine();
        //imoka();
        triggerValidation();
    });

    $('#Person1LifeInsurance, #Person2LifeInsurance, #Person3LifeInsurance, #Person4LifeInsurance, #Person5LifeInsurance').blur(function(){
        triggerValidation();
        gyvybes_draudimas($(this));
    });

    $('#Duration, #Person1DateOfBirth').blur(function(){
        //pagrindine();
        triggerValidation();
    }).trigger('blur');

    $('#Duration, #Person1DateOfBirth, #Person2DateOfBirth, #Person3DateOfBirth, #Person4DateOfBirth, #Person5DateOfBirth').blur(function(){
//        tikrinti_asmeni(1);
//        tikrinti_asmeni(2);
//        tikrinti_asmeni(3);
//        tikrinti_asmeni(4);
//        tikrinti_asmeni(5);
        triggerValidation();
    });
});


function triggerValidation(){
    pagrindine();
    imoka();
    tikrinti_asmeni(1);
    tikrinti_asmeni(2);
    tikrinti_asmeni(3);
    tikrinti_asmeni(4);
    tikrinti_asmeni(5);
}

var errorlist = {
    imoka: "Draudimo įmoka nepakankama. Prašome padidinti įmoką.",
    terminas_min: "Pagrindinio apdraustojo amžius laikotarpio pabaigoje turi būti ne mažesnis nei 5 m. Prašome padidinti terminą.",
    terminas_max: "Pagrindinio apdraustojo amžius laikotarpio pabaigoje turi būti ne didesnis nei 65 m. Prašome sutrumpinti terminą.",
    terminas2: "",
    pirma_imoka: "Minimali pirma įmoka 50 EUR",
    periodine: "Minimali periodinė draudimo įmoka 25 EUR.",
    pagrindinis_terminas: "Pagrindinis apdraustas asmuo draudimo termino pradžioje  turi būti ne vyresnis nei 60 metų.",
    papildomas_terminas: "Papildomai apdraustas asmuo turi būti ne jaunesnis nei 1 metų ir ne vyresnis nei 64 metų amžiaus. Draudimo termino pabaigoje papildomi apdraustieji asmenys turi būti ne vyresni negu 65 metų amžiaus.",
    pagrindinis_amzius: "Pagrindiniu draudimu gali būti apdraustas vienas asmuo nuo 0 iki 60 metų amžiaus draudimo termino pradžioje.",
    papildomas_amzius: "Papildomai apdraustas asmuo turi būti ne jaunesnis nei 1 metų ir ne vyresnis nei 64 metų amžiaus.",
    gyvybes: "Minimali draudimo suma - 1000 EUR",

    14: "Įveskite gimimo datą",
    15: "Įveskite draudimo terminą"

}

//var error_count = 0;
//date = new Date();

function tarifai(obj)
{
    var d = new Date();
    id = obj.attr('id').replace("asm","").replace("_input","");
    if (parseInt(obj.val()) >= parseInt(d.getFullYear()) - 15)
    {
        $("#tarifas_"+id+"_asm").val('V');
    }
    else
    {
        $("#tarifas_"+id+"_asm").val('L');
    }
}

function onlyNumbers()
{
    this.value = this.value.replace(",", ".").replace(/[^0-9,\.]/g, "");
}

function imoka()
{
    v = $('#FirstPayment').val() * 1;
    if(v < 50)
    {
        error($('#FirstPayment'), "pirma_imoka", true);
    }
    else
    {
        error($('#FirstPayment'), "", false);
    }

    if (parseInt($('#FirstPayment').val()) + parseInt($('#PeriodicalPayment').val())*(parseInt($('#PaymentPeriodicity').val()) - 1) < 300)
        error($('#FirstPayment'), "imoka", true);


}

function periodine()
{
    var min = 0;
    switch (parseInt($('#PaymentPeriodicity').val()))
    {
        case 1: min  = 300; break;
        case 2: min  = 150; break;
        case 4: min  = 75; break;
        case 12: min = 25; break;
    }
    errorlist['periodine'] = 'Minimali periodinė draudimo įmoka ' + min + ' EUR.';

    v = $('#PeriodicalPayment').val() * 1;
    if(v < min)
    {
        error($('#PeriodicalPayment'), "periodine", true);
    }
    else
    {
        error($('#PeriodicalPayment'), "", false);
    }

}

function gyvybes_draudimas(obj)
{
    v = obj.val() * 1;
    if(v != 0 && v < 1000)
    {
        error(obj, "gyvybes", true);
    }
    else
    {
        error(obj, "", false);
    }

}

var n_metu = 0;

function pagrindine(){

    var d = new Date(),
        n = 65 - parseInt(d.getFullYear() - $('#Person1DateOfBirth').val()),
        t = 'Draudimo terminas nurodytam pagrindiniam apdraustam asmeniui turi būti ne ilgesnis negu '+n+' m.'
        v = parseInt($("#Duration").val());

    $("#Duration").parent().parent().find(".tooltip span").html(t);

    if (isNaN(v)){
        error($("#Duration"), "15", true);
    }else{
        error($("#Duration"), "15", false);
        if(v < 5 || v > 65)
        {
            if (v < 5)
                error($("#Duration"), "terminas_min", true);
            else if (v > 65)
                error($("#Duration"), "terminas_max", true);
        }
        else if (v > n)
        {
            errorlist['terminas2'] = t;
            error($("#Duration"), "terminas2", true);
        }
    }
}



function tikrinti_asmeni(nr)
{
    if ($("#SpreadsheetPerson"+nr+"Is").val() != '1')
    {
        return;
    }
    //v = $(this).val() * 1;
    amzius   = $('#BeginningDataYear').val()*1 - $("#Person"+nr+"DateOfBirth").val()*1;
    terminas = parseInt($('#Duration').val());


    if( isNaN($('#Person'+nr+'DateOfBirth').val()) ){
        error($('#Person'+nr+'DateOfBirth'), "14", true);
    }
    else{
        error($('#Person'+nr+'DateOfBirth'), "14", false);

        // validuojam draudimo terminus
        x = (nr == 1)
            ? 65
            : 70;
        errortype = (nr == 1)
            ? "pagrindinis_terminas"
            : "papildomas_terminas";

        if (amzius > x)
        {
            error($("#Person"+nr+"DateOfBirth"), errortype, true);
            return;
        }
        /*
        else if (amzius + terminas > x || amzius + terminas < 0)
        {
            error($("#Duration"), "terminas_max", true);
            return;
        }
        */
        else {
            error($("#Person"+nr+"DateOfBirth"), "", false);
            //error($("#dr_terminas"), "", false);
        }

        // validuojam amziu

        x = (nr == 1)
            ? 0
            : 1;
        errortype = (nr == 1)
            ? "pagrindinis_amzius"
            : "papildomas_amzius";

        if(amzius < x || amzius > 60)
        {
            error($("#Person"+nr+"DateOfBirth"), errortype, true);
        }
        else
        {
            error($("#Person"+nr+"DateOfBirth"), "", false);
        }

        // validuojam gyvybes draudima

        x = (nr == 1)
            ? 14
            : 14;

        if (amzius < x || amzius > 64)
        {
            $("#Person-"+nr+"-LifeInsuranceIs").attr('disabled', 'disabled');
            $("#Person-"+nr+"-LifeInsuranceIs").removeAttr('checked');
            //$(".gyvybes_draudimo",kur).attr({"disabled":"disabled"});
            //$(".gyvybes_draudimo",kur).attr({"checked":""});
            //$("select.gyvybes_draudimas",kur).attr({"disabled":"disabled"});
            //$("select.gyvybes_draudimas",kur).attr({"val":""});
        }
        else
        {
            $("#Person-"+nr+"-LifeInsuranceIs").removeAttr("disabled");
        }

        if(amzius < 16)
        {
            tarifas($("#Person"+nr+"Tariff").attr("id"), true);
        }
        else
        {
            tarifas($("#Person"+nr+"Tariff").attr("id"), false);
        }

        // validuojam nelaimingus atsitikimus

        if(amzius < 16)
        {
            atsitikimai($("#Person-"+nr+"-AdditionalInsurance"), true);
        }
        else
        {
            atsitikimai($("#Person-"+nr+"-AdditionalInsurance"), false);
            //$(".gyvybes_draudimo",kur).attr({"disabled":""});
        }

        x = (nr == 1)
            ? 3
            : 1;
        if(amzius < x || amzius > 64)
        {
            $("#Person-"+nr+"-AdditionalInsuranceIs").attr('disabled', 'disabled');
            $("#Person-"+nr+"-AddInsurDailyIs").attr('disabled', 'disabled');
        }
        else
        {
            $("#Person-"+nr+"-AdditionalInsuranceIs").removeAttr('disabled');
            $("#Person-"+nr+"-AddInsurDailyIs").removeAttr('disabled');
        }

        // validuojam ligonpinigius


        if($("#Person-"+nr+"-AdditionalInsurance").val().charAt(0)=="T")
        {
            $("#Person-"+nr+"-AddInsurDailyIs").removeAttr("checked");
            $("#Person-"+nr+"-AddInsurDailyIs").attr("disabled", "disabled");
            //$(".ligonpinigiu",kur).attr({"disabled":"disabled"});
            //$("select.ligonpinigiai",kur).attr({"disabled":"disabled"});
        }
        else
        {
            $("#Person-"+nr+"-AddInsurDailyIs").removeAttr("disabled");
        }

        if(amzius < 16 || amzius > 64)
        {
            $("#Person-"+nr+"-AddInsurDailyIs").removeAttr("checked");
            $("#Person-"+nr+"-AddInsurDailyIs").attr("disabled", "disabled");
        }

        // validuojam kritines ligas

        if(amzius < 16 || amzius > 55)
        {
            //$("select.kritines",kur).attr({"disabled":"disabled"});
            $("#Person-"+nr+"-CriticalDiseaseInsuranceIs").removeAttr('checked');
            $("#Person-"+nr+"-CriticalDiseaseInsuranceIs").attr('disabled', 'disabled');
        }
        else
        {
            $("#Person-"+nr+"-CriticalDiseaseInsuranceIs").removeAttr('disabled');
        }
    }

}

function tarifas(s,a)
{
    list = new Array();
    select = $("#"+s);
    // Vaikas
    if (a == true)
    {
        select.val('V');
    }
    else
    {
        select.val('L');
    }
}

function atsitikimai(s,a)
{
    var currentValue = s.val();
    var output = '';
    if (a == true)
    {
        output ='<option value="M1">M1 / M-5.000 EUR, N-10.000 EUR</option><option value="M2">M2 / M-10.000 EUR, N-20.000 EUR</option><option value="P1">P1 / M-5.000 EUR, N-10.000 EUR, KL-2.500 EUR, LN-2.500 EUR</option><option value="P2">P2 / M-10.000 EUR, N-20.000 EUR, KL-5.000 EUR, LN-5.000 EUR</option><option value="T1">T1 / N-10.000 EUR, KL-2.500 EUR, LN-2.500 EUR</option><option value="T2">T2 / N-20.000 EUR, KL-5.000 EUR, LN-5.000 EUR</option>';

    }
    else
    {
        output = '<option value="M1">M1 / M-5.000 EUR, N-10.000 EUR</option>,<option value="M2">M2 / M-10.000 EUR, N-20.000 EUR</option><option value="M3">M3 / M-20.000 EUR, N-40.000 EUR</option><option value="M4">M4 / M-30.000 EUR, N-60.000 EUR</option><option value="M5">M5 / M-35.000 EUR, N-70.000 EUR</option><option value="P1">P1 / M-5.000 EUR, N-10.000 EUR, KL-2.500 EUR, LN-2.500 EUR</option><option value="P2">P2 / M-10.000 EUR, N-20.000 EUR, KL-5.000 EUR, LN-5.000 EUR</option><option value="P3">P3 / M-20.000 EUR, N-40.000 EUR, KL-5.000 EUR, LN-5.000 EUR</option><option value="P4">P4 / M-30.000 EUR, N-60.000 EUR, KL-7.500 EUR, LN-7.500 EUR</option><option value="P5">P5 / M-35.000 EUR, N-70.000 EUR, KL-10.000 EUR, LN-10.000 EUR</option><option value="T1">T1 / N-10.000 EUR, KL-2.500 EUR, LN-2.500 EUR</option><option value="T2">T2 / N-20.000 EUR, KL-5.000 EUR, LN-5.000 EUR</option><option value="T3">T3 / N-40.000 EUR, KL-5.000 EUR, LN-5.000 EUR</option><option value="T4">T4 / N-60.000 EUR, KL-7.500 EUR, LN-7.500 EUR</option><option value="T5">T5 / N-70.000 EUR, KL-10.000 EUR, LN-10.000 EUR</option>';

    }

    //console.log(output);

    s.empty().html(output).val(currentValue);


}
