function skp()
{
	window.status = "";
	return true;
}

function dropPicker(element, func, scrollheight)
{
	if(typeof element == "string")
	{
		var e = document.getElementById(element);
		if(!e)
		{
			alert("dropPicker element not found: " + element);
			return;
		}
		element = e;
	}
	this.element = element;
	this.func = func;
	this.scrollheight = scrollheight;
	this.onset = element.onchange;
	element.onchange = null;
	element.onkeyup = dropPicker.keyup;
	if(element.type == 'text')
	{
		element.onkeypress = dropPicker.keypress;
	}
	element.dropPicker = this;
	this.getPos();
}

dropPicker.keyup = function(evnt)
{
	if(!evnt)
	{
		evnt = window.event;
	}
	if(this.dropPicker)
	{
		this.dropPicker.keyup(evnt);
	}
}

dropPicker.over = function()
{
	dropPicker.overItem(this);
}

dropPicker.overItem = function(item)
{
	if(item.dropPicker.curitem)
	{
		dropPicker.outItem(item.dropPicker.curitem);
	}
	item.dropPicker.curitem = item;
	item.style.backgroundColor = "#444444";
	item.style.color = "#ffffff";
}

dropPicker.prototype.getPos = function()
{
	this.top = 0;
	this.left = 0;
	p = this.element;
	while(p)
	{
		this.top += p.offsetTop;
		this.left += p.offsetLeft;
		p = p.offsetParent;
	}
}

dropPicker.out = function()
{
	dropPicker.outItem(this);
}

dropPicker.outItem = function(item)
{
	item.style.backgroundColor = "#ffffff";
	item.style.color = "#000000";
}

dropPicker.click = function()
{
	dropPicker.clickItem(this);
}

dropPicker.clickItem = function(item)
{
	item.element.value = item.innerHTML.replace(/<BR>/, "\n");
	item.dropPicker.hide();
	item.element.focus();
	if(item.dropPicker.onset)
	{
		item.element.onchange = item.dropPicker.onset;
		item.element.onchange();
		// item.dropPicker.onset();
	}
}

dropPicker.prototype.getOffset = function(element)
{
	var x = 0;
	var y = 0;
	while(element)
	{
		x += element.offsetLeft;
		y += element.offsetTop;
		element = element.offsetParent;
	}
	return new Array(x, y);
}

dropPicker.prototype.setBody = function(text)
{
	this.hide();
	if(!text)
	{
		return;
	}
	this.curitem = null;
	var menu = document.createElement("div");
	this.menu = menu;
	menu.style.position = "absolute";
	menu.style.visibility = "visible";
	this.element.onblur = dropPicker.blur;
	document.body.appendChild(menu);
	var where = this.getOffset(this.element);
	this.where = where;
	menu.style.top = (where[1] + this.element.offsetHeight) + "px";
	menu.style.left = where[0] + "px";
	menu.style.backgroundColor = "white";
	menu.style.borderStyle = "solid";
	menu.style.borderWidth = "2px";
	menu.style.borderColor = "#aaaaaa";
	menu.style.padding = "4px";
	menu.element = this.element;
	menu.dropPicker = this;
	menu.style.zIndex = 30000;
	values = text.split(/\t/);
	for(var i = 0; i < values.length; i++)
	{
		var e = document.createElement("div");
		e.innerHTML = values[i];
		e.onmouseover = dropPicker.over;
		e.onmouseout = dropPicker.out;
		e.onclick = dropPicker.click;
		e.element = this.element;
		e.dropPicker = this;
		e.style.cursor = "pointer";
		menu.appendChild(e);
	}
	var w = 0;
	var p = menu.firstChild;
	while(p)
	{
		if(p.offsetWidth > w)
		{
			w = p.offsetWidth;
		}
		p = p.nextSibling;
	}
	p = menu.firstChild;
	while(p)
	{
		p.style.width = (w + 5) + "px";
		p = p.nextSibling;
	}
	if(this.scrollheight && menu.offsetHeight > this.scrollheight)
	{
		menu.style.width = (menu.offsetWidth + 20) + "px";
		menu.style.height = this.scrollheight + "px";
		menu.style.overflow = "auto";
	}
}

