caninput=false;

select=document.createElement('select');
select.style.display='none';
select.style.position='absolute';
select.size=10;
select.onchange=input_change;
select.onblur=myblur;
window.onload=input_init;

function getAbsoluteOffsetTop(obj)
{
    var top = obj.offsetTop;
    var parent = obj.offsetParent;
    while (parent != document.body)
    {
	top += parent.offsetTop;
	parent = parent.offsetParent;
    }
    return top;
}

function getAbsoluteOffsetLeft(obj)
{
    var left = obj.offsetLeft;
    var parent = obj.offsetParent;
    while (parent != document.body)
    {
	left += parent.offsetLeft;
	parent = parent.offsetParent;
    }
    return left;
}

function input_change()
{
    input.value=select.value;
    select.style.display='none';
    if(input.value) change(input.value,input_data);
    else
    {
	caninput=true;
	input.focus();
    }
}

function input_init()
{
    document.body.appendChild(select);
}

function myfocus(input2,data)
{
    if(caninput) caninput=false;
    else
    {
	input_data=data;
	input=input2;
	select.style.left=getAbsoluteOffsetLeft(input2);
	select.style.top=getAbsoluteOffsetTop(input2)+20;
	select.options.length = 0;
	for(i in arr[input2.name])
	{
	    var option=document.createElement('option');
	    var text=document.createTextNode(arr[input2.name][i]);
	    option.appendChild(text);
	    option.value=arr[input2.name][i];
	    select.appendChild(option);
    	}
	option=document.createElement('option');
	text=document.createTextNode('- brak na li¶cie -');
	option.appendChild(text);
	select.appendChild(option);
	select.style.display='block';
	select.focus();
    }
}

function myblur()
{
    select.style.display='none';
}
