/*
function OnKeyPress_Integer()
{
	if (window.event.keyCode < 48 || window.event.keyCode > 57)
	{
		window.event.returnValue = false;
		return false;
	}	
}

function OnKeyPress_Decimal()
{
	// disallow everything but numbers and "."
	if ((window.event.keyCode < 48 || window.event.keyCode > 57) && (window.event.keyCode != 46))
	{
		window.event.returnValue = false;
		return false;
	}	
}

function OnKeyPress_Date()
{
	// disallow everything but numbers and "/"
	if ((window.event.keyCode < 48 || window.event.keyCode > 57) && (window.event.keyCode != 47))
	{
		window.event.returnValue = false;
		return false;
	}	
}

function OnKeyPress_Time()
{
	// disallow everything but numbers and ":"
	if (window.event.keyCode < 48 || window.event.keyCode > 58)
	{
		window.event.returnValue = false;
		return false;
	}	
}
*/

function ValidateVariable(value, var_type)
{
	if (var_type.indexOf('not null') > 0 && value.length == 0)
	{
		return "Field cannot be left blank.";
	}	

	if (value.length)
	{
		if (var_type.indexOf('tinyint') != -1)
		{
			if (parseInt(value) != value)
			{
				return "Please enter a number.";
			}

			if (var_type.indexOf('unsigned') != -1)
			{
				if (value > 255 || value < 0)
				{
					return "Number must be between 0 and 255";
				}
			}
			else 
			{
				if (value > 127 || value < -127)
				{
					return "Number must be between 127 and -127";
				}
			}
		}
		else if (var_type.indexOf('smallint') != -1)
		{
			if (parseInt(value) != value)
			{
				return "Please enter a number.";
			}

			if (var_type.indexOf('unsigned') != -1)
			{
				if (value > 65535 || value < 0)
				{
					return "Number must be between 0 and 65535";
				}
			}
			else 
			{
				if (value > 32768 || value < -32768)
				{
					return "Number must be between 32768 and -32768";
				}
			}
		}
		else if (var_type.indexOf('mediumint') != -1)
		{
			if (parseInt(value) != value)
			{
				return "Please enter a number.";
			}

			if (var_type.indexOf('unsigned') != -1)
			{
				if (value > 8388608 || value < 0)
				{
					return "Number must be between 0 and 8388608";
				}
			}
			else 
			{
				if (value > 16777215 || value < -16777215)
				{
					return "Number must be between 16777215 and -16777215";
				}
			}
		}
		else if (var_type.indexOf('bigint') != -1)
		{
			if (parseInt(value) != value)
			{
				return "Please enter a number.";
			}

			if (var_type.indexOf('unsigned') != -1)
			{
				if (value > 18446744073709551615 || value < 0)
				{
					return "Number must be between 0 and 18446744073709551615";
				}
			}
			else 
			{
				if (value > 9223372036854775808 || value < -9223372036854775808)
				{
					return "Number must be between 9223372036854775808 and -9223372036854775808";
				}
			}
		}
		else if (var_type.indexOf('int') != -1)
		{
			if (parseInt(value) != value)
			{
				return "Please enter a number.";
			}

			if (var_type.indexOf('unsigned') != -1)
			{
				if (value > 4294967295 || value < 0)
				{
					return "Number must be between 0 and 4294967295";
				}
			}
			else 
			{
				if (value > 2147683648 || value < -2147683648)
				{
					return "Number must be between 2147683648 and -2147683648";
				}
			}
		}
		else if (var_type.indexOf('float') != -1 || var_type.indexOf('decimal') != -1 || var_type.indexOf('double') != -1)
		{
			if (parseFloat(value) != value)
			{
				return "Please enter a number.";
			}

			if (var_type.indexOf('unsigned') != -1)
			{
				if (value > 4294967295 || value < 0)
				{
					return "Number must be between 0 and 4294967295";
				}
			}
			else 
			{
				if (value > 2147683648 || value < -2147683648)
				{
					return "Number must be between 2147683648 and -2147683648";
				}
			}
		}
	}
	
	return "";
}

function ValidateForm(frm)
{
	for (var i = 0; i < frm.length; i++)
	{
		var e = frm.elements[i];
		if (frm.elements['datatype_' + e.name]
		&& frm.elements['datatype_' + e.name].name)
		{
			var data_type = frm.elements['datatype_' + e.name].value.replace('datatype_', '');
			err_string = ValidateVariable(e.value, data_type);
			if (err_string.length)
			{
				// output a display massage
				if (frm.elements['displayname_' + e.name])
				{
					alert ('Invalid entry in ' + frm.elements['displayname_' + e.name].value + '.\n' + err_string);
				}
				else
				{
					alert ('Invalid entry in field.\n' + err_string);
				}
				e.focus();
				return false;
			}
		}
	}

	if (window.CustomValidate)
	{
		return window.CustomValidate(frm);
	}
	else
	{
		return true;
	}
}

function PasswordMatch(fld1, fld2)
{
	if (fld1 && fld2)
	{	
		return (fld1.value == fld2.value);
	}
	else
	{
		return true;
	}
}

function ValidateEmail(fld)
{
	if (fld 
		&& fld.value 
		&& 	fld.value.indexOf('@') == -1 
		&& fld.value.indexOf('.') == -1)
	{
		return false;
	}
	else
	{
		return true;
	}
}

function SubmitToRunMode(frm, run_mode, url)
{
	if (frm && ValidateForm(frm))
	{
		if (run_mode)
		{
			frm.rm.value = run_mode;
		}
		
		if (url)
		{
			frm.action = url;
		}
		
		frm.submit();
	}
}