// zakaze/povoli formularove prvky
function comgateFormDisabled(formId, disabled)
{
	var formObj = document.getElementById(formId); 
	if(!formObj)
		return;

	for(var i = 0; i < formObj.elements.length; i++)
	{
		var elem = formObj.elements[i];
		if(elem.jsDisabled)
			continue;

		if(elem.disabled != disabled)
			elem.disabled = disabled;
		else
			elem.jsDisabled = true;
	}
}

function comgateFormErrors(formId, errors)
{
	for(var error in errors)
	{
		var fieldName = error + "_field";
		var elemName = error;
		var editObj = document.getElementById(error);
		var fieldObj = document.getElementById(fieldName);

		ul = document.createElement("ul");
		ul.setAttribute("class", "errors");
		if (editObj != null) {
			editObj.setAttribute("class", "errors");
		}

		for(i = 0; i < errors[elemName].length; i++)
		{
			li = document.createElement("li");
			li.innerHTML = errors[elemName][i];
			ul.appendChild(li);
		}

		fieldObj.appendChild(ul);
	}
}

function comgateFormClean(formId)
{
	var formObj = document.getElementById(formId);
	if(!formObj)
		return;

	for(var i = 0; i < formObj.elements.length; i++)
	{
		var elem = formObj.elements[i];
		if(elem.jsDisable)
			elem.jsDisable = undefined;

		if(elem.className)
		{
			var attrs = elem.className.split(" ");
			var newClass = "";
			for(var j = 0; j < attrs.length; j++)
			{
				if(attrs[j] != "errors")
					newClass += (attrs[j] + " ");
			}
			elem.setAttribute("class", newClass);
		}

		if (!elem.name)
			continue;

		var fieldName = elem.name.replace("[]", "") + "_field";
		var fieldObj = document.getElementById(fieldName);
		if(!fieldObj)
			continue;

		var del = fieldObj.getElementsByTagName("ul");
		if(del.length > 0)
			fieldObj.removeChild(del[0]);
	}
	
	//odstranit sekci s globálními chybami
	var fieldName = formId + '_errors_field';
	var fieldObj = document.getElementById(fieldName);
	if (fieldObj) {
		var del = fieldObj.getElementsByTagName('ul');
		if (del.length > 0)
			fieldObj.removeChild(del[0]);
	}
	
}

