function inputEmpty() {
    if (
            document.getElementById('allpages-domains').value == '' 
            ||
            document.getElementById('allpages-domains').value == 'Введите имена доменов для регистрации'
        )
    {
        alert('Введите имена доменов для регистрации');
        return false;
    } else {
        return true;
    }
}

function clearValue(object) {
    if (object.value == 'Введите имена доменов для регистрации') {
        object.value = '';
        object.style.color = '#2a2a2a';
        object.style.textAlign = 'left';
    }
}
function setValue(object) {
    if (object.value == '') {
        object.value = 'Введите имена доменов для регистрации';
        object.style.color = '#969696';
        object.style.textAlign = 'center';
    }
}

/*
* Functions help to work with DOM
*
*/
function child(elem, index) {
    index = index || 1; 
    elem = (elem.firstChild && elem.firstChild.nodeType != 1) ? next(elem.firstChild) : elem.firstChild;				   
    for(var i=1; i < index; i++) {
        (
            function() {	
                if(elem)  
                return elem = next(elem); 		  
            }
        )();		 
    }
    return elem;
}

function next(elem) {
    do {
        elem = elem.nextSibling;
    } while (elem && elem.nodeType != 1);
    return elem;                
}


/*
* Функция checkSelectedAll проверяет количество выделенных input типа checkbox с префиксом как у starter
* Если выделен хотя бы один помечает главный
* Если ни одного не выделено - снимает отметку с главного
* Принимает параметры:
* starter - узел checkbox, по которому произведено действие
*/
function checkSelectedAll(starter) {

    var checkboxes = document.getElementsByTagName('input');
    // Вырезаем префикс
    var prefix = starter.id.substring(0, starter.id.indexOf(starter.value));
    // ID основного чекбокса
    var mainCheckBoxID = prefix + 'check-all';
    // Узел - основной чекбокс
    var mainCheckBox = document.getElementById(mainCheckBoxID);

    var allchbxs = 0; // Все чекбоксы с префиксом prefix
    var chbxs = 0;    // Помеченные чекбоксы prefix

    for (var i = 0; i < checkboxes.length; i++) {
        if (checkboxes[i].id == mainCheckBoxID) continue;
        if (checkboxes[i].id.indexOf(prefix) != 0) continue;
        if (checkboxes[i].type == "checkbox") {
            allchbxs++;
            if (checkboxes[i].checked) {
                chbxs++;
            }
        }
    }
    
    if (chbxs > 0) {     // Отмечены некоторые чекбоксы
        mainCheckBox.checked = "checked";
        if (document.getElementById('label-' + mainCheckBox.id)) {
            mainCheckBox.title = "Снять отметку со всех";
            document.getElementById('label-' + mainCheckBoxID).innerHTML = 'Снять отметку со всех зон';
        }
    }
    else {               // Ни одного чекбокса не отмечено
        mainCheckBox.checked = false;
        if (document.getElementById('label-' + mainCheckBox.id)) {
            mainCheckBox.title = "Отметить все зоны";
            document.getElementById('label-' + mainCheckBoxID).innerHTML = 'Отметить все зоны';
        }
    }
}

function checkSelectedAllImg(starter) {
    var selectall = new Image();
    selectall.src = "images/design/button-whois-select-all.gif";
    var selectnone = new Image();
    selectnone.src = "images/design/button-whois-deselect-all.gif";

    var checkboxes = document.getElementsByTagName('input');
    // Вырезаем префикс
    var prefix = starter.id.substring(0, starter.id.indexOf(starter.value));
    // ID рисунка
    var mainCheckBoxID = prefix + 'check-all';
    // Узел - основной чекбокс
    var mainCheckBox = document.getElementById(mainCheckBoxID);

    var allchbxs = 0; // Все чекбоксы с префиксом prefix
    var chbxs = 0;    // Помеченные чекбоксы prefix

    for (var i = 0; i < checkboxes.length; i++) {
        if (checkboxes[i].id.indexOf(prefix) != 0) continue;
        if (checkboxes[i].type == "checkbox") {
            allchbxs++;
            if (checkboxes[i].checked) {
                chbxs++;
            }
        }
    }
    
    if (chbxs > 0) {     // Отмечены некоторые чекбоксы
        mainCheckBox.src = selectnone.src;
        mainCheckBox.title = "Снять отметку со всех";
    }
    else {               // Ни одного чекбокса не отмечено
        mainCheckBox.src = selectall.src;
        mainCheckBox.title = "Отметить все зоны";
    }
}

