/**
 * The handler for onToggleKeyDown event.
 */
function onToggleKeyDown(field, event) {
	if (window.event) {
		keynum = event.keyCode;
	} else if (event.which) {
		keynum = event.which;
	}	 
	keychar = String.fromCharCode(keynum);
	if (keychar == '\r') {
		focusNextField(field);
		return false;
	}
	return true;
}

/**
 * The handler for onToggleKeyDown event in an endless.
 */
function onToggleKeyDownEndless(field, event) {
	onKeyDownEndless(field, event);
}

/**
 * The handler for onKeyDown event for custom toggle in an endless.
 */
function onCustomToggleKeyDownEndless(field, event, trueText, falseText) {
	var keynum;
	if (window.event) {
		keynum = event.keyCode;
	} else if (event.which) {
		keynum = event.which;
	}
	
	if (keynum == 32) {
		field.value = (field.value == trueText ? falseText : trueText);
		onEndlessCustomToggleChange(field, trueText, falseText);
	} else {
		onToggleKeyDownEndless(field, event);
	}
}

/**
 * The handler for onMouseDown event for custom toggle in an endless.
 */
function onCustomToggleMouseDownEndless(field, event, trueText, falseText) {
	field.value = (field.value == trueText ? falseText : trueText);
	field.focus();
	onEndlessCustomToggleChange(field, trueText, falseText);
}

/**
 * Called when a toggle field changes value.
 */
function onToggleChange(field) {
	field.value = field.checked ? 'true' : 'false';
	setData(field,-1);
}

/**
 * Called when a toggle field inside an endless changes value.
 */
function onEndlessToggleChange(field) {
	var row;
	row = getCurrentRow(field);
	field.value = field.checked ? 'true' : 'false';
	setData(field, row);	
}

/**
 * Called when a custom toggle field changes value.
 */
function onCustomToggleChange(field, trueText, falseText) {
	setData(field, -1);
}

/**
 * Called when a custom toggle field inside an endless changes value.
 */
function onEndlessCustomToggleChange(field, trueText, falseText) {
	var row = getCurrentRow(field);
	setData(field, row);
}

/**
 * Called when a toggle field gains focus.
 */
function onToggleFocusGain(field) {
	setFSHHint(field.id);
}

