function Trim(TheString)
{
	var len;
	len = TheString.length;
 	while(TheString.substring(0,1) == " "){ //trim left
 		TheString = TheString.substring(1, len);
  		len = TheString.length;
	}
 	while(TheString.substring(len-1, len) == " "){ //trim right
 		TheString = TheString.substring(0, len-1);
  		len = TheString.length;
 	}

 	return TheString;
}

function IsEmailValid(ElemName)
{
	var EmailOk  = true;

	var AtSym    = ElemName.value.indexOf('@');
	var Period   = ElemName.value.lastIndexOf('.');
	var Space    = ElemName.value.indexOf(' ');
	var Length   = ElemName.value.length - 1;	// Array is from 0 to length-1

	if ((AtSym < 1) ||						// '@' cannot be in first position
			(Period <= AtSym + 1) ||		// Must be atleast one valid char btwn '@' and '.'
			(Period == Length ) ||			// Must be atleast one valid char after '.'
			(Space  != -1))					// No empty spaces permitted
	{
		EmailOk = false;
		alert('Please enter a valid e-mail address!');
		ElemName.focus();
	}

	return EmailOk;
}

function IsNumber(fldNum)
{
	var strNumber = "+-0123456789."

	var strNum = Trim(fldNum.value);

	var i;
	for (i = 0; i < strNum.length; i++)
	{
		if (strNumber.indexOf(strNum.charAt(i)) < 0)
		{
			alert('Please enter a valid number for ' + fldNum.name + '!');
			fldNum.focus();
			return false;
		}
	}

	return true;
}

function IsInteger(fldInt)
{
	var strNum = Trim(fldInt.value);

	if (strNum != "")
	{
		var nTemp = parseInt(strNum);

		if (nTemp != strNum)
		{
			alert('Please enter a valid integer for ' + fldInt.name + '!');
			fldInt.focus();
			return false;
		}
	}

	return true;
}

function IsDate(fldDate)
{
	if (fldDate.value != "")
	{
		var datObj = new Date(fldDate.value);
		if (isNaN(datObj))
		{
			alert('Please enter a valid expected date for ' + fldDate.name + '!');
			fldDate.focus();
			return false;
		}
	}

	return true;
}

function CheckField(fldObj, bNeed, sType, nMaxLength)
{
	if (bNeed)
	{
		if (fldObj.value == "")
		{
			alert('Please enter the ' + fldObj.name + ' and try again.')
			fldObj.focus();
			return false;
		}
	}

	bRes = true;
	switch (sType)
	{
	case 'i':
		bRes = IsInteger(fldObj);
		break;
	case 'n':
		bRes = IsNumber(fldObj);
		break;
	case 'd':
		bRes = IsDate(fldObj);
		break;
	}

	if (!bRes)
	{
		return false;
	}

	if (nMaxLength > 0)
	{
		if (fldObj.value.length > nMaxLength)
		{
			alert("The length of '" + fldObj.name + "' can not exceed " + nMaxLength + " characters!");
			fldObj.focus();

			return false;
		}
	}

	return true;
}

function IsFormComplete(frmThis)
{
	var x       = 0
	var FormOk  = true

	while ((x < frmThis.elements.length) && (FormOk))
	   {
		 if (frmThis.elements[x].tagName == 'CHECKBOX')
		 {
			x ++;
			continue;
		 }

		 if (frmThis.elements[x].value == '')
		 {
			alert('Please enter the ' + frmThis.elements[x].name + ' and try again.')
			frmThis.elements[x].focus()
			FormOk = false
		 }
		 x ++
	   }
	return FormOk
}
