function containsAnything(form, control, printName)
{
	var returnString = "";

	if (form[control].value.length == 0)
		returnString = "Please enter a value for " + printName + ".\n";

	return returnString;
}

function containsXMLSafe(form, control, printName)
{
	var returnString = "";

	var value = form[control].value;

	if ( (value.indexOf("<") >= 0) || (value.indexOf(">") >= 0) ||
		 (value.indexOf("\"") >= 0) || (value.indexOf("&") >= 0) )
		returnString = "The text for " + printName + " cannot contain any of the following characters \", <, > and &.\n";

	return returnString;
}

function containsNumber(form, control, printName, required)
{
	var returnString = "";

	if (required && (containsAnything(form, control, printName) != "") )
		return containsAnything(form, control, printName);

	for (var i = 0; i < form[control].value.length; i++)
	{
		if (isNaN(parseInt(form[control].value.substr(i,1))))
		{
			returnString = "Please enter a valid number for " + printName + ".\n";
			break;
		}
	}

	return returnString;
}

function containsDecimal(form, control, printName, required)
{
	var returnString = "";
	var periodCount = 0;

	if (required && (containsAnything(form, control, printName) != "") )
		return containsAnything(form, control, printName);

	for (var i = 0; i < form[control].value.length; i++)
	{
		var temp = form[control].value.substr(i,1);

		if (temp == ".") {
			periodCount++;
		}

		if ( isNaN(parseInt(temp)) && (temp != "." || periodCount > 1) )
		{
			returnString = "Please enter a valid number for " + printName + ".\n";
			break;
		}
	}

	return returnString;
}

function radioSelected(form, control, printName)
{
	var i, found;
	found = false;
	for (i = 0; i < form[control].length; i++)
	{
		if (form[control][i].checked) {
			found = true;
			break;
		}
	}
  
	if (!found)
		return printName + " selection is required.\n";
	else
		return "";
}

function containsCreditCardNumber(form, control, printName, required, minimumLength)
{
	if (!required && (form[control].value.length == 0) )
		return "";
		
	if (required && (form[control].value.length == 0) )
		return "Please enter a value for " + printName + ".\n";

	if (containsNumber(form, control, printName, true) != "")
		return "Please enter a valid " + printName + " (numbers only, no spaces or dashes).\n";
		
	if (form[control].value.length < minimumLength)
		return "Your " + printName + " must be at least " + minimumLength + " digits.\n";
		
	return "";
}

function containsDate(form, control, printName, required)
{
	var parts;

	if ( required && (form[control].value.length == 0) )
		return "Please enter a value for " + printName + ".\n";

	parts = form[control].value.split("/");
	if (parts.length != 3)
		parts = form[control].value.split("-");
		
	if (parts.length != 3)
		return "Please enter a valid date for " + printName + ".\n";
	
	if (parts[0].substr(0,1) == "0")
		parts[0] = parts[0].substr(1);
		
	if (parts[1].substr(0,1) == "0")
		parts[1] = parts[1].substr(1);

	if (parts[2].substr(0,1) == "0")
		parts[2] = parts[2].substr(1);

	if ( (parseInt(parts[0]) < 1) || (parseInt(parts[0]) > 12) )
		return "Please enter a valid date for " + printName + ".\n";
	
	if ( (parseInt(parts[1]) < 1) || (parseInt(parts[1]) > 31) )
		return "Please enter a valid date for " + printName + ".\n";
	
	if ( (parseInt(parts[2]) < 1) || (parseInt(parts[2]) > 3000) )
		return "Please enter a valid date for " + printName + ".\n";
	
	return "";
}

function getRadioValue(form, control)
{
	for (i = 0; i < form[control].length; i++)
	{
		if (form[control][i].checked)
			return form[control][i].value;
	}
	
	return "";
}

function getSelectValue(form, control)
{
	return form[control].options[form[control].selectedIndex].value;
}

function radioUnselect(form, control)
{
	var i;
	for (i = 0; i < form[control].length; i++)
	{
		form[control][i].checked = false;
	}
}


