//Verificador de Formulários
//Dev.: Gustavo Adolfo Costa Borges
//      Sala1.NET
//      22/08/2007

function setError(obj,msg){
	//window.alert("setError("+msg+") Called");
	if (typeof(obj)!="object"){obj = document.getElementById(obj)}
	obj.style.display = 'inline';
	if (msg=="undefined" || msg=="" || !msg ){obj.style.display = 'none';}else{obj.innerHTML = msg;}
	return true;
}

function ValidateForm(formObj){
	//window.alert(formObj.elements.length);
	for (i=0; i<formObj.elements.length; i++ ){
		mparent = formObj.elements[i].parentNode;
		for (y=0; y<mparent.childNodes.length; y++){
			filter  = "/^"+formObj.elements[i].name+"+[a-zA-Z0]/;;";
			//window.alert(mparent.childNodes[y].id);
			if (baseValidate(mparent.childNodes[y].id,filter)){
				func = mparent.childNodes[y].id.replace(formObj.elements[i].name,"");
				if (func=="Empty"){elObj="formObj.elements[i].value";}else{elObj="formObj.elements[i]";}
				//window.alert("Validate"+func+"("+elObj+");");
				//window.alert(eval(elObj));
				if (!eval("Validate"+func+"("+elObj+");")){
					setError(mparent.childNodes[y],mparent.childNodes[y].innerHTML);
					formObj.elements[i].focus()
					return false;
				}else{
					setError(mparent.childNodes[y],"");
				}
			}
		}
	}
	return true;
}

function getObj(obj){
	x=obj
	if (obj=="[object]" || typeof(obj)=="object"){x = obj.value;}
	return x
}

function baseValidate(obj,filter){
	filter = eval(filter);
	x=getObj(obj);
	if (typeof(x)!="string"){x=obj}
	if (filter.test(x)){return true;}
	return false;
}
function ValidateEmpty(obj){
	filter=/[a-zA-Z0-9]/;;
	if (baseValidate(obj,filter)){return true;}
	return false;
}
function ValidateMail(obj){
	x=getObj(obj);
	if (x==""){return true;}
	filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	return baseValidate(obj,filter);
}
function ValidatePhone(obj){
	x=getObj(obj);
	if (x==""){return true;}
	filter  = /([0-9]{2,3}-?\s)?[0-9]{3,4}-?\s?[0-9]{4}/;;
	return baseValidate(obj,filter);
}
function ValidateDDD(obj){
	x=getObj(obj);
	if (x==""){return true;}
	filter  = /([1-9]{1})+[0-9]{1}/;;
	return baseValidate(obj,filter);
}
function ValidateNumber(obj){
	x=getObj(obj);
	if (x==""){return true;}
	filter  = /[0-9]/;;
	return baseValidate(obj,filter);
}
