/*
k1 - Кт city
k2 - Кп срок страхования
k3 - Кбм бонус-малус
k4 - Кс период использования
k5 - Квс возраст и стаж
k6 -
k7 - Ко кол-во допущенных лиц
k8 - Км мощность двигателя
k9 - Кн коэфф. страхового тарифа, всегда =1
k10 - Юр/Физ лицо  1.5/1
*/

var k1,k2,k3,k4,k5,k6,k7,k8,k9,k10,b,t,kTotal;
var k1tmp,k2tmp,k3tmp,k4tmp,k5tmp,k6tmp,k7tmp,k8tmp;
var oTarifTotal;
    
/* Коэффициент в зависимости от территории преимущественного использования транспортного средства 
г. Москва
г. Санкт-Петербург, 
Города и населенные пункты Московской области
Все населенные пункты Ленинградской области
Города, указанные в Приложении 3
Города, указанные в Приложении 4
Прочие населенные пункты  */

var cityCoeff = [2, 1.8, 1.7, 1.6, 1.6, 1, 0.5];
var cityCoeffProm = [1.2, 1, 1, 1, 0.8, 0.8, 0.5];
var kbm = [0.85, 0.9, 0.95, 1];

var frm = document.caf


k1 = k1tmp = 2;
k2 = k2tmp = k3 = k3tmp = k4 = k4tmp = k5 = k5tmp = k6 = k6tmp = k7 = k7tmp = k8 = k8tmp = k9 = k10 = 1;
var TarifBase = 1980;
var TarifTotal = 3960;

function getSelectedValues (dos) {
    var z = 0;
    for (var i = 0; i < dos.options.length; i++)
    if (dos.options[i].selected)
    z = dos.options[i].value;
    return z;
}
function getSelVal(dos) {var z = 0;for (var i = 0; i < dos.options.length; i++)if (dos.options[i].selected)z = dos.options[i].value;return z;}
function getSelTitle(dos) {var z = 0;for (var i = 0; i < dos.options.length; i++)if (dos.options[i].selected)z = dos.options[i].innerHTML;return z;}
function getChVal(dos) {var z = 0;for (var i = 0; i < dos.length; i++)if (dos[i].checked)z = dos[i].value;return z;}

function n_f (numeric,dec) {
    if(!isNaN(numeric)) {   
        numeric = numeric.split('.');
        if(dec && numeric[1]) {
            numeric[1] = Math.round(parseFloat(numeric[1].substr(0, dec) + '.' + numeric[1].substr(dec, numeric[1].length), 10));
            return(numeric.join('.'));
        } else return 0;
    }
}

