// JavaScript Document

function textFieldEditor(id, defaultText, action, width)
{
	var element = document.getElementById(id);
	
	var input = document.createElement('input');
	input.id = id+'_textFieldEditor';
	input.type = 'text';
	input.value = element.getAttribute('property_value');
	input.onEscFn = function()
	{
		input.parentNode.replaceChild(element, input);
	};
	registerListener('keypress', onEsc, input);
	input.onEnterFn = function()
	{
		this.blur();
	};
	registerListener('keypress', onEnter, input);
	setupInputField(input);
	input.onblur = function()
	{
		input.disabled = true;
		profileEditorBlurFunction(element, input, defaultText, action);
	};
	if(width)
	{
		input.style.width = width;
	}
	
	element.parentNode.replaceChild(input, element);
	input.select();
	input.focus();
}

function textAreaEditor(id, defaultText, action)
{
	var element = document.getElementById(id);
	
	var textarea = document.createElement('textarea');
	textarea.id = id+'_textAreaEditor';
	textarea.value = element.getAttribute('property_value');
	textarea.setAttribute('cols', 30);
	textarea.setAttribute('rows', 3);
	textarea.style.width = '100%';
	textarea.onEscFn = function()
	{
		textarea.parentNode.replaceChild(element, textarea);
	};
	registerListener('keypress', onEsc, textarea);
	setupTextarea(textarea);
	textarea.onblur = function()
	{
		textarea.disabled = true;
		profileEditorBlurFunction(element, textarea, defaultText, action);
	};
	
	element.parentNode.replaceChild(textarea, element);
	textarea.select();
	textarea.focus();
}

function profileEditorBlurFunction(element, editor, defaultText, action)
{
	var ajax = new AjaxObject();
	ajax.callback = function(ajax)
	{
		if(!ajax.success)
		{
			showErrorDialog(ajax.message);
		}
		else
		{
			element.setAttribute('property_value', editor.value);
			removeChildren(element);
			if(editor.value == '')
			{
				element.appendChild(document.createTextNode(defaultText));
			}
			else
			{
				element.innerHTML = textToHTML(editor.value);
			}
			//element.appendChild(document.createTextNode(editor.value == '' ? defaultText : textToHTML(editor.value)));
		}
		
		editor.parentNode.replaceChild(element, editor);
	};
	
	var value = editor.value == defaultText ? '' : editor.value;
	ajax.update('action='+action+'&id='+element.getAttribute('edit_id')+'&property='+element.getAttribute('property')+'&value='+value);
}