$(function() {

    /**********   Visual  **********/

    $('#InsuranceType').click(function(){

        switch($(this).val()){
            case 'S':
                $('#instype, #paymentTooltipI').hide();
                $('#paymentTooltipS').show();
                break;
            case 'I':
                $('#instype, #paymentTooltipI').show();
                $('#paymentTooltipS').hide();
                break;
            case 'T':
                $('#instype,#paymentTooltipI, #paymentTooltipS').hide();

        }

    }).trigger('click');

    $("#PaymentPeriodicity").click(function(){

        if($(this).val() == 0){
            $('#insuredperson_1, #insuredperson_2').hide();
            $('#Pension').attr('checked', false).attr('disabled', true);
        }
        else{
            $('#insuredperson_1').show();
            $('#insuredperson_2').hide();
            $('#Pension').attr('disabled', false);
        }
    }).trigger('click');

    $('#Person2Is').click(function(){
        if ($(this).is(':checked')){
            $('#person2_birth').show();
            if( $('#PaymentPeriodicity').val()==0){
                $('#insuredperson_2').hide();

            }else{
                $('#insuredperson_2').show();
            }
        }else{
            $('#person2_birth, #insuredperson_2').hide();
        }
    });
    if ( $('#Person2Is').is(':checked')){$('#Person2Is').trigger('click').attr('checked','checked')};

    $('.PersonAddInsuranceIs').click(function(){
        var id = $(this).attr('id').split('-')[1];
        processAdditionalInsurance(id);
    });

    $('.PersonAdditionalInsurance').change(function(){
        var id = $(this).attr('id').split('-')[1];
        processAdditionalInsurance(id);
    });


    $.each($('.PersonAddInsuranceIs'),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+'-CriticalValBlock').show();
        }else{
            $('#Person-'+id+'-CriticalValBlock').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], #insuredperson_2 input[type=checkbox], #Person2Is'), function(){ if ( $(this).is(':checked')){ $(this).removeAttr('checked').trigger('click')}; });
        $('.hideperson').trigger('click');
    });

    /**********   Validation **********/

    $("#InsurancePeriod").blur(function(){
        //checkInsurancePeriod();
        triggerValidation();
    }).trigger('blur');

    $("#Person1BirthYear").blur(function(){
        //checkPersonYear(1);
        triggerValidation();
    }).trigger('blur');

    $("#Person2BirthYear").blur(function(){
        //checkPersonYear(2);
        triggerValidation();
    }).trigger('blur');

    $("#Person3BirthYear").blur(function(){
        //checkPliusPeople(3);
        triggerValidation();
    }).trigger('blur');


    $("#Person4BirthYear").blur(function(){
        checkPliusPeople(4);
        triggerValidation();
    }).trigger('blur');

     $("#Person5BirthYear").blur(function(){
        checkPliusPeople(5);
        triggerValidation();
    }).trigger('blur');


});

function triggerValidation(){
        checkInsurancePeriod();
        checkPersonYear(1);
        checkPersonYear(2);
        checkPliusPeople(3);
        checkPliusPeople(4);
        checkPliusPeople(5);
}

var errorlist = {
    0: "Naudos gavėjas (kartu apdraustas vaikas) termino pabaigoje turi būti ne vyresnis negu 25 metų.",
    1: "Pagrindinio apdraustojo amžius laikotarpio pabaigoje turi būti ne mažesnis nei 3 m. Prašome padidinti terminą.",
    2: "Pagrindinio apdraustojo amžius laikotarpio pabaigoje turi būti ne didesnis nei 61 m. Prašome sutrumpinti terminą.",
    3: "",
    4: "Apdraustas asmuo turi būti ne jaunesnis nei 14 metų ir ne vyresnis nei 64 metų amžiaus.",
    5: "Apdraustasis asmuo termino pabaigoje negali būti vyresnis negu 75 metų amžiaus.",
    6: "Papildomu nelaimingų atsitikimų draudimu apdraustas asmuo termino pabaigoje turi būti ne vyresnis negu 70 metų amžiaus.",
    7: "Papildomu nelaimingų atsitikimų draudimu apdraustas asmuo turi būti ne jaunesnis negu 18 ir ne vyresnis negu 64 metų amžiaus.",
    8: "Papildomu kritinių ligų draudimu apdraustas asmuo termino pabaigoje turi būti ne vyresnis negu 65 metų amžiaus.",
    9: "Papildomu kritinių ligų draudimu apdraustas asmuo turi būti ne jaunesnis negu 16 ir ne vyresnis negu 55 metų amžiaus.",
    10: "Papildomu darbingumo netekimų draudimu apdraustas asmuo termino pabaigoje turi būti ne vyresnis negu 65 metų amžiaus.",
    11: "Papildomu darbingumo netekimo draudimu apdraustas asmuo turi būti ne jaunesnis negu 16 ir ne vyresnis negu 50 metų amžiaus.",

    12: "Įveskite gimimo datą",
    13: "Papildomai apdraustas asmuo turi būti ne jaunesnis nei 1 metų ir ne vyresnis nei 64 metų amžiaus."

}


function checkInsurancePeriod(){
    var n = 25 - parseInt($("#BeginningYear").val()- $("#Person1BirthYear").val()),
        v = parseInt($("#InsurancePeriod").val());


    if(v < 3 || v > 25)
    {


    }
    else
    {
        checkPersonYear(1);
        checkPersonYear(2);
        checkPliusPeople(3);
        checkPliusPeople(4);
        checkPliusPeople(5)
    }


}

