function DeixaNumeros(campo)
{
	var i;
	var soNumeros = "";
	var modificado = false;

	for (i = 0; i < campo.value.length; i++)
	{
		if (campo.value.charAt(i) >= '0' && campo.value.charAt(i) <= '9')
		{
			soNumeros += campo.value.charAt(i);
		}
		else
		{
			modificado = true;
		}
	}

	if (modificado == true)
	{
		 campo.value = soNumeros;
	}
}


function getCheckedValue(radioObj) {
	if(!radioObj)
		return "";
	var radioLength = radioObj.length;
	if(radioLength == undefined)
		if(radioObj.checked)
			return radioObj.value;
		else
			return "";
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			return radioObj[i].value;
		}
	}
	return "";
}

// IMAGENS ----------------------------------------------------------------------------------------

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.imagens){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

// Formularios -----------------------------------------------------------------------------------

function checar(obj){
  var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-.";
  var checkStr = obj.value;
  var allValid = true;
  var TEMPONT = 0;
  var retorno = true;

  if (checkStr.length > 26) { alert("O domínio não pode exceder o número máximo de 26 caracteres."); retorno = false; }  
  if (checkStr.length < 2)  { alert("Informe no minimo 2 caracteres para pesquisa."); retorno = false; }  
  if (checkStr.charAt(0) == '.' || checkStr.charAt(1) =='.') { alert ("O Nome do Domínio tem que ter pelo menos 2 letras antes do ponto!"); retorno = false; }
  
  for (i = 0;  i < checkStr.length;  i++){
    ch = checkStr.charAt(i);
	  if (ch == '.') {
   	   TEMPONT++;
	     temponto = true;
	     if (i == 0 && retorno)                { alert("O Nome do Domínio não pode começar com ponto(.)!"); obj.focus(); retorno = false; }
	     if (i == checkStr.length-1 && retorno){ alert("O Nome do Domínio não pode terminar com ponto(.)!"); obj.focus(); retorno =  false; }
	  }
	  if (TEMPONT > 2 && retorno && checkStr.indexOf("nom.br") == -1){
	     alert("O Nome do Domínio não pode ter mais de 2 pontos(.)!");  obj.focus(); retorno = false;	   
	  }
    for (j = 0;  j < checkOK.length;  j++)
        if (ch == checkOK.charAt(j))
	     		break;
			
    if (j == checkOK.length){
       allValid = false;
       break;
    }
  }
  if (!allValid && retorno){
    alert("Informe somente letras, números e os caracteres \"- e .\" no campo de Pesquisa.");
	obj.focus();
    retorno = false;
  }
	return retorno;
}

function MM_validateForm() { //v4.0
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { 
	    test = args[i+2]; 
			val  = MM_findObj(args[i]);
      if (val) { nm=val.id; if ((val=val.value)!="") {
								if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
									if (p<1 || p==(val.length-1)) errors+='- O campo '+nm+' aceita somente um endereço de e-mail válido.\n';
								} else if (test!='R') { num = parseFloat(val);
									if (isNaN(val)) errors+='- '+nm+' é um campo númerico.\n';
									if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
										min=test.substring(8,p); max=test.substring(p+1);
										if (num<min || max<num) errors+='- '+nm+' aceito somente números entre '+min+' e '+max+'.\n';
							} } } 
		  else if (test.charAt(0) == 'R') errors += '- '+nm+' é requerido.\n'; }
      }
	
	if (errors) alert('O(s) seguinte(s) campo(s) são(é) obrigatório(s):\n\n'+errors);	
  document.MM_returnValue = (errors == '');
}

function right(e) {
	if (navigator.appName == 'Netscape' && (e.which == 3 || e.which == 2)){
		alert("© Turbosite.com.br\nTodos os direitos reservados.");
		return false;
	}
	else if (navigator.appName == 'Microsoft Internet Explorer' && (event.button == 2 || event.button == 3)) {
		alert("© Turbosite.com.br\nTodos os direitos reservados.");
		return false;
	}
	return true;
}
function abrepopup(URL,Width,Height,Scrool,Redimensao){
  Left = (window.screen.availWidth - Width) / 2 - 13;
	Top  = (window.screen.availHeight - Height) / 2
	var Num = Math.round(Math.random()*4);
	window.open(URL,'Popup'+Num, 'width='+Width+', height='+Height+', top='+Top+', left='+Left+', scrollbars='+Scrool+', status=yes, toolbar=no, location=no, directories=no, menubar=no, resizable='+Redimensao+', fullscreen=no');
}

