String.prototype.trim = function() { 
  var aux = this;
  while (aux.substr(0,1)=="\n"||aux.substr(0,1)=="\r"||aux.substr(0,1)==" ")
    aux = aux.substr(1);
  while (aux.substr(aux.length-1,aux.length)=="\n"||aux.substr(aux.length-1,aux.length)=="\r"||aux.substr(aux.length-1,aux.length)==" ")
    aux = aux.substr(0,aux.length-1);
  return aux;
};

//Tipos: numerico, texto, data, placa
//Tag - obrigatorio
function validaForm(form) {
  var i;
  tipoFormulario = pegaAtributo(form,'tipo');
  for (i=0;i<form.length;i++) {
    campo = form.elements[i];
    tipo = pegaAtributo(campo,'tipo');
    nome = pegaAtributo(campo,'nome');
    obrigatorio = pegaAtributo(campo,'obrigatorio');
    if (tipo) {
      if (tipo=="radio"&&(obrigatorio=='')) {
        chkRadio = false;
        if (!form[campo.name].length) {
          if(form[campo.name].checked)
            chkRadio = true;
        } else {
          for (j=0;j<form[campo.name].length;j++)
            if(form[campo.name][j].checked)
              chkRadio = true;
        }
        if (!chkRadio) {
          alert("O campo " + nome.toUpperCase() + " deve ser selecionado.");
          campo.focus();
          return false;
        }
      }

      if ((obrigatorio=='')&&(campo.value==campo.value<<1)&&(!campo.disabled)&&(campo.value!="0")) {
        alert("O campo " + nome.toUpperCase() + " deve ser preenchido.");
        campo.focus();
        return false;
      }
      switch (tipo) {
        case 'senha':
          if (campo.value.length<5&&campo.value.length>0) {
            alert("O campo " + nome.toUpperCase() + " deve conter no mínimo 5 dígitos.");
            campo.select();
            return false;
          }
          break;
        case 'confirmacao':
          if (form.txtNovaSenha&&campo.value!=form.txtNovaSenha.value) {
            alert("Confirmação de senha inválida");
            campo.select();
            return false;
          } else if (!form.txtNovaSenha&&campo.value!=form.txtSenha.value) {
            alert("Confirmação de senha inválida");
            campo.select();
            return false;
          }
          break;
        case 'texto':
          break;
        case 'numerico':
          if (isNaN(campo.value)&&campo.value.length>0) {
            alert("O campo " + nome.toUpperCase() + " deve ser numérico.");
            campo.select();
            return false;
          }
          break;
        case 'email':
          if (!validaEmail(campo.value)&&campo.value.length>0) {
            alert("O campo " + nome.toUpperCase() + " não é um e-mail válido.");
            campo.select();
            return false;
          }
          break;
        case 'cnpj':
          if (!validaCNPJ(campo.value)&&campo.value.length>0) {
            alert("O campo " + nome.toUpperCase() + " não é um CNPJ válido.");
            campo.select();
            return false;
          }
          break;
        case 'cpf':
          if (!validaCPF(campo.value)&&campo.value.length>0) {
            alert("O campo " + nome.toUpperCase() + " não é um CPF válido.");
            campo.select();
            return false;
          }
          break;
        case 'cpfcnpj':
          if (!validaCPFCNPJ(campo.value)&&campo.value.length>0) {
            alert("O campo " + nome.toUpperCase() + " não é um CPF/CNPJ válido.");
            campo.select();
            return false;
          }
          break;
        case 'cep':
          if (!validaCEP(campo.value)&&campo.value.length>0) {
            alert("O campo " + nome.toUpperCase() + " não é um CEP válido.");
            campo.select();
            return false;
          }
          break;
        case 'data':
          if (!validaData(campo.value)&&campo.value.length>0) {
            alert("O campo " + nome.toUpperCase() + " não é uma data válida.");
            campo.select();
            return false;
          }
          break;
        case 'imagem':
          if (!validaImagem(campo.value)&&campo.value.length>0) {
            alert("O campo " + nome.toUpperCase() + " não é uma imagem válida.");
            campo.select();
            return false;
          }
          break;

      }//Fim do switch
    }//Fim do if
  }//Fim do for
  //Coloquei isso porque preço período tem o mesmo tratamento de indisponibilidade
  switch (tipoFormulario) {
    case  'data_inicio_fim':
      dataInicio = form.txtDataInicio.value;
      dataInicio = dataInicio.substring(6,12) + dataInicio.substring(3,5) + dataInicio.substring(0,2);
      dataFim = form.txtDataFim.value;
      dataFim = dataFim.substring(6,12) + dataFim.substring(3,5) + dataFim.substring(0,2);
      if (dataInicio>dataFim) {
        alert("A data final deve ser maior que a data inicial.");
        form.txtDataInicio.select();
        return false;
      }
      break;
    case  'solicitacoes':
      dataInicio = form.txtChegadaPrevista.value;
      dataInicio = dataInicio.substring(6,12) + dataInicio.substring(3,5) + dataInicio.substring(0,2);
      dataFim = form.txtPartidaPrevista.value;
      dataFim = dataFim.substring(6,12) + dataFim.substring(3,5) + dataFim.substring(0,2);
      if (dataInicio>dataFim) {
        alert("A data de partida prevista deve ser maior que a data de chegada prevista.");
        form.txtChegadaPrevista.select();
        return false;
      }
      break;
  }
  EDAJAX.carregando();
  return true;
}

