function evalDlgForm() {
	var thisForm = document.forms['dlgform'];
	var iResult = 1;
	var editField;

	for (var i = 0; i < arrMandatoryFields.length; i++) {
		editField = thisForm.elements[arrMandatoryFields[i][0]];

		if (editField.type == "checkbox") {
			if (!editField.checked) {
				alert(strReplace(strMandatoryCheckbox, '%s', removeTags(arrMandatoryFields[i][1])));
				iResult = 0;
				break;
			}
		} else if (editField.type == "select-one") {
			if (editField.options[editField.selectedIndex].value == -1) {
				alert(strReplace(strMandatoryCountry, '%s', removeTags(arrMandatoryFields[i][1])));
				iResult = 0;
				break;
			}
		} else {
			if (editField.value == "" ||
				editField.value == " ") {
				alert(strReplace(strMandatory, '%s', removeTags(arrMandatoryFields[i][1])));
				iResult = 0;
				editField.focus();
				break;
			}
		}
	}

	if (iResult) {
		for (var i = 0; i < arrLengthFields.length; i++) {
			editField = thisForm.elements[arrLengthFields[i][3]];

			if (editField.type == 'text' ||
				editField.type == 'textarea') {

				if (editField.value.length > arrLengthFields[i][1]) {
					alert(strReplace(strReplace(strMaxLength, '%d', arrLengthFields[i][1]), '%s', removeTags(arrLengthFields[i][2])));
					editField.focus();
					iResult = 0;
					break;
				}
			}
		}
	}

	if (iResult) {
		for (var i = 0; i < arrPwdFields.length; i++) {
			editField = thisForm.elements[arrPwdFields[i]];
			editField2 = thisForm.elements[arrPwdFields[i] + "2"];
			if (editField.value != editField2.value) {
				alert(strPassword);
				iResult = 0;
				editField.focus();
				break;
			}
		}
	}
	
	if (iResult) {
		if (thisForm.elements['tab' + iSelectedTabID] != null) {
			thisForm.elements['tab' + iSelectedTabID].value = '';

			for (var j = 0; j < arrTabIDs.length; j++) {
				var arrSelected = new Array();
				var tabtank = document.getElementById('tabcontent' + arrTabIDs[j]);
				var arrInputs = tabtank.getElementsByTagName("input");

				for (var i = 0; i < arrInputs.length; i++) {
					input = arrInputs[i];
					if (input.checked) {
						var iSelectedTabItem = input.value;
						arrSelected[arrSelected.length] = iSelectedTabItem;
					}
				}
				thisForm.elements['tab' + arrTabIDs[j]].value = arrSelected.join(',');
			}
		} else {
			for (var i = 0; i < arrTabIDs.length; i++) {
				var arrSelected = new Array();

				for (var j = 0; j < arrTabItems[arrTabIDs[i]].length; j++) {
					var iTabItemValue = arrTabItems[arrTabIDs[i]][j];

					//alert(arrTabIDs[i] + ": " + iTabItemValue);

					for (var n = 0; n < thisForm.elements.length; n++) {
						if ((thisForm.elements[n].type == "radio" ||
								thisForm.elements[n].type == "checkbox")
							&& thisForm.elements[n].value == iTabItemValue
							&& thisForm.elements[n].name.substring(0, 7) == "tabitem"
							&& thisForm.elements[n].checked) {
							arrSelected[arrSelected.length] = iTabItemValue;
							//if (thisForm.elements[n].type == "radio") break;
						}
					}
				}

				if (arrSelected.length) {
					thisForm.elements['tab' + arrTabIDs[i]].value = arrSelected.join(',');
				}
			}
		}
	}

	if (iResult) {
		if (arrTabMandatory.length) {
			iMandatoryCount = 0;
			for (i = 0; i < arrTabMandatory.length; i++) {
				if (thisForm.elements['tab' + arrTabMandatory[i]].value != '') {
					iMandatoryCount++;
				}
			}

			if (arrTabMandatory.length != iMandatoryCount) {
				alert(strTabsMandatory);
				iResult = 0;
			}
		}
	}

	if (iResult && iUseCaptcha) {
		if (thisForm.VcCaptchaInput.value == '' || thisForm.VcCaptchaInput.value.length < 5) {
			alert(strNoCaptchaInput);
			thisForm.VcCaptchaInput.focus();
			iResult = 0;
		}
	}

	if (iResult) {
		thisForm.submit();
	}
}

function strReplace(strHaystack, strPattern, strReplacement) {
    var strTemp = "";
    if (strHaystack.indexOf(strPattern) != -1) {
        for (var i = 0; i < strHaystack.length; i++) {
            if (strHaystack.substring(i, i + strPattern.length) == strPattern) {
                strTemp += strReplacement;
                i += (strPattern.length - 1);
            } else {
                strTemp += strHaystack.charAt(i);
            }
        }
    } else {
        strTemp = strHaystack;
    }
    return strTemp;
}

