terminal = null;
iptv = false;
window.addEvent('domready', function()
{
    if ($('step1'))
    {
        terminal = $('terminal').clone(true, true);
        if (!iptv)
            setTerminalsCard();
        else
            setIptvType();
        showTerminalNumber($('terminal'));
    }
});
cwp = false;
function showTerminalNumber(select)
{
    var selected = $(select[select.selectedIndex]);
    if (selected.get('rel'))
    {
        $("terminalnum").style.display = 'block';
        $("terminalNumber").addClass('required');
    } else
    {
        $("terminalnum").style.display = 'none';
        $("terminalNumber").removeClass('required');
    }
    setNoTerminal(selected.value && selected.value == 'u0')
    if (selected.hasClass("notrecommended"))
    {
        $('commonwarn').style.display = 'block';
    } else
    {
        $('commonwarn').style.display = 'none';
    }
}

function setNoTerminal(show)
{
    if (show)
    {
        $('noterminalwarn').style.display = 'block';
        $('startToday').checked = false;
        $('startTodayRow').style.display = 'none';
    } else
    {
        $('noterminalwarn').style.display = 'none';
        $('startToday').checked = true;
        $('startTodayRow').style.display = 'block';
        $('commonwarn').style.display = 'none';
    }
}

function setAccountChecking(select)
{
    if (select.value.indexOf('47') != -1)
    {
        $("accountType").style.display = 'none';
        $("accountEmail").style.display = 'none';
        $("ae").removeClass('required');
    } else if (select.value.indexOf('электронном') != -1)
    {
        $("accountEmail").style.display = 'block';
        $("ae").addClass('required');
    } else if (select.value.indexOf('письменном') != -1)
    {
        $("accountEmail").style.display = 'none';
        $("ae").removeClass('required');
    } else
    {
        $("accountType").style.display = 'block';
        $("accountEmail").style.display = 'block';
        $("ae").addClass('required');
    }
}

function checkRegisterForm()
{
    correct = checkRegisterPhones();
    correct2 = checkRegisterAddress();
    return correct && correct2;
}

function checkRegisterAddress()
{
    result = true;
    var errors = $$('#install .errors');
    if ($('address_kladr').value == '')
    {
        errors.set('text', 'Пожалуйста, выберите адрес установки');
        $('install').addClass('validate-error');
        result = false;
    } else
    {
        $('install').removeClass('validate-error');
        errors.set('text', '');
    }
    errors = $$('#postw .errors');
    if (!$('addressEquals').checked
            && ($('post_kladr').value == '' && $('post_plain').value == ''))
    {
        errors.set('text', 'Пожалуйста, выберите почтовый адрес');
        $('postw').addClass('validate-error');
        result = false;
    } else
    {
        $('postw').removeClass('validate-error');
        errors.set('text', '');
    }
    return result;
}

function checkRegisterPhones()
{
    var phones = $$('#phones input');
    var errors = $$('#phones .errors');
    regexp = /^\+?[0-9 ]+\([0-9 ]+\)[0-9 \-]+$/;
    empty = true;
    error = false;
    num = 1;
    phones.each(function(el, idx)
    {
        value = el.value;
        if (value == "+7" || value == '')
            return;
        if (error)
            return;
        empty = false;
        error = !regexp.test(value);
        if (error)
            num = idx;
    });
    if (empty)
    {
        errors.set('text', 'Введите хотя бы один номер телефона');
        $('phones').addClass('validate-error');
        return false;
    } else if (error)
    {
        errors
                .set(
                        'text',
                        'Телефон введен неправильно. Пожалуйста, укажите после кода страны в скобках код города, например: 7(495)222-22-22');
        $('phones').addClass('validate-error');
        $('phones').addClass('phone' + (num + 1));
        return false;
    } else
    {
        $('phones').removeClass('validate-error');
        errors.set('text', '');
        return true;
    }
}