function alteraPessoa(valor){
   if (valor == 'Juridica') { 
	    document.getElementById("juridica").style.display='';
			document.getElementById("fisica").style.display='none';
	 }
	 else{
			document.getElementById("juridica").style.display='none';
	    document.getElementById("fisica").style.display='';
	 }
}

function alteraPlano(valor){
   if (valor == '3'){  
	    document.getElementById("banco").style.display='';
	    document.getElementById("dominio").style.display='none';
	 }
	 else{
	    document.getElementById("dominio").style.display='';
	    document.getElementById("banco").style.display='none';
	 }
}

function validaLogin(){
      if (document.getElementById("edtCodigo").value == ''){ alert('Informe o seu CÓDIGO de acesso!'); document.getElementById("edtCodigo").focus(); return false; }
      else if (document.getElementById("edtSenha").value == ''){ alert('Informe a sua SENHA de acesso!'); document.getElementById("edtSenha").focus(); return false; }
			else return true;
}

function validaForm(form){
	switch(form){
    case 'afiliado':
     	var nonNumbers     = /\D/;
			var dadosBancarios = "";
		  var valida         = "";
		  var estado1   = new Array()
		  estado1['SP'] = "de São Paulo";
		  estado1['ES'] = 'do Espírito Santo';
		  estado1['RJ'] = 'do Rio de Janeiro';
		  estado1['MG'] = 'de Minas Gerais';
		  estado1['BA'] = 'da Bahia';
		  estado1['SE'] = 'do Sergipe';
		  estado1['PE'] = 'de Pernambuco';
		  estado1['AL'] = 'de Alagoas';
		  estado1['PB'] = 'da Paraíba';
		  estado1['RN'] = 'do Rio Grande do Norte';
		  estado1['CE'] = 'do Ceará';
		  estado1['PI'] = 'do Piauí';
		  estado1['MA'] = 'do Maranhão';
		  estado1['AM'] = 'do Amazonas';
		  estado1['AC'] = 'do Acre';
		  estado1['AP'] = 'do Amapá';
		  estado1['RR'] = 'de Rondônia';
		  estado1['DF'] = 'do Distrito Federal';
		  estado1['GO'] = 'de Goiás';
		  estado1['TO'] = 'do Tocantins';
		  estado1['MT'] = 'do Mato Grosso';
		  estado1['MS'] = 'do Mato Grosso do Sul';
		  estado1['PR'] = 'do Paraná';
		  estado1['SC'] = 'da Santa Catarina';
		  estado1['RS'] = 'do Rio Grande do Sul'			
			
			document.MM_returnValue = false;

		   if (document.frmCadastro.lstPessoa.value == 'Fisica' ){
				   MM_validateForm('edtNome','','R','edtRg','','R','edtCPF','','R','edtLogradouro','','R','edtNumero','','RisNum','edtBairro','','R','edtCidade','','R','edtCep','','R','edtTelefone','','R','edtEmail','','RisEmail','edtSenha1','','R');
			     }
	  	 else{
           MM_validateForm('edtRazao','','R','edtCNPJ','','R','edtLogradouro','','R','edtNumero','','RisNum','edtBairro','','R','edtCidade','','R','edtCep','','R','edtTelefone','','R','edtEmail','','RisEmail','edtSenha1','','R');
				   }
						 
		   if ((document.MM_returnValue) && (nonNumbers.test(document.frmCadastro.edtCodInd.value))){
				  alert("O campo de indicação é numérico!\nInforme o CÓDIGO do afiliado que lhe indicou.");
					return false;
			 }
			 if ((document.MM_returnValue) && (document.frmCadastro.edtSenha1.value == '')){
				  alert('Informe sua senha de acesso!');
					return false;
			 }

		 	 if (document.frmCadastro.lstTipoAfiliado.value == 3 ){
					MM_validateForm('edtNomeBanco','','R','edtNumeroBanco','','R','edtAgencia','','R','edtConta','','R');					
			    }
					

			if(document.MM_returnValue){
				 //cpf / cnpj
				 if (document.frmCadastro.lstPessoa.value == 'Fisica' ){					   						 
				     if(isCpfCnpj(document.frmCadastro.edtCPF.value) == false){ alert("CPF Inválido");  return false; }
		         if(CountWords(document.frmCadastro.edtNome, true, false,'Nome') == false) { return false; }
				    }
				 else{
					   if(isCnpj(document.frmCadastro.edtCNPJ.value) == false){alert("CNPJ Inválido"); return false;}
		         if(CountWords(document.frmCadastro.edtRazao, true, false,'Razão social') == false) {return false; }
					   }
						 
				 //se tem espaço nos campos logradouro, razao social, nome
		      if (CountWords(document.frmCadastro.edtLogradouro, true, false,'Logradouro') == false) { return false; }
					 
				 //validacao cep + estado
				 estado = document.frmCadastro.edtEstado.value;
				 cep    = document.frmCadastro.edtCep.value.charAt(0);

				 s = limpa_string(document.frmCadastro.edtCep.value);
				 if (s.length < 8 || s.length > 8) {
						alert("Digite corretamente o CEP: 9999-999 !" +s);
						return false; 
						}	
				 
				 if (estado == "SP" && cep != 0 && cep != 1){alert("CEP inválido para o Estado "+estado1[estado]+"!"); return (false);}
				 if (estado == "RJ" || estado == "ES"){if (cep != 2){alert("CEP inválido para o Estado "+estado1[estado]+"!"); return (false);}}
				 if (estado == "MG" && cep != 3){alert("CEP inválido para o Estado: "+estado1[estado]+"!"); return (false);}
				 if (estado == "BA" || estado == "SE"){if (cep != 4){alert("CEP inválido para o Estado: "+estado1[estado]+"!"); return (false);}}
				 if (estado == "PE" || estado == "AL" || estado == "PB" || estado == "RN"){if (cep != 5){alert("CEP inválido para o Estado "+estado1[estado]+"!"); return (false);}}
				 if (estado == "CE" || estado == "PI" || estado == "MA" || estado == "AM" || estado == "AC" || estado == "AP" || estado == "RR"){if (cep != 6){alert("CEP inválido para o Estado "+estado1[estado]+"!"); return (false);}}
				 if (estado == "DF" || estado == "GO" || estado == "TO" || estado == "MT" || estado == "MS"){if (cep != 7){alert("CEP inválido para o Estado "+estado1[estado]+"!"); return (false);}}
				 if (estado == "PR" || estado == "SC"){if (cep != 8){alert("CEP inválido para o Estado "+estado1[estado]+"!"); return (false);}}
				 if (estado == "RS" && cep != 9){alert("CEP inválido para o Estado "+estado1[estado]+"!"); return (false);}
				 
				 // valida telefone
				 s = limpa_string(document.frmCadastro.edtTelefone.value);
				 if (s.length < 9 || s.length > 10) {
						alert("Digite corretamente o Telefone: (99)9999-9999 !");
						return false; 
						}				 
				 }


//		  alert('ok!');
       return document.MM_returnValue		   
		break;
		case 'contato':
					 MM_validateForm('nome','','R','email','','RisEmail','mensagem','','R');
           if (document.MM_returnValue == true){
					    if (document.getElementById('assunto').value == 1 ) { alert('Informe o assunto da mensagem!'); return false; }
							else { return document.MM_returnValue; }
					 } else return false;
		break;
		case 'confirmacaopgto':
		   if (document.frmConfirmacao.lstFormaPgto.value == 0)
			    { alert('Informe a forma de pagamento efetuada!'); return false; }
	  	   else
				  {
             MM_validateForm('edtDominio','','R','edtEmail','','RisEmail','edtBanco','','R','edtData','','R','edtValor','','R','edtNumero','','RisNum');
             return document.MM_returnValue		   
					}
		break;
		case 'consulta':
		   var dom = document.getElementById('dominio');
		   if ((dom.value == 'Digite o domínio') || (dom.value == ''))
  			   { dom.focus(); alert('Informe o domínio a ser consultado!'); return false; }
			 else {	
			   var countcb = 0;
				 var i;
         for(i=0;i<6;i++){
      		  if (document.all.cb[i].checked==true) countcb++;
      	 }
		     if (countcb == 0)	{ alert ("Marque no minimo 1 extensâo para pesquisar."); return false; }
		     else if (countcb > 3)	{ alert ("Marque no máximo 3 extensões para pesquisar."); return false; }
				 else return checar(dom);
			 }
		break;
	}
}


