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_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.name; if ((val=val.value)!="") {
      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+='- '+nm+' precisa conter um e-mail válido.\n';
      } else if (test!='R') { num = parseFloat(val);
        if (isNaN(val)) errors+='- '+nm+' só pode ter números.\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+' deve ter números entre '+min+' e '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' é obrigatório.\n'; }
  } if (errors) alert('Ocorreu o(s) seguinte(s) erro(s):\n'+errors);
  document.MM_returnValue = (errors == '');
}

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_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}

MM_reloadPage(true);

// o código abaixo é para o submenu --> Só funciona no Internet Explorer
function f_Over(area_param)
{
   eval('document.all.' + area_param.toLowerCase()).style.display = 'inline'
   eval('document.all.' + area_param.toLowerCase()).style.visibility = 'visible'
}

function f_Hide(area_param)
{
  eval('document.all.' + area_param.toLowerCase()).style.display='none'
  eval('document.all.' + area_param.toLowerCase()).style.visibility = 'hidden'
}

// Função para abrir tela centralizada
// menubar=yes,location=yes,resizable=yes,scrollbars=yes,status=yes
function abrePopup(theURL, winName, features, widthIMG, heightIMG)
{
  width = screen.width;
  height = screen.height;
  var top = height/2;
  var left = width/2;
  top = top - heightIMG/2 - 30;
  left = left - widthIMG/2 - 5;
  features = features + ',top=' + top + ',left=' + left;
  abre2(theURL, winName,features);
}

