function declOfNum(number, titles) {
    cases = [2, 0, 1, 1, 1, 2];
    return titles[ (number % 100 > 4 && number % 100 < 20) ? 2 : cases[(number % 10 < 5) ? number % 10 : 5] ];
}
function number_format(c, a, f, b) {
    var d, e, g;
    isNaN(a = Math.abs(a)) && (a = 2);
    void 0 == f && (f = ",");
    void 0 == b && (b = ".");
    d = parseInt(c = (+c || 0).toFixed(a)) + "";
    g = (e = 3 < (e = d.length) ? e % 3 : 0) ? d.substr(0, e) + b : "";
    b = d.substr(e).replace(/(\d{3})(?=\d)/g, "$1" + b);
    c = a ? f + Math.abs(c - d).toFixed(a).replace(/-/, 0).slice(2) : "";
    return g + b + c
};

/////////////////////
//////functions//////
/////////////////////
/* анимация ошибки в секции */
/* + выдача аннотации о том что было сделано неправильно */

function errorOnInput(self) {
    $(self).removeClass('validated disabled');
    var annotations = $('.annotations', self);
    if (annotations.children('.alert').length) {
        annotations.children('.annotation').hide();
        annotations.children('.alert').show();
    }
    $('input[type=text]', self).focus();
    $(self).children('.inputWrapper').effect('shake', {
        times: 2,
        distance: 5
    });
    return false;
}
/* валидация секций. */
/* Валидация зависит от "типа секции" */
/* тип секции указывается классом */

function multiformInputLogic(self) {

    customLogicOneField(self);

    var nextInputWrapper = $(self).next();
    /* показываем текст из lAfter на предыдущем поле */
    if ($('.inputWrapper .lAfter', self).length) {
        $('.inputWrapper .sectionHeading', self).html($('.inputWrapper .lAfter', self).val());
    }
    /* обработка, если следующая секция скрыта, либо является финальными кнопками сабмита */
    if (nextInputWrapper.hasClass('submit')) {
        nextInputWrapper.slideDown();
    }
    if (nextInputWrapper.hasClass('hidden')) {
        if (nextInputWrapper.hasClass('show')) nextInputWrapper.slideDown();
        else nextInputWrapper = nextInputWrapper.next();
    }

    $(self).addClass('disabled validated');
    $(nextInputWrapper).removeClass('disabled');
    /* анимация перехода */
    $('.sectionHeading', nextInputWrapper).text($('.sectionHeading', nextInputWrapper).attr('data'));
    if ($(nextInputWrapper).html()) {
        $('html, body').animate({
            scrollTop: $(nextInputWrapper).offset().top - 200
        }, 400);
        /* фокус на следующем текстово инпуте */
        /* НЕ РАБОТАЕТ НУЖНО ПОПРАВИТЬ */
        $('input[type=text]', nextInputWrapper).focus();
    }
}