// assinatura ------------------------------------------------------------------------------

function AbreAssinatura(dom,suf){
  Left = (window.screen.availWidth - 700) / 2 - 13;
	Top  = (window.screen.availHeight - 453) / 2 - 20;
	window.open('../assinatura/?dom='+dom+'&suf='+suf,'Assine', 'width=700, height=453, top='+Top+', left='+Left+', scrollbars=no, status=yes, toolbar=no, location=no, directories=no, menubar=no, resizable=no, fullscreen=no');
}



// diversos -------------------------------------------------------

function validaInfoDom(){
  if ((document.getElementById('edtDominioConsulta').value == 'Digite o domínio') || (document.getElementById('edtDominioConsulta').value == '')){
	   alert('Informe o domínio a ser consultado!');
		 document.getElementById('edtDominioConsulta').focus();
		 return false;
	}
	else return true;
}

function cmd_layer(layer,status){
	   document.getElementById(layer).style.display = status;
}
									 
function carrega(status,txt){

	 try     { 
	         var tela  = document.getElementById('bodyHmtl').offsetHeight;
	         document.getElementById('hidepage').style.height = (tela)+'px';
			 }
	 catch(e){ }

  
  document.getElementById('hidepage').style.display   = status;
  document.getElementById('lyrCarrega').style.display = status;
  document.getElementById('txt_status').innerHTML     = txt;  
  }

