var menuEsquerdoAbaAberta = "";

//<!--
//<![CDATA[
  var g_bH = false;
  
  function init(p_strId) {
    g_bH = false;
    var l_E = document.getElementById(p_strId);
    if(l_E && document.defaultView) {
      if(document.defaultView.getComputedStyle(l_E, 'hover')) {
        g_bH = true;
      }
    }
    l_E = null;
  }
//]]>
//-->

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

function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}

function MM_jumpMenu2(targ,selObj,restore) { //v3.1
  MM_openBrWindow(selObj.options[selObj.selectedIndex].value,targ,'toolbar=yes,location=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width=760,height=400');
  if (restore) selObj.selectedIndex=0;
}

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;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ 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_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_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_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}

function showHideLayersFF(layer, action, time)
{
	setTimeout("MM_showHideLayers('"+layer+"','','"+action+"')", time);
}

function abreAba(nomeAba)
{
	// Verifica se a aba esta aberta
	if (menuEsquerdoAbaAberta != "")
	{
		if (menuEsquerdoAbaAberta == nomeAba)
		{
			ocultaElemento("cm" + menuEsquerdoAbaAberta);
			alteraImagem("cm" + menuEsquerdoAbaAberta + "btn", "/imgs/menuesquerdo/btn-" + menuEsquerdoAbaAberta + "-off.png");
			
			// Limpa o nome da aba
			menuEsquerdoAbaAberta = "";
						
			if (menuEsquerdoLinkAberto != "" && menuEsquerdoLinkAberto != null)
			{
				alteraImagem("cm" + menuEsquerdoLinkAberto + "btn", "/imgs/menuesquerdo/btn-" + menuEsquerdoLinkAberto + "-off.png");
			}
			
			menuEsquerdoLinkAberto = "";			
			
			// Grava um cookie com o nome da aba aberta
			createCookie("menuEsquerdoAbaAberta", 0, 1)
		}
		else
		{
			ocultaElemento("cm" + menuEsquerdoAbaAberta);
			alteraImagem("cm" + menuEsquerdoAbaAberta + "btn", "/imgs/menuesquerdo/btn-" + menuEsquerdoAbaAberta + "-off.png");
			
			// Limpa o nome da aba
			menuEsquerdoAbaAberta = "";
						
			if (menuEsquerdoLinkAberto != "" && menuEsquerdoLinkAberto != null)
			{
				alteraImagem("cm" + menuEsquerdoLinkAberto + "btn", "/imgs/menuesquerdo/btn-" + menuEsquerdoLinkAberto + "-off.png");
			}
			
			menuEsquerdoLinkAberto = "";
			
			// Abre a aba requisitada
			exibeElemento("cm" + nomeAba);
			alteraImagem("cm" + nomeAba + "btn", "/imgs/menuesquerdo/btn-" + nomeAba + "-over.png");
			
			// Grava o nome da aba aberta
			menuEsquerdoAbaAberta = nomeAba;
			
			// Grava um cookie com o nome da aba aberta
			createCookie("menuEsquerdoAbaAberta", nomeAba, 1)
		}
	}
	else
	{
		exibeElemento("cm" + nomeAba);
		alteraImagem("cm" + nomeAba + "btn", "/imgs/menuesquerdo/btn-" + nomeAba + "-over.png");
		
		// Grava o nome da aba aberta
		menuEsquerdoAbaAberta = nomeAba;
		
		if (menuEsquerdoLinkAberto != "" && menuEsquerdoLinkAberto != null)
		{
			alteraImagem("cm" + menuEsquerdoLinkAberto + "btn", "/imgs/menuesquerdo/btn-" + menuEsquerdoLinkAberto + "-off.png");
		}
		
		menuEsquerdoLinkAberto = "";
		
		// Grava um cookie com o nome da aba aberta
		createCookie("menuEsquerdoAbaAberta", nomeAba, 1)
	}
}

/*    ********************************************************************    
    ####################################################################
    Assunto = Validação de CPF e CNPJ
    Autor = Marcos Regis
    Data = 24/01/2006
    Versão = 1.0
    Compatibilidade = Todos os navegadores.
    Pode ser usado e distribuído desde que esta linhas sejam mantidas
    ====------------------------------------------------------------====
    
    Funcionamento = O script recebe como parâmetro um objeto por isso 
    deve ser chamado da seguinte forma:
    E.: no evento onBlur de um campo texto
    <input name="cpf_cnpj" type="text" size="40" maxlength="18" 
    onBlur="validar(this);">
    Ao deixar o campo o evento é disparado e chama validar() com o 
    argumento "this" que representa o próprio objeto com todas as 
    propriedades.
    A partir daí a função validar() trata a entrada removendo tudo que
    não for caracter numérico e deixando apenas números, portanto
    valores escritos só com números ou com separadores como '.' ou mesmo
    espaços são aceitos
    ex.: 111222333/44, 111.222.333-44, 111 222 333 44 serão tratadoc como
    11122233344 (para CPFs)
    De certa forma até mesmo valores como 111A222B333C44 será aceito mas
    aconselho a usar a função soNums() que encotra-se aqui mesmo para
    que o campo só aceite caracteres numéricos.
    Para usar a função soNums() chame-a no evento onKeyPress desta forma
    onKeyPress="return soNums(event);"
    Após limpar o valor verificamos seu tamanho que deve ser ou 11 ou 14
    Se o tamanho não for aceito a função retorna false e [opcional] 
    mostra uma mensagem de erro.
    Sugestões e comentários marcos_regis@hotmail.com
    ####################################################################
    ********************************************************************    */