FormValidator.addAllThese([

        [
                'smartCard',
                {
                    errorMsg:'Неверный номер смарт-карты',
                    test:function(element, props)
                    {
                        if (iptv)
                            return true;
                        var fv = element.getParent('form')
                                .retrieve('validator');
                        if (!fv)
                            return true;
                        if (element.value.length != 12)
                        {
                            $('terminal').set("disabled", "disabled");
                            $$('#terminal option')[0].set('text',
                                    'Сначала введите номер карты');
                            return true;
                        }
                        setTerminalsCard();
                        return true;
                    }
                } ], [ 'validate-iptvinu',
        {
            errorMsg:'Неверный ИНУ IPTV-провайдера',
            test:function(element, props)
            {
                var fv = element.getParent('form').retrieve('validator');
                if (!fv)
                    return true;
                if (element.value == '')
                    return true;
                if (!element.value.indexOf('00') == 3)
                {
                    return false;
                }
                return true;
            }
        } ] ]);

function checkTerminal()
{
    var term = $('terminal');
    if (term.value == '')
    {
        term.getParent().addClass('validate-error');
        term.getParent("li").getChildren("div.errors").set('text',
                'Выберите модель терминала');
        term.getParent("li").addClass("validate-error");
        return false;
    }
    term.getParent("li").getChildren("div.errors").set('text', '');
    term.getParent("li").removeClass("validate-error");
    return true;
}

function setTerminalsCard()
{
    if ($('card').value.length != 12)
        return;
    var num = parseInt($('card').value.substring(1, 11));
    cwpCard = (num >= 3250354688 && num <= 3250487554)
            || (num >= 3250499840 && num <= 3250519839);
    var old = $('terminal');
    if (cwp && cwpCard)
        return;
    if (!old.disabled && !cwp && !cwpCard)
        return;
    setNoTerminal(false);
    cwp = cwpCard;
    var term = terminal.clone(true, true);
    term.injectAfter(old);
    old.setStyle('display', 'none');
    old.destroy();
    term.set("disabled", "");
    $(term[0]).set('text', 'Выберите модель терминала');
    if (cwpCard)
    {
        filterTerminals("cwp");
        $('notrecommended').destroy();
    } else
    {
        $('noterminal').destroy();
    }
}
function filterTerminals(className)
{
    $$("#terminal option").each(function(el, idx)
    {
        if (idx == 0)
            return;
        if (!el.hasClass(className) && el.value != 'u0')
        {
            el.destroy();
        }
    });
}

function setIptvType()
{
    if ($('verimatrix').checked)
    {
        $('card').getParent('li').setStyle('display', 'none');
        $('card').set('value', '000000000000');
        var term = terminal.clone(true, true);
        var old = $('terminal');
        term.injectAfter(old);
        old.setStyle('display', 'none');
        old.destroy();
        term.set("disabled", "");
        $(term[0]).set('text', 'Выберите модель терминала');
        filterTerminals("verimatrix");
        $('noterminal').destroy();
    } else
    {
        $('card').getParent('li').setStyle('display', 'block');
        if ($('card').get('value') == '000000000000')
            $('card').set('value', '');
        var term = terminal.clone(true, true);
        var old = $('terminal');
        term.injectAfter(old);
        old.setStyle('display', 'none');
        old.destroy();
        term.set("disabled", "");
        $(term[0]).set('text', 'Выберите модель терминала');
        filterTerminals("cti");
        $('noterminal').destroy();
    }
}

window.addEvent( 'domready', function() {
    if( $('step1'))
    {
        $( 'step1').addEvent( 'submit', function() {
            var action = true;
            if( $('contract').value.length!=10)
                return true;
            new Request(
            {
                url:'/abonents/ajax/check800.xl',
                async:false,
                onSuccess:function(text)
                {
                    if( text.trim() == '0')
                        action = true;
                    else
                        action = false;
                }
            }).get( {'contract':$('contract').value});
            if( action && $('terminal').value == 'u0')
            {
                return confirm( 'Внимание!\nВы регистрируете договор без указания серийного номера терминала. Ваше участие в акции невозможно.\nДля участия в Акции «6000» необходимо произвести регистрацию договора с одновременным указанием серийного номера терминала.\nПродолжить регистрацию без участия в акции?')
            }
            return true;
        });
    }
});
