<!--//
var allFields = new Array();
var errorFields = new Array();
var mandatoryFields = new Array();
var modifiedFields = new Array();
var readOnlyFields = new Array();

function smartFormLoadColors(evt)
{
	evt = (evt) ? evt : ((event) ? event : null);
	
	
	smartFormFixColors(evt);

	if (allFields[0])
		allFields[0].focus();
}

function smartFormFixColors(evt)
{
	evt = (evt) ? evt : ((event) ? event : null);

	for (var i = 0; i < allFields.length; i++)
		smartFormSetColor(allFields[i], evt);
}

function smartFormSetColor(field, evt)
{
	if (evt == null) return;
	if (!field) return;
	
	var td = field.parentElement;
	if (td == null)
	{
		td = field.parentNode; //this is only supported in IE5.0 and over and NN6.0 and over
	}

	for (var i = 0; i < readOnlyFields.length; i++)
	{
		if (field == readOnlyFields[i])
		{
			smartFormSetLabelColor(td,'FormLabelReadOnly');
			smartFormSetFieldColor(field,'readonly');
			return;
		}
	}

	var elem = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null)
	if (evt.type == 'focus' && elem == field)
	{
		smartFormSetLabelColor(td,'FormLabelFocus');
		smartFormSetFieldColor(field,'focus');
		return;
	}

	for (var i = 0; i < modifiedFields.length; i++)
	{
		if (field == modifiedFields[i])
		{
			if (field.value.length > 0)
			{
				smartFormSetLabelColor(td,'FormLabelModified');
				smartFormSetFieldColor(field,'modified');
				return;
			}
		}
	}

	for (var i = 0; i < errorFields.length; i++)
	{
		if (field == errorFields[i])
		{
			smartFormSetLabelColor(td,'FormLabelError');
			smartFormSetFieldColor(field,'error');
			return;
		}
	}

	for (var i = 0; i < mandatoryFields.length; i++)
	{
		if (field == mandatoryFields[i])
		{
			if (field.value.length == 0)
			{
				smartFormSetLabelColor(td,'FormLabelMandatory');
				smartFormSetFieldColor(field,'mandatory');
				return;
			}
		}
	}

	for (var i = 0; i < modifiedFields.length; i++)
	{
		if (field == modifiedFields[i])
		{
			if (field.value.length == 0)
			{
				smartFormSetLabelColor(td,'FormLabelModified');
				smartFormSetFieldColor(field,'modified');
				return;
			}
		}
	}

	smartFormSetLabelColor(td,'formLabel');
	smartFormSetFieldColor(field,'regular');
}

function smartFormSetFieldColor(field, className)
{
	field.className = className;
}

function smartFormSetLabelColor(td,className)
{

	if (td == null) return;
	if (td.tagName != 'TD') return;

	if (td.cellIndex > 0)
	{
		var tr = td.parentElement;
		if (tr == null)
		{
			tr = td.parentNode; //this is only supported in IE5.0 and over and NN6.0 and over
		}
		
		if (tr.tagName != 'TR') return;

		var td = tr.cells[td.cellIndex - 1];
		if (td.tagName != 'TD') return;

		td.className = className;
	}
	else
	{
		var tr = td.parentElement;
		if (tr == null)
		{
			tr = td.parentNode; //this is only supported in IE5.0 and over and NN6.0 and over
		}

		if (tr.tagName != 'TR') return;

		var row = tr.rowIndex;
		var table = tr.parentNode;
		if (table.tagName != 'TBODY') return;

		var td = table.rows[row-1].cells[0];
		if (td.tagName != 'TD') return;

		td.className = className;
	}
}

function smartFormCheckSaveButton()
{
	allMandatoryFieldsEntered = true;
	for (x = 0; x < mandatoryFields.length; x++)
	{
		field = mandatoryFields[x];
		if (field != null && field.value.length == 0)
		{
			allMandatoryFieldsEntered = false;
			break;
		}
	}
	if (allMandatoryFieldsEntered)
	{
		if (saveButton == null) return;
		saveButton.disabled = false
		saveButton.className = 'button';
	}
	else
	{
		if (saveButton == null) return;
		saveButton.disabled = true;
		saveButton.className = 'disabledButton';
	}
}

function smartFormHandleChange(field, evt)
{
	if (!field && evt) field = evt.target;
	if (!field && event) field = event.srcElement;
	modifiedFields[modifiedFields.length] = field;
}
//-->