/***************************************************************************
 *                                                                         *
 *  Autor: Leandro Fernandes                                               *
 *  Data: 10/04/2005                                                       *
 *  Descrição:  abertura de popup não bloqueadas por programas anti-popup. *
 *  Parâmetros: img        = caminho (relativo) da imagem. (obrigatório)   *
 *              titulo     = título da janela popup                        *
 *              win_width  = tamanho horizontal da janela popup            *
 *              win_height = tamanho vertical da janela popup              *
 *              win_top    = localização da janela em relação ao topo      *
 *              win_left   = localização da janela em relação a esquerda   *
 *              auto       = pode ser um dos seguintes valores:            *
 *                           true  -> redimensionamento automático da      *
 *                                    janela popup de acordo com a         *
 *                                    resolução da imagem                  *
 *                           false -> não redimensiona a janela            *
 *              tipo       = pode ser um dos seguintes valores:            *
 *                           arq  -> abre a imagem diretamente na janela   *
 *                           html -> abre a imagem em uma página html      *
 *              fundo      = cor do fundo da página                        *
 *  Observações: (1) se o parâmetro auto estiver definido como true, os    *
 *                   parâmetros win_width e win_height serão os valores    *
 *                   máximos aceitáveis para esta janela, se este          *
 *                   parâmetro estiver definido como false, então os       *
 *                   valores de win_width e win_height serão valores fixos *
 *                   para a dimensão da janela, independente do tamanho da *
 *                   imagem. Em ambos os casos, se a imagem tiver tamanho  *
 *                   maior que a janela, será exibida com barra de         *
 *                   rolagem.                                              *
 *               (2) só é possível ter título em uma janela quando o       *
 *                   parâmetro tipo for definido como "html".              *
 *               (3) o parâmetro fundo só vale quando tipo for definido    *
 *                   como "html".                                          *
 *                                                                         *
 ***************************************************************************/

function abre(img, titulo, win_width, win_height, win_top, win_left, auto, tipo, fundo)
{
  // valor padrão para parâmetros opcionais
  if (titulo == null)
    titulo = "Popup";
  if (win_width == null)
    win_width = 500;
  if (win_height == null)
    win_height = 200;
  if (win_top == null)
    win_top = 50;
  if (win_left == null)
    win_left = 50;
  if (auto == null)
    auto = true;
  if (tipo == null)
    tipo = "html";
  if (fundo == null)
    fundo = "silver";
  // identificação da resolução da imagem
  imagem = new Image();
  imagem.src = img;
  // abre janela de acordo com o tipo escolhido se for uma imagem válida
  if ((imagem.width != 0) && (imagem.height !=0))
  {
    // dimensão da janela
    win_str = Dimensiona(imagem, win_width, win_height, win_top, win_left, auto);
    if (tipo == "arq")
      ExibeImagem(img, win_str);
    if (tipo == "html")
      ExibeImagemHtml(img, imagem, titulo, fundo, win_str);
  }
}

function Dimensiona(imagem, win_width, win_height, win_top, win_left, auto)
{
  // teste para impedir que o tamanho definido da janela seja maior que a resolução do usuário
  if (win_width > screen.width)
    win_width = screen.width;
  if (win_height > screen.height)
    win_height = screen.height;
  // define largura da janela
  if (!auto || imagem.width > win_width)
    str = "top=" + win_top + ",left=" + win_left + ",width=" + win_width;
  else
    str = "top=" + win_top + ",left=" + win_left + ",width=" + imagem.width;
  // define altura da janela
  if (!auto || imagem.height > win_height)
    str = str + ",height=" + win_height;
  else
    str = str + ",height=" + imagem.height;
  // usa barra de rolagem se as dimensões da imagem forem maiores que o máximo permitido
  if (imagem.width > win_width || imagem.height > win_height)
    str = str + ",resizable=yes,scrollbars=yes";
  return str;
}

function ExibeImagem(img, win_str)
{
  // abre popup
  popup = window.open(img, "", win_str);
} 

function ExibeImagemHtml(img, imagem, titulo, fundo, win_str)
{
  // abre popup
  popup = window.open("", "janela_popup", win_str);
  // cria conteúdo HTML
  popup.document.open();
  popup.document.writeln('<html>');
  popup.document.writeln('  <head>');
  popup.document.writeln('    <title>' + titulo + '</title>');
  popup.document.writeln('    <style>');
  popup.document.writeln('      body');
  popup.document.writeln('      {');
  popup.document.writeln('      margin-left: 0px;');
  popup.document.writeln('      margin-top: 0px;');
  popup.document.writeln('      margin-right: 0px;');
  popup.document.writeln('      margin-bottom: 0px;');
  if (fundo != null)
    popup.document.writeln('      background-color: ' + fundo + ';');
  popup.document.writeln('      }');;
  popup.document.writeln('    </style>');
  popup.document.writeln('  </head>');
  popup.document.writeln('  <body onLoad="self.focus();">');
  popup.document.writeln('    <img src="' + img + '" width="' + imagem.width + '" height="' + imagem.height + '" border="0">');
  popup.document.writeln('  </body>');
  popup.document.writeln('</html>');
  popup.document.close();
}