dropPicker.blur = function(evt)
{
	if(!evt)
	{
		evt = window.event;
	}
	dropPicker.item = this.dropPicker;
	if(dropPicker.item && dropPicker.item.menu)
	{
		var left = dropPicker.item.where[0] - document.documentElement.scrollLeft;
		var right = left + dropPicker.item.menu.offsetWidth;
		var top = dropPicker.item.where[1] + dropPicker.item.element.offsetHeight - document.documentElement.scrollTop;
		var bottom = top + dropPicker.item.menu.offsetHeight;
		//alert("blur at " + evt.clientX + ", " + evt.clientY + " pos = " + left + "-" + right + "," + top + "-" + bottom);
		var x = evt.clientX ? evt.clientX : evt.pageX;
		var y = evt.clientY ? evt.clientY : evt.pageY;
		if(x >= left && x <= right && y >= top && y <= bottom)
		{
			dropPicker.item.element.focus();
		}
		else
		{
			window.setTimeout('dropPicker.hideItem()', 200);
		}
	}
}

dropPicker.hideItem = function()
{
	if(dropPicker.item)
	{
		dropPicker.item.hide();
		dropPicker.item = null;
	}
}

dropPicker.prototype.select = function(item)
{
	dropPicker.overItem(item);
}

dropPicker.keypress = function(evnt)
{
	if(!evnt)
	{
		evnt = window.event;
	}
	if(evnt.keyCode == 13)
	{
		try
		{
			evnt.stopPropagation();
		}
		catch(x) {;};
		evnt.cancelBubble = true;
		return false;
	}
	return true;
}

dropPicker.prototype.keyup = function(evnt)
{
	switch(evnt.keyCode)
	{
		case 13:
			if(this.curitem)
			{
				dropPicker.clickItem(this.curitem);
				return;
			}
			else
			{
				if(evnt.srcElement)
				{
					evnt.srcElement.form.submit();
				}
				else
				{
					evnt.target.form.submit();
				}
			}
			evnt.cancelBubble = false;
			return true;
		case 38:	// up
			if(this.curitem)
			{
				if(this.curitem.previousSibling)
				{
					this.select(this.curitem.previousSibling);
				}
			}
			else
			{
				this.select(this.menu.lastChild);
			}
			return;
		case 40:	// down
			if(this.curitem)
			{
				if(this.curitem.nextSibling)
				{
					this.select(this.curitem.nextSibling);
				}
			}
			else
			{
				this.select(this.menu.firstChild);
			}
			return;
	}
	var text = this.element.value;
	if(text.match(/[^ ]/))
	{
		if(text != this.lastText)
		{
			this.lastText = text;
			// getAny("colsel.php?sessionID=" + key + "&collection=" + text, this);
			//alert("get it " + text + " at " + this.func);
			this.func(text, this);
		}
	}
	else
	{
		this.hide();
	}
}

dropPicker.prototype.hide = function()
{
	this.lastText = "";
	this.curitem = null;
	if(this.menu)
	{
		this.menu.parentNode.removeChild(this.menu);
		this.menu = null;
	}
}

/*
dropPicker.init = function()
{
	var list = document.getElementsByTagName("input");
	for(var i = 0; i < list.length; i++)
	{
		var e = list.item(i);
		if(e.id.match(/^drop_/))
		{
			if(!e.dropPicker)
			{
				new dropPicker(e);
			}
		}
	}
	list = document.getElementsByTagName("textarea");
	for(var i = 0; i < list.length; i++)
	{
		var e = list.item(i);
		if(e.id.match(/^drop_/))
		{
			if(!e.dropPicker)
			{
				new dropPicker(e);
			}
		}
	}
}

dropPicker.startup = function()
{
	dropPicker.init();
	if(dropPicker.load)
	{
		dropPicker.load();
	}
}
dropPicker.load = window.onload;
window.onload = dropPicker.startup;
*/