/*
* Функция selectAll выделяет/снимает выделение по установке/снятию флажка с главного checkbox'а
* Принимает параметры:
* mainСheckBox    - узел checkbox, по которому произведено действие
*/

function selectAll(mainCheckBox) {

    var checkboxes = document.getElementsByTagName('input'); // Набор элементов input
    var checkboxPrefix = mainCheckBox.id.substring(0, mainCheckBox.id.indexOf('check-all'));
    
    if (mainCheckBox.checked) {
        for (var i = 0; i < checkboxes.length; i++) {
            if (checkboxes[i].id == mainCheckBox) continue;
            if (checkboxes[i].id.indexOf(checkboxPrefix) != 0) continue;
            if (checkboxes[i].type == "checkbox") {
                checkboxes[i].checked = "checked";
            }
        }
        if (document.getElementById('label-' + mainCheckBox.id)) {
            mainCheckBox.title = "Снять отметку со всех зон";
            document.getElementById('label-' + mainCheckBox.id).innerHTML = 'Снять отметку со всех зон';
        }
    } else if (mainCheckBox.checked == false) {
        for (var i = 0; i < checkboxes.length; i++) {
            if (checkboxes[i].id == mainCheckBox) continue;
            if (checkboxes[i].id.indexOf(checkboxPrefix) != 0) continue;
            if (checkboxes[i].type == "checkbox") {
                checkboxes[i].checked = false;
            }
        }
        if (document.getElementById('label-' + mainCheckBox.id)) {
            mainCheckBox.title = "Отметить все зоны";
            document.getElementById('label-' + mainCheckBox.id).innerHTML = 'Отметить все зоны';
        }
    }
}

// function SelectAllImg

function selectAllImg(image) {

    var selectall = new Image();
    selectall.src = "images/design/button-whois-select-all.gif";
    var selectnone = new Image();
    selectnone.src = "images/design/button-whois-deselect-all.gif";
    
    var checkboxes = document.getElementsByTagName('input'); // Набор элементов input
    var checkboxPrefix = image.id.substring(0, image.id.indexOf('check-all'));
    
    if (image.src == selectall.src) {
        for (var i = 0; i < checkboxes.length; i++) {
            if (checkboxes[i].id.indexOf(checkboxPrefix) != 0) continue;
            if (checkboxes[i].type == "checkbox") {
                checkboxes[i].checked = "checked";
            }
        }
        image.src = selectnone.src;
    } else if (image.src == selectnone.src) {
        for (var i = 0; i < checkboxes.length; i++) {
            if (checkboxes[i].id.indexOf(checkboxPrefix) != 0) continue;
            if (checkboxes[i].type == "checkbox") {
                checkboxes[i].checked = false;
            }
        }
        image.src = selectall.src;
    }
}



//Функция запрашивает с сервера
function startCheck() {
        var rows = document.getElementsByTagName('TR')
        for (var i = 0; i < rows.length; i++) {
            var ajaxloader = new Image();
            ajaxloader.src = 'images/design/ajax-loader-horizontal.gif';
            if (rows[i].id.substring(0, rows[i].id.indexOf('tr-') == 0)) {
                requestXML(rows[i]);
                var cell_status = child(rows[i], 4);
                cell_status.innerHTML = '<img src="' + ajaxloader.src + '" width="70" height="11" alt="проверка" title="Идет проверка статуса домена"/>';
            } else {
                continue;
            }
        }
}