<!-- 
//JavaScript Flash detection and deployment 
//(c)2004 Adrian Rowbotham 
//www.ajrdesign.net 


/* -- 1. Player Version detection -- */ 

//set player version here 
var MM_contentVersion = 6; 

//set sub version here 
var release = "6,0,67,0"; 


//check for flash player 
var plugin = (navigator.mimeTypes && navigator.mimeTypes["application/x-shockwave-flash"]) ? navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin : 0; 
if ( plugin ) { 
      var words = navigator.plugins["Shockwave Flash"].description.split(" "); 
       for (var i = 0; i < words.length; ++i) 
       { 
      if (isNaN(parseInt(words[i]))) 
      continue; 
      var MM_PluginVersion = words[i]; 
       } 
   var MM_FlashCanPlay = MM_PluginVersion >= MM_contentVersion; 
} 
else if (navigator.userAgent && navigator.userAgent.indexOf("MSIE")>=0 
   && (navigator.appVersion.indexOf("Win") != -1)) { 
   document.write('<SCR' + 'IPT LANGUAGE=VBScript\> \n'); //FS hide this from IE4.5 Mac by splitting the tag 
   document.write('on error resume next \n'); 
   document.write('MM_FlashCanPlay = ( IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash." & MM_contentVersion)))\n'); 
   document.write('</SCR' + 'IPT\> \n'); 
} 


/* -- 2. Deployment function -- */ 

function mostraFlash(swf,flashVarString,w,h,bgcolor,menu,mode,q,id){ 
  if ( MM_FlashCanPlay ) { 
     document.write('<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" ' 
     +'codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version='+release+'" ' 
     +'width="'+w+'" height="'+h+'" id="'+id+'">' 
     +'<param name="movie" value="'+swf+'" />' 
     +'<param name="menu" value="'+menu+'" />' 
     //+'<param name="quality" value="'+q+'" />' 
     +'<param name="wmode" value="'+mode+'" />' 
     +'<param name="bgcolor" value="'+bgcolor+'" />' 
     +'<param name="flashvars" value="'+flashVarString+'" />'
     +'<embed src="'+swf+'" flashvars="'+flashVarString+'" menu="'+menu+'" quality="'+q+'" wmode="'+mode+'" ' 
     +' bgcolor="'+bgcolor+'"  width="'+w+'" height="'+h+'" name="'+swf+'" ' 
     +' hspace="0" vspace="0" type="application/x-shockwave-flash" ' 
     +' pluginspage="http://www.macromedia.com/go/getflashplayer"></embed></object>'); 
		 return true;
  } else { 
     return false;
  } 
} 