function ChangeMotorType()  {

    TarifBase = getSelVal(frm.MotorType);
    RegionOutVAlue = getSelVal(frm.RegionOut);
    OwnerVal = getSelVal(frm.OwnerSel)

    if( TarifBase == 'car' )    {
        if( OwnerVal==1 )   {
            TarifBase = 1980;
        } else {
            TarifBase = 2375;
        }
        frm.MotorPower.disabled = false;
        k8 = k8tmp;
    } else {
        frm.MotorPower.disabled = true;
        k8tmp = k8;k8 = 1;
    }
//      ограничения по количеству лиц  (Ко) - не используется только у прицепов легковых и грузовых авто, в остальных случаях применяется
    if( TarifBase == '395' || TarifBase == '810' || TarifBase == '305'  )   {
        k7tmp = k7;k7=1;
        k5tmp = k5;k5=1;
        k3tmp = k3;k3=1;
    } else {
        k7=k7tmp;
        if(RegionOutVAlue!=2)k3=k3tmp;
        k5=k5tmp;
    }
    Calculate2();
}
    
    
    function ChangeCity () { /* + */
        var indexc = getSelVal(frm.City);
        if( frm.MotorType.selectedIndex == 9 || frm.MotorType.selectedIndex == 10 ) {
            k1 = cityCoeffProff[indexc];
        } else {
            k1 = cityCoeff[indexc];
        }
        Calculate2();
    }
    
    
    function ChangeTerm() {/* + */
        k2 = getSelVal(frm.Term);
//      frm.UsagePeriod.selectedIndex = 4;
        k4 = getSelVal(frm.UsagePeriod);
        Calculate2();
    }
    
    function ChangeUsagePeriod () { /* + */
        k4 = getSelVal(frm.UsagePeriod);
        Calculate2();
    }
    
    function ChangeMotorPower () { /* + */
        k8 = k8tmp = getSelVal(frm.MotorPower);
        Calculate2();
    }

        
    function ChangeDriverStatus () { /* + */
        k5 = getSelVal(frm.DriverStatus);
        Calculate2();
    }
    
    function CahngeIsNoDriverLimit () { /* + */
        DrvLimit = getSelVal(frm.IsNoDriverLimit);
        if (DrvLimit > 0) {
            k7 = DrvLimit;
            k5tmp = k5;
            k5 = 1;
        } else {
            k7 = 1;
            k5 = k5tmp;
        }
        Calculate2();
    }

    function ChangeOwnerSel () {
        RegionOutVAlue = getSelVal(frm.RegionOut);
        OwnerVal = getSelVal(frm.OwnerSel)
        ChangeMotorType();
//      alert(k5);
        ChangeRegionOut();
//      alert(k5);
        ChangeDriverStatus();
        if (OwnerVal==1) {
            k7 = k7tmp;
            if(RegionOutVAlue!=2)k3=k3tmp;
        } else  {
            ChangeKBMvalue();k3 = 1;
            k7tmp = k7;
            k7 = 1.5;
        }
        Calculate2();
    }

function ChangeRegionOut()  { /* ???? */
        RegOutVAl = getSelVal(frm.RegionOut);
        k2tmp = getSelVal(frm.Term);
        OwnerVal = getSelVal(frm.OwnerSel)

        if(RegOutVAl == 1) {
            k2tmp = k2;k2 = 1;
            k3 = k3tmp;
            k4 = k4tmp;
            k1 = k1tmp;
            k7 = k7tmp;
            ChangeCity ()
            ChangeKBMvalue()
            ChangeDriverStatus ()
            CahngeIsNoDriverLimit ()
            ChangeMotorType()
        } else if(RegOutVAl == 2) {
            k2tmp = k2;k2 = 0.2;
//          k3 = k3tmp;
//          alert('1. k3='+k3+' k3tmp='+k3tmp);
            ChangeKBMvalue();k3 = 1;
            k4tmp = k4;k4 = 1;
            k1tmp = k1;k1 = 1;
            k7 = k7tmp;
            ChangeDriverStatus ()
//          alert('12. k3='+k3+' k3tmp='+k3tmp);
            CahngeIsNoDriverLimit ()
//          alert('13. k3='+k3+' k3tmp='+k3tmp);
            ChangeMotorType()
//          alert('14. k3='+k3+' k3tmp='+k3tmp);
        } else if(RegOutVAl == 3) {
            k1 = 2
            k2 = k2tmp;
            ChangeKBMvalue();k3 = 1;
            k4tmp = k4;k4 = 1;
            k5tmp = k5;
            k7tmp = k7;
            if (OwnerVal==1) { k5 = 1.3;k7 = 1; } else  { k5 = 1;k7 = 1.5; }
        } else {
            k1tmp = k1;k1 = 1;
            k2 = k2tmp
            k3 = 1
            k4tmp = k4;k4 = 1;
            k5tmp = k5;k5 = 1;
            k7tmp = k7;k7 = 1;
        }
//alert('2. k3='+k3+' k3tmp='+k3tmp);
        
        Calculate2();
//alert('3. k3='+k3+' k3tmp='+k3tmp);

}

    function ChangeKBMvalue () { /* + */
        var indexc = getSelVal(frm.kbmyears);
        k3 = k3tmp = kbm[indexc];
        Calculate2();
    }

