function validObject(formField)
	{
	if (formField == null || typeof(formField) == "undefined")
		{
		return false;
		}

	return true;
	}

function isEmailAddr(email)
	{
	var result = false;
	var theStr = new String(email);
	var index = theStr.indexOf("@");
	if (index > 0)
		{
		var pindex = theStr.indexOf(".",index);
		if ((pindex > index+1) && (theStr.length > pindex+1))
			result = true;
		}
	return result;
	}

function validRequired(formField,fieldLabel)
	{
	var result = true;
	
	if (formField.value == "")
	{
		Sexy.alert('<h1>Alert</h1><p>Please enter a value for the "' + fieldLabel +'" field.</p>');
		formField.focus();
		result = false;
	}
	
	return result;
	}

function validPasswd(formField1,formField2)
	{
	var result = true;

	if(!validPasswdMatch(formField1,formField2))
		return false;
	if(!validPasswdStrength(formField1))
		return false;
	
	return result;
	}
	
function validPasswdMatch(formField1,formField2)
	{
	var result = true;
	
	if (!validMatch(formField1,formField2, 'Password'))
		return false;

	return result;
	}
	
function validPasswdStrength(formField)
	{
	var result = true;
	var minLength = 8;
	var maxLength = 32;
	
	if (formField.value.length < minLength || formField.value.length > maxLength)
		{
		Sexy.alert('<h1>Alert</h1><p>Password must be between 8 and 32 characters long. Please try again!</p>');
		formField1.focus();
		result = false;
		}

	return result;
	}

function validMatch(formField1,formField2, fieldLabel)
{
	var result = true;
	
	if (formField1.value != formField2.value)
	{
		Sexy.alert('<h1>Alert</h1><p>"' + fieldLabel +'" fields do not match. Please try again!</p>');
		formField1.focus();
		result = false;
	}
	
	return result;
}


function allDigits(str)
{
	return inValidCharSet(str,"0123456789.");
}

function isValidLength(str,count)
{
	var result = true;

	if(str.length != 0 && str.length != count)
		result = false;

	return result;
}

function inValidCharSet(str,charset)
{
	var result = true;

	// Note: doesn't use regular expressions to avoid early Mac browser bugs	
	for (var i=0;i<str.length;i++)
		if (charset.indexOf(str.substr(i,1))<0)
		{
			result = false;
			break;
		}
	
	return result;
}

function validEmail(formField,fieldLabel,required)
	{
	var result = true;
	
	if (required && !validRequired(formField,fieldLabel))
		return false;

	if (result && !isEmailAddr(formField.value))
		{
		Sexy.alert('<h1>Alert</h1><p>Please enter a complete email address in the form: yourname@yourdomain.com</p>');
		formField.focus();
		return false;
		}
   
  	return result;
	}

function validNum(formField,fieldLabel,required)
{
	var result = true;

	if (required && !validRequired(formField,fieldLabel))
		result = false;
  
 	if (result)
 	{
 		if (!allDigits(formField.value))
 		{
 			Sexy.alert('<h1>Alert</h1><p>Please enter a number for the "' + fieldLabel +'" field.</p>');
			/*formField.focus();*/
			result = false;
		}
	} 
	
	return result;
}

function validNumLength(formField,fieldLabel,length,required)
{
	var result = true;

	if (required && !validRequired(formField,fieldLabel))
		result = false;
  
 	if (result)
 		{
 		if (!allDigits(formField.value) || !isValidLength(formField.value,length))
 			{
 			Sexy.alert('<h1>Alert</h1><p>Please enter a "' + length +'" digit value for the "' + fieldLabel +'" field.</p>');
			/*formField.focus();*/
			result = false;
			}
		} 
	
	return result;
}

function validStrLength(formField,fieldLabel,length,required)
{
	var result = true;

	if (required && !validRequired(formField,fieldLabel))
		result = false;
  
 	if (result)
 		{
 		if (!isValidLength(formField.value,length))
 			{
 			Sexy.alert('<h1>Alert</h1><p>Please enter a "' + length +'" character value for the "' + fieldLabel +'" field.</p>');
			/*formField.focus();*/
			result = false;
			}
		} 
	
	return result;
}

function validInt(formField,fieldLabel,required)
{
	var result = true;

	if (required && !validRequired(formField,fieldLabel))
		result = false;
  
 	if (result)
 	{
 		var num = parseInt(formField.value,10);
 		if (isNaN(num))
 		{
 			Sexy.alert('<h1>Alert</h1><p>Please enter a number for the "' + fieldLabel +'" field.</p>');
			formField.focus();
			result = false;
		}
	} 
	
	return result;
}