gt__ua=navigator.userAgent.toLowerCase();
gt__isie=(gt__ua.indexOf("msie")!=-1);
gt__isop=(gt__ua.indexOf("opera")!=-1);
gt__msg="Click for company profile";
gt__rcm="This icon is protected.\nPlease use left button to view company information.";
gt__bma=parseInt(navigator.appVersion);
gt__s="smarticon";
gt__si=gt__s+".geotrust.com/";
gt__hn=window.location.hostname;
gt__sip="https://"+gt__si+"smarticonprofile";
gt__rsip=gt__sip+"?Referer="+window.location.protocol+"//"+gt__hn;
gt__is="//"+gt__si+"smarticon?ref="+gt__hn;
gt__ph=600;
if(screen!=null)if(screen.height<670)gt__ph=screen.height-70;
gt__ws="status=1,location=0,scrollbars=1,resizeable=yes,width=400,height="+gt__ph;
gt__w=null;
if(gt__ua.indexOf("msie 5")!=-1)gt__bma=5;
if(gt__ua.indexOf("msie 6")!=-1)gt__bma=6;
if(gt__ua.indexOf("msie 7")!=-1)gt__bma=7;
function gt__sp(){
 gt__w=window.open(gt__rsip,'GT__SIP',gt__ws);
 if ((gt__w != null)&&(!gt__isie||(gt__bma >= 5))) gt__w.focus();
}
function gt__dc(e){
 if (gt__isop||document.addEventListener) {
  var eit=(e.target.name=="phtpwwug");
   if (eit){
    if (e.which==3){
    }
   }
 }else if(document.captureEvents) {
  var tgt=e.target.toString();
  var eit=(tgt.indexOf(gt__s)!=-1);
  if (eit){
   if (e.which==3){
   }
  }
 }
}
function gt__md(){
 if(typeof event != 'undefined'){  if (event.button==2){
  return false;
 }else if(event.button==1){
  if(gt__isie) {
   return true;
  }
 }}
 gt__sp();
 return false;
}

var ItemArrayCom   = new Array('com');
var ItemArrayComBr = new Array('com.br','com');
var ItemArrayInter = new Array('com','net','org','biz','info');
var ItemArrayNacio = new Array('com.br','adm.br','adv.br','agr.br','am.br','arq.br','art.br','ato.br','bio.br','blog.br','bmd.br','can.br'
															 ,'cim.br','cng.br','cnt.br','coop.br','ecn.br','edu.br','eng.br','esp.br','etc.br','eti.br'
															 ,'far.br','flog.br','fm.br','fnd.br','fot.br','fst.br','g12.br','ggf.br','gov.br','imb.br','imb.br','ind.br'
															 ,'inf.br','jor.br','lel.br','mat.br','med.br','mob.br','mus.br','net.br','nom.br','not.br'
															 ,'ntr.br','odo.br','org.br','ppg.br','pro.br','psc.br','psi.br','qsl.br','rec.br','slg.br','srv.br','jus.br'
															 ,'tmp.br','trd.br','tur.br','us','vet.br','vlog.br','zlg.br','wiki.br');
var ItemArrayTotal = new Array('adm.br','adv.br','agr.br','am.br','arq.br','art.br','ato.br','bio.br','biz','blog.br','bmd.br'//,'can.br'
															 ,'cim.br','cng.br','cnt.br','coop.br','ecn.br','edu.br','eng.br','esp.br','etc.br','eti.br'
															 ,'far.br','flog.br','fm.br','fnd.br','fot.br','fst.br','g12.br','ggf.br'//,'gov.br'
															 ,'imb.br','imb.br','ind.br'
															 ,'inf.br','jor.br','lel.br','mat.br','med.br','mob.br','mus.br'//,'net.br','nom.br'
															 ,'not.br','info'
															 ,'ntr.br','odo.br','org.br','ppg.br','pro.br','psc.br','psi.br','qsl.br','rec.br','slg.br','srv.br','jus.br'
															 ,'tmp.br','trd.br','tur.br'//,'us'
															 ,'vet.br','vlog.br','zlg.br','wiki.br'
															 ,'com.br','com','net','org');

function populaCombo( controlToPopulate, ItemArray){	
	var controle  = document.getElementById( controlToPopulate );
  var myEle;
  var x;

	for (var q=controle.options.length; q>=0; q--){
		  controle.options[q]=null;
	    }

   for (x = 0; x < ItemArray.length; x++){
				myEle = document.createElement("option");
				myEle.value = ItemArray[x];
				myEle.text  = ItemArray[x];
				if (navigator.userAgent.indexOf('IE')!= -1){ controle.add(myEle); } 
				else {controle.appendChild(myEle);}
        }
	
	}

