function getListRegion (language, path, symb)
{
    var script_name;
    if (language == 'perl')
        script_name = 'registerform.pl';
    else if (language == 'php')
        script_name = 'registerform.php';
    else if (language == 'aspx')
        script_name = 'registerform.aspx'

    if (path) script_name = path+script_name;

    if (! symb) symb = '?';

    //alert (script_name+symb+'act=getListRegion&country='+document.getElementById('country').value+'&'+Math.random());
    var url = script_name+symb+'act=getListRegion&country='+document.getElementById('country').value+'&'+Math.random();
    //alert (url);
    connectByURL (url);
    return;
}

function submitRegisterSection (language, path, symb)
{
    var script_name;
    if (language == 'perl')
        script_name = 'registerform.pl'
    else if (language == 'php')
        script_name = 'registerform.php'
    else if (language == 'aspx')
        script_name = 'registerform.aspx'

    //alert('path = ' + path);

    if (path) script_name = path+script_name;

    //alert (script_name+'?act=checklogin&login='+document.getElementById('login').value+'&'+Math.random());
    if (!checkFieldsByRegexp()) return false;

    if (! symb) symb = '?';
    var url = script_name+symb+'act=checklogin&login='+document.getElementById('login').value+'&'+Math.random();

    //alert (url);

    connectByURL (url);
    return;
}

function connectByURLResearch (url)
{
    request.open ("GET", url, true);
    request.onreadystatechange = getResponseResearch;
    request.send(null);
}

function submitRegisterSectionResearch (language, path, symb)
{
    var script_name;
    if (language == 'perl')
        script_name = 'registerform.pl';
    else if (language == 'php')
        script_name = 'registerform.php';
    else if (language == 'aspx')
        script_name = 'registerform.aspx';

    //alert('path = ' + path);

    if (path) script_name = path + script_name;

    //alert (script_name+'?act=checklogin&login='+document.getElementById('login').value+'&'+Math.random());
    if (!checkFieldsByRegexpResearch()) return false;

    if (! symb) symb = '?';

    //alert (encodeURIComponent(document.getElementById('email').value));

    var url = script_name+symb+'act=check&login='+document.getElementById('login').value+
                                                    //'&email='+encodeURIComponent(document.getElementById('email').value)+
                                                    '&id='+document.getElementById('id').value+
                                                    '&host='+document.getElementById('host').value+
                                                    '&ecode='+document.getElementById('ecode').value+
                                                    '&icode='+document.getElementById('icode').value+
                                                    '&'+Math.random();

    //alert (url);

    connectByURLResearch (url);
    return;
}

function checkFieldsByRegexpResearch()
{
    var str=new Array();
    var login=document.getElementById('login').value;
	 var act = document.getElementByID('act');
	 act = act && act.checked;
    if (act && ! login.match(/^[\w|\d]+$/))
        str.push ("- Поле 'Логин' не должно быть пустым и может содержать только символы латинского алфавита или цифры");
    var password=document.getElementById('password').value;
    if (act && password.length < 6 || ! password.match(/^[\w|\d]+$/))
        str.push ("- Поле 'Пароль' может содержать только символы латинского алфавита или цифры и должен быть не менее 6 символов");
    var firm=document.getElementById('firm').value;
    if (! firm)
        str.push ("- Поле 'Название организации' не может быть пустым");
    var otrasl=document.getElementById('otrasl').value;
    if (otrasl==0)
        str.push ("- Поле 'Отрасль' не может быть пустым");
    var country=document.getElementById('country').value;
    if (country==0)
        str.push ("- Поле 'Страна' не может быть пустым");
    if (! document.getElementById('region'))
        str.push ("- Поле 'Регион' не может быть пустым");
    else
    {
        var region=document.getElementById('region').value;
        if (region==0)
            str.push ("- Поле 'Регион' не может быть пустым");
    }
    var city=document.getElementById('city').value;
    if (! city)
        str.push ("- Поле 'Город' не может быть пустым");
    var phone=document.getElementById('phone').value;
    if (! phone)
        str.push ("- Поле 'Телефон' не может быть пустым");
    var address=document.getElementById('address').value;
    if (! address)
        str.push ("- Поле 'Адрес' не может быть пустым");
    var opportunity=document.getElementById('opportunity').value;
    if (! opportunity)
        str.push ("- Поле 'Род деятельности' не может быть пустым");
    var email=document.getElementById('email').value;
    if (! email.match(/^[\w\.-]+\@([\w-]+\.)+\w+$/))
        str.push ("- Поле 'E-mail' неправильно заполнено");
    var name_f=document.getElementById('name_f').value;
    if (! name_f)
        str.push ("- Поле 'Фамилия' неправильно заполнено");
    var name_i=document.getElementById('name_i').value;
    if (! name_i)
        str.push ("- Поле 'Имя' неправильно заполнено");
    var name_o=document.getElementById('name_o').value;
    if (! name_o)
        str.push ("- Поле 'Отчество' неправильно заполнено");

    if (str.length)
    {
        alert ("Ошибки:\n"+str.join("\n"));
        return false;
    }
    else
    {
        return true;
    }


}

