function defaultFormState() {
	var isValid;
	for (formElement in formElements) {
		if (formElements[formElement]['noValidation'] != true) {
			var value = document.getElementById(formPre + formElement).value;
			if (value == '' && formElements[formElement]['optional'] !== true) {
				document.getElementById(formPre + formElement + '_label').style.color = errorColorWindow;
				formElements[formElement]['isValid'] = false;
			}
			else if (value == '' && formElements[formElement]['optional'] === true) {
				formElements[formElement]['isValid'] = true;
			}
			else if (value != '') {
				switch (formElements[formElement]['type']) {
					default:
						isValid = true;
					break;
				}
				if (isValid == true) {
					document.getElementById(formPre + formElement + '_label').style.color = okColorWindow;
					formElements[formElement]['isValid'] = true;
				}
				else {
					document.getElementById(formPre + formElement + '_label').style.color = errorColorWindow;
					formElements[formElement]['isValid'] = false;
				 }
			}
		}
		if (formElements[formElement]['type'] == 'check') {
			var checkVal = document.getElementById(formPre + formElement).value;
			if (checkVal == 1) {
				document.getElementById(formPre + formElement + '_display').src = enabledImg.src;
				document.getElementById(formPre + formElement + '_display').alt = 'enabled';
			}
			else {
				document.getElementById(formPre + formElement + '_display').src = disabledImg.src;
				document.getElementById(formPre + formElement + '_display').alt = 'disabled';
			}
		}
	}
	if (isValidAll() == false) {
		document.getElementById(formPre + 'submit').disabled = true;
		document.getElementById(formPre + 'submit').setAttribute('class', 'submitDisabled');
	}
	else {
		document.getElementById(formPre + 'submit').disabled = false;
		document.getElementById(formPre + 'submit').setAttribute('class', 'submit');
	}
}

function isValidAll() {
	var isValid = true;
	for (formElement in formElements) {
		if (formElements[formElement]['noValidation'] != true) {
			isValid &= formElements[formElement]['isValid'];
		}
	}
	return isValid;
}

function validateSubmit() {
	showWindowLoading();
	if (isValidAll()) {
		saveFromForm();
	}
	else {
		document.getElementById('mainform_error').innerHTML = '<label>&nbsp;</label>Not valid';
		hodeWindowLoading();
	}
	return false;
}

function validate() {
	var isValid;
	if (document.getElementById(formPre + currentFormElement).value == '') {
		if (formElements[currentFormElement]['optional'] == true) {
			document.getElementById(currentFormElement + '_error').innerHTML = '';
			document.getElementById(formPre + currentFormElement + '_label').style.color = defaultColor;
			formElements[currentFormElement]['isValid'] = true;
		}
		else {
			document.getElementById(currentFormElement + '_error').innerHTML = dic['cantBeEmpty'];
			document.getElementById(formPre + currentFormElement + '_label').style.color = errorColorWindow;
			formElements[currentFormElement]['isValid'] = false;
		}
	}
	else {
		if (document.getElementById(currentFormElement + '_error').innerHTML == dic['cantBeEmpty']) {
			document.getElementById(currentFormElement + '_error').innerHTML = '';
		}
		switch (formElements[currentFormElement]['type']) {
			/*case 'date':
				isValid = checkDate(formElement);
			break;
			case 'time':
				isValid = checkTime(formElement);
			break;*/
			default:
				isValid = true;
			break;
		}
		if (isValid == true) {
			/*if (formElements[currentFormElement]['compare'] !== undefined) {
				formElements[currentFormElement]['compare']['function'](formElement, formElements[formElement]['compare']['elements']);
			}
			else {*/
				document.getElementById(formPre + currentFormElement + '_label').style.color = okColorWindow;
				formElements[currentFormElement]['isValid'] = true;
			//}
		}
		else {
			document.getElementById(formPre + currentFormElement + '_label').style.color = errorColorWindow;
			formElements[currentFormElement]['isValid'] = false;
		}
		if (isValidAll() == false) {
			document.getElementById(formPre + 'submit').disabled = true;
			document.getElementById(formPre + 'submit').setAttribute('class', 'submitDisabled');
		}
		else {
			document.getElementById(formPre + 'submit').disabled = false;
			document.getElementById(formPre + 'submit').setAttribute('class', 'submit');
		}
	}
}

function validateOldValue() {
	var isValid;
	var newOldValue;
	if (formElements[currentFormElement]['onChangeOnly'] == false) {
		newOldValue = document.getElementById(formPre + currentFormElement).value;
		if (newOldValue == '') {
			isValid = true;
		}
		else {
			switch (formElements[currentFormElement]['type']) {
				default:
					isValid = true;
				break;
			}
		}
		if (isValid == true || isValid == 'error') {
			return newOldValue;
		}
		else {
			return oldValue;
		 }
	}
	else {
		return newOldValue;
	}
}

function validateNewValue() {
	var isValid;
	var newValue;
	if (formElements[currentFormElement]['onChangeOnly'] == false) {
		newValue = document.getElementById(formPre + currentFormElement).value;
		if (newValue == '') {
			isValid = 'empty';
		}
		else {
			switch (formElements[currentFormElement]['type']) {
				default:
					isValid = true;
				break;
			}
		}
		if (isValid == true) {
			document.getElementById(formPre + currentFormElement + '_label').style.color = okColorWindow;
			document.getElementById(currentFormElement + '_error').innerHTML = '';
			formElements[currentFormElement]['isValid'] = true;
		}
		else if (isValid == 'empty') {
			if (formElements[currentFormElement]['optional'] == false) {
				document.getElementById(formPre + currentFormElement + '_label').style.color = errorColorWindow;
				formElements[currentFormElement]['isValid'] = false;
			}
			else {
				document.getElementById(formPre + currentFormElement + '_label').style.color = defaultColor;
				formElements[currentFormElement]['isValid'] = true;
			}
		}
		else if (isValid == 'error') {
			document.getElementById(formPre + currentFormElement + '_label').style.color = errorColorWindow;
			formElements[currentFormElement]['isValid'] = false;
		}
		else {
			document.getElementById(formPre + currentFormElement).value = oldValue;
		}
	}
	else {
		newValue = document.getElementById(formPre + currentFormElement).value;
		if (newValue == '') {
			if (formElements[currentFormElement]['optional'] == true) {
				document.getElementById(formPre + currentFormElement + '_label').style.color = defaultColor;
				formElements[currentFormElement]['isValid'] = true;
				document.getElementById(currentFormElement + '_error').innerHTML = '';
			}
			else {
				document.getElementById(formPre + currentFormElement + '_label').style.color = errorColorWindow;
				formElements[currentFormElement]['isValid'] = false;
			}
		}
		else {
			document.getElementById(formPre + currentFormElement + '_label').style.color = okColorWindow;
			formElements[currentFormElement]['isValid'] = true;
			if (document.getElementById(currentFormElement + '_error').innerHTML == dic['cantBeEmpty']) {
				document.getElementById(currentFormElement + '_error').innerHTML = '';
			}
		}
	}
	if (isValidAll() == false) {
		document.getElementById(formPre + 'submit').disabled = true;
		document.getElementById(formPre + 'submit').setAttribute('class', 'submitDisabled');
	}
	else {
		document.getElementById(formPre + 'submit').disabled = false;
		document.getElementById(formPre + 'submit').setAttribute('class', 'submit');
	}
}