function insertInput( local ){
	
	var obj    = document.getElementById( local );
	document.getElementById( "obs1" ).style.visibility = "visible";
	
	if(obj.getElementsByTagName("input").length < 2){
		var row = obj.insertRow( -1 );
		var ce01 = row.insertCell( -1 );
		var ce02 = row.insertCell( -1 );
		var ce03 = row.insertCell( -1 );
		ce01.innerHTML = 'www.';
		ce01.className = 'texto12cinza';
		ce01.align = "right";
		ce02.innerHTML = '<input name="n_dom2" type="text" class="campotexto" id="n_dom2" value="" maxlength="50" style="width:100%"/>';
		ce03.innerHTML = '<select name="ext2" class="campotexto" id="ext2"><option value="biz">biz</option><option value="com">com</option><option value="info">info</option><option value="net">net</option><option value="org">org</option></select><span id="obs2" class="texto11cinza">Redirecionamento</span>';	
	}
}

function deleteInput( local ){
	
	var obj = document.getElementById( local );
	
	if (obj.getElementsByTagName("input").length > 1){
		  obj.deleteRow(obj.getElementsByTagName("input").length - 1);	
	   }
	
	document.getElementById( "obs1" ).style.visibility = "hidden";
  }



/* adicionado por regis - para validar os afiliados*/
function MaskTelefone(objeto,evt) {   
   return Mascara2(objeto, evt, '(##)####-####');
}

function Mascara2(objeto, evt, mask) {
 
var LetrasU = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
var LetrasL = 'abcdefghijklmnopqrstuvwxyz';
var Letras  = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
var Numeros = '0123456789';
var Fixos   = '() -'//'().-:/ '; 
var Charset = " !\"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_/`abcdefghijklmnopqrstuvwxyz{|}~";

evt = (evt) ? evt : (window.event) ? window.event : "";
var value = objeto.value;
if (evt) {
 var ntecla = (evt.which) ? evt.which : evt.keyCode;
 tecla = Charset.substr(ntecla - 32, 1);
 if (ntecla < 32) return true;

 var tamanho = value.length;
 if (tamanho >= mask.length) return false;

 var pos = mask.substr(tamanho,1); 
 while (Fixos.indexOf(pos) != -1) {
  value += pos;
  tamanho = value.length;
  if (tamanho >= mask.length) return false;
  pos = mask.substr(tamanho,1);
 }

 switch (pos) {
   case '#' : if (Numeros.indexOf(tecla) == -1) return false; break;
   case 'A' : if (LetrasU.indexOf(tecla) == -1) return false; break;
   case 'a' : if (LetrasL.indexOf(tecla) == -1) return false; break;
   case 'Z' : if (Letras.indexOf(tecla) == -1) return false; break;
   case '*' : objeto.value = value; return true; break;
   default : return false; break;
 }
}
objeto.value = value; 
return true;
}

function CountWords (this_field, show_word_count, show_char_count, campo){ 
   if (show_word_count == null) { show_word_count = true;  } 
   if (show_char_count == null) { show_char_count = false; } 

   var char_count = this_field.value.length; 
   var fullStr = this_field.value + " "; 
   var initial_whitespace_rExp = /^[^A-Za-z0-9]+/gi; 
   var left_trimmedStr = fullStr.replace(initial_whitespace_rExp, ""); 
   var non_alphanumerics_rExp = rExp = /[^A-Za-z0-9]+/gi; 
   var cleanedStr = left_trimmedStr.replace(non_alphanumerics_rExp, " "); 
   var splitString = cleanedStr.split(" "); 
   var word_count = splitString.length -1; 

   if (fullStr.length <2) { word_count = 0; } 
   if (show_word_count) { 
      if (word_count <= 1) { 
         alert ("O campo "+campo+" deve conter mais de uma palavra!"); 
         return (false);
         } 
      }
   }
	 
function limpa_string(S){
	var Digitos = "0123456789";
	var temp = "";
	var digito = "";

	for (var i=0; i<S.length; i++)	{
		digito = S.charAt(i);
		if (Digitos.indexOf(digito)>=0)	{
			temp=temp+digito	}
	}
	return temp
}

