/* --------------------------------------------------------
* MMG-CMS - developed for Harold Mitchell Foundation
* Copyright (C) 2004-2009 MMG interactive
*
* MMG interactive versioning:
* ---------------
* $Revision: 25 $
* $Author: mark $
* $Date: 2008-06-17 12:42:42 +1000 (Tue, 17 Jun 2008) $
*
* --------------------------------------------------------
*/

var VAL_NUM = 1;
var VAL_STR = 2;
var VAL_EMAIL = 3;
var VAL_SELECT = 4;
var VAL_ALLOWBLANKS = true;
var VAL_NOBLANKS = false;
var valid = true;

function validateInit() {
	valid = true;
}
	
function validateElement(type, field, text, minval, maxval, allowblanks) {
	// type:
	// 1 = number
	// 2 = string
	// 3 = email
	// 4 = select
		
	// minval + maxval can be null for no limit

	if (valid == false) 
		return valid;

	var re=/^[A-Za-z0-9_\-]+([.][A-Za-z0-9_\-]+)*[@][A-Za-z0-9_\-]+([.][A-Za-z0-9_\-]+)+$/;

	if (!allowblanks && field.value == "" && type != 4) {
		alert('\"' + text + '\" was not entered.');
		valid = false;
	} else if (allowblanks && field.value == "" && type != 4) {
		valid = true;
	} else if (type == 1) {
		if (!(field.value >= 0 || field.value < 0)) {
			alert('\"' + text + '\" must be a valid number.');
			valid = false;
		} else if (minval && field.value < minval) {
			alert('\"' + text + '\" must be at least ' + minval + '.');
			valid = false;
		} else if (maxval && field.value > maxval) {
			alert('\"' + text + '\" must be at maximum ' + maxval + '.');
			valid = false;
		}
	} else if (type == 2) {
		if (minval && field.value.length < minval) {
			alert('\"' + text + '\" must be at least ' + minval + ' characters long.');
			valid = false;
		} else if (maxval && field.value.length > maxval) {
			alert('\"' + text + '\" must be at maximum ' + maxval + ' characters long.');
			valid = false;
		}
	} else if (type == 3) {
		if (!re.test(field.value)) {
			alert('\"' + text + '\" must be a valid email address.');
			valid = false;
		} else if (minval && field.value.length < minval) {
			alert('\"' + text + '\" must be at least ' + minval + ' characters long.');
			valid = false;
		} else if (maxval && field.value.length > maxval) {
			alert('\"' + text + '\" must be at maximum ' + maxval + ' characters long.');
			valid = false;
		}
	} else if (type == 4) {
		if (!allowblanks)
		{
			if (minval && field.selectedIndex < minval) {
				alert('You must enter a \"' + text + '\".');
				valid = false;
			} 
		}
	}	
	try {
		if (valid == false) {
			field.focus();
		}
	}
	catch(er) { }
	return valid;	
}

function charLimit(event, chars) {
	if (chars.indexOf(String.fromCharCode((window.Event) ? event.which : event.keyCode)) == -1) 
		return false;
}

function validateRadio(field, text, allowblanks)
{	

	if (!allowblanks && valid)
	{
		valid = false;

		if (field.length == null)
		{
			if (field.checked)
			{
				valid = true;
				return valid;
			}
		}
		else
		{
			for (var i = 0; i < field.length; i++)
			{
				if (field[i].checked)
				{
					valid = true;
					return valid;
				}	
			}
		}
		
		if (!valid)
		{	
			alert("You must select an item from \"" + text + "\".");
			field[0].focus();
		}
	}	
	return valid;
}

function getRadioValue(field)
{
	var found = false;
	var fieldValue;

	for (var i = 0; i < field.length; i++)
	{
		if (field[i].checked)
		{
			fieldValue = field[i].value;
			found = true;
			break;
		}	
	}

	if (found)
	{
		return fieldValue;
	}
	else
	{
		return 0;
	}
}
