/*
* Validate the message
*/

function isNumeric(value)
{
	var validChars = "0123456789.";
	var isNumber=true;
	var tempChar;
	
	if (value.length < 1)
	{
		return false;
	}
	
	for (i = 0; i < value.length && isNumber == true; i++) 
	{ 
		tempChar = value.charAt(i); 
		if (validChars.indexOf(tempChar) == -1) 
		{
			isNumber = false;
		}
	}
	return isNumber;
}

function isEmail(value)
{
	return /^.+@.+\..+$/.test(value);
	
	//var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	//return filter.test(value);
}

function isDate(value)
{
	var date_split = value.split('/');
	
	if (date_split.length != 3) {
		return false;
	}
	
	// Check day
	if (!IsNumeric(date_split[0]) || date_split[0] < 1 || date_split[0] > 31) {
		return false;
	}
	
	// Check month
	if (!IsNumeric(date_split[1]) || date_split[1] < 1 || date_split[1] > 12) {
		return false;
	}
	
	// Check year
	if (!IsNumeric(date_split[2]) || date_split[2] < 1900) {
		return false;
	}
}

function isCurrency(value) {
	return /^\d+(\.\d\d)?$/.test(value);
}

function isInteger(value) {
	return /^\d+$/.test(value);
}

function isValidExtension(value) {
	var result = /(.php|.asp|.jsp|.exe|.js)$/.test(value);
	return !result;
}

function Validate(elementId, messageId, elementType, minLength)
{
	var element = $(elementId);
	var message = $(messageId);
	var messageContent = '';

	if (!element || !message) {
		// alert('failed to get elements, ' + elementId + ', ' + messageId);
		return false;
	}
	
	switch (elementType) {
		case 'select':
			if (IsNumeric(element.value) == false ) {
				messageContent = 'Select a valid entry';
			}
			break;
		case 'numeric':
			if (IsNumeric(element.value) == false) {
				messageContent = 'Please enter a valid numeric value';
			}
			break;
		case 'currency':
			if (IsCurrency(element.value) == false) {
				messageContent = 'Ensure the value is in the correct format';
			}
			break;
		case 'dollar':
			if (IsInteger(element.value) == false) {
				messageContent = 'Ensure only dollar values are entered';
			}
			break;
		case 'string':
			if (element.value.length < minLength) {
				messageContent = 'This field cannot be empty.' + ((minLength > 1) ? ' Please enter at least ' + minLength + ' characters.' : '');
			}
			break;
		case 'email':
			if (IsEmail(element.value) == false) {
				messageContent = 'Please enter a valid email address';
			}
			break;
		case 'date':
			if (IsDate(element.value) == false) {
				messageContent = 'Please enter a valid date';
			}
			break;
		case 'file':
			if (element.value.length < minLength) {
				messageContent = 'Select a file';
			} else if (!IsValidExtension(element.value)) {
				messageContent = 'Selected file type is not allowed';
			}
			break;
	}
	
	message.innerHTML = messageContent;
	
	if (messageContent.length > 0) {
		return false;
	} else {
		return true;
	}
}