$(document).ready(function () {
    ///Поля обрабатываются по enter
    $('input[type=text]').live({
        keyup: function () {
            if (event.keyCode == 13) {
                var prnt = $(this).parents('.section');
                $('.ProgressSubmit', prnt).click();
            }
        }
    });


    //запрет ввода всего, кроме цифр
    $("input.InputNumbersOnly").live("keyup", function (e) {
        if (!/^\d+$/.test($(this).val())) {
            $(this).val($(this).val().replace(/[^\d\.]/g, ""));
            $('.alert bdo', $(this).parents('.section')).text('Используйте только цифры');
            errorOnInput($(this).parents('.section'));
        }
    });

    /////////////////////
    ///////GLOBAL////////
    /////////////////////
    /* фокус на первом инпуте */
    $('.firstOnForm').focus();
    /* кастомные чекбоксы и радиокнопки для обычных страниц */
    $('.cuteCheckbox_check').iCheck({
        checkboxClass: 'cuteCheckbox'
    });
    $('.cuteRadio input').iCheck({
        radioClass: 'iradio-cute'
    });
    $('.iSelect').selectBox();
    /* кастомные чекбоксы и радиокнопки для анкет */
    $('.section input[type="radio"]').iCheck();
    /* радио */
    $('.section input[type="checkbox"]').iCheck();
    /* хук - обработка клика по радио лейблу(так как сам чекбокс скрыт) */
    $('.section.simpleRadio input').on('ifChecked', function () {
        $(this).parents('.inputInner').children('.radioLabel').removeClass('checkedLabel');
        $(this).parent('.iradio').next().addClass('checkedLabel');
    });
    /* макси для инпутов*/
    $('.maskPhoneHome').mask('9999999999', {
        placeholder: " "
    });
    $('.maskPhone').mask('+7 999 999 99 99', {
        placeholder: " ",
        clearIncomplete: false
    });
    $('.mask2_2').mask("99 99", {
        placeholder: " "
    });
    $('.mask6').mask("999999", {
        placeholder: " "
    });
    $('.maskData').mask('99.99.9999', {
        placeholder: " "
    })
    $('.mask33').mask("999-999", {
        placeholder: " "
    });
    /* макси */
    /* обрабтка инпутов. Назначение нужных событий */
    $('.section input').each(function () { /* устанавливаем ширину инпута, если указан параметр size */
        if ($(this).attr('size')) {
            var newInputWidth = $(this).attr('size');
            $(this).width(newInputWidth * 12 + 'px');
            //автоматическая маска, по параметру size="X"
            if ($(this).hasClass('maskedBySize')) {
                var a = new Array();
                for (i = 0; i < newInputWidth; i++) {
                    a += '9';
                }
                $(this).mask(a, {
                    placeholder: " "
                });
            } else {
                $(this).attr('maxlength', newInputWidth);
            }
        }
        /* события для кроссбраузерной подсветки label, при фокусе на связанный с ним по for="" инпут */
        $(this).focus(function () {
            $('label[for="' + $(this).attr('id') + '"]').addClass('focusMe');
        });
        $(this).blur(function () {
            $('label[for="' + $(this).attr('id') + '"]').removeClass('focusMe');
        });
    });
    /* события для кроссбраузерной подсветки label, при фокусе на связанную с ним по for="" текстарею */
    $('.section textarea').each(function () {
        $(this).focus(function () {
            $('label[for="' + $(this).attr('id') + '"]').addClass('focusMe');
        });
        $(this).blur(function () {
            $('label[for="' + $(this).attr('id') + '"]').removeClass('focusMe');
        });
    });

    /* хук для работы combinedRadio */

    if ($(window).width() < 1000) {
        $('.getCreditFamilyChange').remove();
        $('.combinedRadio .radioLabel').hover(function () {
            if ($(this).attr('id') == 'radio_srok_3') $('#srokText').focus();
            $('#' + $(this).attr('for')).iCheck('check');

        });
    }


    /////////////////////
    ///////EVENTS////////
    /////////////////////
    /* simple radio logic */
    /*lAfter - у нас наполняется динамически, при сабмите секции. Например, при сабмите секции.simpleRadio, происходит перенос value выбранного радиоЭлемента, в lAfter. Затем, при переходе к следующей секции, jquery переносит значение lAfter в label.header. */
    $('.simpleRadio input[type="radio"]').on('ifChecked', function () {
        if ($(this).attr('id') != 'radio_srok_3') {
            var prnt = $(this).parents('.section');
            $('.iconProgressSubmit', prnt).click();
        }
    });
    /* submit button click */
    $('.ProgressSubmit').live("click", function () {
        var prevSubmitted = $(this).parents('.section');
		if ($(prevSubmitted).next().html()) {
			if (valdiationInput(prevSubmitted)) {
				multiformInputLogic(prevSubmitted);
			} else {
				errorOnInput(prevSubmitted);
			}
		}
        return false;
    });

    /* click on next disabled div after current */
    $('.section.disabled').not('.validated').click(function () {
        var prnt = $(this).prev('.section').not('.disabled');
        $('.ProgressSubmit', prnt).click();
    });

    /* Keyboard Events */
    $('.section input').bind('keypress', function (event) {
        var currentInput = $(this);
        var currentInputSection = $(this).parents('.section');
        /* enter keypress event */
        //        if (event.which === 13) {
        //            if (valdiationInput(currentInputSection)) {
        //                console.log('keyboard validated');
        //                multiformInputLogic(currentInputSection);
        //            } else {
        //                errorOnInput(currentInput);
        //            }
        //            return false;
        //        } /* tab keypress event */
//        if ((event.keyCode || event.which) == 9) { /* нужно реализовать */
//        }
    });
    /* обработка клика по валидным секциям секциям -> событие изменить */
    $('.section', '#content').not('.submit').click(function () {
        var part = $(this).prev();
        if ($(part).hasClass('ProgressSubmit')) return false;
        var currentSelectedSection = $(this);
        if (currentSelectedSection.hasClass('validated')) {
            var disbld = $('.section', '#content').not('.disabled');
            disbld.addClass('disabled');
            currentSelectedSection.removeClass('disabled');
            $('.annotation.query', currentSelectedSection).show();
            $('.annotation.alert', currentSelectedSection).hide();
            $('.sectionHeading', currentSelectedSection).text($('.sectionHeading', currentSelectedSection).attr('data'));
            $('input[type=text]', currentSelectedSection).focus();
        }
    });

    /* клик по кнопке пропустить в секциях которые можно пропустить */
    $('.skip').click(function () {
        $(this).parents('.section').find('input[type=text]').val('');
        multiformInputLogic($(this).parents('.section'));
        return false;
    })
});