//restricao de dominio
if(self.location.host.indexOf(".terra.")!=-1 || self.location.href.indexOf(".dsv-blog")!=-1 || self.location.href.indexOf(".54.164")!=-1){



//cria o objeto FormValidation
FormValidation=new Function();

//analisa e chama a funcao requisitada
FormValidation.funcao=function(str, obj){ str=str.replace(/^ */, ""); str=str.replace(/ *$/, ""); var fun=str.substring(0, str.indexOf("(")); var att=str.substring(str.indexOf("(")+1, str.length-1); eval("var attArr=["+att+"];"); attArr.unshift(obj); return(this[fun].apply(fun, attArr)); }

//funcao de validacao de texto
FormValidation.text=function(obj, num){ num=(num=="")? 1 : num; return (obj.value.length>=num); }

//funcao de validacao de e-mail
FormValidation.mail=function(obj){ return Validation.mail(obj.value); }

//funcao de validacao numerica
FormValidation.numeric=function(obj, num){ num=(num=="")? 1 : num; obj.value=obj.value.replace(/,/g, "."); return (obj.value.length>=num && !isNaN(obj.value)); }

//funcao de validacao numerica com valores limite
FormValidation.numericLimit=function(obj, minNum, maxNum, num){ num=(num==null)? 1 : num; obj.value=obj.value.replace(/,/g, "."); if(isNaN(obj.value)){ return false; }else{ return (obj.value.length>=num && Number(obj.value)>=Number(minNum) && Number(obj.value)<=Number(maxNum)); } }

//funcao de comparacao de igualdade entre dois campos
FormValidation.equalTo=function(obj, orig){ if(obj.value!=obj.form[orig].value){ obj.value=""; } return (obj.value==obj.form[orig].value); }

//funcao de comparacao de desigualdade entre dois campos
FormValidation.notEqualTo=function(obj, orig){ return (obj.value!=obj.form[orig].value); }

//funcao de validacao de radio buttons
FormValidation.radio=function(obj){ var someIsChecked=false; for(r=0; r<obj.form[obj.name].length; r++){ if(obj.form[obj.name][r].checked){ someIsChecked=true; break; } } return someIsChecked; }

//funcao de validacao de checkboxes
FormValidation.checkbox=function(obj, numMin, numMax){ numMin=(numMin==null)? 1 : numMin; numMax=(numMax==null)? Number.MAX_VALUE : numMax; var checkedItems=0; var gr=new Array(); for(t=0; t<obj.form.elements.length; t++){ if(obj.form.elements[t].getAttribute("group")!=null && obj.form.elements[t].getAttribute("group")==obj.getAttribute("group")){ gr.push(obj.form.elements[t]); } } for(r=0; r<gr.length; r++){ if(gr[r].checked){ checkedItems++; } } return (checkedItems>=numMin && checkedItems<=numMax); }

//funcoes de validacao de radio e checkboxes
FormValidation.isChecked=function(obj){ return obj.checked; }
FormValidation.isNotChecked=function(obj){ return !obj.checked; }

//funcao de validacao de data
FormValidation.date=function(obj, dataMin, dataMax){ return Validation.date(obj.value, dataMin, dataMax); }

//funcao de validacao de idade
FormValidation.age=function(obj, iMin, iMax){ return Validation.age(obj.value, iMin, iMax); }

//funcao de validacao de cpf
FormValidation.cpf=function(obj){ return Validation.cpf(obj.value) };

//funcao de validacao de cnpj
FormValidation.cnpj=function(obj){ return Validation.cnpj(obj.value) };

//adiciona novas funcoes
FormValidation.addValidation=function(name, f){ if(!this[name]){ this[name]=f; } }

//evento padrao de tratamento de erros
FormValidation.onError=function(msg, field){ alert("Erros:\n"+msg.join("\n")); field[0].focus(); }

//funcao geral de validacao do formulario
function validaForm(f){ var obj=f.elements; var valid=true; var errorMsg=[]; var errorField=[]; for(i=0; i<obj.length; i++){ if(obj[i].getAttribute("validation")!=null){ var v=FormValidation.funcao(obj[i].getAttribute("validation"), obj[i]); if(!v){ valid=false; errorMsg.push((obj[i].getAttribute("error")!=null)? obj[i].getAttribute("error") : "erro"); errorField.push(obj[i]); } } } if(!valid){ FormValidation.onError(errorMsg, errorField); } return valid; }





//restricao de dominio
}