function requestXML(tr) {
    
    var ajax;
        try {
            ajax = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
              ajax = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (E) {
              ajax = false;
            }
        }
        if (!ajax && typeof XMLHttpRequest != "undefined") {
            ajax = new XMLHttpRequest();
        }

        ajax.onreadystatechange = function() {
            if (ajax.readyState == 4) {
            // Get answer XML
                var xml = ajax.responseXML;
                if (xml) {
                    var domain = xml.getElementsByTagName('domain');
                    domain = domain[0].textContent || domain[0].text;
                    var status = xml.getElementsByTagName('status');
                    status = status[0].textContent || status[0].text;
                    var price = xml.getElementsByTagName('price');
                    price = price[0].textContent || price[0].text;
                    var currency = xml.getElementsByTagName('currency');
                    currency = currency[0].textContent || currency[0].text;
                    var details =  xml.getElementsByTagName('details');
                    details = details[0].textContent || details[0].text;
                } else {
                    domain   = '';
                    status   = 'error';
                    price    = '';
                    currency = '';
                    details  = 'Нет связи с сервисом whois';
                }
                // Переменные - ячейки строки с доменом
                var cell_input = child(tr, 1);
                var cell_domain = child(tr, 2);
                var cell_status = child(tr, 4);
                var cell_price = child(tr, 5);
                var cell_get_details = child(tr, 6);
                var row_details = next(tr);
                var cell_details  = child(row_details, 1);
                cell_domain.className += " " + status;
                cell_status.className += " " + status;
                cell_price.className  += " " + status;
                if (!status || status == "error") {
                    cell_input.innerHTML = '<span><img src="images/design/actions-remove.gif" width="12" height="12" alt="Недоступен" title="Недоступен"/></span>';
                    cell_status.innerHTML = "ошибка";
                } else if (status == "free") {
                    if (price && price != 0) {
                        cell_input.innerHTML = '<span><input type="checkbox" id="dn-' + tr.id.substring(3) + '" name="dn[]" value="' + tr.id.substring(3) + '" title="Отметить для регистрации" onclick="javascript:checkSelectedAll(this);"/></span>';
                    }
                    cell_status.innerHTML = "свободен";
                } else if (status == "busy") {
                    cell_input.innerHTML = '<span><img src="images/design/actions-remove.gif" width="12" height="12" alt="Недоступен" title="Недоступен"/></span>';
                    cell_domain.innerHTML = '<label for="dn-' + tr.id.substring(3) + '"><a href="http://' + domain + '" target="blank">' + domain + '</a></label>';
                    cell_status.innerHTML = "занят";
                }
                if (price && price != 0 && status == "free") {
                    cell_price.innerHTML = price + ' ' + currency;
                } else {
                    cell_price.innerHTML = '---';
                }
                cell_details.innerHTML = details;
                cell_get_details.innerHTML = '<input type="button" value="Подробнее" onclick="javascript:showDetails(this);"/>';
            }
        }
        var parameters = 'checkid=' + tr.id.substring(3);
        ajax.open("POST", document.location.href.substring(0, document.location.href.indexOf('?')), true);
        ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        ajax.setRequestHeader("Content-length", parameters.length);
        ajax.setRequestHeader("Connection", "close");
        ajax.send(parameters);
}

function changePeriod(select) {

    var id = select.id.substring(select.id.indexOf('-') + 1);
    var years = select.value;
    var yearspecial = eval(years - 1);
    var price = document.getElementById('price-' + id).value;
    var special = document.getElementById('special-' + id).value;
    
    if (special) {
        document.getElementById('count-' + id).innerHTML = eval(special) + eval(yearspecial * price);
    } else {
        document.getElementById('count-' + id).innerHTML = years * price;
    }
    var selects = document.getElementsByTagName('select');
    var sum = 0;
    for (var i = 0; i < selects.length; i++) {
        if (selects[i].name.indexOf('new-order') != 0) continue;
        if (selects[i].disabled == false) {
            plus = eval(document.getElementById('count-' + selects[i].id.substring(selects[i].id.indexOf('-') + 1)).innerHTML);
            sum += plus;
        }
    }
    document.getElementById('basket_sum').innerHTML = sum;
}

function showDetails(button) {
    var whois = next(button.parentNode.parentNode);
    //var whois = child(whois, 1);
    if (whois.style.display == 'none') {
        if (whois == '[object]') {
            whois.style.display = 'block';
        } else {
            whois.style.display = 'table-row';
        }
        button.value = 'Скрыть';
    } else {
        whois.style.display = 'none';
        button.value = 'Подробнее';
    }
}
