function calculation(todis)
{
    var res;
    var ptt = /^[\d\.\,]*$/;
    
    //------------------------
    
    var sum = document.getElementById('calc_summa').value;
    var err = 0;
    if( !sum )
    {
        alert('Не указана "Сумма кредита"');
        document.getElementById('calc_summa').focus();
        return;
    }
    else if( !ptt.exec( sum ) )
    {
        alert('Некорректно указана "Сумма кредита"');
        document.getElementById('calc_summa').focus();
        return;
    }
    
    sum = sum.replace(",",".");
    sum = parseFloat(sum);
    //------------------------
    
    var stavka = document.getElementById('calc_stavka').value;
    
    if( !stavka )
    {
        alert('Не указана "Процентная ставка"');
        document.getElementById('calc_stavka').focus();
        return;
    }
    else if( !ptt.exec( stavka ) )
    {
        alert('Некорректно указана "Процентная ставка"');
        document.getElementById('calc_stavka').focus();
        return;
    }
    
    stavka = stavka.replace(",",".");
    stavka = parseFloat(stavka);
    
    //------------------------    
    
    //var cdate_d = document.getElementById('calc_cdate_d').value;
    var cdate_m = document.getElementById('calc_cdate_m').value;
    var cdate_y = document.getElementById('calc_cdate_y').value;
    
    var srok = document.getElementById('calc_srok').value;
    
    var ptt2 = /^\d*$/;
    
    if( !srok )
    {
        alert('Не указан "Срок погашения (мес)"');
        document.getElementById('calc_srok').focus();
        return;
    }
    else if( !ptt2.exec( srok ) )
    {
        alert('Некорректно указан "Срок погашения (мес)"');
        document.getElementById('calc_srok').focus();
        return;
    }
    
    //------------------------  
    
    var type;
    if( document.calcform.calc_type[0].checked )
    {
        type = 'diff';
    }
    else
    {
        type = 'flat';
    }
    
    //--------------------------
    
    var obsl = document.getElementById('calc_obsl').value;
    
    if( !obsl )
    {
        alert('Не указано значение "Обслуживание (% от кредита)"');
        document.getElementById('calc_obsl').focus();
        return;
    }
    else if( !ptt.exec( obsl ) )
    {
        alert('Некорректно значение "Обслуживание (% от кредита)"');
        document.getElementById('calc_obsl').focus();
        return;
    }
    
    obsl = obsl.replace(",", ".");
    obsl = parseFloat(obsl);
    



    
    //--------------------------
    
    var start_m = parseFloat(cdate_m);
    var start_y = parseFloat(cdate_y);
    
    var months_a = new Array("", "Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь",
                             "Октябрь","Ноябрь","Декабрь");
    
    res = '<table class="calc_table" border=1 cellpadding=0 cellspacing=0><tr>'+
    '<td align=center><b>Месяц</b></td>'+
    '<td align=center><b>Дата</b></td>'+
    '<td align=center><b>Остаток кредита</b></td>'+
    '<td align=center><b>Основной платеж</b></td>'+
    '<td align=center><b>Проценты</b></td>'+
    '<td align=center><b>Обслуживание</b></td>'+
    '<td align=center><b>Всего за платеж</b></td>'+
    '</tr>';
    var mc;
    var basepay;
    var basepay2;
    var ostatok = parseFloat(sum);
    var ostatok2;
    var p_obsl2;
    
    var ps = stavka/(100*12);
    var allsum;
    var basepay2proc;
    
    sum = parseFloat(sum);
    
    if(type=='diff')
    {
        basepay = sum/srok;
    }
    else
    {
        m1 = -1;
        v2 = Math.pow(1+ps, srok*m1);
        basepay2proc = Math.ceil(sum*ps/(1-v2));
    }
    
    var all_basepay = 0;
    var all_allsum = 0;
    var all_proc = 0;
    var all_p_obsl = 0;
    
    var allall = 0;
    var allost = 0;
    var basepay_ost = 0;
    var basepay_skidka = 0;
    
    
    for(var i=0; i<srok; i++)
    {
        start_m += 1;
        if(start_m>12)
        {
            start_m = 1;
            start_y += 1;
        }
        
        mc = i+1;
        res += '<tr><td>'+mc+'</td><td nowrap>'+months_a[start_m]+' '+start_y+'</td>';
        
        if(type=='diff')
        {
            
            p_obsl = sum*obsl/100;
            
            basepay2 = Math.round(basepay*100)/100;
            
            if(basepay2>basepay)
            {
                basepay_skidka = basepay_skidka + basepay2 - basepay;
            }
            else
            {
                basepay_ost = basepay_ost + basepay - basepay2;
            }
            
            if(basepay_skidka>0 && i+1==srok)
            {
                basepay = basepay-basepay_skidka;
                basepay2 = Math.round(basepay*100)/100;
            }
            
            proc = ps*ostatok;
            
            
            ostatok2 = Math.round(ostatok*100)/100;
            
            proc2 = Math.round(proc*100)/100;
            //proc2 = proc;
            p_obsl2 = Math.round(p_obsl*100)/100;
            
            allsum = basepay2+proc2+p_obsl2;
            allsum2 = Math.round(allsum*100)/100;
            
            if(i==0)
            {
                document.getElementById('calc_res_basepay').innerHTML = Math.round(allsum2);
                document.getElementById('calc_res_obsl').innerHTML = Math.round(p_obsl2);
            }
            
            ostatok3 = Math.round(ostatok2);
            basepay3 = Math.round(basepay2);
            proc3 = Math.round(proc2);
            p_obsl3 = Math.round(p_obsl2);
            allsum3 = Math.round(allsum2);
            
            
            res += '<td>'+ostatok3+'</td>';
            res += '<td>'+basepay3+'</td>';
            res += '<td>'+proc3+'</td>';
            res += '<td>'+p_obsl3+'</td>';
            res += '<td>'+allsum3+'</td><tr>';
            
            ostatok -= basepay2;
            
            all_basepay += basepay2;
            all_proc += proc2;
            all_p_obsl += p_obsl2;
            all_allsum += allsum2;
            
        }
        else
        {
            proc = ps*ostatok;
            p_obsl = sum*obsl/100;
            
            if(i+1==srok)
            {
                allall = allall+basepay2proc+p_obsl;
                allost = allall-(basepay2proc*srok)-(p_obsl*srok);
                basepay2proc -= allost;
                
                
            }
            
            basepay = basepay2proc-proc;
            basepay2 = Math.ceil(basepay*100)/100;
            
            
            if(i+1==srok)
            {
                basepay2 = Math.ceil(ostatok*100)/100;
            }
            
            
            ostatok2 = Math.ceil(ostatok*100)/100;
            proc2 = Math.ceil(proc*100)/100;
            p_obsl2 = Math.ceil(p_obsl*100)/100;
            
            allsum = basepay2+proc2+p_obsl2;
            allsum2 = Math.ceil(allsum*100)/100;

            if(i==0)
            {
                document.getElementById('calc_res_basepay').innerHTML = Math.round(allsum2);
                document.getElementById('calc_res_obsl').innerHTML = Math.round(p_obsl);
            }
            
            allall += allsum2;
            
            ostatok3 = Math.round(ostatok2);
            basepay3 = Math.round(basepay2);
            proc3 = Math.round(proc2);
            p_obsl3 = Math.round(p_obsl2);
            allsum3 = Math.round(allsum2);
            
            res += '<td>'+ostatok3+'</td>';
            res += '<td>'+basepay3+'</td>';
            res += '<td>'+proc3+'</td>';
            res += '<td>'+p_obsl3+'</td>';
            res += '<td>'+allsum3+'</td><tr>';
            
            ostatok -= basepay2;
            
            all_basepay += basepay2;
            all_proc += proc2;
            all_p_obsl += p_obsl2;
            all_allsum += allsum2;
        }
    }
    
    var all_proc2 = Math.round(all_proc*100)/100
    var all_allsum2 = Math.round(all_allsum*100)/100
    var all_p_obsl2 = Math.round(all_p_obsl*100)/100
    var all_basepay2 = Math.round(all_basepay*100)/100
    
    all_basepay = all_basepay/srok;
/*    
    document.getElementById('calc_res_proc').innerHTML = Math.round(all_proc*100)/100;    
    document.getElementById('calc_res_allsum').innerHTML = Math.round(all_allsum*100)/100;    
    document.getElementById('calc_res_obsl').innerHTML = Math.round(all_p_obsl*100)/100;    
    document.getElementById('calc_res_basepay').innerHTML = Math.round(all_basepay*100)/100;
*/    
    document.getElementById('calc_res_proc').innerHTML = Math.round(all_proc);    
    document.getElementById('calc_res_allsum').innerHTML = Math.round(all_allsum);    
    //document.getElementById('calc_res_obsl').innerHTML = Math.round(all_p_obsl);    
    //document.getElementById('calc_res_basepay').innerHTML = Math.round(all_basepay);


    all_basepay3 = Math.round(all_basepay2);
    all_proc3 = Math.round(all_proc2);
    all_p_obsl3 = Math.round(all_p_obsl2);
    all_allsum3 = Math.round(all_allsum2);
    
    
    res += '<tr><td><b>Всего:</b></td><td>&nbsp;</td><td>&nbsp;</td><td><b>'+all_basepay3+'</b></td>';
    res += '<td><b>'+all_proc3+'</b></td>';
    res += '<td><b>'+all_p_obsl3+'</b></td>';
    res += '<td><b>'+all_allsum3+'</b></td></tr>';
    
    res += '</table>';
    
    
    
    
    
    document.getElementById(todis).innerHTML = res;
    
    document.getElementById('toprint').style.display = 'block';
    
            var calc_summa = document.getElementById('calc_summa').value;
        var calc_stavka = document.getElementById('calc_stavka').value;
        var calc_cdate_m = document.getElementById('calc_cdate_m').value;
        var calc_cdate_y = document.getElementById('calc_cdate_y').value;
        var calc_obsl = document.getElementById('calc_obsl').value;
        var calc_srok = document.getElementById('calc_srok').value;
        
        if( document.calcform.calc_type[0].checked )
        {
            var calc_type = 'diff';
        }
        else
        {
            var calc_type = 'flat';
        }
        
        var hrf="/print.php?calc_summa="+calc_summa+"&calc_stavka="
        +calc_stavka+"&calc_cdate_m="+calc_cdate_m+"&calc_cdate_y="+calc_cdate_y+
        "&calc_obsl="+calc_obsl+"&calc_srok="+calc_srok+"&calc_type="+calc_type;
    
    document.getElementById('knopka_print').innerHTML = '<br><p align=center><a href="'+hrf+'" target=_blank><img border=0 src="/images/butprint.gif"></a></p>';
    
    document.getElementById('knopka_print').style.display = 'block';
}

