function DFcheckForm(f,submitonce,onlyObligatory/*,cookieOneClick*/){
	for(var i=0;i<f.length;i++){
		if(!d.layers){
			if(!f[i].classNameOld)f[i].classNameOld=f[i].className||'df-null'
			else f[i].className=f[i].classNameOld
		}
	}
	for(var i=0;i<f.length;i++){
		v=true
		if(f[i].type=='text'||f[i].type=='textarea'||f[i].type=='password')v=f[i].value
		else if(f[i].type=='select-one')v=f[i][f[i].selectedIndex].value
		else if(f[i].type=='radio'){v=false;for(var j=0;j<f[f[i].name].length;j++){if(f[f[i].name][j].checked)v=f[f[i].name][j].value}}
		else if(f[i].type=='hidden'){v=true;for(var j=0;j<f.length;j++){if(f[i].name==f[j].getAttribute('target')){if(!f[j].value)v=false}}}
		if(!v){
			obligatory=(d.layers)?null:f[i].getAttribute('obligatory')
			if(f[i].type!='hidden'&&(((!onlyObligatory&&obligatory!='no')||(onlyObligatory&&obligatory=='yes'))||d.layers)){DFcheckFormAlert(f[i]);return false}
		}
		else{
			if(f[i].type=='text'||f[i].type=='textarea'||f[i].type=='password'){
				if(!DFcheckMinLength(f[i]))return false
				if(!DFcheckFormPlus(f[i]))return false
			}
			else if(f[i].type=='hidden'&&!d.layers){
				for(var j=0;j<f.length;j++){if(f[i].name==f[j].getAttribute('target')){f[i].value='';break}}
				for(var j=0;j<f.length;j++){if(f[i].name==f[j].getAttribute('target'))f[i].value+=f[j].value+((f[j].getAttribute('separator'))?f[j].getAttribute('separator'):'')}
				for(var j=0;j<f.length;j++){if(f[i].name==f[j].getAttribute('target')){if(!DFcheckFormPlus(f[i]))return false}}
			}
		}
	}
		/*if(cookieOneClick)DFcookieOneClick(f)*/
		if(submitonce)DFsubmitonce(f)
}


function DFcookieOneClick(f){
	//Para impedir que o usuário submeta o formulário mais de uma vez durante o tempo de 15 segundos.
	/*
	for(var i=0;i<f.length;i++){
		if(f[i].type=='image' == 'submit')f[i].disabled=true
	}
	*/
	expireDate = new Date;
	expireDate.setSeconds(expireDate.getSeconds()+15)
	if(document.cookie == "" || getCookie("Submited")==null){
		cookieValue = document.cookie.split("=")[1];
		document.cookie = "Submited=Ok;expires="+expireDate.toGMTString();
	}else{
		alert('Aguarde... o formulario está sendo enviado.');
		return false
	}
//Fim.
}


function DFscrollTopPosition(){return (is.ie)?d.body.scrollTop:pageYOffset}


function DFcheckFormAlert(f,plus){
	var scrTop=DFscrollTopPosition()
	if(f.type=='select-one'||f.type=='radio')S='Por gentileza, escolha as'
	else if(plus)S='Valor inválido do campo '
	else S='Por gentileza, preencha o campo '
	label=(d.layers)?f.name:f.getAttribute('label')
	label=(label)?label:f.name
	S+=label
	if(plus=='password')S=label+' e sua confirmação não possuem os mesmos valores'
	if(plus=='minlength')S='O campo '+label+' deve ter no mínimo '+f.getAttribute('minlength')+' caracteres'
	if(f.type!='hidden'){
		if(!d.layers){
			if(plus=='password'){for(var i=0;i<f.form.length;i++){if(f.form[i].getAttribute('xtype')=='password')f.form[i].className='DF-alert'}}
			else if(f.type=="radio"){for(var i=0;i<f.form[f.name].length;i++){f.form[f.name][i].className='DF-alert'}}
			else f.className='DF-alert'
		}
		f.focus()
	}
	else if(!d.layers){
		for(var i=0;i<f.form.length;i++){if(f.form[i].getAttribute('target')==f.name)f.form[i].className='DF-alert'}
		for(var i=0;i<f.form.length;i++){if(f.form[i].getAttribute('target')==f.name){f.form[i].focus();break}}
	}
	if(scrTop!=DFscrollTopPosition())scrollBy(null,scrTop>DFscrollTopPosition()?-20:80)
	alert(S)
}

//Numero minimo de caracteres num campo
function DFcheckMinLength(f){
	minLength=(d.layers)?null:f.getAttribute('minlength')
	if(minLength){if(f.value.length<minLength){DFcheckFormAlert(f,'minlength');return false}}
	return true
}


function DFcheckFormPlus(f){
	xtype=(d.layers)?null:f.getAttribute('xtype')
	if(xtype){
		S='DFcheck'+xtype.charAt(0).toUpperCase()+xtype.substring(1).toLowerCase()
		if(isDef(S)){if(!eval(S)((xtype=='password')?f:f.value)){DFcheckFormAlert(f,xtype);return false}}
	}
	return true
}


// Plus Checks

function DFcheckNumber(v){if(!isNaN(v))return true}

