$(function() {

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

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

        switch($(this).val()){
            case 'S':
                $('#instype, #paymentTooltipI, #paymentTooltipP').hide();
                $('#paymentTooltipS').show();
                //$('#InsuranceSum').val("1500");
                break;
            case 'I':
                $('#paymentTooltipS, #paymentTooltipP').hide();
                $('#instype, #paymentTooltipI').show();
                //$('#InsuranceSum').val("20");
                break;
            case 'P':
                $('#instype, #paymentTooltipI, #paymentTooltipS').hide();
                $('#paymentTooltipP').show();
        }

    }).trigger('click');

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

        if($(this).val() == 0){
            $('#insuredperson_1').hide();
        }
        else{
            $('#insuredperson_1').show();
        }
    }).trigger('click');

    $('.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]'), function(){ if ( $(this).is(':checked')){ $(this).removeAttr('checked').trigger('click')}; });
        $('.hideperson').trigger('click');
    });

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

    $("#PaymentPeriodicity").change(function(){
        //checkPeriodicity();
        triggerValidation();
    }).trigger('change');

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

    $("#Person1BirthYear").blur(function(){
        //checkPersonYear(1);
        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');

    $("#InsuranceSum").blur(function(){
        //checkInsuraceSum();
        triggerValidation();
    }).trigger('blur');

});

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

var errorlist = {
    0: "Mokant periodines draudimo įmokas I apdrausto asmens amžius termino pradžioje turi būti nuo 18 iki 64 m. Mokant visą sumą iš karto - nuo 18 iki 79 m.",
    1: "Apdraustasis asmuo turi būti ne jaunesnis kaip 18 ir ne vyresnis kaip 79 metų amžiaus.",
    2: "Apdraustasis asmuo termino pabaigoje negali būti vyresnis negu 80 metų amžiaus.",
    3: "Galima pasirinkti draudimo trukmę (sveikas metų skaičius). Minimali draudimo trukmė pasirinkus periodinius mokėjimus - 3 metai, pasirinkus mokėti visą sumą iš karto - 1 metai. Pasibaigus draudimui apdrausti asmenys turi būti ne vyresni kaip 80 metų amžiaus.",

    6: "Papildomu nelaimingų atsitikimų draudimu I 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: "Minimalus pagrindinio draudimo įmokos dydis - 20 EUR.",
    13: "Minimali draudimo suma - 1500 EUR.",

    14: "Įveskite gimimo datą",
    15: "Įveskite draudimo terminą",
    16: "Įveskite suma",

    17: "Papildomu nelaimingų atsitikimų draudimu apdraustas asmuo turi būti ne jaunesnis negu 1 ir ne vyresnis negu 64 metų amžiaus"

}


function checkPeriodicity(){
    var a = parseInt($("#PaymentPeriodicity").val()),
        b = parseInt($("#BeginningYear").val()) - parseInt($("#Person1BirthYear").val()),
        c = parseInt($("#BeginningYear").val()) + parseInt($("#InsurancePeriod").val()) - parseInt($("#Person1BirthYear").val());

    if (a > 0){
        if (b < 18 || b > 64)
        {
            error($("#PaymentPeriodicity"),"0",true);
        }
    }
    else
    {
        error($("#PaymentPeriodicity"),"0",false);
        if (b < 18 || b > 79)
        {
            error($("#Person1BirthYear"),"1",true);
        }
    }
    if (c > 80)
        error($("#Person1BirthYear"),"2",true);
    else
        error($("#Person1BirthYear"),"2",false);

}

function checkInsurancePeriod(){
    var a = parseInt($("#PaymentPeriodicity").val()),
        b = parseInt($("#InsurancePeriod").val());

    if (isNaN(b)){
        error($("#InsurancePeriod"), "15", true);
    }else{
        error($("#InsurancePeriod"), "15", false);

        if ( a > 0 ){
            if(b < 3 || b > 61 ){

                $("#InsurancePeriod").val(3);
                error($("#InsurancePeriod"), "3", true);

            }else{
                error($("#InsurancePeriod"), "3", false);

            }
        }else{
            if(b < 1 || b > 62 ){
                $("#InsurancePeriod").val(1);
                error($("#InsurancePeriod"), "3", true);
            }
            else{
                error($("#InsurancePeriod"), "3", false);
            }
        }
    }
}

function checkInsuraceSum(){
    var a = parseInt($("#InsuranceSum").val());

    if (isNaN(a)){
        error($("#InsuranceSum"), "16", true);
    }else{
        error($("#InsuranceSum"), "16", false);

        switch($('#InsuranceType').val()){
            case 'I':
                if (a < 20 ){
                    error($("#InsuranceSum"), "12", true);
                    $('#InsuranceSum').val("20");
                }
                else
                    error($("#InsuranceSum"), "12", false);
                break;
            case 'S':
                if (a < 1500){
                    error($("#InsuranceSum"), "13", true);
                    $('#InsuranceSum').val("1500");
                }
                else
                    error($("#InsuranceSum"), "13", false);
                break;
        }
    }

}

function checkPersonYear(i){
    var a = parseInt($("#BeginningYear").val()) - parseInt($("#Person"+i+"BirthYear").val()),
        b = parseInt($("#BeginningYear").val()) + parseInt($("#InsurancePeriod").val()) - parseInt($("#Person"+i+"BirthYear").val());

   if (isNaN(a)){
       error($("#Person"+i+"BirthYear"),"14",true);
   }else{
       error($("#Person"+i+"BirthYear"),"14",false);
   }
   
   // Kritiniu ligu draudimas
   if (a > 55)
    {
        $("#Person-"+i+"-CriticalDiseaseInsuranceIs").removeAttr('checked').attr('disabled', 'disabled');
        $('#Person-'+i+'-CriticalValBlock').hide();
    }
    else
        $("#Person-"+i+"-CriticalDiseaseInsuranceIs").removeAttr('disabled');

   // Nelaimingi atsitikimai
   if (a < 1 || a > 64 || b > 70){
        if ($("#Person-"+i+"-AddInsuranceIs").attr('checked'))
        {
            b > 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');
    }
}

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"), "14",true);
    }else{
        error($("#Person"+i+"BirthYear"), "14",false);

        if( a > 0  && a < 65)
        {
            error($("#Person"+i+"BirthYear"), "17",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"), "17",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);
}

