
function handleDropDownTextfieldKeyDown(e,fieldId) {
	field = document.getElementById(fieldId);
	selectlist = document.getElementById(fieldId + '_slist');
	infofield = document.getElementById(fieldId + '_info');
	var keyCode;
	var tab = 9;
	var cLeft = 37;
	var cUp = 38;
	var cRight = 39;
	var cDown = 40;
	var enter = 13;
	var esc = 27;
	keyCode = (window.event) ? e.keyCode : e.which;
	if (field) {
		if (keyCode == esc) {
			handleDropDownDisappear(fieldId);
			return false;
		} else if (keyCode == enter) {
			return false;
		}
	}

}

function handleDropDownTextfieldKeyUp(e, fieldId, dataSource){
	field = document.getElementById(fieldId);
	selectlist = document.getElementById(fieldId + '_slist');
	infofield = document.getElementById(fieldId + '_info');
	var keyCode;
	var tab = 9;
	var cLeft = 37;
	var cUp = 38;
	var cRight = 39;
	var cDown = 40;
	var enter = 13;
	var esc = 27;
	keyCode = (window.event) ? e.keyCode : e.which;
	if (field) {
		if ((cLeft <= keyCode && keyCode <= cDown) || keyCode == tab || keyCode == enter) {
			// Cursortasten + Tab + enter
			if (keyCode == tab || keyCode == enter) {
				// Tab + Enter
				handleDropDownItemActivate(fieldId);
				handleDropDownDisappear(fieldId);
				return false;
			} else {
				// Pfeiltasten
				if (selectlist) {
					if (selectlist.options.length>1) {
						selectlist.selectedIndex=1;
						handleDropDownItemActivate(fieldId);
					}
					selectlist.focus();
				}
			}
		} else {
			if (keyCode == esc) {
				handleDropDownDisappear(fieldId);
				return false;
			}
			if (field.value.length == 0) {
				// kein Text im Feld
				handleDropDownDisappear(fieldId);
			}
			else {
				ajaxaction(dataSource + '&text=' + encodeURI(field.value));
				handleDropDownAppear(fieldId);

			}
		}
		if (infofield) {
				if (field.value.length==0) {
					infofield.style.display = 'none';
				}
		}
		// Wenn das Feld gelöscht wird, und dar nichts drin steht, soll auch
		// im hiddenfield keine Id mehr drin stehen
		if(field.value=="")
			hiddenfield.value="";
	}
}

function handleDropDownSelectfieldKeyDown(e, fieldId){
	field = document.getElementById(fieldId);
	hiddenfield = document.getElementById(fieldId + '_hidden');
	selectlist = document.getElementById(fieldId + '_slist');
	selectfield = document.getElementById(fieldId + '_sfield');
	var keyCode;
	var tab = 9;
	var cLeft = 37;
	var cUp = 38;
	var cRight = 39;
	var cDown = 40;
	var enter = 13;
	var esc = 27;
	keyCode = (window.event) ? e.keyCode : e.which;
	if (keyCode == tab || keyCode == enter) {
		// tab und enter akzeptiert
		handleDropDownItemActivate(fieldId);
		handleDropDownDisappear(fieldId);
		if (keyCode == enter) {
			return false;
		}
	}
	if (keyCode == esc) {
		handleDropDownDisappear(fieldId);
		field.focus();
		return false;
	}
	return false;
}

function handleDropDownSelectfieldKeyUp(e,fieldId) {
	field = document.getElementById(fieldId);
	hiddenfield = document.getElementById(fieldId + '_hidden');
	selectlist = document.getElementById(fieldId + '_slist');
	selectfield = document.getElementById(fieldId + '_sfield');
	var keyCode;
	var tab = 9;
	var cLeft = 37;
	var cUp = 38;
	var cRight = 39;
	var cDown = 40;
	var enter = 13;
	var esc = 27;
	keyCode = (window.event) ? e.keyCode : e.which;
	if (keyCode == esc) {
		handleDropDownDisappear(fieldId);
		return false;
	}
	if (keyCode == cUp || keyCode == cDown) {
		// hoch, runter
		handleDropDownItemActivate(fieldId);
	}
}

function handleDropDownItemActivate(fieldId) {
	field = document.getElementById(fieldId);
	hiddenfield = document.getElementById(fieldId + '_hidden');
	selectlist = document.getElementById(fieldId+ '_slist');
	infofield = document.getElementById(fieldId + '_info');
	if (field && selectlist) {
		if (selectlist.options[selectlist.selectedIndex]) {
			field.value = selectlist.options[selectlist.selectedIndex].innerHTML;
		}
	}
	if (hiddenfield) {
		hiddenfield.value = selectlist.value;
	}
	if (infofield) {
		infofield.style.display = 'inline';
	}
}

function handleDropDownDisappear(fieldId) {
	field = document.getElementById(fieldId);
	hiddenfield = document.getElementById(fieldId + '_hidden');
	selectlist = document.getElementById(fieldId + '_slist');
	selectfield = document.getElementById(fieldId + '_sfield');
	if (selectfield) {
		selectfield.style.display = 'none';
		// selectfield.style.top = 0 + 'px';
		// selectfield.style.left = 0 + 'px';
	}
}

function handleDropDownAppear(fieldId) {
	field = document.getElementById(fieldId);
	selectfield = document.getElementById(fieldId + '_sfield');
	myParent = document.getElementById(fieldId + '_parent');
	if (selectfield) {
		if (selectfield.style.display == 'none') {
			selectfield.style.display = 'block';
			selectfield.style.zIndex = '999';
// selectfield.className = 'test';
			selectfield.style.position = 'absolute';
		}
	// selectfield.style.top = '20px';
	}
}

