function isLength(control)
{
	if ((control.value.length) == 0)
	{
		control.focus();
		return false;
	}
	return true;
}


function isSpace(control)
{
	regex = /^\s+$/;
	return _isPresent(control, regex);
}

function isNumeric(control)
{
	regex = /^[-+]{0,1}\d+$/;
	return _isPresent(control, regex);
}


function isFloat(control)
{
	//float can be positive or negative.
	//If it contains a +/- sign, then at least one digit should be
	//present before the decimal symbol.
	regex = /^[-+]{0,1}\d+\.\d*$/;
	return _isPresent(control, regex);
}

function isPositive(control)
{
	if (isFloat(control))
	{
		if (parseFloat(control.value) > 0)
		{
			control.focus();
			return true;
		}
	}
	return false;
}


function isAlphabetic(control)
{
	regex = /^[a-zA-Z]+$/;
	return _isPresent(control, regex);
}

function isSpaceStr(control)
{
	//looks for a alphabetic string with/without spaces...
	regex = /^[a-zA-Z\s]+$/;
	return _isPresent(control, regex);
}

function isNumSpace(control)
{
	regex = /^[\d\s]+$/;
	return _isPresent(control, regex);
}

function isAlnum(control)
{
	regex = /^[a-zA-Z0-9]+$/;
	return _isPresent(control, regex);
}

function _isPresent(control, regex)
{
	if (!isLength(control)) return false;
	pos = control.value.search(regex);
	if (pos == -1)
	{
		control.focus();
		return false;
	}
	else
	{
		return true;
	}
}

function isValidDate(value)
{

	//looks for the format mm/dd/yyyy
  	var result = _getDate(value);
	if (result != null)
	{
		//looks for the format dd/mm/yyyy
		var day = RegExp.$1;
		var month = RegExp.$2;
		var year = RegExp.$3;

		flag = _isDate(day, month, year);
	}
	else
	{
		flag = false;
	}
	return flag;
}

function isMMDDYYYY(value)
{
	//looks for the format mm/dd/yyyy

	var result = _getDate(value);
	if (result != null)
	{
		//looks for the format dd/mm/yyyy
		var day = RegExp.$2;
		var month = RegExp.$1;
		var year = RegExp.$3;
		flag = _isDate(day, month, year);
	}
	else
	{
		flag = false;
	}

	return flag;
}

function _getDate(value)
{
	var regexp = new RegExp("^(\\d{1,2})/(\\d{1,2})/(\\d{1,4})$", "i");
  	var result = regexp.exec(value);
	return result;
}

function _isDate(day, month, year)
{
	var flag = true;
	if (month < 1 || month > 12) { flag = false;}
	if (day < 1 || day > 31) {flag = false;}
	if ((month==4 || month==6 || month==9 || month==11) && day==31) {flag = false;}
	if (month == 2)
	{
		var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
		if (day>29 || (day==29 && !isleap))
		{
			flag = false;
		}
	}
	return flag;
}

function isPastDate(value)
{
	var flag = false;

	var result = _getDate(value);
	if (result != null)
	{
		//looks for the format dd/mm/yyyy
		var day = RegExp.$1;
		var month = RegExp.$2;
		var year = RegExp.$3;
		var isDate = _isDate(day, month, year);

		if (isDate)
		{
			var today = new Date();

			var todayYear = parseInt(today.getYear(), 10);
			var todayMonth = parseInt(today.getMonth(), 10) + 1;
			var todayDate = parseInt(today.getDate(), 10);

			if (todayYear > year) flag = true;
			else if (todayMonth> month) flag = true;
			else if (todayDate > day) flag = true;
		}
	}
	else
	{
		flag = false;
	}
	return flag;
}

function isToday(value)
{
	var flag = false;

	var result = _getDate(value);
	if (result != null)
	{
		//looks for the format dd/mm/yyyy
		var day = RegExp.$1;
		var month = RegExp.$2;
		var year = RegExp.$3;
		var isDate = _isDate(day, month, year);

		if (isDate)
		{
			var today = new Date();

			var todayYear = parseInt(today.getYear(), 10);
			var todayMonth = parseInt(today.getMonth(), 10) + 1;
			var todayDate = parseInt(today.getDate(), 10);

			if ((todayYear == year) && (todayMonth == month) && (todayDate == day)) {flag = true;}
		}
	}
	else
	{
		flag = false;
	}
	return flag;
}

function isEAddress(control)
{
	regex = /^\w+\@\w+\.\w+$/;
	return _isPresent(control, regex);
}

function isEmail(control)
{
	regex = /^\S+\@\S+\.\w+$/;
	if (_isPresent(control, regex)==false)
	{
		regex = /^\+\@\w+\.\w+\.\w+$/;
		return _isPresent(control, regex)
	}
	else
	{
		return true;
	}
}

function isValidPhone(control)
{
	regex = /^[0-9\s\-]+$/;
	return _isPresent(control, regex);
}
