var strHighlight = "#c5e4ff";
var strLowlight = "white";
/*
 ///////////////////////////////////
 // THOMS!!!!! Form Verification  //
 ///////////////////////////////////
 // EDITED!!!!! By Lame Danny!!!! //
 ///////////////////////////////////



attach the handler on load

	<body onload="attachFormHandler();">




set validation type for form elements (optional)

	<input validation="text">

	<input type="password" validation="text" name="password1">
	<input type="password" validation="equal" equal="document.forms[0].password1" name="password2">


create cutom validation types

	<input validation="custom">

	function fVerifyCUSTOM(objEle)
	{
		if (objEle = OK)
			return true;
		else
			return 'Please fill this out';
	}




*/
function attachFormHandler()
{
	if(document.forms.length)
	{
		for (var f=0; f < document.forms.length; f++)
		{
			objForm = document.forms[f]
			objForm.onsubmit = eventFormSubmit

			if (objForm.elements.length)
			{
				for (var e=0; e < objForm.elements.length; e++)
				{
					objEle = objForm.elements[e]
					if (objEle.validation)
						objEle.onchange = eventFormEleChange
				}
			}
		}
	}
}

function eventFormSubmit()
{
	objForm = event.srcElement
	for (var e=0; e < objForm.elements.length; e++)
	{
		objEle = objForm.elements[e]
		//objEle.fireEvent('onblur')

		//trace('eventFormEleBlur:'+objEle.name+':'+eventFormEleBlur(objEle))

		if (!eventFormEleChange(objEle))
		{
			return false;
			e = objForm.elements.length+1
		}

	}
	return true;
}

function eventFormEleChange(obj)
{
	if (!obj)
		{
			objElement = event.srcElement;
			if (objElement.marked)
			{return true;}
		}
	else
		{
			objElement = obj;
		}


	var strValid = "";
	if (objElement.validation)
		strValid = objElement.validation

	if (strValid.length > 1)
	{
		strOut = eval('fVerify'+strValid.toUpperCase()+'(objElement)');

		if (strOut != true)
		{
			objElement.wrong = true
			objElement.style.background = strHighlight;
			objElement.focus()
			objElement.marked = true
			setTimeout('document.all['+objElement.sourceIndex+'].style.background = strLowlight',500);
			alert(strOut+'\n                                                                          ');
			return false;
		}
		else
		{
			objElement.wrong = false
			return true;
		}
	}
	return true;
}

function fVerifyTEXT(objEle)
{
	if(objEle.value.length)
	{return true;}
	else
	{return 'Please complete.';}
}

function fVerifyEMAIL(objEle)
{
	if(isEmail(objEle))
	{return true;}
	else
	{return 'Please enter a valid email address.';}
}

function fVerifyEQUAL(objEle)
{
	objEq = eval(objEle.equal)
	if (objEq.value == objEle.value)
	{return true;}
	else
	{return 'Please check that fields match.';}
}

function fVerifySELECT(objEle)
{
	if(objEle.selectedIndex != 0)
	{return true;}
	else
	{return 'Please make a selection.';}
}

function fVerifyRADIO(objEle)
{
	if (objEle.form[objEle.name].length > 0) {
		isChecked = false;
		for (i=0; i<objEle.form[objEle.name].length; i++) {
			if (objEle.form[objEle.name][i].checked) {
				return true;
			}
		}
	}
	return 'Please select an option.';
}

////////////////////////////////////////////////
//////////// VERIFICATION FUNCTIONS ////////////
////////////////////////////////////////////////


//// valid characters
function isValidChars(string,allowed) {
	for (var i=0; i< string.length; i++) {
		if (allowed.indexOf(string.charAt(i)) == -1)
		return false;
	}
	return true;
}

function isAlphaNum(elm) {
	elm.value = elm.value.toUpperCase();
	var chars = '-ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890.'
	if (isValidChars(elm.value,chars))
	return true;
	else return false;
}

function isNumeric(elm) {
	var chars = '-1234567890.'
	if (isValidChars(elm.value,chars))
	return true;
	else return false;
}

//// Check for email address: look for [@] and [.]
function isEmail(elm) {
	if (elm.value.indexOf("@") + "" != "-1" && elm.value.indexOf(".") + "" != "-1" && elm.value != "")
		return true;
	else
		return false;
}

//// Check for null and for empty
function isFilled(elm) {
	if (elm.value == "" || elm.value == null)
		return false;
	else
		return true;
	}

//// Check for equal values
function isConfirmed(elm1, elm2) {
	if (elm1.value == elm2.value)
		return true;
	else
		return false;
}

function isSelected(elm) {
	if (elm.value == 0 || elm.value == '' || elm.value == undefined)
		return false;
	else
		return true;
}

function isChecked(elm) {
	if (elm[0].checked == false && elm[1].checked == false)
		return false;
	else
		return true;
}
