function validForm(oForm)
{
	var els = oForm.getElementsByTagName("A");
	for(var i=0;i<els.length;i++)
	{
		if(els[i].className=="validator")
		{
			var sReg = els[i].rev;
			var sVal = GetValue(document.getElementById(els[i].rel));
			var reg = new RegExp(sReg,"i");
			if(!reg.test(sVal))
			{
				alert(els[i].title);
				GoBack(document.getElementById(els[i].rel))  
				return false;
			}
		}
	}
	return true;
}

function GetValue(el)
{
	var sType = el.type;
	switch(sType)
	{
		case "text":
		case "hidden":
		case "password":
		case "file":
		case "textarea": return el.value;
		case "checkbox":
		case "radio": return GetValueChoose(el);
		case "select-one":
		case "select-multiple": return GetValueSel(el);
	}
	function GetValueChoose(el)
	{
		var sValue = "";
		var tmpels = document.getElementsByName(el.name);
		for(var i=0;i<tmpels.length;i++)
		{
			if(tmpels[i].checked)
			{
				sValue += "0";
			}
		}
		return sValue;
	}
	function GetValueSel(el)
	{
		var sValue = "";
		for(var i=0;i<el.options.length;i++)
		{
			if(el.options[i].selected && el.options[i].value!="")
			{
				sValue += "0";
			}
		}
		return sValue;
	}
}

function GoBack(el)
{
	var sType = el.type;
	switch(sType)
	{
	case "text":
	case "hidden":
	case "password":
	case "file":
	case "textarea": el.focus();
	case "checkbox":
	case "radio": var els = document.getElementsByName(el.name);els[0].focus();
	case "select-one":
	case "select-multiple":el.focus();
	}
}