function abre2(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

function getSelected(radioObj){
 for(var i = 0; i < radioObj.length; i++){
   if(radioObj[i].checked){
     return(radioObj[i].value);
   }
 }
}

//@param string campo nome do id do campo
function validaCampo(campo, errorMsg)
{
  input = document.getElementById(campo);
  if (input)   //se existe o campo, fazer validacao
  {
    if (input.value == "")
    {
      alert(errorMsg);
      input.focus();
      return false;
    }
  }

  return true;
}

function mostraErro(deveMostrar, errorMsg)
{
  if (!deveMostrar)
  {
    alert(errorMsg);
  }
  return deveMostrar;
}

//validacao de radio buttons sem saber quantos sao
function validaRadiobutton(input, errorMsg)
{
  marcado = -1;
  for (i = 0; i < input.length; i++)
  {
    if (input[i].checked)
    {
      marcado = i;
      resposta = input[i].value;
    }
  }

  if (marcado == -1)
  {
    alert(errorMsg);
    input[0].focus();
    return false;
  }

  return true;
}

function validaCPFform(campo)
{
  input = document.getElementById(campo);
  if (input)   //se existe o campo, fazer validacao
  {
    if (!validaCPF(input.value))
    {
      input.focus();
      return false;
    }
  }

  return true;
}

function validaEmail(campo, errorMsg)
{
  input = document.getElementById(campo);
  if (input)   //se existe o campo, fazer validacao
  {
    var regExp = /^[a-z0-9](\.?\w)*(\-?\w)*@[a-z0-9\-\_]+(\.[a-z0-9]+)*(\.[a-z0-9]{2,4})$/i;
    if (!regExp.test(input.value))
    {
      alert(errorMsg);
      input.focus();
      return false;
    }
  }

  return true;
}

function validaNumeros(campo, errorMsg)
{
  input = document.getElementById(campo);
  if (input)
  {
    var checkStr = input.value;
    var checkOK = "0123456789";
    var allValid = true;
    var decPoints = 0;
    var allNum = "";
    for (i = 0;  i < checkStr.length;  i++)
    {
      ch = checkStr.charAt(i);
      for (j = 0;  j < checkOK.length;  j++)
        if (ch == checkOK.charAt(j))
          break;
      if (j == checkOK.length)
      {
        allValid = false;
        break;
      }
    }

    if (!allValid)
    {
      alert(errorMsg);
      input.focus();
      return false;
    }
  }

  return true;
}

function copyToCliboard(text)
{
  Copied = text.createTextRange();
  Copied.execCommand("RemoveFormat");
  Copied.execCommand("Copy");
}

function comprar(link)
{
  if (parent.right2)
  {
    parent.right2.location = link;
  }
  else
  {
    location = link + "&tipo=1";
  }
}

// Função para ler dados do servidor
// @param URL url url completa dos dados, por exemplo: 'http://localhost/data.php'
// @param method methodLoadData campo para enviar o método implementado pelo usuário da classe, onde será tratado os dados
function leitorURL(url, methodLoadData)
{
  var loadData = methodLoadData;
  objXml = new ActiveXObject("Microsoft.XMLHTTP");
  // objXml = new ActiveXObject("Msxml2.XMLHTTP"); older version
  
  //var datafile = "data.txt";
  var datafile = url;

  objXml.open("GET", datafile, true);
  objXml.onreadystatechange=function() {
    if (objXml.readyState==4) {
      loadData(objXml.responseText);
    }
  }
  objXml.send(null);
} //fim classLeitorURL

function round(number,X)
{
  //rounds number to X decimal places, defaults to 2
  X = (!X ? 2 : X);
  return Math.round(number*Math.pow(10,X))/Math.pow(10,X);
}

function MascaraCEP (formato, keypress, campo)
{
	//campo = eval (objeto);
	if (formato=='CEP')
	{
		caracteres = '01234567890';
		separacoes = 1;
		separacao1 = '-';
		conjuntos = 2;
		conjunto1 = 5;
		conjunto2 = 3;
		if ((caracteres.search(String.fromCharCode (keypress))!=-1) && campo.value.length < (conjunto1 + conjunto2 + 1))
		{
			if (campo.value.length == conjunto1) 
			   campo.value = campo.value + separacao1;
		}
		else 
			event.returnValue = false;
	}
}

//usage: showHideLayers('id','','show' or 'hide');
function showHideLayers()
{
  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 MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}


function MM_jumpMenuGo(selName,targ,restore){ //v3.0
  var selObj = MM_findObj(selName); if (selObj) MM_jumpMenu(targ,selObj,restore);
}

function valida_cnpj(cnpj) 
{ 
      var numeros, digitos, soma, i, resultado, pos, tamanho, digitos_iguais; 
      digitos_iguais = 1; 
      if (cnpj.length < 14 && cnpj.length < 15) 
            return false; 
      for (i = 0; i < cnpj.length - 1; i++) 
            if (cnpj.charAt(i) != cnpj.charAt(i + 1)) 
                  { 
                  digitos_iguais = 0; 
                  break; 
                  } 
      if (!digitos_iguais) 
      { 
            tamanho = cnpj.length - 2 
            numeros = cnpj.substring(0,tamanho); 
            digitos = cnpj.substring(tamanho); 
            soma = 0; 
            pos = tamanho - 7; 
            for (i = tamanho; i >= 1; i--) 
                  { 
                  soma += numeros.charAt(tamanho - i) * pos--; 
                  if (pos < 2) 
                        pos = 9; 
                  } 
            resultado = soma % 11 < 2 ? 0 : 11 - soma % 11; 
            if (resultado != digitos.charAt(0)) 
                  return false; 
            tamanho = tamanho + 1; 
            numeros = cnpj.substring(0,tamanho); 
            soma = 0; 
            pos = tamanho - 7; 
            for (i = tamanho; i >= 1; i--) 
                  { 
                  soma += numeros.charAt(tamanho - i) * pos--; 
                  if (pos < 2) 
                        pos = 9; 
                  } 
            resultado = soma % 11 < 2 ? 0 : 11 - soma % 11; 
            if (resultado != digitos.charAt(1)) 
                  return false; 
            return true; 
            } 
      else 
            return false; 
} 

function valida_cpf(cpf) 
{
      var numeros, digitos, soma, i, resultado, digitos_iguais; 
      digitos_iguais = 1; 
      if (cpf.length < 11) 
            return false; 
      for (i = 0; i < cpf.length - 1; i++) 
            if (cpf.charAt(i) != cpf.charAt(i + 1)) 
                  { 
                  digitos_iguais = 0; 
                  break; 
                  } 
      if (!digitos_iguais) 
            { 
            numeros = cpf.substring(0,9); 
            digitos = cpf.substring(9); 
            soma = 0; 
            for (i = 10; i > 1; i--) 
                  soma += numeros.charAt(10 - i) * i; 
            resultado = soma % 11 < 2 ? 0 : 11 - soma % 11; 
            if (resultado != digitos.charAt(0)) 
                  return false; 
            numeros = cpf.substring(0,10); 
            soma = 0; 
            for (i = 11; i > 1; i--) 
                  soma += numeros.charAt(11 - i) * i; 
            resultado = soma % 11 < 2 ? 0 : 11 - soma % 11; 
            if (resultado != digitos.charAt(1)) 
                  return false; 
            return true; 
            } 
      else 
            return false; 
} 

// decipher key down codes
function getDownKey(evt) {
   var downKey = '';
   evt = (evt) ? evt : ((event) ? event : null);
   if (evt) {
       downKey = evt.keyCode;
       if (evt.charCode) {
           //downChar = evt.charCode;
       }
   }
   return downKey;
}

// funcao para executar uma função quase pressionado F2
function keyDownF2(funcao)
{
  keyCode = getDownKey(event);
  if (keyCode == 113)
  {
    funcao();
  }
}