function calculation2()
{
    document.getElementById('calc_okoshko').style.top = '230px';
    document.getElementById('calc_okoshko').style.left = '200px';
    document.getElementById('calc_okoshko').style.background = '#D1E1F3';
    document.getElementById('calc_okoshko').style.display = 'block';
    
    calculation('calc_okoshko_in');
}

function toprint()
{
    /*
    document.getElementById('calc_okoshko').style.top = '5px';
    document.getElementById('calc_okoshko').style.left = '5px';
    window.print();
    */
    
  
        var calc_summa = document.getElementById('calc_summa').value;
        var calc_stavka = document.getElementById('calc_stavka').value;
        var calc_cdate_m = document.getElementById('calc_cdate_m').value;
        var calc_cdate_y = document.getElementById('calc_cdate_y').value;
        var calc_obsl = document.getElementById('calc_obsl').value;
        var calc_srok = document.getElementById('calc_srok').value;
        
        if( document.calcform.calc_type[0].checked )
        {
            var calc_type = 'diff';
        }
        else
        {
            var calc_type = 'flat';
        }
        
        var hrf="/print.php?calc_summa="+calc_summa+"&calc_stavka="
        +calc_stavka+"&calc_cdate_m="+calc_cdate_m+"&calc_cdate_y="+calc_cdate_y+
        "&calc_obsl="+calc_obsl+"&calc_srok="+calc_srok+"&calc_type="+calc_type;
        
        window.open(hrf,'Кредитный калькулятор');
        
    //if( !w )
    //{
    //    alert('Для того чтобы распечатать таблицу калькулятора, пожалуйста включите всплывающие окна ("popUp") в настройках Вашего браузера');
    //}
    //else
    //{
        /*
        var printwin = '';
        
        printwin += '<html><head><title>ОПТИМА КРЕДИТ - профессиональный кредитный брокер</title>';
        printwin += '<script>function f1(){ var is_chrome = navigator.userAgent.toLowerCase().indexOf("chrome") > -1; if( !is_chrome){ window.location.reload(); } window.print(); }</script>';
        printwin += '<style media="print">#noprint { display: none; } </style>';
        printwin += '<style>.calc_table { border: 1px solid #000; } .calc_table td { padding: 5px; border: 1px #000 solid; } .calc2_table td { padding-top: 5px; padding-bottom: 5px; padding-right: 5px; }</style>';
        printwin += '</head><body>';
        
        printwin += '<div id="noprint"><p align=center><input type="button" onclick="f1();" value="Распечатать"></p></div>';
        
        printwin += '<h2>Кредитный калькулятор</h2>';
        
        printwin += '<h3 style="color: #000;">Расчетная информация по платежам</h3><table cellspacing="0"><tr><td>';
        
        printwin += document.getElementById('calc_print').innerHTML;
        
        printwin += '</td><td style="padding-left: 70px;">';
        
        printwin += '<table class="calc2_table" cellspacing="0">';
        
        printwin += '<tr>';
        printwin += '        <td>';
        printwin += '          Сумма кредита, руб.:';
        printwin += '        </td>';
        printwin += '        <td>';
        printwin += document.getElementById('calc_summa').value;
        
        printwin += '</td></tr><tr>';
        printwin += '<td>';
        printwin += 'Процентная ставка, %:';
        printwin += '</td>';
        printwin += '<td>';
        printwin += document.getElementById('calc_stavka').value;
        printwin += '</td>';
        printwin += '</tr>';
        printwin += '<tr>';
        printwin += '<td>';
        printwin += 'Срок погашения (мес):';
        printwin += '</td>';
        printwin += '<td>';
        printwin += document.getElementById('calc_srok').value;
        printwin += '</td>';
        printwin += '</tr>';
        printwin += '<tr>';
        printwin += '<td>';
        printwin += 'Ежемесячная комиссия, %:';
        printwin += '</td>';
        printwin += '<td>';
        printwin += document.getElementById('calc_obsl').value;
        printwin += '</td>';
        printwin += '</tr>';
        printwin += '</table>';
        printwin += '</td>';
        printwin += '</tr></table>';
        printwin += '<h3 style="color: #000;">График платежей</h3>';
        printwin += document.getElementById('calc_result').innerHTML;
        
        printwin += "<script>window.print()</"+"script>";
        
        printwin += '</body></html>';
        
        w.document.write(printwin);
        */
        
        
        
        //w.print();
    //}
    //w.close();
}

