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.dBefore=fld.getAttribute('DFdateBefore');
	T.dAfter=fld.getAttribute('DFdateAfter');
	T.rangeMin=fld.getAttribute('rangeMin');
	T.rangeMax=fld.getAttribute('rangeMax');
	T.gt=fld.getAttribute('greaterThan');
	T.lt=fld.getAttribute('lowerThan');
	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.ckDecimalnumber=DFckDecimalnumber;
	T.ckFullname=DFckFullname;
	T.ckWords=DFckWords;
	T.ckPassword=DFckPassword;
	T.ckEmail=DFckEmail;
	T.ckDateDay=DFckDateDay;
	T.ckDateMonth=DFckDateMonth;
	T.ckDateYear=DFckDateYear;
	T.ckDate=DFckDate;
	T.ckDatebefore=DFckDatebefore;
	T.ckDateafter=DFckDateafter;
	T.ckRangemin=DFckRangemin;
	T.ckRangemax=DFckRangemax;
	T.ckGreaterthan=DFckGreaterthan;
	T.ckLowerthan=DFckLowerthan;
	T.ckCpf=DFckCpf;
	T.ckCnpj=DFckCnpj;
	T.ckCpforcnpj=DFckCpforcnpj;
	T.ckPispasep=DFckPispasep;
	T.ckSusep=DFckSusep;
	T.getDateFieldObject=DFgetDateFieldObject;
	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=='words'){
		Tobj.value = formataNomeCompleto(Tobj.value);
	}
	if(T.xt=='email'){
		Tobj.value = Tobj.value.toLowerCase();
	}
	if(T.xt=='date' || T.xt=='datemmyyyy'){
		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.selectedIndex!= -1 && 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;
			vals[1][1]=0;
			for(var sm=0;sm<vals[1][0];sm++){
				if(Tobj[sm].selected){
					vals[0][vals[1][1]]=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 = null;
	if(T.xt=='date') {
		d=(T.t=='text')? Tf[fName+'_dia'].value:DFgetValSel(Tf[fName+'_dia']);
	} else {
		d='01';
	}
	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(T.xt=='datemmyyyy' && (m == '' || a == '')) {
		d='';
	}
	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);
			if(T.xt=='date') {
				Tf[fName].value=d+'/'+m+'/'+a;
			} else {
				Tf[fName].value=m+'/'+a;
			}
		}
	}
	return Array(d,m,a);
}
function DFgetDateFieldObject(n) {
	var T=this;
	var Tobj=T.obj;
	var Tf=Tobj.form;
	var fName=n;
	var d = null;
	if(T.xt=='date') {
		d=(Tf[fName].type=='text'||Tf[fName].type=='hidden')? Tf[fName+'_dia'].value:DFgetValSel(Tf[fName+'_dia']);
	} else {
		d='01';
	}
	var m=(Tf[fName].type=='text'||Tf[fName].type=='hidden')? Tf[fName+'_mes'].value:DFgetValSel(Tf[fName+'_mes']);
	var a=(Tf[fName].type=='text'||Tf[fName].type=='hidden')? Tf[fName+'_ano'].value:DFgetValSel(Tf[fName+'_ano']);
	if(T.xt=='datemmyyyy' && (m == '' || a == '')) {
		d='';
	}
	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);
			if(T.xt=='date') {
				Tf[fName].value=d+'/'+m+'/'+a;
			} else {
				Tf[fName].value=m+'/'+a;
			}
		}
	}
	return DFgetDateObject(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 DFcheckForm(f) {
	return DFckForm(f,true);
}

function DFckForm(f, defOblig, disable) {
	if(disable == null || disable) {
		desabilitaBotoes(f)
	}
	var validate = DFckFormValidate(f,defOblig);
	if(!validate && (disable == null || disable)) {
		reabilitaBotoes(f);
	}
	return validate;
}

function desabilitaBotoes(f) {
	document.body.style.cursor = "wait";
	var inputs = document.getElementsByTagName("INPUT");
	for (var i = 0; i < inputs.length; i++){
		var e = inputs[i];
		if(e.type == null) {
			e.style.cursor="wait";
			continue;
		}
		if (e.type.toLowerCase() == "button" || e.type.toLowerCase() == "reset" || e.type.toLowerCase() == "submit" || e.type.toLowerCase() == "image") {
			e.disabled=true;
		}
	}
}

function reabilitaBotoes(f) {
	var inputs = document.getElementsByTagName("INPUT");
	for (var i = 0; i < inputs.length; i++){
		var e = inputs[i];
		if(e.type == null) {
			e.style.cursor="auto";
			continue;
		}
		if (e.type.toLowerCase() == "button" || e.type.toLowerCase() == "reset" || e.type.toLowerCase() == "submit" || e.type.toLowerCase() == "image") {
			e.disabled=false;
		}
	}
	document.body.style.cursor = "auto";
}

function DFckFormValidate(f,defOblig){
	DFclrClass(f);
	for(var i=0;i<f.length;i++){
		if(f[i].type==null) {
			continue;
		}
		
		var T=new DFfield(f[i], defOblig);
		if (f[i].disabled == true) {
          continue;
		}
		if(T.xt=='date' || T.xt=='datemmyyyy'){
			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();
				}
			}
			if(T.rdif!=null) {
				if(!T.ckRDif(f[T.rdif])) {
					return false;
				}
			}
			
			if(T.v[0]!=''&&T.v[1]!=''&&T.v[2]!=''){
				if(T.dAfter) {
					if(!T.ckDateafter()) {
						return false;
					}
				}
				if(T.dBefore) {
					if(!T.ckDatebefore()) {
						return false;
					}
				}
			}
			i=i+2;
		}else{			
			if(T.v.length==0 || trim(T.v[0]).length==0){	
				if (T.ob) {
					if(T.t=='checkbox' || T.t=='select-one' || T.t=='select-multiple') {
						if(!T.ckFrmAlert(0)) {
							return false;
						}
					} else if(T.t!='hidden') {
						if(!T.ckFrmAlert(1)) {
							return false;
						}
					}
				}
				if(T.rdif!=null) {
					if(!T.ckRDif(f[T.rdif])) {
						return false;
					}
				}
				if(T.greaterThan){
					if(!T.ckGreaterthan(f[T.gt])) {
						return false;
					}
				}
				if(T.lowerThan){
					if(!T.ckLowerthan(f[T.lt])) {
						return false;
					}
				}
			}else{
				if(T.rdif){
					if(!T.ckRDif(f[T.rdif])) {
						return false;
					}
				}
				if (T.t == 'select-one') {
					if(T.gt){
						if(!T.ckGreaterthan(f[T.gt])) {
							return false;
						}
					}
					if(T.lt){
						if(!T.ckLowerthan(f[T.lt])) {
							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'||T.t!='textarea')){
						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;
						}
					}
					if(T.rangeMin){
						if(!T.ckRangemin()) {
							return false;
						}
					}
					if(T.rangeMax){
						if(!T.ckRangemax()) {
							return false;
						}
					}
					if(T.greaterThan){
						if(!T.ckGreatethan(f[T.gt])) {
							return false;
						}
					}
					if(T.lowerThan){
						if(!T.ckLowerthan(f[T.lt])) {
							return false;
						}
					}
					//para o textarea verifica se o mesmo contem alguma letra ou n?mero
					if (T.t == 'textarea') {
						var value = new String(T.v);
						if (!value.match("[a-zA-Z0-9]")) {
							T.obj.value= new String();
							return T.ckFrmAlert();
						}
					}
				}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 DFckField(field, defOblig) {
	var Tf=field.form;
	DFclrClass(Tf);
	if(field.type == null) return false;
	var T=new DFfield(field, defOblig);
	if(T.xt == 'date' || T.xt == 'datemmyyyy') {
		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();
			}
		}
		if(T.v[0]!=''&&T.v[1]!=''&&T.v[2]!='') {
			if(T.dAfter) {
				if(!T.ckDateafter()) return false;
			}
			if(T.dBefore) {
				if(!T.ckDatebefore()) return false;
			}
		}
	} else {
		if(T.v.length==0 || trim(T.v[0]).length==0) {
			if(T.t=='checkbox' || T.t=='select-one' || T.t=='select-multiple') {
				if(!T.ckFrmAlert(0)) {
					return false;
				}
			} else 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'||T.t!='textarea')){
					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;
				}
				//para o textarea verifica se o mesmo contem alguma letra ou n?mero
				if (T.t == 'textarea') {
					var value = new String(T.v);
					if (!value.match("[a-zA-Z0-9]")) {
						T.obj.value= new String();
						return T.ckFrmAlert();
					}
				}
			} else if(T.t=='file'&&T.v.length!=0&&T.ext) {
				if(!T.ckFile(T.ext)) return T.ckFrmAlert(8);
			}
		}
	}
	if(!DFsbm) {
		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' || T.xt=='datemmyyyy'){
			var fName=T.n.substr(0,T.n.lastIndexOf('_')+1);
			if(T.xt=='date') {
				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';
		}
		try {
			T.obj.focus();
		}
		catch (e) {
		// In case the element is not visible, IE won't be able to set
		// the focus on it. You can handle this exception if you want
		}
	}
	if(scrTop!=DFscrollTopPosition()) {
		scrollBy(null,scrTop>DFscrollTopPosition()?-20:80);
	}
	if(m != null){
		if(m==7){
			var maxL=T.maxL;
		}else if(m==5){
			var minL=T.minL;
		}else if(m==8){
			var ext=T.ext;
		}else if(m==13){
			this.greaterThan = Tf[T.gt].title;
		}else if(m==14){
			this.lowerThan = Tf[T.lt].title;
		}
		
		if(T.xt && T.xt=='sel_cbo_sf')
			S=eval(DFMsg[15]);
		else if (T.xt && T.xt=='sel_cbo_sm')
			S=eval(DFMsg[16]);
		else
			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')? 6:7);
	}
	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 DFckDecimalnumber(){
	return(this.v[0].match(/^[0-9]+((,|.)[0-9]){0,1}[0-9]*$/));
}
function DFckNumber(){
	return(this.v[0].match(/^[0-9]+$/));
}
function DFckFullname(){
	return(this.v[0].match(/^[^ ]+[ ]+.+/));
}
function DFckWords(){
	return(this.v[0].match(/^[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZáàãâäéèêëíìîïóòõôöúùûüçÁÀÃÂÄÉÈÊËÍÌÎÏÓÒÕÔÖÚÙÛÜÇ]+[ ]+[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZáàãâäéèêëíìîïóòõôöúùûüçÁÀÃÂÄÉÈÊËÍÌÎÏÓÒÕÔÖÚÙÛÜÇ ]+$/));
}
function DFckWords(){
    return(this.v[0].match(/^[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZáàãâäéèêëíìîïóòõôöúùûüçÁÀÃÂÄÉÈÊËÍÌÎÏÓÒÕÔÖÚÙÛÜÇ]+[ ]+[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZáàãâäéèêëíìîïóòõôöúùûüçÁÀÃÂÄÉÈÊËÍÌÎÏÓÒÕÔÖÚÙÛÜÇ ]+$/));
}

