function isValidField(field,str) {
	switch(field) {
		case 'not_empty':
			var validPattern = /.+/;
			break;
		case 'number':
			var validPattern = /^[0-9]+$/;
			break;
		case 'float':
			var validPattern = /^[0-9]*(\.[0-9]*)?$/;
			break;
		case 'name':
			var validPattern = /^[a-zA-Zא-ת0-9\-\'\"\.\s]+$/;
			break;
		case 'email':
			var validPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
			break;
		case 'phone':
			var validPattern = /^[0-9\-\s]{7,}$/;
			break;
		default:
	}
	return validPattern.test(str);
}

function validForm(formObj, checkList) {
	var firstErrObject = null;

	// we can't put this clean up inside the next loop, since the element may be the same and we don't want to clean previous sets
	for (i = 0; i < checkList.length; i++) {
		document.getElementById(checkList[i][2]).innerHTML = "";
	}

	for (i = 0; i < checkList.length; i++) {
		var objInput = eval("formObj." + checkList[i][0]);
		if (!isValidField(checkList[i][1], objInput.value)) {
			document.getElementById(checkList[i][2]).innerHTML += checkList[i][3] + "<br />";
			if (!firstErrObject) { firstErrObject = objInput; }
		}
	}

	if (firstErrObject != null) {
		firstErrObject.focus();
		return false;
	}

	window.onbeforeunload = null;
	return true;
}

function charCount(obj, lengthId, maxLen) {
	if (obj.value.length > maxLen) {
		obj.value = obj.value.substring(0, maxLen);
	}
	document.getElementById(lengthId).innerHTML = maxLen + " / " + obj.value.length;
}