/*
k1 - city
k2 - Кп срок страхования
k3 - Кбм бонус-малус
k4 - Кс период использования
k5 - Квс возраст и стаж
k6 -
k7 - Ко кол-во допущенных лиц
k8 - Км мощность двигателя
k9 - Кн коэфф. страхового тарифа, всегда =1
*/
function Calculate2 () {

    RegionOutVAlue = getSelVal(frm.RegionOut);
    OwnerVal = getSelVal(frm.OwnerSel)
    DrvLimit = getSelVal(frm.IsNoDriverLimit);

    /* Российская федерация - физ лицо.*/
    if (RegionOutVAlue==1 && OwnerVal==1) {
        if( frm.MotorType.selectedIndex == 0 ) {
            kTotal = k1*k5*k7*k8*k4*k3*k9;
        } 
        else if (frm.MotorType.selectedIndex == 2  || frm.MotorType.selectedIndex == 3  || frm.MotorType.selectedIndex == 5  || frm.MotorType.selectedIndex == 6  || frm.MotorType.selectedIndex == 7  || frm.MotorType.selectedIndex == 8  || frm.MotorType.selectedIndex == 9 || frm.MotorType.selectedIndex == 11 ) {
            kTotal = k1*k3*k5*k7*k4*k9;
        }
        else {
            kTotal = k1*k4;
        }
    }

    /* Российская федерация - юр. лицо.*/
    if (RegionOutVAlue==1 && OwnerVal==2) {
        if( frm.MotorType.selectedIndex == 0 ) {
            kTotal = k1*k8*k3*k7*k9;
        } 
        else if ( frm.MotorType.selectedIndex == 3  || frm.MotorType.selectedIndex == 5  || frm.MotorType.selectedIndex == 6  || frm.MotorType.selectedIndex == 7  || frm.MotorType.selectedIndex == 8  || frm.MotorType.selectedIndex == 9 || frm.MotorType.selectedIndex == 11 ) {
            kTotal = k1*k3*k7*k9;
        }
        else if (frm.MotorType.selectedIndex == 2 ) {
//          frm.IsNoDriverLimit.checked = true;
            frm.IsNoDriverLimit.selectedIndex == 1;
            k7=1.5;
            k10=1;
            kTotal = k1*k3*k7;
        }
        else {
            kTotal = k1;k10=1;
        }
    }

    /* ТС следует к месту регистрации на территории РФ (транзит).*/
    if (RegionOutVAlue==2 && OwnerVal==1) {
        if( frm.MotorType.selectedIndex == 0 ) {
            kTotal = k5*k7*k8*k2;
        } 
        else if (frm.MotorType.selectedIndex == 2  || frm.MotorType.selectedIndex == 3  || frm.MotorType.selectedIndex == 4  || frm.MotorType.selectedIndex == 5  || frm.MotorType.selectedIndex == 6  || frm.MotorType.selectedIndex == 7  || frm.MotorType.selectedIndex == 8  || frm.MotorType.selectedIndex == 9 || frm.MotorType.selectedIndex == 11 ) {
            kTotal = k5*k7*k2;
        }
        else {
            kTotal = k2;
        }
    }

    /* ТС следует к месту регистрации на территории РФ (транзит) - юр. лицо.*/
    if (RegionOutVAlue==2 && OwnerVal==2) {
        if( frm.MotorType.selectedIndex == 0 ) {
            kTotal = k7*k8*k2;
        } 
        else if (frm.MotorType.selectedIndex == 2  || frm.MotorType.selectedIndex == 3  || frm.MotorType.selectedIndex == 4  || frm.MotorType.selectedIndex == 5  || frm.MotorType.selectedIndex == 6  || frm.MotorType.selectedIndex == 7  || frm.MotorType.selectedIndex == 8  || frm.MotorType.selectedIndex == 9 || frm.MotorType.selectedIndex == 11 ) {
            kTotal = k7*k2;
        }
        else {
            kTotal = k2;
        }
    }

    /* Ин. государства - физ лицо.*/
    if (RegionOutVAlue==3 && OwnerVal==1) {
        if( frm.MotorType.selectedIndex == 0 ) {
            kTotal = k1*k3*k5*k7*k8*k2*k9;
        } 
        else if (frm.MotorType.selectedIndex == 2  || frm.MotorType.selectedIndex == 3  || frm.MotorType.selectedIndex == 4  || frm.MotorType.selectedIndex == 5  || frm.MotorType.selectedIndex == 6  || frm.MotorType.selectedIndex == 7  || frm.MotorType.selectedIndex == 8  || frm.MotorType.selectedIndex == 9 || frm.MotorType.selectedIndex == 11 ) {
            kTotal = k1*k3*k5*k7*k2*k9;
        }
        else {
            kTotal = k1*k2;k5=1;
        }
    }

    /* Ин. государства - юр. лицо.*/
    if (RegionOutVAlue==3 && OwnerVal==2) {
        if( frm.MotorType.selectedIndex == 0 ) {
            kTotal = k1*k3*k7*k8*k2*k9;
        } 
        else if (frm.MotorType.selectedIndex == 2  || frm.MotorType.selectedIndex == 3  || frm.MotorType.selectedIndex == 5  ||  frm.MotorType.selectedIndex == 6  || frm.MotorType.selectedIndex == 7  || frm.MotorType.selectedIndex == 8  || frm.MotorType.selectedIndex == 9 || frm.MotorType.selectedIndex == 11 ) {
            kTotal = k1*k3*k7*k2*k9;
        }
        else {
            kTotal = k1*k2;
            k10=1;k7=1;
        }
    }

    /* Ин. государства Украина, Белорусия, Казахстан - физ лицо.*/
    if (RegionOutVAlue==4 && OwnerVal==1) {
        if( frm.MotorType.selectedIndex == 0 ) {
            kTotal = k1*k3*k5*k7*k8*k2*k9;
        } 
        else if (frm.MotorType.selectedIndex == 2  || frm.MotorType.selectedIndex == 3  || frm.MotorType.selectedIndex == 5  || frm.MotorType.selectedIndex == 6  || frm.MotorType.selectedIndex == 7  || frm.MotorType.selectedIndex == 8  || frm.MotorType.selectedIndex == 9 || frm.MotorType.selectedIndex == 11 ) {
            kTotal = k1*k3*k5*k7*k2*k9;
        }
        else {
            kTotal = k1*k2;
            k10=1;
        }
    }

    /* Ин. государства Украина, Белорусия, Казахстан  - юр. лицо.*/
    if (RegionOutVAlue==4 && OwnerVal==2) {
        if( frm.MotorType.selectedIndex == 0 ) {
            kTotal = k1*k3*k7*k8*k2*k9;
        } 
        else if (frm.MotorType.selectedIndex == 2  || frm.MotorType.selectedIndex == 3  || frm.MotorType.selectedIndex == 4  || frm.MotorType.selectedIndex == 5  || frm.MotorType.selectedIndex == 6  || frm.MotorType.selectedIndex == 7  || frm.MotorType.selectedIndex == 8  || frm.MotorType.selectedIndex == 9 || frm.MotorType.selectedIndex == 11 ) {
            kTotal = k1*k3*k7*k2*k9;
        }
        else if (frm.MotorType.selectedIndex == 4 ) {
            k10=1;
        }
        else {
            kTotal = k1*k2;
        }
    }

    TarifTotal = Math.ceil(kTotal*k10*TarifBase*100)/100;
    frm.TarifTotal.value = TarifTotal.toFixed(1);
    DisableFields();
}

