/*
 ______________________________________
 ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
            Script by Troyan
           <dnunes@email.com>

 ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
      Esse script poderá ser copiado e
  usado livremente desde que mantenham
  o conteúdo do script sem alterações,
  incluíndo nomes de vars e funções, e
  esse cabeçalho seja incluso anexo ao
  script na página, como feito aqui.
 _______________________________________
 ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
    "Viva o Open-Source e viva feliz!"
                                Troyan
 _______________________________________
 ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ */

  //Configuração da Popup Fit-To-Image
  defaultTitle='Popup Fit-To-Image - by Troyan';
  errorMsg='Erro no carregamento da imagem!<br />A popup será fechada!';
  errorAlert='Erro no carregamento da imagem!\nClique em OK para fechar a popup';
  opcoes='status=0,menubar=0,directories=0,toolbar=0,resizable=0';
  limiteW=700; limiteH=500;

  var ie4=typeof(document.all)?1:0,ie5=typeof(document.getElementById)?1:0,ns4=typeof(document.layers)?1:0;
  function retobj(nome, alvo) { if (arguments.length > 1) { alvo=alvo+'.'; } else { alvo=""; }
    if (ie4) { return eval(alvo +"document.all."+ nome); }
    else if (ie5) { return eval(alvo +"document.getElementById('"+ nome +"'"); }
    else if (ns4) { return eval(alvo +"document."+ nome); }
    else { return false; }
  } //Troyan - <dnunes@email.com>

  function troyan_resizeBodyTo(newBodyW,newBodyH,alvo) { if (arguments.length == 3) { alvo=eval(alvo); } else { alvo=self; }
    var bodyW,bodyH,difW,difH,winW,winH,newBodyW=Number(newBodyW),newBodyH=Number(newBodyH),startW=300,startH=300;
    alvo.resizeTo(startW,startH); with(alvo.document.body) { bodyW=clientWidth; bodyH=clientHeight; }
    difW=startW-bodyW; difH=startH-bodyH; winW=newBodyW+difW; winH=newBodyH+difH; alvo.resizeTo(winW,winH);
  } //Troyan - <dnunes@email.com>

function troyan_popupFitToImage(imgToFit, popTitle, disableLimit) { limitarTamanho=(arguments.length < 2 || !disableLimit)?1:0;
  if (!popTitle) { popTitle=defaultTitle; }
  popupFitToImage=window.open('about:blank','_blank',opcoes +',scrollbars=0,location=0,width=250,height=200');
  popupFitToImage.document.write(''+
    '<html><head><title>'+ popTitle +'</title><style>body{margin:0;}img{display:block;}</style></head>'+
    '<body><div id="loading" style="position: relative; top: 80px; width: 100%; height: 300px; '+
    'text-align: center; font: 10px verdana; color: darkblue;">Carregando imagem, por favor aguarde...</div>'+
    '<img name="troyan_imgFit" alt="" /></body></html>'+
  '');
  objImgToFit=popupFitToImage.document.images['troyan_imgFit'];
  objImgToFit.onload=function(){
    retobj('loading','popupFitToImage').style.display='none';
    imgW=objImgToFit.width; imgH=objImgToFit.height;
    if (limitarTamanho && (imgW>limiteW || imgH>limiteH)) {
      targProporcao=Number(limiteW)/Number(limiteH); atualProporcao=Number(imgW)/Number(imgH);
      fatorMultiply=(atualProporcao < targProporcao)?(Number(limiteH)/Number(imgH)):(Number(limiteW)/Number(imgW));
      objImgToFit.width=Number(imgW) * fatorMultiply; objImgToFit.height=Number(imgH) * fatorMultiply;
    }
    troyan_resizeBodyTo(objImgToFit.width, objImgToFit.height, 'popupFitToImage');
  }
  objImgToFit.onerror=function(){
    retobj('loading','popupFitToImage').innerHTML=errorMsg; popupFitToImage.alert(errorAlert); popupFitToImage.close();
  }
  objImgToFit.src=imgToFit;
  return popupFitToImage;
}