var div_free_login = $('div_select_freeLogin');
var div_nshadow = $('div_nshadow');
var ifr_nshadow = $('ifr_nshadow');
var login_inp = $('login_inp');
var isSel = 0;
var isOnSel = 0;
document.onkeydown = keyDown;
var sel_el_div = 1;
var count_free_login = 0;
var layertimer;
var isKeyEnter = 0;
var _enter = false;
var timeout = false;

function edit_login(event)
{
    if (browser_type() == 'ie' && event.charCode == 13 || event.keyCode == 13) {
        _enter = true;
    }
    if (!isKeyEnter && div_free_login.style.display == "none")
        view_freeLogin(login_inp);
    else
        isKeyEnter = 0;
}

function keyDown(DnEvents)
{
    if (DnEvents)
        k=DnEvents.which
    else
        k=window.event.keyCode;
    if (div_free_login.style.display == "")
    {
        if (k == "40" && sel_el_div < (count_free_login + 1))
        {
            sel_el_div ++;
            sel_element_div_view(sel_el_div);
        }
        else if (k == "38" && sel_el_div > 2)
        {
            sel_el_div --;
            sel_element_div_view(sel_el_div);
        }
        else if (k == 13 && sel_el_div > 1)
        {
            els = div_free_login.getElementsByTagName("div");
            sel_free_login(els[sel_el_div]);
            isKeyEnter = 1;
            sel_el_div = 1;
        }
        else if (k == 9)
        {
            isSel = 0;
            close_select_login();
            sel_el_div = 1;
        }
    }
}

function sel_element_div_view()
{
    els = div_free_login.getElementsByTagName("div");
    for (i=2; i<els.length; i++)
    {
        if (i == sel_el_div) els[i].className = "sel";
        else els[i].className = "nosel";
    }
}

function nosel_all(el)
{
    els = div_free_login.getElementsByTagName("div");
    for (i=2; i<els.length; i++)
    {
        els[i].className = "nosel";
        if (el)
            if (el == els[i]) sel_el_div = i;
    }
}

function view_freeLogin(el)
{
    if (!count_free_login) return false;
    x = el.offsetLeft;
    y = el.offsetTop;
    pel = el;
    while (pel.offsetParent)
    {
        pel = pel.offsetParent;
        x += pel.offsetLeft;
        y += pel.offsetTop;
    }
    div_free_login.style.display = "";
    div_free_login.style.top = y + 20;
    div_free_login.style.left = x;

    div_nshadow.style.display = "";
    div_nshadow.style.width = div_free_login.offsetWidth;
    div_nshadow.style.height = div_free_login.offsetHeight;
    div_nshadow.style.top = (y + 20 + 3);
    div_nshadow.style.left = (x + 3);

    ifr_nshadow.style.display = "";
    ifr_nshadow.style.width = div_free_login.offsetWidth + 3;
    ifr_nshadow.style.height = div_free_login.offsetHeight + 3;
    ifr_nshadow.style.top = y + 20;
    ifr_nshadow.style.left = x;

    isSel = 1;
    document.body.onclick = close_select_login;
}

function close_select_login()
{
    if (!isSel)
    {
        nosel_all(false);
        ifr_nshadow.style.display = "none";
        div_free_login.style.display = "none";
        div_nshadow.style.display = "none";
        sel_el_div = 1;
    }
    isSel = 0;
}

function login_onblur(el)
{
    if (!isOnSel)
    {
        isSel = 0;
        close_select_login();
    }
}

function out_sel_login(fl)
{
    if (fl)
    {
        layertimer = setTimeout("close_select_login()", 300);
    }
    else if(layertimer)
        clearTimeout(layertimer)
}

function check_free_login(login)
{
    var receiver = function(response)
    {
        response = response.responseJS;
        if (response && response.error == 0)
        {
            isSel = 0;
            close_select_login();
            check_login_error = false;
            view_help_desc('login');
            count_free_login = 0;
            button_submit.disabled = false;
        }
        else
        {
            count_free_login = 0;
            check_login_error = true;
            view_error_desc(response.error);
            isSel = 0;
            close_select_login();
            if (response.free_logins)
            {
                view_select_login(response.free_logins);
            }
            button_submit.disabled = true;
            if (_enter)
            {
                view_freeLogin(login_inp);
            }
            _enter = false;
        }
    }
    request_module('registration:main', {act: 'check_login', login: login}, {receiver: receiver});
}

function sel_free_login(el)
{
    el.className = "nosel";
    login_inp.value = el.innerHTML;
    ifr_nshadow.style.display = "none";
    div_free_login.style.display = "none";
    div_nshadow.style.display = "none";
    check_free_login(login_inp.value);
}

function view_select_login(free_logins)
{
    div = $('div_select_freeLogin');
    div.innerHTML = '';
    if (typeof free_logins != 'undefined') {
        div.innerHTML = '<div style="margin:5px 4px 4px 4px; white-space: nowrap">' + _LANG.registration.free_logins + '</div>';
        div.innerHTML += "<div style='border-top: 1px dashed #414141; margin:0px 1px 6px 1px; font-size: 1px'></div>";
        for (var i in free_logins)
        {
            div.innerHTML += '<div class=div_el onmouseover="nosel_all(this); this.className = \'sel\';" onmouseout="this.className = \'nosel\'" style="width:100%;  text-indent: 4px;" onclick="sel_free_login(this)">' + free_logins[i] + '</div>';
            count_free_login ++;
        }
    }
}