// a função principal de validação
function validar(obj) { // recebe um objeto
    var s = (obj.value).replace(/\D/g,'');
    var tam=(s).length; // removendo os caracteres não numéricos
    if (!(tam==11 || tam==14)){ // validando o tamanho
        //alert("'"+s+"' Não é um CPF ou um CNPJ válido!" ); // tamanho inválido
		alert("O CNPJ digitado é inválido" ); // tamanho inválido
		obj.focus();    // se quiser selecionar o campo enviado
		
        return false;
    }
    
// se for CPF
    if (tam==11 ){
        if (!validaCPF(s)){ // chama a função que valida o CPF
            alert("'"+s+"' Não é um CPF válido!" ); // se quiser mostrar o erro
            obj.select();  // se quiser selecionar o campo em questão
            return false;
        }
        alert("'"+s+"' É um CPF válido!" ); // se quiser mostrar que validou        
        obj.value=maskCPF(s);    // se validou o CPF mascaramos corretamente
        return true;
    }
    
// se for CNPJ            
    if (tam==14){
        if(!validaCNPJ(s)){ // chama a função que valida o CNPJ
            alert("O CNPJ '"+s+"' não é válido!" ); // se quiser mostrar o erro
            obj.focus();    // se quiser selecionar o campo enviado
			//document.getElementById("cnpj").focus();
           
		   return false;            
        }
        //alert("'"+s+"' É um CNPJ válido!" ); // se quiser mostrar que validou                
        obj.value=maskCNPJ(s);    // se validou o CNPJ mascaramos corretamente
        return true;
    }
}
// fim da funcao validar()

// função que valida CPF
// O algorítimo de validação de CPF é baseado em cálculos
// para o dígito verificador (os dois últimos)
// Não entrarei em detalhes de como funciona
function validaCPF(s) {
    var c = s.substr(0,9);
    var dv = s.substr(9,2);
    var d1 = 0;
    for (var i=0; i<9; i++) {
        d1 += c.charAt(i)*(10-i);
     }
    if (d1 == 0) return false;
    d1 = 11 - (d1 % 11);
    if (d1 > 9) d1 = 0;
    if (dv.charAt(0) != d1){
        return false;
    }
    d1 *= 2;
    for (var i = 0; i < 9; i++)    {
         d1 += c.charAt(i)*(11-i);
    }
    d1 = 11 - (d1 % 11);
    if (d1 > 9) d1 = 0;
    if (dv.charAt(1) != d1){
        return false;
    }
    return true;
}

// Função que valida CNPJ
// O algorítimo de validação de CNPJ é baseado em cálculos
// para o dígito verificador (os dois últimos)
// Não entrarei em detalhes de como funciona
function validaCNPJ(CNPJ) {
    var a = new Array();
    var b = new Number;
    var c = [6,5,4,3,2,9,8,7,6,5,4,3,2];
    for (i=0; i<12; i++){
        a[i] = CNPJ.charAt(i);
        b += a[i] * c[i+1];
    }
    if ((x = b % 11) < 2) { a[12] = 0 } else { a[12] = 11-x }
    b = 0;
    for (y=0; y<13; y++) {
        b += (a[y] * c[y]);
    }
    if ((x = b % 11) < 2) { a[13] = 0; } else { a[13] = 11-x; }
    if ((CNPJ.charAt(12) != a[12]) || (CNPJ.charAt(13) != a[13])){
        return false;
    }
    return true;
}


    // Função que permite apenas teclas numéricas
    // Deve ser chamada no evento onKeyPress desta forma
    // return (soNums(event));
function soNums(e)
{
    if (document.all){var evt=event.keyCode;}
    else{var evt = e.charCode;}
    if (evt <20 || (evt >47 && evt<58)){return true;}
    return false;
}

//    função que mascara o CPF
function maskCPF(CPF){
    return CPF.substring(0,3)+"."+CPF.substring(3,6)+"."+CPF.substring(6,9)+"-"+CPF.substring(9,11);
}

//    função que mascara o CNPJ
function maskCNPJ(CNPJ){
    return CNPJ.substring(0,2)+"."+CNPJ.substring(2,5)+"."+CNPJ.substring(5,8)+"/"+CNPJ.substring(8,12)+"-"+CNPJ.substring(12,14);    
}