function DFcheckDate(v){
	if(v.length!=10)return false
	var date=v.split('/')
	//var d=parseInt(date[0])
	//var m=parseInt(date[1])
	//var y=parseInt(date[2])
	var d=v.substring(0,2)
	var m=v.substring(3,5)
	var y=v.substring(6)
	if(!DFcheckDateDay(d))return false
	else if(!DFcheckDateMonth(m))return false
	else if(m==2&&d>29)return false
//	else if(!(m%2)&&m<9&&d==31)return false
//	else if((m%2)&&m>=9&&d==31)return false
	else if(!(m%2)&&m<8&&d==31)return false //0 = false; 1 = true
	else if((m%2)&&m>8&&d==31)return false  
	return true
}

function DFcheckDateDay(v){if((v<=31)&&(v>0))return true}
function DFcheckDateMonth(v){if((v<=12)&&(v>0))return true}

function DFcheckBirthday(v){
	if(!DFcheckDate(v))return false
	var date=v.split('/')
	var d=date[0]
	var m=date[1]
	var y=date[2]
	date=parseInt(date[2]+date[1]+date[0])
	if(date<19000101||date>((isDef('DFdate'))?DFdate:20020101))return false
	return true
}

function DFcheckEmail(v){
	var a=0
	var p=0
	for(var i=1;i<v.length;i++){
		if(!v.charAt(i))return false
		else if(v.charAt(i)=='@'){a++;if(v.charAt(i+1)=='')return false}
		else if(v.charAt(i)=='.'){p++;if(v.charAt(i+1)==''||v.charAt(i+1)=='@'||v.charAt(i-1)=='@')return false}
	}
	if(a==1&&p)return true
}



// Tools

function DFselectRadio(radio,i){eval(radio)[parseInt(i)].checked='true'}

function DFtextareaMaxLength(f,lenght){if(f.value.length>=lenght)return false}

function DFchangeField(f){
	if(f.value.length==f.maxLength){
  	for(var i=0;i<f.form.length;i++){
    	if(f.form[i]==f){f.form[i+1].focus();break}
		}
	}
}

//Foca o segundo campo em ordem.
function DFchangeFieldSkipOne(f){
	if(f.value.length==f.maxLength){
  	for(var i=0;i<f.form.length;i++){
    	if(f.form[i]==f){f.form[i+6].focus();break}
		}
	}
}

//Apenas caracteres - Letras
function DFonlyThisChars(numbers,letters,others,e){
	if(window.event)key=window.event.keyCode
	else if(e)key=e.which
	else return true
	S=(others)?others:''
	if(numbers)S+='0123456789'
	if(letters)S+='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
	if(key==null||key==0||key==8||key==9||key==13||key==27)return true
	else if(S.indexOf(String.fromCharCode(key))!=-1)return true
	else return false
}

//Apenas caracteres - Numeros
function DFNot(letters,others,e){
	if(window.event)key=window.event.keyCode
	else if(e)key=e.which
	else return true
	S=(others)?others:''
	if(letters)S+='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ .'
	if(key==null||key==0||key==8||key==9||key==13||key==27)return true
	else if(S.indexOf(String.fromCharCode(key))!=-1)return true
	else return false
}


function DFsubmitonce(f){
	if(!d.layers){
		for(var i=0;i<f.length;i++){
			if(f[i].type=='image'||f[i].type=='reset'||f[i].type=='submit')f[i].disabled=true
		}
	}
}




//******************************************************************************************


function checkForm(f){
	if(!is.ns4){
		if(f.usu_ind_outro_email.type=='radio'){
			f.usu_email_alternativo.setAttribute('obligatory',(f.usu_ind_outro_email[1].checked)?'yes':'no')
			if(f.usu_ind_outro_email[0].checked)f.usu_email_alternativo.value=''
		}
	}

	return DFcheckForm(f)
}




//******************************************************************************************




d=document


// Basics

function isDef(S){return(eval('typeof('+S+')')!='undefined'&&eval('typeof('+S+')')!='unknown')}

function toId(S){
	S=S.toLowerCase()
	S=S.replace(/[áàãâ]/g,'a')
	S=S.replace(/[éèêë&]/g,'e')
	S=S.replace(/[íìîï]/g,'i')
	S=S.replace(/[óòõôö]/g,'o')
	S=S.replace(/[úùûü]/g,'u')
	S=S.replace(/[ç]/g,'c')
	S=S.replace(/[ \.:,\+\-\*\'\"\\\/<>?=]/g,'')
	return S
}

function checkBrowser(){
	T=this
	b=navigator.appName
	v=navigator.appVersion
	u=navigator.userAgent
	if(b=='Netscape')T.b='ns'
	else if(b=='Microsoft Internet Explorer')T.b='ie'
	else T.b=b
	T.v=parseInt(v)
	T.ns=(T.b=='ns'&&T.v>=4)
	T.ns4=(T.b=='ns'&&T.v==4)
	T.ns5=(T.b=='ns'&&T.v==5)
	T.ns6=(T.b=='ns'&&T.v==5)
	T.ie=(T.b=='ie'&&T.v>=4)
	T.ie4=(u.indexOf('MSIE 4')>0)
	T.ie5=(u.indexOf('MSIE 5.0')>0)
	T.ie55=(u.indexOf('MSIE 5.5')>0)
	T.ie6=(u.indexOf('MSIE 6.0')>0)
	if(T.ie5)T.v=5
	if(T.ie55)T.v=5.5
	if(T.ie6)T.v=6
	T.min=(T.ns||T.ie)
	T.dom=(T.v>=5)
	T.win=(u.indexOf('Win')>0)
	T.mac=(u.indexOf('Mac')>0)
}
is=new checkBrowser()