function close_calcw()
{
    document.getElementById('calc_okoshko').style.display='none';
    document.getElementById('calc_shadow').style.display='none';
    calc_null();
}

function calc_open()
{
    var lf = getClientCenterX();
    //alert(lf);
    document.getElementById('calc_okoshko').style.top = '100px';
    document.getElementById('calc_okoshko').style.left = lf+'px';
    document.getElementById('calc_okoshko').style.width = '800px';

    document.getElementById('calc_okoshko').style.display='block';
    
    //--------------------------
    
    document.getElementById('calc_shadow').style.display='block';
    
    scroll(0,0);
}

function calc_null()
{
    document.getElementById('calc_result').innerHTML = '';
    document.getElementById('calc_summa').value = '';
    document.getElementById('calc_stavka').value = '';
    document.getElementById('calc_srok').value = '';
    document.getElementById('calc_obsl').value = '0';
    
    document.calcform.calc_type[1].checked = true;
    
    document.getElementById('calc_res_basepay').innerHTML = '0';
    document.getElementById('calc_res_obsl').innerHTML = '0';
    document.getElementById('calc_res_proc').innerHTML = '0';
    document.getElementById('calc_res_allsum').innerHTML = '0';
    

    var currentTime = new Date()    
    document.calcform.calc_cdate_y[0].checked = true;
    document.getElementById('calc_cdate_m').options[currentTime.getMonth()].defaultSelected = true;

/*
    document.getElementById('calc_pr_sum').innerHTML = '0';
    document.getElementById('calc_pr_obsl').innerHTML = '0';
    document.getElementById('calc_pr_stavka').innerHTML = '0';
    document.getElementById('calc_pr_srok').innerHTML = '0';
        */
    document.getElementById('toprint').style.display = 'none';
    
    document.getElementById('knopka_print').style.display = 'none';
    
}


function getClientCenterX()
{
    return (parseInt(getClientWidth())+getBodyScrollLeft()-850)/2;
}

function getBodyScrollLeft()
{
    return self.pageXOffset || (document.documentElement && document.documentElement.scrollLeft) || (document.body && document.body.scrollLeft);
}

function getClientWidth()
{
  return document.compatMode=='CSS1Compat' && !window.opera?document.documentElement.clientWidth:document.body.clientWidth;
}

function video_open()
{ 
    var lf = getClientCenterX2();
    //alert(lf);
    document.getElementById('video_okoshko').style.top = '100px';
    document.getElementById('video_okoshko').style.left = lf+'px';
    document.getElementById('video_okoshko').style.width = '554px';
    document.getElementById('video_okoshko').style.display='block';

    //--------------------------
    
    document.getElementById('calc_shadow').style.display='block';
    
    //window.location.href='#';
}

function close_videow()
{
    document.getElementById('video_okoshko').style.display='none';
    document.getElementById('calc_shadow').style.display='none';
}

function getClientCenterX2()
{
    return (parseInt(getClientWidth())+getBodyScrollLeft()-604)/2;
}