function DFckPassword(){
    return(this.v[0].match(/[a-zA-Z]/) && this.v[0].match(/[0-9]/));
}

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) {
		if(T.xt=='datemmyyyy') {
			if(T.dIni) {
				T.dIni = '01/' + T.dIni;
			}
			if(T.dFin) {
				T.dFin = '01/' + 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(v) {
	var s=null;
	var r=null;
	var a=null;
	if(v==null) {
		a=this.v;
	} else {
		a = new Array();
		a[0]=v;
	}
	for(var j = 0; j < a.length; j++) {
		if(a[j].length != 11 || a[j].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(a[j].charAt(i)) * (10-i);
		}
		r = 11 - (s % 11);
		if(r == 10 || r == 11) {
			r=0;
		}
		if(r != parseInt(a[j].charAt(9))) {
			return false;
		}
		s = 0;
		for(var i = 0; i < 10; i++) {
			s += parseInt(a[j].charAt(i)) * (11-i);
		}
		r = 11 - (s % 11);
		if(r == 10 || r == 11) {
			r = 0;
		}
		if(r != parseInt(a[j].charAt(10))) {
			return false;
		}
	}
	return true;
}
function DFckCnpj(v){
	if(v==null) {
		v=this.v[0];
	}
	if(v=='00000000000000') {
		return false;
	}
	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 DFckSusep(){var v=this.v[0];if(v.length!=9&&v.length!=14){return false;}sAux=v.substring(v.length-7,v.length-1);sDigito=v.substring(v.length-1,v.length);if(DFcalculaDigMod11(sAux,1,1)!=sDigito){return false;}else{return true;}}
//Removido a verificacao do digito verificador pois nao funcionava para o codigo 02961920034941
function DFckSusep(){
	var v=this.v[0];
	if(v.length!=9&&v.length!=14){
		return false;
	}
	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);
}
function DFckCpforcnpj(){
	var v=this.v[0];
	return (DFckCpf(v) || DFckCnpj(v));
}
function DFckDatebefore() {
	var T=this;
	var Tdate=DFgetDateObject(T.v[0],T.v[1],T.v[2]);
	if(!Tdate) return Tdate;
	var dBefore = T.getDateFieldObject(T.dBefore);
	if(!dBefore) {
		return true;
	}	
	if(dBefore > Tdate) {
		return T.ckFrmAlert(9);
	}
	return true;
}
function DFckDateafter() {
	var T=this;
	var Tdate=DFgetDateObject(T.v[0],T.v[1],T.v[2]);
	if(!Tdate) return Tdate;
	var dAfter = T.getDateFieldObject(T.dAfter);
	if(!dAfter) {
		return true;
	}
	if(Tdate > dAfter) {
		return T.ckFrmAlert(9);
	}
	return true;
}
function DFchangeClassFocus(a,c){
	alert(a);
	clearClass(c.form);
	if(c.type=="radio"){
		for(var i=0;i<c.form[c.name].length;i++){
			c.form[c.name][i].className='DF-alert';
		}
	} else {
		c.className='DF-alert';
	}
	c.focus();
	return false;
}
function clearClass(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 DFcheckDate(v){
	if(v.length!=10) {
		return false;
	}
	var date=v.split('/');
	var d=parseInt(date[0],10);
	var m=parseInt(date[1],10);
	var y=parseInt(date[2],10);
	if(!DFcheckDateDay(d)) {
		return false;
	} else if(!DFcheckDateMonth(m)) {
		return false;
	} else if(!DFcheckDateYear(y)) {
		return false;
	} else if( (m==4||m==6||m==9||m==11) && (d==31)) {
		return false;
	} else if(m==2 && (d>29 || (d==29&&((y%4)!=0)))) {
		return false;
	}
	return true;
}
function DFcheckDateDay(v){
	if(v>=1&&v<=31) {
		return true;
	}
}
function DFcheckDateMonth(v){
	if(v>=1&&v<=12) {
		return true;
	}
}
function DFcheckDateYear(v){
	if(v>=1) {
		return true;
	}
}
function DFckRangemin() {
	var T = this;
	var v = parseFloat(T.v[0]);
	var min = parseFloat(T.rangeMin);
	if(v < min) {
		if(T.rangeMax) {
			return T.ckFrmAlert(10);
		} else {
			return T.ckFrmAlert(11);
		}
	}
	return true;
}

function DFckRangemax() {
	var T = this;
	var v = parseFloat(T.v[0]);
	var max = parseFloat(T.rangeMax);
	if(v > max) {
		if(T.rangeMin) {
			return T.ckFrmAlert(10);
		} else {
			return T.ckFrmAlert(12);
		}
	}
	return true;
}

function DFckGreaterthan(gt) {
	var T = this;
	var v = parseFloat(T.v[0]);
	var reference = parseFloat(gt.value);
	if(v < reference) {
		return T.ckFrmAlert(13);
	}
	return true;
}
function DFckLowerthan(lt) {
	var T = this;
	var v = parseFloat(T.v[0]);
	var reference = parseFloat(lt.value);
	if(v > reference) {
		return T.ckFrmAlert(14);
	}
	return true;
}
