// Check if the value is a number
function isnumber(data) {

	var ValidChars = "0123456789.";
	var IsNumber = true;
	var Char;

	for (i = 0; i < data.length && IsNumber == true; i++) {
		Char = data.charAt(i); 
		if(ValidChars.indexOf(Char) == -1) {
			IsNumber = false;
		}
	}

	return IsNumber;
}

// Check if the value is a number between min and max
function isvalidrange(data, min, max) {
	if(isnumber(data)){
		if(parseInt(data) >= min) {
			if(parseInt(data) <= max) {
				//alert("Passed");
				return true;
			}
		}
		else {
			//alert("Failed");
			return false
		}
	}
	return false;
}

// Check if the value is a string between min & max characters in length
function isvalidlength(data, minlen, maxlen){
	if(data.length >= minlen && data.length <= maxlen)
		return true;
	else
		return false;
}

// Check if the date is entered correctly
function isdate(data) {
	if(isvalidlength(data, 10, 10))
	{
		if(isnumber(data.substring(0, 2)))
			if(data.substring(2, 3) == "/")
				if(isnumber(data.substring(3, 5)))
					if(data.substring(5, 6) == "/")
						if(isnumber(data.substring(6, 10)))
							return true;
	}
	return false;
}

// Check if the value is a valid date
function isvaliddate(data) {

	//yyyy/mm/dd
	//01 2 34 5 6789
	validDate = new Date(data.substring(6, 10), (data.substring(3, 5) -1), data.substring(0, 2));

	valDay = validDate.getDate();
	if(parseInt(valDay) < 10)
		valDay = "0" + valDay;

	valMonth = (validDate.getMonth() + 1);
	if(parseInt(valMonth) < 10)
		valMonth = "0" + valMonth;

	// IE Specific
	if(validDate.getYear() < 1900)
		valYear = validDate.getYear() + 1900;
	else
		valYear = validDate.getYear();

//	alert(valDay.toString() + '-' + data.substring(0, 2));
//	alert(valMonth.toString() + '-' + data.substring(3, 5));
//	alert(valYear.toString() + '-' + data.substring(6, 10));

	if(valDay.toString() == data.substring(0, 2)) {
		if(valMonth.toString() == data.substring(3, 5)) {
			if(valYear.toString() == data.substring(6, 10)) {
				return true;
			}
		}
	}

	return false;
}

// Check if enddate is after startdate
function startDateBeforeEndDate(tmpStartDate, tmpEndDate) {
	valStartDate = new Date(tmpStartDate.substring(6, 10), (tmpStartDate.substring(3, 5) - 1), tmpStartDate.substring(0, 2));
	valEndDate = new Date(tmpEndDate.substring(6, 10), (tmpEndDate.substring(3, 5) - 1), tmpEndDate.substring(0, 2));

	if(valEndDate - valStartDate >= 0)
		return true;

	return false;
}

// Validate Email addresses
// http://www.perlscriptsjavascripts.com/js/check_email.html
// Email Validation. Written by PerlScriptsJavaScripts.com

function validateEmail(address) {

	ok = "1234567890qwertyuiop[]asdfghjklzxcvbnm.@-_QWERTYUIOPASDFGHJKLZXCVBNM";
	re = /(@.*@)|(\.\.)|(^\.)|(^@)|(@$)|(\.$)|(@\.)/;
	re_two = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;

	for(i = 0; i < address.length; i++) {
		if(ok.indexOf(address.charAt(i)) < 0) {
			return false;
		}
	}

	if(!address.match(re) && address.match(re_two)) {
		return false;
	}
	else {
		return true;
	}
}