function DFfield(fld,defOblig){
	var T=this;
	T.obj=fld;
	T.t=fld.type;
	T.n=fld.name;
	T.tit=fld.getAttribute('title');
	T.xt=fld.getAttribute('xtype');
	T.minL=fld.getAttribute('minlength');
	T.maxL=fld.getAttribute('maxlength');
	T.equal=fld.getAttribute('equal');
	T.rdif=fld.getAttribute('requiredif');
	T.dIni=fld.getAttribute('DFdateIni');
	T.dFin=fld.getAttribute('DFdateFin');
	T.ob=(defOblig==true);
	var Tf=T.obj.form;
	if(T.t=='submit'||T.t=='button'||T.t=='image'||T.t=='reset'){
		T.ob=false;
	}else{
		var tAt=fld.getAttribute('obligatory');
		if(tAt=='true'){
			T.ob=true;
		}else if(tAt=='false'){
			T.ob=false;
		}else if(T.rdif && T.rdif!=''){
			T.ob=false;
		}
		if (T.ob==false && Tf[T.n].length>1) {
		  for(var i=0;i<Tf[T.n].length;i++){
		    tAt=Tf[T.n][i].getAttribute('obligatory');
		    if (tAt=='true') {
		      T.ob=true;
		    } 		    
		  }
		}
	}
	if(T.t=='file'){
		T.ext=fld.getAttribute('extension');
	}
	T.ckFrmAlert=DFckFrmAlert;
	T.ckEqual=DFckEqual;
	T.ckRDif=DFckRequiredif;
	T.ckMinLen=DFckMinLen;
	T.ckMaxLen=DFckMaxLen;
	T.ckFile=DFckFile;
	T.getDateValues=DFgetDateValues;
	T.ckNumber=DFckNumber;
	T.ckFullname=DFckFullname;
	T.ckEmail=DFckEmail;
	T.ckDateDay=DFckDateDay;
	T.ckDateMonth=DFckDateMonth;
	T.ckDateYear=DFckDateYear;
	T.ckDate=DFckDate;
	T.ckCpf=DFckCpf;
	T.ckCnpj=DFckCnpj;
	T.ckPispasep=DFckPispasep;
	T.getValues=DFgetValues;
	T.v=[];T.v=T.getValues()[0];
	T.len=T.getValues()[1][0];
	T.lenSel=T.getValues()[1][1];
}
function DFgetValues(){
	var T=this;
	var Tobj=T.obj;
	var Tf=Tobj.form;
	var vals=[];
	vals[0]=[];
	vals[1]=[];
	vals[1][0]=1;
	vals[1][1]=0;
	if(T.xt=='fullname'){
		Tobj.value = formataNomeCompleto(Tobj.value);
	}
	if(T.xt=='date'){
		vals[0]=T.getDateValues();
	}
	else{
		if(T.t=='text'||T.t=='file'||T.t=='textarea'||T.t=='password'){
			if(Tobj.value!=''){
				vals[0][0]=Tobj.value;
				vals[1][1]=Tobj.value.length;
			}
		}else if(T.t=='select-one'){
			vals[1][0]=Tobj.length;
			if(Tobj[Tobj.selectedIndex].value!=''){
				vals[0][0]=Tobj[Tobj.selectedIndex].value;
				vals[1][1]=1;
			}
		}else if(T.t=='select-multiple'){
			vals[1][0]=Tobj.length;
			for(var sm=0;sm<vals[1][0];sm++){
				if(Tobj[sm].selected){
					vals[0][T.v.length]=Tobj[sm].value;
					vals[1][1]++;
				}
			}
		}else if(T.t=='checkbox'){
			if(Tf[T.n].length!=null){
				vals[1][0]=Tf[T.n].length;
				for(var j=0;j<vals[1][0];j++){
					if(Tf[T.n][j].checked){
						vals[0][T.v.length]=Tf[T.n][j].value;
						vals[1][1]++;
					}
				}
			}else{
				if(Tobj.checked)vals[0][0]=Tobj.value;vals[1][1]=1;
			}
		}else if(T.t=='radio'){
			if(Tf[T.n].length!=null){
				vals[1][0]=Tf[T.n].length;
				for(var j=0;j<vals[1][0];j++){
					if(Tf[T.n][j].checked)
						vals[0][0]=Tf[T.n][j].value;
					vals[1][1]++;
				}
			}else{
				if(Tf[T.n].checked)
					vals[0][0]=Tf[T.n].value;
				vals[1][1]=1;
			}
		}
	}
	return vals;
}
function DFgetDateValues(){
	var T=this;
	var Tobj=T.obj;
	var Tf=Tobj.form;
	var fName=T.n.substr(0,T.n.lastIndexOf('_'));
	var d=(T.t=='text')? Tf[fName+'_dia'].value:DFgetValSel(Tf[fName+'_dia']);
	var m=(T.t=='text')? Tf[fName+'_mes'].value:DFgetValSel(Tf[fName+'_mes']);
	var a=(T.t=='text')? Tf[fName+'_ano'].value:DFgetValSel(Tf[fName+'_ano']);
	if (Tf[fName]) {
		Tf[fName].value='';
		if (d != '' && m != '' && a != '') {
			if (parseInt(d,10) < 10) d = '0' + parseInt(d,10);
			if (parseInt(m,10) < 10) m = '0' + parseInt(m,10);
			Tf[fName].value=d+'/'+m+'/'+a;
		}
	}
	return Array(d,m,a);
}
function DFgetDateObject(d,m,a){if(d==''||m==''||a=='')return null;m--;if(!DFckDateDay(d))return false;else if(!DFckDateMonth(m))return false;else if(!DFckDateYear(a))return false;else if((m==3||m==5||m==8||m==10)&&(d==31))return false;else if(m==1&&(d>29||(d==29&&((a%4)!=0))))return false;return new Date(a,m,d);}
function DFgetValSel(c,ind){var i=c.selectedIndex;return(ind)? i:c[i].value;}var DFsbm=false;
function DFgetValChk(c){
	var i=c.checked;
	if (c.length == 0) {
		return c.value;
	}
	for(var j=0;j<c.length;j++){
		if(c[j].checked){
			return c[j];
		}
	}
	return '';
}
function DFgetSingleValSel(c){
	if (c.type=='radio'||c.type=='checkbox') {
		return DFgetValChk(c);
	}
	if (c.type=='select-one') {
		return DFgetValSel(c);
	}
	return c.value;
}
function DFchangeObligatory(c,o){
	f = c.form;
	if (c.value!='') {
		c.obligatory='true';
		f[o].obligatory='false';
	} else {
		c.obligatory='false';
		f[o].obligatory='true';
	}
}
function DFckForm(f,defOblig){
	DFclrClass(f);
	for(var i=0;i<f.length;i++){
		if(f[i].type==null)
			i++;
		var T=new DFfield(f[i], defOblig);
		if(T.xt=='date'){
			var ret=T.ckDate();
			if(T.ob&&!ret){
				if(!ret)
					return T.ckFrmAlert(((ret==null)?1:null));
			}else{
				if(T.v[0]!=''||T.v[1]!=''||T.v[2]!=''){
					if(!ret)return T.ckFrmAlert();
				}
			}
			i=i+2;
		}else{
			if(T.v.length==0 || trim(T.v[0]).length==0){
				if(T.t!='hidden'&&(T.ob)) {
					if(!T.ckFrmAlert(1))
						return false;
				} else if(T.rdif!=null) {
					if(!T.ckRDif(f[T.rdif]))
						return false;
				}
			}else{
				if(T.rdif){
					if(!T.ckRDif(f[T.rdif]))
						return false;
				}
				if(T.t=='text'||T.t=='textarea'||T.t=='password'||T.t=='select-multiple'||T.t=='checkbox'){
					if(T.minL){
						if(!T.ckMinLen((T.t=='select-multiple'||T.t=='checkbox')? 1:0))
							return false;
					}
					if(T.maxL&&(T.t!='text'||T.t!='password')){
						if(!T.ckMaxLen())return false;
					}
					if(T.xt){
						S='T.ck'+T.xt.charAt(0).toUpperCase()+T.xt.substring(1).toLowerCase()+'()';
						if(!eval(S)){
							return T.ckFrmAlert();
						}
					}
					if(T.equal){
						if(!T.ckEqual(f[T.equal]))
							return false;
					}
				}else if(T.t=='file'&&T.v.length!=0&&T.ext){
					if(!T.ckFile(T.ext))
						return T.ckFrmAlert(8);
				}
			}
		}
	}if(!DFsbm){
		DFsbm=true;return true;
	}else{
		return false;
	}
}
function DFckFrmAlert(m){
	var T=this;
	var scrTop=DFscrollTopPosition();
	if(T.t!='hidden'){
		var Tf=T.obj.form;
		if(T.t=='radio'||(T.t=='checkbox'&&T.len > 1)){
			for(var i=0;i<T.len;i++){
				Tf[T.n][i].className='DF-alert';
			}
		}else if(T.xt=='date'){
			var fName=T.n.substr(0,T.n.lastIndexOf('_')+1);
			Tf[fName+'dia'].className='DF-alert';
			Tf[fName+'mes'].className='DF-alert';
			Tf[fName+'ano'].className='DF-alert';
		}else if(m==1 && Tf[T.n] && Tf[T.n].length>1) {
		  for(var i=0;i<Tf[T.n].length;i++){
		    var tAt=Tf[T.n][i];
		    if (tAt && tAt.getAttribute('obligatory')=='true') {
		      T.obj=Tf[T.n][i];
		      if (T.obj.value.length>0) {
		        return true;
		      }
		    } 		    
		  }
		  T.obj.className='DF-alert';
		}else
			T.obj.className='DF-alert';
		if(T.equal)
			Tf[T.equal].className='DF-alert';
		T.obj.focus();
	}
	if(scrTop!=DFscrollTopPosition())
		scrollBy(null,scrTop>DFscrollTopPosition()?-20:80);
	if(m){
		if(m==7){
			var maxL=T.maxL;
		}else if(m==5){
			var minL=T.minL;
		}else if(m==8){
			var ext=T.ext;
		}
		S=eval(DFMsg[m]);
	}else{
		if((T.t=='select-one'||T.t=='radio')&&!T.xt)
			S=eval(DFMsg[0]);
		else if(T.xt)
			S=eval(DFMsg[2]);
		else S=eval(DFMsg[1]);
	}
	alert(S);
	return false;
}
function DFalert(a,cArr){var c1=((cArr[0].length>0)? cArr[0][0]:cArr[0]);DFclrClass(c1.form);for(var i=0;i<cArr.length;i++){var T=cArr[i];if(T.length > 0){if(T[0].type=='radio'||T[0].type=='checkbox'){for(var j=0;j<T.length;j++){T[0].form[T[0].name][j].className='DF-alert';}}else{T.className='DF-alert';}}else{T.className='DF-alert';}}c1.focus();alert(a);DFsbm=false;return false;}
function DFclrClass(f){for(var i=0;i<f.length;i++){if(!f[i].classNameOld){f[i].classNameOld=f[i].className||'DF-null';}else{f[i].className=f[i].classNameOld;}}}
function DFscrollTopPosition(){return(is.ie)? document.body.scrollTop:pageYOffset;}
function DFckEqual(cF){if(this.v[0]!=cF.value)return this.ckFrmAlert(3);else return true;}
function DFckRequiredif(cF){if(cF==null||cF.value==''||(this.v[0]!=null&&this.v[0]!=''&&trim(this.v[0]).length!=0))return true;else return this.ckFrmAlert(1);}
function DFckMinLen(ar){var T=this;if(T.minL&&(T.lenSel < T.minL)){return T.ckFrmAlert((ar)? 5:4);}return true;}
function DFckMaxLen(){var T=this;if(T.maxL&&(T.lenSel > T.maxL)){if(T.t=='textarea'){T.obj.value=T.v[0].substr(0,T.maxL);if(isDef(T.obj.form.DFcounter)){DFtextareaCounter(T.obj);}}return T.ckFrmAlert((T.t!='textarea')? 7:6);}return true;}
function DFckFile(ext){var e=ext.split(",");var v=this.v[0];for(var i=0;i<e.length;i++){if(v.substr(v.lastIndexOf('.')+1)==e[i])return true;}return false;}
function DFckNumber(){return(this.v[0].match(/^[0-9]+$/));}
function DFckFullname(){return(this.v[0].match(/^[^ ]+[ ]+.+/));}
function DFckEmail(){return(this.v[0].match(/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]{2,64}(\.[a-z0-9-]{2,64})*\.[a-z]{2,4}$/));}
function DFckDateDay(v){if(v>0&&v<32)return true;}
function DFckDateMonth(v){if(v>=0&&v<12)return true;}
function DFckDateYear(v){if(v>0&&trim(v).length==4&&parseInt(v,10)>=1900)return true;}
function DFckDate(){var T=this;var Tdate=DFgetDateObject(T.v[0],T.v[1],T.v[2]);if(!Tdate)return Tdate;if(T.dIni||T.dFin){var dI=T.dIni.split('/');var dF=T.dFin.split('/');var dI=(T.dIni)? DFgetDateObject(dI[0],dI[1],dI[2]):new Date(1900,00,01);var dF=(T.dFin)? DFgetDateObject(dF[0],dF[1],dF[2]):new Date();if(Tdate < dI||Tdate > dF)return false;}return true;}
function DFckCpf(){var s=null;var r=null;var v=this.v[0];if(v.length!=11||v.match(/1{11}|2{11}|3{11}|4{11}|5{11}|6{11}|7{11}|8{11}|9{11}|0{11}/))return false;s=0;for(var i=0;i<9;i++)s+=parseInt(v.charAt(i))*(10-i);r=11-(s%11);if(r==10||r==11)r=0;if(r!=parseInt(v.charAt(9)))return false;s=0;for(var i=0;i<10;i++)s+=parseInt(v.charAt(i))*(11-i);r=11-(s%11);if(r==10||r==11)r=0;if(r!=parseInt(v.charAt(10)))return false;return true;}function DFckCnpj(){var v=this.v[0];var m=['543298765432','6543298765432'];var d=[0,0];for(var t=0;t<2;t++){for(x=0;x<13;x++){if((t==0&&x!=12)||t==1)d[t]+=(parseInt(v.slice(x,x+1))*parseInt(m[t].slice(x,x+1)));}d[t]=(d[t]*10)% 11;if(d[t]==10)d[t]=0;}return(d[0]==parseInt(v.slice(12,13))&&d[1]==parseInt(v.slice(13,14)));}function DFtextareaMaxLen(f,l,e){if(is.ns){if(e.which==0||e.which==8)return true}if(f.value.length>=l)return false;}function DFtextareaCounter(f){f.form.DFcounter.value=f.value.length;}function DFonlyThisChars(n,l,o,e){if(window.event)key=window.event.keyCode;else if(e)key=e.which;else return true;S=(o)?o:'';if(n)S+='0123456789';if(l)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 DFnotOnlyThisChars(S,e){if(window.event)key=window.event.keyCode;else if(e)key=e.which;else return true;if(!S)return false;else if(key==null||key==0||key==8||key==9||key==13||key==27)return true;else if(S.indexOf(String.fromCharCode(key))!=-1)return false;else return true;}function DFchangeField(o,e,d){if(window.event)key=window.event.keyCode;else if(e)key=e.which;else return true;if(key==9||key==2||key==16)return false;if(d<=2&&o.value.length==o.maxLength){for(var i=0;i<o.form.length;i++){if(o.form[i]==o&&o.form[i+1]){o.form[i+1].focus();break;}}}if(d > 1&&o.value.length==0&&key==8){for(var i=0;i<o.form.length;i++){if(o.form[i]==o&&o.form[i-1]){o.form[i-1].focus();o.form[i-1].value=o.form[i-1].value;break;}}}}
function DFckPispasep(){var v=this.v[0];sAux=v.substring(0,v.length-1);sDigito=v.substring(v.length-1,v.length);if(DFcalculaDigMod11(sAux,1,2)!=sDigito){return false;}else{return true;}}
function DFcalculaDigMod11(v,d,t){if(t==1)iCod=12;if(t==2)iCod=9;if(t==3)iCod=10;for(z=1;z<=d;z++){soma=0;mult=2;for(j=v.length;j>0;j--){soma+=(mult*parseInt(v.substring(j,j-1),10));mult++;if(mult>iCod)mult=2;}soma=(soma*10)%11;if(soma==10)v+="0";else v+=soma;}return v.substring(v.length-d,v.length);}