function validDate(formField,fieldLabel,required)
{
	var result = true;

	if (required && !validRequired(formField,fieldLabel))
		result = false;
  
 	if (result)
 	{
 		var elems = formField.value.split("/");
 		
 		result = (elems.length == 3); // should be three components
 		
 		if (result)
 		{
 			var month = parseInt(elems[0],10);
  			var day = parseInt(elems[1],10);
 			var year = parseInt(elems[2],10);
			result = allDigits(elems[0]) && (month > 0) && (month < 13) &&
					 allDigits(elems[1]) && (day > 0) && (day < 32) &&
					 allDigits(elems[2]) && ((elems[2].length == 2) || (elems[2].length == 4));
 		}
 		
  		if (!result)
 		{
 			Sexy.alert('<h1>Alert</h1><p>Please enter a date in the format MM/DD/YYYY for the "' + fieldLabel +'" field.</p>');
			/*formField.focus();*/
		}
	} 
	
	return result;
}

function isChecked(formField,fieldLabel)
	{
	var result = true;
		
	if(!formField.checked)
		{
 		Sexy.alert('<h1>Alert</h1><p>Please make a selection for ' + fieldLabel + '</p>');
		return false;	
		}
	
	return true;
	}
	
function validCheckboxCount(formField,fieldLabel,num,required)
	{
	var total = 0;
	var size = formField.length;
	
	for (var i = 0; i < size; i++)
		{
		if (eval("formField[" + i + "].checked") == true)
			{
			total += 1;
	   		}
		}
		
	if(num != 0)
		{
		if(total != num)
			{
			Sexy.alert('<h1>Alert</h1><p>Please select ' + num + ' checkboxes for "' + fieldLabel + '" </p>');
			return false;	
			}
		}
	
	if(required && total == 0)
		{
		Sexy.alert('<h1>Alert</h1><p>Please select at least one checkbox for "' + fieldLabel + '" </p>');
		return false;	
		}
		
	return true;
	}


function validRadio(formField,fieldLabel)
	{
	var result = false;
	
	for(var i=0; i<formField.length; i++)
		{
		if(formField[i].checked==true)
			result = true;
		}
		
	if(!result)
		Sexy.alert('<h1>Alert</h1><p>Please select a value for the "' + fieldLabel +'" field.</p>');

	return result
	}
	
function getRadioValue(formField)
	{
	var result = false;
	
	for(var i=0; i<formField.length; i++)
		{
		if(formField[i].checked==true)
			result = formField[i].value;
		}
		
	return result
	}

function minAge(formDay,formMonth,formYear)
	{
	/* the minumum age you want to allow in */
	var min_age = 18;

	/* change "age_form" to whatever your form has for a name="..." */
	var day = parseInt(formDay.value);
	var month = parseInt(formMonth.value) - 1;
	var year = parseInt(formYear.value);

	var theirDate = new Date((year + min_age), month, day);
	var today = new Date;

	if ((today.getTime() - theirDate.getTime()) < 0)
		return false;
	else
		return true;
	}
	
/*
Sample Form Tag
<form action="form.php" method="post" onSubmit="return validate_form(this)">
</form>

Sample Validate function

function validate_form(theForm)
{
	if (!validRequired(theForm.username,"Screen Name"))
		return false;
	if (!validRequired(theForm.gid,"Group"))
		return false;
	if (!validRequired(theForm.first_name,"First Name"))
		return false;
	if (!validRequired(theForm.last_name,"Last Name"))
		return false;
	if (!validEmail(theForm.email,"Email",true))
		return false;
	if (!validRequired(theForm.phone_h,"Phone"))
		return false;
	if (!validPasswd(theForm.passwd,theForm.passwd2))
		return false;
	if (!validEmail(theForm.email,"Email",true))
		return false;
	if (!validRequired(theForm.card_name,"Name on Card"))
		return false;
	if (!validNum(theForm.card_num,"Card Number",true))
		return false;
	if (!validRequired(theForm.month,"Expiry Month"))
		return false;
	if (!validDate(theForm.available,"Date Available",true))
		return false;
	if (!validButton(theForm.contract_type,"Contract Type"))
		return false;

		// <--------- End
	
	return true;
}

*/