function pegaAtributo(campo,att) {
  var valor = campo.getAttribute(att);
  return (valor==null)?"undefined":valor;
}

function validaImagem(imagem) {
  var ext = imagem.toLowerCase().substr(imagem.length-4,4);
  return (ext==".jpg"||ext=="jpeg"||ext==".gif");
}

function validaEmail(email) {
  reEmail = /^[\w-]+(\.[\w-]+)*@(([A-Za-z\d][A-Za-z\d-]{0,61}[A-Za-z\d]\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;
  return reEmail.test(email.trim());
}

function validaCNPJ(cnpj) {
  var valida = new Array(6,5,4,3,2,9,8,7,6,5,4,3,2);
  var dig1= new Number;
  var dig2= new Number;
	
  var exp = /\.|\-|\//g;
  cnpj = cnpj.toString().replace( exp, "" ); 
  var digito = new Number(eval(cnpj.charAt(12)+cnpj.charAt(13)));
		
  for(i = 0; i<valida.length; i++) {
    dig1 += (i>0? (cnpj.charAt(i-1)*valida[i]):0);	
    dig2 += cnpj.charAt(i)*valida[i];	
  }
  dig1 = (((dig1%11)<2)? 0:(11-(dig1%11)));
  dig2 = (((dig2%11)<2)? 0:(11-(dig2%11)));
	
  return (((dig1*10)+dig2) == digito)	
}

function validaCPF(cpf) {
  var exp = /\.|\-/g;
  cpf = cpf.toString().replace( exp, "" ); 
  var digitoDigitado = eval(cpf.charAt(9)+cpf.charAt(10));
  var soma1=0, soma2=0;
  var vlr =11;
	
  for(i=0;i<9;i++){
    soma1+=eval(cpf.charAt(i)*(vlr-1));
    soma2+=eval(cpf.charAt(i)*vlr);
    vlr--;
  }	
  soma1 = (((soma1*10)%11)==10 ? 0:((soma1*10)%11));
  soma2=(((soma2+(2*soma1))*10)%11);
	
  var digitoGerado=(soma1*10)+soma2;
  return (digitoGerado==digitoDigitado);
}

function validaCPFCNPJ(cpfcnpj) {
  var exp = /\.|\-/g;
  cpfcnpj = cpfcnpj.toString().replace(exp,""); 
  return ((cpfcnpj.length>11)?validaCNPJ(cpfcnpj):validaCPF(cpfcnpj));
}

function validaData(data) {
  reDate = /^((0?[1-9]|[12]\d)\/(0?[1-9]|1[0-2])|30\/(0?[13-9]|1[0-2])|31\/(0?[13578]|1[02]))\/(19|20)?\d{2}$/;
  return reDate.test(data);
}

function validaCEP(cep){
  exp = /\d{2}\.\d{3}\-\d{3}/;
  exp2 = /\d{8}/;
  return exp.test(cep)||exp2.test(cep);
}

function criarFlash(divID, width, height, id, align, pMovie, pBgcolor, pWmode, vars) {
  aux = '<object classid=' + "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" + ' codebase=' + "https://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" + ' width=' + width + ' height=' + height + ' id=' + id + ' align=' + align +'>';aux += '<param name=movie value=' + pMovie + '>';aux += '<param name=quality value=' + "best" + '>';aux += '<param name=bgcolor value=' + pBgcolor + '>';if (pWmode != null)
  aux += '<param name=wmode value="' + pWmode + '">';

  if (vars != null)
    aux += '<param name=FlashVars value="' + vars + '">';

  aux += '<embed src="' + pMovie + '" ';

  if (pWmode != null)
    aux += ' wmode="' + pWmode + '" ';

  if (vars != null)
    aux += ' FlashVars="' + vars + '" ';

  aux += 'quality=' + "best" + ' bgcolor=' + pBgcolor + ' width=' + width + ' height=' + height + ' name=' + id + ' align=' + align + ' type="application/x-shockwave-flash" pluginspage="https://www.macromedia.com/go/getflashplayer"></embed>';aux += '</object>';

  if (divID!="") {
    var d = document.getElementById(divID);
    d.innerHTML = aux;
  } else document.write(aux);
}

function alerta(msg, tipo) {
  switch (tipo) {
    case "erro":
      alert("Ocorreu um erro:\n"+msg);
      break;
    default:
      alert(msg);
  }
}


function checaErro(xml) {
  var erro = xml.getElementsByTagName("codigoErro")[0].firstChild.nodeValue;
  if (erro!="0") {
    alerta(xml.getElementsByTagName("retorno")[0].firstChild.nodeValue,'erro');
    return false;
  } else {
    return true;
  }
}

function selecionarEstado(obj,oCidade, idCidade, busca) {
  obj.disabled = true;
  EDAJAX.cancelarRequisicoes();
  var ajax = new EDAJAX();
  while (oCidade.length>1)
    oCidade.options[1] = null;
  if (obj.value!=obj.value<<1) {
    var callback = function(xml) {
      obj.disabled = false;
      if (checaErro(xml)) {
        var resultados = xml.getElementsByTagName("resultado");
        if (resultados) {
          for (var i=0;i<resultados.length;i++) {           
            oCidade.options[oCidade.length] = new Option(resultados[i].getElementsByTagName("nome")[0].firstChild.nodeValue, resultados[i].getElementsByTagName("id")[0].firstChild.nodeValue);
            if (idCidade==resultados[i].getElementsByTagName("id")[0].firstChild.nodeValue||((idCidade==""||idCidade==null)&&resultados[i].getElementsByTagName("capital")[0].firstChild.nodeValue=="1")) {
              oCidade.selectedIndex = oCidade.length-1;
              focarProximoCampo(obj.form, oCidade, true);
            }
          }
        }
      }
    }
    if (busca)
      ajax.abrirURL("GET", "includes/_getCidades.asp?tipo=busca", "idEstado="+obj.value, callback, "xml");
    else
      ajax.abrirURL("GET", "includes/_getCidades.asp", "idEstado="+obj.value, callback, "xml");
  }
}

function esqueceuSenha() {
  var esquerda = (screen.availWidth/2)-(350/2);
  var altura = (screen.availHeight/2)-(160/2);
  window.open("_area_anunciante_esqueceu_senha.asp","_blank","width=350,height=160,status=1,resizable=no,scrollbars=no,statusbar=no,top="+altura+",left="+esquerda);
  return false;
}

function ampliarFoto(idFoto, idImovel, idAluguel, titulo) {
  var esquerda = (screen.availWidth/2)-(440/2);
  var altura = (screen.availHeight/2)-(500/2);
  window.open("fotos.asp?idFoto="+idFoto+"&idImovel="+idImovel+"&idAluguel="+idAluguel+"&titulo="+titulo,"_blank","width=440,height=500,status=1,resizable=no,scrollbars=no,statusbar=no,top="+altura+",left="+esquerda);
  return false;
}

function visualizarMapa(googleMap,googleMapTexto) {
  var esquerda = (screen.availWidth/2)-(600/2);
  var altura = (screen.availHeight/2)-(400/2);
  window.open("google_maps.asp?googleMap="+googleMap+"&googleMapTexto="+googleMapTexto,"_blank","width=600,height=400,status=1,resizable=no,scrollbars=no,statusbar=no,top="+altura+",left="+esquerda);
  return false;
}

window.onload = function() {
  EDAJAX.carregado();
  if (document.forms.length>0) {
    for(var i=0;i<document.forms.length;i++) {
      if (typeof(document.forms[i].onsubmit)!='function') {
        document.forms[i].onsubmit = function() {
          return validaForm(this);
        }
      }
    }
    focarProximoCampo();
  }
}

function focarProximoCampo(form, campo, forcarFoco) {
    var focarProximo = true;
    if (document.forms) {
      for(var i=0;i<document.forms.length;i++) {
        focarProximo = (campo)?false:true;
        if (form==null||document.forms[i]==form) {
          for (var j=0;j<document.forms[i].elements.length;j++) {
            if (pegaAtributo(document.forms[i],"semFoco")!=""||forcarFoco) {
              if (focarProximo&&document.forms[i].elements[j].type!='hidden'&&!document.forms[i].elements[j].disabled) {
                document.forms[i].elements[j].focus();
                return true;
              }
              if (campo==null||document.forms[i].elements[j]==campo)
                focarProximo = true;
            }
          }
        }
      }
    }
  return false;
}

var displayMensagem;
function info(event,str,obj,cursor) {
  if (!displayMensagem)
    criarDisplayMensagem();

  document.getElementById("displayMensagem").style.left=event.clientX-35;
  document.getElementById("displayMensagem").style.top=((event.clientY+15)+document.body.scrollTop);
  document.getElementById("displayMensagem").style.textAlign='left';
  document.getElementById("displayMensagem").style.display='';
  document.getElementById("conteudoMensagem").innerHTML = str;

  if (cursor)
    obj.style.cursor = cursor;

  obj.onmousemove = function (event) {
    event = event?event:window.event;
    document.getElementById("displayMensagem").style.left = (event.clientX>35)?(event.clientX-35):0;
    document.getElementById("displayMensagem").style.top = ((event.clientY+15)+document.body.scrollTop);
  }

  obj.onmouseout = function () {
    document.getElementById("displayMensagem").style.display='none';
  }
}

function criarDisplayMensagem() {
  displayMensagem = document.createElement("div");
  displayMensagem.id = "displayMensagem";
  displayMensagem.style.position = "absolute";
  displayMensagem.style.display = "none";
  displayMensagem.style.zIndex = 999;
  displayMensagem.style.backgroundColor = "#FFFFC0";
  displayMensagem.style.padding = "4px";
  displayMensagem.style.borderWidth = "1px";
  displayMensagem.style.borderColor = "#000033";
  displayMensagem.style.borderStyle = "solid";
  document.body.appendChild(displayMensagem);
  document.getElementById("displayMensagem").innerHTML = '<div style="position:absolute;top:-12px;left:20px;"><img src="imagens/efeito_mouseover.gif"></div> <span id="conteudoMensagem"></span>';
}

function overMenu(obj) {
  if (obj.getElementsByTagName("td")[0].getElementsByTagName("a").length>0) {
    obj.onclick = function() { 
      var a = obj.getElementsByTagName("td")[0].getElementsByTagName("a")[0];
      var url = a.href;
      if (url.substring(url.length-1)!="#") 
        window.location.href=url;
      if (pegaAtributo(a,'clique')!="undefined");
        eval(pegaAtributo(a,'clique'));
    }
    adicionarEstilo(obj,"menuOver");
  }
}

function outMenu(obj) {
  removerEstilo(obj,"menuOver");
}

function adicionarEstilo(obj, classe) {
  var aux = obj.className.split(" ");
  for (var i=0;i<aux.length;i++)
    if (aux[i].toUpperCase()==classe.toUpperCase())
      return false;

  if (obj.className)
    obj.className += " " + classe;
  else
    obj.className = classe;
}

function removerEstilo(obj, classe) {
  var aux = obj.className.split(" ");
  var cls = "";
  for (var i=0;i<aux.length;i++)
    if (aux[i].toUpperCase()!=classe.toUpperCase())
      cls += " " + aux[i];

  obj.className = cls.trim();
}

function subMenu(id) {
  var obj = document.getElementById(id);
  obj.style.display = (obj.style.display=="")?"none":"";
}

function confirmarExclusao() {
  return confirm("Tem certeza que deseja excluir o registro?");
}