function checkStringInput(field_id, parameters)
{
  field = document.getElementById(field_id);
  if (!field) return true;
    min_length	= field.minLength;
    max_length	= field.maxLength;
    min_length	= (field.notEmpty === 'yes')? 1 : min_length;
    reg_exp		= field.regExp;
	
	
	field_length= (field.tagName.toUpperCase() == 'INPUT')? field.value.length : field.innerText.length;

	if (max_length && field_length > max_length)
    {
		alert (say('max_length_exeeded')+' '+max_length+' '+say('chars')+'. '+say('current_value')+' — '+field_length);
		field.focus();
		return false;
    }

    if (min_length && field_length < min_length)
    {
		alert (say('min_length_exeeded')+' '+min_length+' '+say('chars')+'. '+say('current_value')+' — '+field_length);
		field.focus();
		return false;
    }

/*    if (reg_exp)
    {
    	ereg($reg_exp, $value, $result_r);
		$result		= isset($result_r[0])? $result_r[0] : '';
        if ($result !== $value)
        {
    	//    	$FCore->Events->throw('EV_INCORRECT_USER_ACTION', new TFIncorrectUA());
			return false;
        }
    }
*/	

  return true;
}

function initStringInput(node, par1)
{
	node.id		= 'farba_'+node.uniqueID;
	SD_registerFieldToSave(node);
	var checker = 'checkStringInput("'+node.id+'")';
	SD_registerFieldToCheck(node, checker);
}

function clearHTMLField(field_id)
{
	var field	= document.getElementById(field_id);
	if (!field) return false;
	var html	= field.innerHTML;
	var text	= field.innerText;
	if (html != text) field.innerHTML = text;
	setTimeout("clearHTMLField('"+field_id+"')", 3000);
}

function checkStringField(field_id, parameters)
{
	if (!checkStringInput(field_id, parameters)) return false;
	
	field = document.getElementById(field_id);
  	if (!field) return true;

    max_width	= field.maxWidth;
    max_height	= field.maxHeight;
	
	if (max_width && field.clientWidth > max_width)
    {
		//Light field
		field.focus();
		UTL_addNodeClass(field, 'FarbaErrorInField');
		alert (say('max_width_exeeded')+' '+max_width+' '+say('pixels')+'. '+say('current_value')+' — '+field.clientWidth);
		setTimeout("UTL_removeNodeClass(field, 'FarbaErrorInField');", 1200);

		try {ED_toEditMode();} catch(e) {}
		return false;
    }

    if (max_height && field.clientHeight > max_height)
    {
		//Light field
		field.focus();
		UTL_addNodeClass(field, 'FarbaErrorInField');
		alert (say('max_height_exeeded')+' '+max_height+' '+say('pixels')+'. '+say('current_value')+' — '+field.clientHeight);
		setTimeout("UTL_removeNodeClass(field, 'FarbaErrorInField');", 1200);
		
		try {ED_toEditMode();} catch(e) {}
		return false;
    }

  return true;
}

function initStringDiv(node, par1)
{
	var nid			= 'farba_'+node.uniqueID;
	node.id			= nid;	
	SD_registerFieldToSave(node);
	var checker 	= 'checkStringField("'+nid+'",'+par1+')';
	SD_registerFieldToCheck(node, checker);


	if (node.textOnly == 'yes') clearHTMLField(nid);

	node.attachEvent('oncopy', CLIP_copyFieldToClipboard);
	node.attachEvent('oncut', CLIP_copyFieldToClipboard);
	node.attachEvent('onpaste', CLIP_checkContent);

	node.contentEditable = true;
}

function textareaMaxLength(area)
{
	var max_length	= area.getAttribute? parseInt(area.getAttribute("maxLength")) : "";
	if (!max_length) return;
	if (area.getAttribute && area.value.length>max_length) area.value = area.value.substring(0,max_length);
}