/**
 * @author Márcio d'Ávila
 * @version 1.01, 2004
 * http://www.mhavila.com.br/topicos/web/cpf_cnpj.html
 * PROTÓTIPOS:
 * método String.lpad(int pSize, char pCharPad)
 * método String.trim()
 *
 * String unformatNumber(String pNum)
 * String formatCpfCnpj(String pCpfCnpj, boolean pUseSepar, boolean pIsCnpj)
 * String dvCpfCnpj(String pEfetivo, boolean pIsCnpj)
 * boolean isCpf(String pCpf)
 * boolean isCnpj(String pCnpj)
 * boolean isCpfCnpj(String pCpfCnpj)
 */
var NUM_DIGITOS_CPF  = 11;
var NUM_DIGITOS_CNPJ = 14;
var NUM_DGT_CNPJ_BASE = 8;

/**
 * Adiciona método lpad() à classe String.
 * Preenche a String à esquerda com o caractere fornecido,
 * até que ela atinja o tamanho especificado.
 */
String.prototype.lpad = function(pSize, pCharPad)
{
	var str = this;
	var dif = pSize - str.length;
	var ch = String(pCharPad).charAt(0);
	for (; dif>0; dif--) str = ch + str;
	return (str);
} //String.lpad


/**
 * Adiciona método trim() à classe String.
 * Elimina brancos no início e fim da String.
 */
String.prototype.trim = function()
{
	return this.replace(/^\s*/, "").replace(/\s*$/, "");
} //String.trim


/**
 * Elimina caracteres de formatação e zeros à esquerda da string
 * de número fornecida.
 * @param String pNum
 *      String de número fornecida para ser desformatada.
 * @return String de número desformatada.
 */
function unformatNumber(pNum)
{
	return String(pNum).replace(/\D/g, "").replace(/^0+/, "");
} //unformatNumber


/**
 * Formata a string fornecida como CNPJ ou CPF, adicionando zeros
 * à esquerda se necessário e caracteres separadores, conforme solicitado.
 * @param String pCpfCnpj
 *      String fornecida para ser formatada.
 * @param boolean pUseSepar
 *      Indica se devem ser usados caracteres separadores (. - /).
 * @param boolean pIsCnpj
 *      Indica se a string fornecida é um CNPJ.
 *      Caso contrário, é CPF. Default = false (CPF).
 * @return String de CPF ou CNPJ devidamente formatada.
 */
function formatCpfCnpj(pCpfCnpj, pUseSepar, pIsCnpj)
{
	if (pIsCnpj==null) pIsCnpj = false;
	if (pUseSepar==null) pUseSepar = true;
	var maxDigitos = pIsCnpj? NUM_DIGITOS_CNPJ: NUM_DIGITOS_CPF;
	var numero = unformatNumber(pCpfCnpj);

	numero = numero.lpad(maxDigitos, '0');
	if (!pUseSepar) return numero;

	if (pIsCnpj)
	{
		reCnpj = /(\d{2})(\d{3})(\d{3})(\d{4})(\d{2})$/;
		numero = numero.replace(reCnpj, "$1.$2.$3/$4-$5");
	}
	else
	{
		reCpf  = /(\d{3})(\d{3})(\d{3})(\d{2})$/;
		numero = numero.replace(reCpf, "$1.$2.$3-$4");
	}
	return numero;
} //formatCpfCnpj


/**
 * Calcula os 2 dígitos verificadores para o número-efetivo pEfetivo de
 * CNPJ (12 dígitos) ou CPF (9 dígitos) fornecido. pIsCnpj é booleano e
 * informa se o número-efetivo fornecido é CNPJ (default = false).
 * @param String pEfetivo
 *      String do número-efetivo (SEM dígitos verificadores) de CNPJ ou CPF.
 * @param boolean pIsCnpj
 *      Indica se a string fornecida é de um CNPJ.
 *      Caso contrário, é CPF. Default = false (CPF).
 * @return String com os dois dígitos verificadores.
 */