function DisableFields () {
    OwnerVal = getSelVal(frm.OwnerSel);
    DrvLimit = getSelVal(frm.IsNoDriverLimit);

    with(document.caf)
    {
        Term.disabled = '';
        City.disabled = '';
        UsagePeriod.disabled = '';
//      MotorPower.disabled = '';
        kbmyears.disabled = '';
        DriverStatus.disabled = '';
        IsNoDriverLimit.disabled = '';
        RegionOut.disabled = '';
        RegionOutVAlue = getSelVal(frm.RegionOut);

        if (OwnerVal==2) {
            IsNoDriverLimit.disabled = true;
            DriverStatus.disabled = true;
            UsagePeriod.disabled = true;
        }
//alert (RegionOutVAlue)
        if (DrvLimit >0) {DriverStatus.disabled = true;} // 
        if( TarifBase == '395' || TarifBase == '810' || TarifBase == '305'  )   {IsNoDriverLimit.disabled = true; kbmyears.disabled = true; } // ограничения по количеству лиц  (Ко) - не используется только у прицепов легковых и грузовых авто, в остальных случаях применяется // страхование в предыдущие годы (Кбм) - не применим: для всех типов прицепов 
        if( TarifBase == '395' || TarifBase == '810' )  { DriverStatus.disabled = true;} // минимальный водительский возраст и стаж  (Квс) не используется для  прицепов легковых и грузовых авто.
        if( (TarifBase == '395' || TarifBase == '810') && OwnerVal==2 ) { UsagePeriod.disabled = true;} // период использования не используется для  прицепов легковых и грузовых авто.
        if( TarifBase == '2025' && OwnerVal==2 )    { UsagePeriod.disabled = true;} // 

        if (RegionOutVAlue == 1 ) { Term.disabled = true; } // для граждан РФ - срок договора всегда больше 9ти мес.
 // для транзитников - период использования не имеет значения.      
        if (RegionOutVAlue == 2 && OwnerVal==1 ) { UsagePeriod.disabled = true; City.disabled = true;Term.disabled = true; DriverStatus.disabled = false; IsNoDriverLimit.disabled = false; kbmyears.disabled = true; }
 // для транзитников юр. лиц - Страхование в предыдущие годы не имеет значения.
        if (RegionOutVAlue == 2 && OwnerVal==2 ) { UsagePeriod.disabled = true; City.disabled = true;Term.disabled = true; DriverStatus.disabled = true; IsNoDriverLimit.disabled = true; kbmyears.disabled = true; }
        if (RegionOutVAlue == 3 ) { UsagePeriod.disabled = true; City.disabled = true; DriverStatus.disabled = true; IsNoDriverLimit.disabled = true; kbmyears.disabled = true; } // для иностранцев.
 // для иностранных граждан город не важен
        if (RegionOutVAlue == 4 ) { UsagePeriod.disabled = true; City.disabled = true; DriverStatus.disabled = true; IsNoDriverLimit.disabled = true; }
        if (RegionOutVAlue == 4  && OwnerVal==2 ) { UsagePeriod.disabled = true; City.disabled = true; DriverStatus.disabled = true; IsNoDriverLimit.disabled = true; kbmyears.disabled = true; }
    }

    str = 'Тип ТС: ' + getSelTitle(frm.MotorType)+"\n";
    str += 'Мощность ТС (л.с.): ' + getSelTitle(frm.MotorPower) + "\n";
    str += 'Владелец ТС: ' + getSelTitle(frm.OwnerSel) + "\n";
    str += 'Место регистрации ТС: ' + getSelTitle(frm.RegionOut) + "\n";
    str += (frm.Term.disabled==false)?'Срок договора: ' + getSelTitle(frm.Term) + "\n":'';
    str += (frm.UsagePeriod.disabled==false)?'Период использования ТС: ' + getSelTitle(frm.UsagePeriod) + "\n":'';
    str += (frm.DriverStatus.disabled==false)?'Минимальный возвраст и водительский стаж лиц: ' + getSelTitle(frm.DriverStatus) + "\n":'';
    str += (frm.IsNoDriverLimit.disabled==false)?'Количество водителей: ' + getSelTitle(frm.IsNoDriverLimit) + "\n":'';
    str += (frm.City.disabled==false)?'Место жительства (нахождения) собственника ТС: ' + getSelTitle(frm.City) + "\n":'';
    str += (frm.kbmyears.disabled==false)?'Страхование в предыдущие годы: ' + getSelTitle(frm.kbmyears) + "\n":'';
    str += 'Cтоимость полиса: ' + frm.TarifTotal.value+"\n";
    frm.txtorder.value = str;
}

/*
k1 - city
k2 - Кп срок страхования
k3 - Кбм бонус-малус
k4 - Кс период использования
k5 - Квс возраст и стаж
k6 -
k7 - Ко кол-во допущенных лиц
k8 - Км мощность двигателя
k9 - Кн коэфф. страхового тарифа, всегда =1
*/
