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.dIni=fld.getAttribute('DFdateIni');
	 T.dFin=fld.getAttribute('DFdateFin');
	 T.ob=(defOblig==true);

	 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;
		 }
	 }
	 if(T.t=='file')
	 {
		 T.ext=fld.getAttribute('extension');
	 }
	 T.ckFrmAlert=DFckFrmAlert;
	 T.ckEqual=DFckEqual;
	 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.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=='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.length+1);
	if(T.t=='text')
	{
		var d=eval('Tf.'+fName).value.substr(0,2);
		var m=eval('Tf.'+fName).value.substr(3,2);
		var a=eval('Tf.'+fName).value.substr(6,4);
	}
	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 CheckForm(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++;
		}
		else
		{
			if((T.t=='radio')||(T.t=='checkbox'))
			{
				i=i+(T.len-1);
			}
			if(T.v.length==0)
			{
				if(T.t!='hidden'&&(T.ob))
				{
					if(T.t=='select-one'||T.t=='select-multiple'||T.t=='checkbox'||T.t=='radio')
					{
						return T.ckFrmAlert(0);
					}
					else if(T.t=='text'||T.t=='textarea'||T.t=='password'||T.t=='file')
					{
						return T.ckFrmAlert(1);
					}
				}
			}
			else
			{
				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=='select-one'||T.t=='select-multiple'||T.t=='radio'||T.t=='checkbox'))
		{
			if (T.len > 1)
			{
				Tf[T.n][0].focus();
			}
			else
			{
				Tf[T.n].focus();
			}
		}
		else if(T.xt=='date')
		{
			/*var fName=T.n.substr(0,T.n.length+1);
			eval('Tf.'+fName).className='MR-alert';*/
		}
		else
			/*T.obj.className='MR-alert';
		if(T.equal)
			Tf[T.equal].className='MR-alert';*/
		T.obj.focus();
	 }
	 if(scrTop!=DFscrollTopPosition())
		 scrollBy(null,scrTop>DFscrollTopPosition()?-20:80);
	 if(null!=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(MsgRet[m]);
	  }
	  else
	  {
		  if(T.xt)
			  S=eval(MsgRet[2]);
	  }
	  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=='select-one'||T[0].type=='select-multiple'||T[0].type=='radio'||T[0].type=='checkbox')
			{
				for(var j=0;j<T.length;j++)
				{
					/*T[0].form[T[0].name][j].className='MR-alert';*/
				}
			}
			else
			{
				/*T.className='MR-alert';*/
			}
		}
		else
		{
			/*T.className='MR-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||'MR-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 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')
		{
			if(typeof(T.obj.form.DFcounter)!='undefined'&&typeof(T.obj.form.DFcounter)!='unknown')
			{
				DFtextareaCounter(T.obj);
			}
		}
		return T.ckFrmAlert((T.t!='textarea')? 7:6);
	 }
	 return true;
}
function DFckFile(ext)
{
	ext = ext.toUpperCase();
	var e=ext.split(",");
	var v=this.v[0].toUpperCase();
	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()
{
	var Tv=this.v[0].toLowerCase();
	return(Tv.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&&v.length==4)
		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 vlr = this.v[0];
	var v = vlr.replace(/[.]+/g,"");
	v = v.replace(/[-]+/g,"");
	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 CU(a,b,c)
{
	var d=a?a:"countedTextBox", f=b?b:"CountBody", e=c?c:1024, g=document.getElementById(d);
	if(g&&g.value.length>=e)
	{
		g.value=g.value.substring(0,e)
	}
	var h=document.getElementById(f);
	if(h)
	{
		h.innerHTML=g.value.length
	}
}
this._counterUpdate=CU;



function mask(_mask, val)
{
var i, mki;
var aux="";
	
	for(i=mki=0; i<val.length; i++, mki++)
	{
		if(_mask.charAt(mki)=='' || _mask.charAt(mki)=='#' || _mask.charAt(i)==val.charAt(i))
		{
			aux+=val.charAt(i);
		} 
		else 
		{
			aux+=_mask.charAt(mki)+val.charAt(i);
			mki++;
		}
	}
	return aux;
}
function maskEvent(field, _mask, event)
{
	var key ='';
	var aux='';
	var len=0;
	var i=0;
	var strCheck = '0123456789';
	var rcode = (window.Event) ? event.which : event.keyCode;
	
	if(rcode == 13)
	{
		//Enter
		return true;
	}
	
	//Get key value from key code
	key=String.fromCharCode(rcode);
	
	if(strCheck.indexOf(key)==-1)
	{
		//Not a valid key
		return false;
	}
	
	aux=field.value+key;
	//window.alert(aux);
	aux=mask(_mask,aux);
	//window.alert(aux);
	field.value=aux;	
	return false;
}