function checkFieldsByRegexp()
{
    var str=new Array();
    var login=document.getElementById('login').value;
    var act = document.getElementById('act');
	 act = act && act.checked;
    if (act && ! login.match(/^[\w|\d]+$/))
        str.push ("- Поле 'Логин' не должно быть пустым и может содержать только символы латинского алфавита или цифры");
    var password=document.getElementById('password').value;
    if (act && (password.length < 6 || ! password.match(/^[\w|\d]+$/)))
        str.push ("- Поле 'Пароль' может содержать только символы латинского алфавита или цифры и должен быть не менее 6 символов");
    var firm=document.getElementById('firm').value;
    if (! firm)
        str.push ("- Поле 'Название организации' не может быть пустым");
    var otrasl=document.getElementById('otrasl').value;
    if (otrasl==0)
        str.push ("- Поле 'Отрасль' не может быть пустым");
    var country=document.getElementById('country').value;
    if (country==0)
        str.push ("- Поле 'Страна' не может быть пустым");
    if (! document.getElementById('region'))
        str.push ("- Поле 'Регион' не может быть пустым");
    else
    {
        var region=document.getElementById('region').value;
        if (region==0)
            str.push ("- Поле 'Регион' не может быть пустым");
    }
    var city=document.getElementById('city').value;
    if (! city)
        str.push ("- Поле 'Город' не может быть пустым");
    var phone=document.getElementById('phone').value;
    if (! phone)
        str.push ("- Поле 'Телефон' не может быть пустым");
    var address=document.getElementById('address').value;
    if (! address)
        str.push ("- Поле 'Адрес' не может быть пустым");
    var opportunity=document.getElementById('opportunity').value;
    if (! opportunity)
        str.push ("- Поле 'Род деятельности' не может быть пустым");
    var email=document.getElementById('email').value;
    if (! email.match(/^[\w\.-]+\@([\w-]+\.)+\w+$/))
        str.push ("- Поле 'E-mail' неправильно заполнено");
    var name_f=document.getElementById('name_f').value;
    if (! name_f)
        str.push ("- Поле 'Фамилия' неправильно заполнено");
    var name_i=document.getElementById('name_i').value;
    if (! name_i)
        str.push ("- Поле 'Имя' неправильно заполнено");
    var name_o=document.getElementById('name_o').value;
    if (! name_o)
        str.push ("- Поле 'Отчество' неправильно заполнено");

    if (str.length)
    {
        alert ("Ошибки:\n"+str.join("\n"));
        return false;
    }
    else
    {
        return true;
    }
}

function getResponse()
{
    if (request.readyState == 4)
    {
//alert ('q2');
        if (request.status == 200)
        {
//alert ('q3');
//alert (request.responseXML);

            var response = request.responseText;
//alert (response);
            //alert('response1 = ^' + response + '^');
//alert ("R="+response);

            response = response.replace(/Content-type: text\/html; charset=windows-1251/, '');

            response = response.replace(/^[\n\r]/, '');
            response = response.replace(/^[\n\r]/, '');
            response = response.replace(/[\n\r]/, '');
            response = response.replace(/[\n\r]$/, '');
            response = response.replace(/[\n\r]<\/body>[\n\r]<\/html>$/, '');

            response = response.replace(/\n/g, '');
            response = response.replace(/\r/g, '');
            response = response.replace(/<hr>.*$/g, '');
            response = response.replace(/^<title>.*<\/title>/g, '');

            response = response.replace(/<\/body><\/html>$/, '');
            response = response.replace(/<br><br><br>$/, '');

            //alert('response2 = ^' + response + '^');

            if (response.search(/checklogin_ok/)>=0 || response == 'checklogin_ok')
            {
                document.getElementById('f_registerform').submit();
            }
            else if (response.search(/checklogin_exist/)>=0 || response == 'checklogin_exist')
            {
                alert('Партнер с логином \''+document.forms['f_registerform'].elements['login'].value+'\' уже существует в базе данных!');
            }
            else if (response.search(/<select/) >= 0)
            {
//alert ("R="+response);
                response = response.replace(/Content-type: text\/html; charset=windows-1251/, '');
                document.getElementById('region_item').innerHTML = response;
            }
            else
            {
                alert('Ошибка базы данных:\n' + response);
            }

        }
        else
        {
            alert("status is " + request.status);
        }
    }
}

function getResponseResearch()
{
    if (request.readyState == 4)
    {
        if (request.status == 200)
        {
//alert (response);
            var response = request.responseText;
            //response = response.replace(/^Error: /, '');
            response = response.replace(/\n/g, '');
            response = response.replace(/\r/g, '');
            response = response.replace(/.*(checklogin_ok_checkcode_ok|checklogin_exist_checkcode_ok|checklogin_ok_checkcode_error|checklogin_exist_checkcode_error).*/, "$1");

//alert (document.getElementById('email').value);
            var login = '\n- Пользователь с логином "'+document.getElementById('login').value+'" уже существует в базе данных!';
            var code  = '\n- Проверочный код введён неправильно!';
            var msg;

            if (response == 'checklogin_ok_checkcode_ok')
            {
                document.getElementById('f_registerform').submit();
                return;
            }
            else if (response == 'checklogin_exist_checkcode_ok')
                msg = login;
            else if (response == 'checklogin_ok_checkcode_error')
                msg = code;
            else if (response == 'checklogin_exist_checkcode_error')
                msg = login + code;
            else
            {
                alert ('Ошибка:\n' + response);
                return;
            }
            alert ('Ошибка:' + msg);
        }
        else
        {
            alert("status is " + request.status);
        }
    }
}
