﻿function Data_ValidateForm() {
	var i = 0;
	var bValid = true;
	var oControl = null;
	var sValue = "";
	var sMessage = "";
	var sMinValue = ""; 
	var sMaxValue = "";

	// for each control ... 	
	for (i = 0; i < document.all.length; i++) {
		oControl = document.all[i];

		if (oControl.DataType) {
			sValue = oControl.value;
			
			// are empty values allowed ?
			if ((oControl.RequiredString) && (oControl.RequiredString.length > 0) && 
					(Utils_IsBlank(sValue) || 
						((oControl.DataType == "number" || oControl.DataType == "float") && (Utils_Trim(sValue) == "0" || Utils_Trim(sValue) == "-1")))) {
				sMessage = "חובה להזין " + oControl.RequiredString;
				bValid = false;
			}

			// is the data type OK ?
			if (bValid && (!Utils_IsBlank(sValue))) { 
				switch (oControl.DataType) {
					case "number": case "float":
						if (!Utils_IsNumber(sValue, (oControl.DataType == "float"))) {
							if (oControl.DataType == "float")
								sMessage = "חובה להזין מספרים בלבד";
							else
								sMessage = "חובה להזין מספרים שלמים בלבד";
							bValid = false;
						}
						break;
					case "date":
						if (!Utils_IsDate(sValue)) {
							sMessage = "תאריך שגוי";
							bValid = false;
						}
						break;
					case "time":
						if (!Utils_IsTime(sValue)) {
							sMessage = "זמן שגוי";
							bValid = false;
						}
						break;
					default:
						break;
				}
			}
						
			// check min value, if set
			if (bValid && (!Utils_IsBlank(sValue)) && (oControl.MinValue) && (oControl.MinValue.length > 0)) {
				switch (oControl.DataType) {
					case "number": case "float":
						if (eval(sValue) < eval(oControl.MinValue)) {
							sMessage = "לא ניתן להזין ערך קטן מ-" + oControl.MinValue;
							bValid = false;
						}
						break;
					case "date": case "time":
						if (Utils_StringToDate(sValue) - Utils_StringToDate(oControl.MinValue) < 0) {
							sMessage = "לא ניתן להזין ערך קטן מ-" + oControl.MinValue;
							bValid = false;
						}
						break;
					default:
						break;
				}
			}
			
			// check max value, if set
			if (bValid && (!Utils_IsBlank(sValue)) && (oControl.MaxValue) && (oControl.MaxValue.length > 0)) {
				switch (oControl.DataType) {
					case "number": case "float":
						if (eval(sValue) > eval(oControl.MaxValue)) {
							sMessage = "לא ניתן להזין ערך גדול מ-" + oControl.MaxValue;
							bValid = false;
						}
						break;
					case "date": case "time":
						if (Utils_StringToDate(sValue) - Utils_StringToDate(oControl.MaxValue) > 0) {
							sMessage = "לא ניתן להזין ערך גדול מ-" + oControl.MaxValue;
							bValid = false;
						}
						break;
					default:
						break;
				}
			}
		}
		
		if (!bValid) {
			JG_MessageBox(sMessage, "", 1);
			try {
				oControl.focus()
			}
			catch(e){}
			break;
		}
	}
	
	return bValid;
}
//------------------------------------------------------------------------------------------------
function DisplayValidationError(sControl, sMessage) {
	JG_MessageBox(sMessage, "", 1);
	try {
		eval("Utils_GetFormRef()." + sControl).focus();
	}
	catch(e){}
}
//------------------------------------------------------------------------------------------------
function Data_ClearFormData() {
	var i = 0;

	for (i = 0; i < document.all.length; i++) {
		oControl = document.all[i];
		if (oControl.DataType) {
			if (oControl.tagName == 'INPUT') {
				if  (oControl.type == 'checkbox' || oControl.type == 'radio')
					oControl.checked = false;
				else	
					oControl.value = "";
			}
			if (oControl.tagName == 'SELECT' && oControl.options.length > 0)
				oControl.selectedIndex = 0 // if no value zero  then no selected
		}
	}
}
//------------------------------------------------------------------------------------------------