﻿function template(num, dm, ex) {

    if (num == 2) {
        return '<div id="' + replacedot((dm + ex)) + '" class="domain"><label>Domain <strong>' + dm + '.' + ex + '</strong> Đang kiểm tra...<img src="' + baseURL + '/Resource/Css/CheckDomain/img/loading2.gif" /></label></div>';
    }
    if (num == 3) {
        return '<label id="registered"><span>' + dm + '.' + ex + '</span> | <img src="' + baseURL + '/Resource/Css/CheckDomain/img/notavailable.gif" /> | <a href="javascript:ht_whois(\'' + dm + '\',\'' + ex + '\')">đã đăng ký</a></label>';
    }
    if (num == 4) {
        return '<label id="available"><strong><font color="green">' + dm + '.' + ex + '</font></strong> | <img src="' + baseURL + '/Resource/Css/CheckDomain/img/OK.gif" /> | chưa có đăng ký </a></label>';
    }
    if (num == 5) {
        return '<label id="registered"><span>' + dm + '.' + ex + '</span> | <img src="' + baseURL + '/Resource/Css/CheckDomain/img/notavailable.gif" /> | Chưa có kết quả,vui lòng thử lại</label>';
    }
}
function replacedot(str) {
    return str.replace(/[.]/gi, '');
}
$(function() {
    $('#check').click(function() {
        $('#rowResult').html('');
        var domain = $('#domainId').val();
        var ext = $('input[name=ext]');
        var errlogs = '';

        if (domain.length < 2) {
            errlogs += '+ Tên miền quá ngắn \n';
        }
        if (!validateDomain(domain)) {
            errlogs += '+ Tên miền chỉ bao gồm các ký tự A-Z, 0-9 và dấu gạch nối (-) \n';
        }
        if (domain.indexOf('--') != -1) {
            errlogs += '+ Tên miền không chứa ký tự : -- \n';
        }
        if (domain.indexOf('-') == 0 || domain.lastIndexOf('-') == domain.length - 1) {
            errlogs += '+ Tên miền không bắt đầu/kết thúc bằng ký tự : - \n';
        }
        if (errlogs != '') {
            alert(errlogs);
            return false;
        }
        else {
            var hasChecked = false;
            ext.each(function() {
                if (this.checked) {
                    hasChecked = true;
                    $(template(2, domain, this.id)).appendTo('#rowResult');
                }
            });
            if (!hasChecked) {
                alert("Vui lòng chọn ít nhất 1 loại tên miền.");
                return false;
            } else {
                ext.each(function() {
                    if (this.checked) {
                        $.ajax({
                            type: 'POST',
                            url: baseURL + '/WebService/CheckDomain/CheckDomain.asmx/Submit',
                            data: '{"domain":"' + domain + '","ext":"' + this.id + '"}',
                            dataType: "json",
                            contentType: "application/json",
                            success: function(html) {
                                html = $.trim(html.d);
                                ext = new Array(html.slice(domain.length, (html.length - 1)), html.slice(domain.length, (html.length)), html.slice(domain.length + 1, (html.length)))
                                if (html) {
                                    if (html.lastIndexOf('.') == (html.length - 1)) {
                                        $('#' + replacedot(domain + ext[0]) + '').html(template(3, domain, ext[0]));
                                    }
                                    else if (html[0] == '.') {
                                        $('#' + replacedot(domain + ext[02]) + '').html(template(5, domain, ext[2]));
                                    }
                                    else {
                                        $('#' + replacedot(domain + ext[1]) + '').html(template(4, domain, ext[1]));
                                    }
                                } else {
                                    $('#rowResult').html('Không thể kết nối với server.');
                                }
                            }
                        });
                    }
                });
            }
        }
    });
    $('#chkall').click(function() {
        var checked_status = this.checked;
        $('input[name=ext]').each(function() {
            this.checked = checked_status;
        });
    });
});
function ht_whois(domain, ext) {
    $('#resultInfo').dialog('open');
    $('#resultInfo').dialog({
        width: 600,
        height: 500,
        modal: true
    });
    $('#resultInfo').dialog('option', 'title', 'whois' + ' ' + domain + '.' + ext);
    $('#resultInfo').html('<div style="text-align:center;margin-top:200px"><img src="' + baseURL + '/Resource/Css/CheckDomain/img/loading1.gif" /></div>');
    $.ajax({
        type: 'POST',
        url: baseURL + '/WebService/CheckDomain/CheckDomain.asmx/GetInfo',
        data: '{"domain":"' + domain + '","ext":"' + ext + '"}',
        dataType: "json",
        contentType: "application/json",
        success: function(html) {
            $('#resultInfo').html(html.d);
        }
    });
}
function validateDomain(elementValue) {
    var domainPattern = /^[a-zA-Z0-9-]+$/;
    return domainPattern.test(elementValue);
}