function checkPersonYear(i){

    var a = $("#SpreadsheetPerson"+i+"Tariff"),
        b = parseInt($("#BeginningYear").val()) - parseInt($("#Person"+i+"BirthYear").val()),
        c = parseInt($("#BeginningYear").val()) + parseInt($("#InsurancePeriod").val()) - parseInt($("#Person"+i+"BirthYear").val());
    //console.log(b);
    //console.log(c);
    if( b >= 14 && b <= 64){

        error($("#Person"+i+"BirthYear"),"4",false);


       // Nelaimingi atsitikimai
       if (b < 1 || b > 64 || c > 70)
        {
            if ($("#Person-"+i+"-AddInsuranceIs").attr('checked'))
            {
                c > 70
                    ? error($("#Person-"+i+"-AddInsuranceIs"),"6",true)
                    : error($("#Person-"+i+"-AddInsuranceIs"),"7",true);
            }
            $("#Person-"+i+"-AddInsuranceIs").removeAttr('checked').attr('disabled', 'disabled');
            $("#Person-"+i+"-AddInsurDailyIs").attr('disabled', 'disabled');
        }
        else
        {
            error($("#Person-"+i+"-AddInsuranceIs"),"0",false);
            $("#Person-"+i+"-AddInsuranceIs").removeAttr('disabled');
            $("#Person-"+i+"-AddInsurDailyIs").removeAttr('disabled');
        }

        // Kritines ligos
        if (b < 16 || b > 55 || c > 65)
        {
            if ($("#Person-"+i+"-CriticalDiseaseInsuranceIs").attr('checked'))
            {
                c > 65
                    ? error($("#Person-"+i+"-CriticalDiseaseInsuranceIs"),"8",true)
                    : error($("#Person-"+i+"-CriticalDiseaseInsuranceIs"),"9",true);
            }
            $("#Person-"+i+"-CriticalDiseaseInsuranceIs").removeAttr('checked').attr('disabled', 'disabled');
        }
        else
        {
            error($("#Person-"+i+"-CriticalDiseaseInsuranceIs"),"0",false);
            $("#Person-"+i+"-CriticalDiseaseInsuranceIs").removeAttr('disabled');
        }

        // Darbingumo netekimo
        if (b < 16 || b > 50 || c > 65)
        {
            if ($("#Person-"+i+"-CriticalDisabilityInsuranceIs").attr('checked'))
            {
                c > 65
                    ? error($("#Person-"+i+"-CriticalDisabilityInsuranceIs"),"10",true)
                    : error($("#Person-"+i+"-CriticalDisabilityInsuranceIs"),"11",true);
            }
            $("#Person-"+i+"-CriticalDisabilityInsuranceIs").removeAttr('checked').attr('disabled', 'disabled');
        }
        else
        {
            error($("#Person-"+i+"-CriticalDisabilityInsuranceIs"),"0",false);
            $("#Person-"+i+"-CriticalDisabilityInsuranceIs").removeAttr('disabled');
        }

        //Lygonpinipiai

        if (b > 15 && a.val() == 'V')
        {
            a.val('L');
            mini_options(i, false);
        }
        if( b > 15)
        {
            $("#Person-"+i+"-AddInsurDailyIs").removeAttr('disabled');
            a.val('L');
        }
        else
        {
            $("#Person-"+i+"-AddInsurDailyIs").removeAttr('checked').attr('disabled', 'disabled');
            $('#Person-'+i+'-AddInsurDailyBlock').hide();
            a.val('V');
            mini_options(i, true);
        }


        if (b < 16){
            $('#Person-'+i+'-AddInsurDailyIs').removeAttr('checked').attr('disabled', 'disabled');
            $('#Person-'+i+'-AddInsurDailyBlock').hide();
        }
        else{
            $('#Person-'+i+'-AddInsurDailyIs').removeAttr('disabled');
        }


    }else{
        error($("#Person"+i+"BirthYear"),"4",true);
    }

    if(c > 75){
        error($("#Person"+i+"BirthYear"),"5",true);
    }

}

function checkPliusPeople(i){
    var a = parseInt($("#BeginningYear").val()) - parseInt($("#Person"+i+"BirthYear").val());
    var b = $("#SpreadsheetPerson"+i+"Tariff");

    if (isNaN(a)){
        error($("#Person"+i+"BirthYear"), "12",true);
    }else{
        error($("#Person"+i+"BirthYear"), "12",false);

        if( a > 0  && a < 65){
            error($("#Person"+i+"BirthYear"), "13",false);
            if (a > 15 && b.val() == 'V')
            {
                b.val('L');
                mini_options(i, false);
            }
            if( a > 15)
            {
                $("#Person-"+i+"-AddInsurDailyIs").removeAttr('disabled');
                b.val('L');
            }
            else
            {
                $("#Person-"+i+"-AddInsurDailyIs").removeAttr('checked').attr('disabled', 'disabled');
                $('#Person-'+i+'-AddInsurDailyBlock').hide();
                b.val('V');
                mini_options(i, true);
            }

        }else{
            error($("#Person"+i+"BirthYear"), "13",true);
        }
    }
}

function mini_options(index, a)
{
    var output = '';
    var currentValue = $("#Person-"+index+"-AdditionalInsurance").val();
    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);
    $("#Person-"+index+"-AdditionalInsurance").empty().html(output).val(currentValue);
}

