var facade = {};

facade.program = null;
facade.page = null;
facade.car = null;
facade.compare = new Compare();

facade.programs = [];
facade.programs['standard'] = {programClass: programStandard, name: 'Кредит «Универсальный»', description: 'http://www.toyota-bank.ru/universal' , additional : 'не действует в г.Барнаул, Новосибирск и Тула'};
facade.programs['50x50'] = {programClass: program50x50, name: 'Кредит 50x50+', description: 'http://www.toyota-bank.ru/credit_50x50'};
//facade.programs['2Documents'] = {programClass: program2Documents, name: 'Кредит по 2 документам', description: 'http://www.toyota-bank.ru/credit_2documents'};
//facade.programs['corollaStandard'] = {programClass: programCorollaStandard, name: 'Стандарт Королла 2010<br />(первоначальный взнос от 15%)', description: 'http://www.toyota-bank.ru/special_credit'};
//facade.programs['corollaSpecial'] = {programClass: programCorollaSpecial, name: 'Королла 2010 специальная акция<br />(первоначальный взнос от 50%)', description: 'http://www.toyota-bank.ru/special_credit'};
facade.programs['ekaterinburg'] = {programClass: programEkaterinburg, name: 'Кредитная программа 11,9%'};
//facade.programs['special15'] = {programClass: programCorollaStandard, name: 'Специальная программа<br />(первоначальный взнос от 15%)', description: 'http://www.toyota-bank.ru/special_credit'};
//facade.programs['special50'] = {programClass: programCorollaSpecial, name: 'Специальная программа<br />(первоначальный взнос от 50%)', description: 'http://www.toyota-bank.ru/special_credit'};
//facade.programs['our'] = {programClass: programOur, name: 'Наша Тойота', description: 'http://www.toyota-bank.ru/nasha_toyota'};
facade.programs['goodChoice'] = {programClass: programGoodChoice, name: 'Удачный', description: 'http://www.toyota-bank.ru/credit_lucky'};
facade.programs['minusKasko'] = {programClass: programMinusKasko, name: 'Минус КАСКО', description: 'http://www.toyota-bank.ru/minus_kasko'};
//facade.programs['premium'] = {programClass: programPremium, name: 'Премиум', description: 'http://www.toyota-bank.ru/premium'};
// facade.programs['eco'] = {programClass: programEco, name: 'Эко кредит', description: 'http://www.toyota-bank.ru/eco'};
//facade.programs['status'] = {programClass: programStatus, name: 'Статус', description: 'http://www.toyota-bank.ru/status'};
//facade.programs['compact'] = {programClass: programCompact, name: 'Компакт', description: 'http://www.toyota-bank.ru/compact'};
//facade.programs['elegance'] = {programClass: programElegance, name: 'Элеганс', description: 'http://www.toyota-bank.ru/elegance'};
//facade.programs['formula'] = {programClass: programFormula, name: 'Формула Успеха', description: 'http://www.toyota-bank.ru/credit_formula'};
//facade.programs['active'] = {programClass: programActive, name: 'Активный', description: 'http://www.toyota-bank.ru/credit_activ'};
//facade.programs['transformer_combo'] = {programClass: programTransformerCombo, name: 'Трансформер', description: 'http://www.toyota-bank.ru/credit_transformer'};
facade.programs['practical'] = {programClass: programPractical, name: 'Практичный', description: 'http://www.toyota-bank.ru/practical' , additional : 'действует в г.Барнаул, Новосибирск и Тула' };
facade.programs['ultra'] = {programClass: programUltra, name: 'Ультра', description: 'http://www.toyota-bank.ru/ultra' , additional : '' };
facade.programs['ng_camry'] = {programClass: programNgCamry, name: 'NG Camry', description: 'http://www.toyota-bank.ru/ngcamry' , additional : '' };
facade.programs['trade_in'] = {programClass: programTradeIn, name: 'Trade In', description: 'http://www.toyota-bank.ru/tradein' , additional : '' };
facade.programs['upgrade'] = {programClass: programUpgrade, name: 'UPgrade', description: 'http://www.toyota-bank.ru/upgradev1' , additional : '' };
facade.programs['exclusive'] = {programClass: programExclusive, name: 'Эксклюзив', description: 'http://www.toyota-bank.ru/exclusive' , additional : 'действует в ТЦ Нижний Новгород,<br /> Нижний Новгород Юг' };
facade.programs['newyear'] = {programClass: programNewyear, name: 'Новогодний', description: 'http://www.toyota-bank.ru/newyear' , additional : '' };
facade.programs['variant'] = {programClass: programVariant, name: 'Вариант', description: 'http://www.toyota-bank.ru/variant' , additional : 'Действует в ТЦ Сокольники,<br /> Новорижский, Шереметьево.' };

