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;

}

function format(obj,mask){
	var str 	  = obj.value;
	var ret 	  = "";
	var strCheck  = '0123456789';
	var str_limpa = "";
	var posicao   = 0;
	
	// Pega somente os caracteres numericos da string
	for(i=0;i<str.length;i++){
		if(strCheck.indexOf(str.charAt(i)) >= 0)
			str_limpa += str.charAt(i);
	}

	for(i=0;i<mask.length;i++){
		if(posicao >= str_limpa.length)
			break;
		
		if(mask.charAt(i) == "*"){
			ret += str_limpa.charAt(posicao);
			posicao++;
		}
		else{
			ret += mask.charAt(i);
		}
	}
	
	obj.value = ret;
}