window.onload   = resizeimg;
window.onresize = resizeimg;

// Adapted from: Open a window with the right dimension for an image
// http://www.rgagnon.com/jsdetails/js-0094.html
function popupFullImage(myimage) {
   // Create a new image to obtain its dimensions
   image = new Image();
   image.src = myimage;
   image.width  +=  10; // Account for frame borders
   image.height += 100; // Account for titlebar, address, status

   // Calculate the upper top-left position based on the screen and image width
   if (image.width < screen.width)
      leftPos = Math.round((screen.width - image.width) / 2);
   else
      leftPos = 0;
   if (image.height < screen.height)
      topPos  = Math.round((screen.height - image.height) / 2);
   else
      topPos = 0;

   // Prepare the HTML code for the new window
   html = "<HTML><HEAD><TITLE>" + myimage + "</TITLE>" + "</HEAD><BODY LEFTMARGIN=0 ";

   if (window.screen.availWidth < image.width || window.screen.availHeight < image.height) {
      html = html + "scroll='yes' "; // Image size exceeds desktop dimension so scrollbars are needed
      resize = 1; // In this situation the window is also resizable
   } else
      resize = 0; // Do not permit to resize

   html = html
   + "MARGINWIDTH=0 TOPMARGIN=0 MARGINHEIGHT=0><CENTER>"
   + "<IMG SRC='" + myimage + "' BORDER=0 NAME=image "
   + 'onload="window.resizeTo(document.image.width, document.image.height);" '
   + "onClick='window.close()' " // Click the image to close the window
   + "style=\"cursor:hand\" " // Show the appropriate cursor
   + ">"
   + "</CENTER>"
   + "</BODY></HTML>";

   // Open the popup window at the specified positions
   popup = window.open('',
   '',
   'top='+topPos+',left='+leftPos+',toolbar=0,location=0,directories=0,menuBar=0,resizable='+resize+',statusBar=0');
   popup.document.open();
   popup.document.write(html);
   popup.document.focus();
   popup.document.close();
}

function resizeimg() {
   if (document.getElementsByTagName) {
      for (i = 0; i < document.getElementsByTagName('img').length; i++) {
         im = document.getElementsByTagName('img')[i];
         
         // Search parent for acceptable width
         var parent = im.parentNode;
         var parentClientWidth = 0;
         
         while (parent != document.body) { // Keep searching until the parent is document.body
            if (parent.tagName == 'BLOCKQUOTE') { // If blockquote is the parent, it means that the image is in a quote, resize the image to 200px (plus 6px for the border and padding)
               parentClientWidth = 206;
               break;
            } else if (parent.tagName == 'DIV' && parent.className == 'content') { // If the parent is a div with the class content, resize the picture to that width
               parentClientWidth = parent.clientWidth;
               break;
            }
            parent = parent.parentNode;
         }
         
         if (parentClientWidth != 0) { // Check if parentClientWidth is set
            if (im.width > parentClientWidth) { // Check if this image needs to be resized
                    eval("pop" + String(i) + " = new Function(\"popupFullImage('" + im.src + "');\")");
                    eval("im.onclick = pop" + String(i) + ";");
                    if (document.all) im.style.cursor = 'hand';
                    if (!document.all) im.style.cursor = 'pointer';
               
               im.style.padding = "2px";
               im.style.marginBottom = "2px";
               im.style.border = "1px dashed #AAAAAA";
               var allowedWidth = parentClientWidth - 6; // 6pixels is needed for the padding and border
               im.style.width = allowedWidth + 'px';
            }
         }
      }
   }
}