facade.getProgramsByCar = function(name)
{  
    if (get_dealer == 'ekaterinburgyug' && ($.inArray(name, ['Auris', 'Yaris', 'Verso', 'IQ']) != -1))
    {
        if (name == 'IQ')
        {
            return ['standard', '50x50', 'ekaterinburg' , 'practical' , 'trade_in' , 'exclusive' ];
        }
        else
        {
            return ['standard', '50x50', 'ekaterinburg' , 'practical' , 'trade_in' , 'exclusive' ];
        }
    }
    
    if (name == 'Corolla')
    {
        return ['standard', '50x50' , 'practical' , 'trade_in' , 'upgrade' , 'ultra' , 'exclusive' ];//, 'active', 'transformer_combo'
    }
    
    if (name == 'Prius')
    {
        return ['standard', '50x50', 'practical' , 'trade_in' , 'ultra' , 'exclusive' ]; // , 'eco' 
    }
    
    if (name == 'IQ')
    {
        return ['standard', '50x50' , 'practical' , 'trade_in' , 'ultra' , 'exclusive' , 'variant'];
    }
    
    if (name == 'Camry')
    {
        return ['standard', '50x50' , 'practical'  , 'ng_camry' , 'trade_in' , 'ultra' , 'exclusive' ];
    }
    
    if (name == 'RAV4')
    {
        return ['standard', '50x50' , 'practical' , 'ultra' , 'trade_in' , 'upgrade' , 'exclusive' , 'newyear' ]; // , 'active', 'transformer_combo'
    }
    
    if (name == 'Avensis')
    {
        return ['standard', '50x50' , 'practical' , 'trade_in' , 'ultra' , 'exclusive' ];
    }
    
    if (name == 'Land Cruiser 200')
    {
        return ['standard', '50x50' , 'practical' , 'trade_in'  , 'upgrade' , 'ultra' , 'exclusive']; // , 'status'
    }  
    
    if ($.inArray(name, ['Land Cruiser Prado', 'Land Cruiser 200']) != -1)
    {
        return ['standard', '50x50' , 'practical' , 'trade_in' , 'ultra' , 'exclusive' ]; // , 'status'
    }
    
    if (name == 'Highlander')
    {
        return ['standard', '50x50', 'practical' , 'trade_in' , 'ultra' , 'exclusive' ]; // , 'status' 
    }
    
    if (name == 'Hilux')
    {
        return ['standard', '50x50' , 'practical' , 'trade_in' , 'ultra' , 'exclusive' ]; // , 'status'
    } 
 
       
    
    if (name == 'Автомобили с пробегом')
    {
        return ['goodChoice', 'minusKasko' , 'variant'];
    }
    
    return ['standard', '50x50', 'practical' , 'trade_in' , 'ultra' , 'exclusive' ];
}

facade.checkGetProgram = function(get_program)
{
    if(get_program == 'eco')
    {
        return 'eco';
    }
}

facade.getDefaultProgramByCar = function(name)
{
    if (name == 'Автомобили с пробегом')
    {
        return 'goodChoice';
    }
/*    
    if (name == 'Camry')
    {
        return 'formula';
    }
*/    
    return '50x50';
}


$(document).ready(function()
{
    facade.page = new Page();
    
    if (get_id)
    {
        var successor = function(data) {
        
            if( typeof data.car != 'undefined' ) 
                facade.car  = new Car( data , false);  
            else
                facade.car = new Car({name: data.ModelName}, get_id);
                if (get_program)
                {
                    facade.car.renderToCalc(facade.checkGetProgram(get_program));
                }
                else
                {
                    facade.car.renderToCalc();
                }
                new dw_scrollObj('wn', 'lyr1', 't1');
                facade.page.carListPage.hide();
                facade.page.calcPage.show();
        }
        
        if( get_id == 'externalInf' ){
            
            var date = new Date();
            // считает максимально допустимый период кредитования, тачка должна быть не старше
            // восьми лет на момент завершения кредита
            var maxCreditPeriod = 60 - (date.getFullYear() - preloadData.car.year) * 12;
            facade.page.sliderTerm.slider({max:  maxCreditPeriod});
             
            var step = (maxCreditPeriod - 12 ) / 4 ;
            var current = 12;
            $('div.jva:gt(0)').each( function(){
                current += step;
                $(this).html( Math.ceil(current) );
            });
            
            successor(preloadData);
        } else
        $.ajax({
            url: credit_root + '/b.php?t=queryModelCost',
            type: 'post',
            dataType: 'json',
            data: {ModelID: get_id},
            success: successor
        });
    }
    else
    { 
        facade.page.renderCarList();
    }
});


function formatDigit(value)
{
    value = value.toString();
    var out = ''
    var dot = value.lastIndexOf('.');
    if ( dot != '-1' )
    {
        out = value.substr(dot);
        value = value.substring(0, dot);
    }
    
    var i = 0;
    for ( i = value.length - 3; i >= 0; i -= 3 )
    {
        out = ' ' + value.substr(i, 3) + out;
    }
    
    if (i != -3)
    {
        out = value.substring(0,i+3) + out;
    }
    
    if (out.charAt(0) == ' ')
    {
        out = out.substr(1);
    }
    return out;
}
