﻿var domain_avail = 0;
var domains = '';
function clearDomains() {
    $('#results div.domain').empty();
    domain_avail = 0;
    domains = '';
}
function checkDomain() {
    clearDomains();
    var domainName = $('input#domainName').val().replace(/[^a-z0-9-]/g,'');
    if (domainName.length) {
        domainWithoutMdash = domainName.replace(/-/g,'');
        if (domainWithoutMdash.length) {
            var lftOk = false; var rgtOk = false;
            while (!lftOk || !rgtOk) {
                if (domainName.length) {
                    if (domainName.indexOf('-') === 0) {
                        domainName = domainName.substr(1);
                    } else {
                        lftOk = true;
                    }
                } else {
                    break;
                }
                if (domainName.length) {
                    if (domainName.lastIndexOf('-') === (domainName.length - 1)) {
                        domainName = domainName.substr(0,domainName.length - 1);
                    } else {
                        rgtOk = true;
                    }
                } else {
                    break;
                }
            }
        } else {
            domainName = '';
        }
    }
    $('input#domainName').val(domainName);
        if (!domainName.length) { 
            document.getElementById('domainName').focus();
            return;
        }
    var zones = new Array;
    $('#domainCheck input[@type="checkbox"]').each(function() {
        if (this.checked) {            
            zones.push(this.id.replace('tld_',''));
        }
    });
    if (zones.length && domainName.length) {
        $(zones).each(function() {
            var zone = this;
            $.get('?domain='+domainName+'&tld=' + zone, function(data) {
                var tmp = data.split(':');
                switch(tmp[1]) {
                    case '1':
                        var input = document.createElement('input');
                        $(input).attr('id','reg_' + tmp[0]).attr('type','checkbox').bind('click',function() {
                            if (this.checked) {
                                domain_avail++;
                            } else {
                                domain_avail--;
                            } 
                            showReg();
                        });
                        var label = document.createElement('label');
                        $(label).attr('for','reg_' + tmp[0]).html(domainName + '.' + tmp[0]);
                        $('div#result_'+tmp[0]).empty().append(input).append(label).append('&nbsp;свободен');
                        break;
                    default:
                        $('div#result_'+tmp[0]).html('<i>' + domainName + '.' + tmp[0] + '</i>&nbsp;занят');
                        break;
                }
            });
        });
    } else {
        return false;
    }
}

function initCheckDomain() {
    $('#chkDomain').bind('click',checkDomain);
    $('input#regDomain').bind('click',function() {
        var domainString = new Array;
        $('div#results div.domain input').each(function() {
            if (this.checked) {
                domainString.push($(this).next().text());
            }
        });
        domains = domainString.join(', ');
        $('#domains').html(domains);
        $('#domainCheck').slideUp('fast',function() {
            $('#results').slideUp('slow',function() {
                $('#regType').slideDown('slow');
            });
        });
    }); 
    $('#regReturn').bind('click',function() {
        clearDomains();   
        showReg();        
        $('#regType').slideUp('fast',function() {
            $('#results').slideDown('fast',function() {
                $('#domainCheck').slideDown('fast');
            });
        });
    });
    $('#regDomainNow').bind('click',function() {
        var period = (parseInt($('#reg_period').val())) || 1;
        var domain = escape(domains);
        var hosting = (document.getElementById('reg_hosting').checked) ? 1 : 0;
        var type = (document.getElementById('reg_for_person').checked) ? 'person' : 'org';
        TB_show('Регистрация','/'+_lang+'/hosting/domain_registration/'+type+'-registration?width=730&height=400&domains=' + domain +'&period='+period + '&hosting=' + hosting );
    });
}

function showReg() {
    if (domain_avail > 0) {
        $('#regDomain').css('display','block');
    } else {
        $('#regDomain').css('display','none');
    }

}
//window.setInterval(showReg,600);
addOnLoadEvent(initCheckDomain);