function dvCpfCnpj(pEfetivo, pIsCnpj)
{
	if (pIsCnpj==null) pIsCnpj = false;
	var i, j, k, soma, dv;
	var cicloPeso = pIsCnpj? NUM_DGT_CNPJ_BASE: NUM_DIGITOS_CPF;
	var maxDigitos = pIsCnpj? NUM_DIGITOS_CNPJ: NUM_DIGITOS_CPF;
	var calculado = formatCpfCnpj(pEfetivo, false, pIsCnpj);
	calculado = calculado.substring(2, maxDigitos);
	var result = "";

	for(j = 1; j <= 2; j++)
	{
		k = 2;
		soma = 0;
		for (i = calculado.length-1; i >= 0; i--)
		{
			soma += (calculado.charAt(i) - '0') * k;
			k = (k-1) % cicloPeso + 2;
		}
		dv = 11 - soma % 11;
		if (dv > 9) dv = 0;
		calculado += dv;
		result += dv
	}

	return result;
} //dvCpfCnpj


/**
 * Testa se a String pCpf fornecida é um CPF válido.
 * Qualquer formatação que não seja algarismos é desconsiderada.
 * @param String pCpf
 *      String fornecida para ser testada.
 * @return <code>true</code> se a String fornecida for um CPF válido.
 */
function isCpf(pCpf)

{
	var numero = formatCpfCnpj(pCpf, false, false);
	var base = numero.substring(0, numero.length - 2);
	var digitos = dvCpfCnpj(base, false);
	var algUnico, i;

	// Valida dígitos verificadores
	if (numero != base + digitos) return false;
	/* Não serão considerados válidos os seguintes CPF:
	 * 000.000.000-00, 111.111.111-11, 222.222.222-22, 333.333.333-33, 444.444.444-44,
	 * 555.555.555-55, 666.666.666-66, 777.777.777-77, 888.888.888-88, 999.999.999-99.
	 */
	algUnico = true;
	for (i=1; i<NUM_DIGITOS_CPF; i++){
		 algUnico = algUnico && (numero.charAt(i-1) == numero.charAt(i));
	   }
	return (!algUnico);
} //isCpf


/**
 * Testa se a String pCnpj fornecida é um CNPJ válido.
 * Qualquer formatação que não seja algarismos é desconsiderada.
 * @param String pCnpj
 *      String fornecida para ser testada.
 * @return <code>true</code> se a String fornecida for um CNPJ válido.
 */
function isCnpj(pCnpj)
{
	var numero = formatCpfCnpj(pCnpj, false, true);
	var base = numero.substring(0, NUM_DGT_CNPJ_BASE);
	var ordem = numero.substring(NUM_DGT_CNPJ_BASE, 12);
	var digitos = dvCpfCnpj(base + ordem, true);
	var algUnico;

	// Valida dígitos verificadores
	if (numero != base + ordem + digitos) return false;

	/* Não serão considerados válidos os CNPJ com os seguintes números BÁSICOS:
	 * 11.111.111, 22.222.222, 33.333.333, 44.444.444, 55.555.555,
	 * 66.666.666, 77.777.777, 88.888.888, 99.999.999.
	 */
	algUnico = numero.charAt(0) != '0';
	for (i=1; i<NUM_DGT_CNPJ_BASE; i++)
	{
		algUnico = algUnico && (numero.charAt(i-1) == numero.charAt(i));
	}
	if (algUnico) return false;

	/* Não será considerado válido CNPJ com número de ORDEM igual a 0000.
	 * Não será considerado válido CNPJ com número de ORDEM maior do que 0300
	 * e com as três primeiras posições do número BÁSICO com 000 (zeros).
	 * Esta crítica não será feita quando o no BÁSICO do CNPJ for igual a 00.000.000.
	 */
	if (ordem == "0000") return false;
	return (base == "00000000"
		|| parseInt(ordem, 10) <= 300 || base.substring(0, 3) != "000");
} //isCnpj


/**
 * Testa se a String pCpfCnpj fornecida é um CPF ou CNPJ válido.
 * Se a String tiver uma quantidade de dígitos igual ou inferior
 * a 11, valida como CPF. Se for maior que 11, valida como CNPJ.
 * Qualquer formatação que não seja algarismos é desconsiderada.
 * @param String pCpfCnpj
 *      String fornecida para ser testada.
 * @return <code>true</code> se a String fornecida for um CPF ou CNPJ válido.
 */
function isCpfCnpj(pCpfCnpj)
{
	var numero = pCpfCnpj.replace(/\D/g, "");
	if (numero.length > NUM_DIGITOS_CPF)
		return isCnpj(pCpfCnpj)
	else
		return isCpf(pCpfCnpj);
} //isCpfCnpj

function MM_openBrWindow(theURL,winName,features) { //v2.0
window.open(theURL,winName,features);
}