function fixpng(element)
{
  if (/MSIE (5\.5|6).+Win/.test(navigator.userAgent))
  {
    var src;
    if (element.tagName=='IMG')
    {
      if (/\.png$/.test(element.src))
      {
        src = element.src;
        element.src = "popup/blank.gif";
      }
    }
    else
    {
      src = element.currentStyle.backgroundImage.match(/url\("(.+\.png)"\)/i)
      if (src)
      {
        src = src[1];
        element.runtimeStyle.backgroundImage="none";
      }
    }
    if (src) element.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "', sizingMethod='scale');";
  }
}

function get_position(o)
{
  var x = y = 0;
  while(o) { x += o.offsetLeft; y += o.offsetTop; o = o.offsetParent; }
  return { "left": x, "top": y };
} 

function get_window_size() 
{
    var myWidth = 0, myHeight = 0;
    if( typeof( window.innerWidth ) == 'number' ) 
    {
        //Non-IE
        myWidth = window.innerWidth;
        myHeight = window.innerHeight;
    } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) 
    {
        //IE 6+ in 'standards compliant mode'
        myWidth = document.documentElement.clientWidth;
        myHeight = document.documentElement.clientHeight;
    } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) 
    {
        //IE 4 compatible
        myWidth = document.body.clientWidth;
        myHeight = document.body.clientHeight;
    }
    return { "width": myWidth, "height": myHeight };
}

function get_scroll_position()
{
    var scrOfX = 0, scrOfY = 0;
    if( typeof( window.pageYOffset ) == 'number' ) 
    {
        //Netscape compliant
        scrOfY = window.pageYOffset;
        scrOfX = window.pageXOffset;
    } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) 
    {
        //DOM compliant
        scrOfY = document.body.scrollTop;
        scrOfX = document.body.scrollLeft;
    } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) 
    {
        //IE6 standards compliant mode
        scrOfY = document.documentElement.scrollTop;
        scrOfX = document.documentElement.scrollLeft;
    }
    return { "left": scrOfX, "top": scrOfY };
}

function show_popup(id, link, image_width, image_height, offset_x1, offset_x2, offset_y1, offset_y2)
{
  desc = document.getElementById('desc' + id); 
  pos = get_position(link); 
  ws = get_window_size();
  sp = get_scroll_position();

  if( pos.top - sp.top + offset_y1 + image_height < ws.height && (pos.left - sp.left + link.offsetWidth + offset_x1 + image_width < ws.width || pos.left + offset_x2 < 0 ) ) 
  { 
    if ( pos.left + link.offsetWidth + offset_x1 + image_width < ws.width )
      desc.style.left = pos.left + link.offsetWidth + offset_x1 + "px"; 
    else 
      desc.style.left = ws.width - image_width + "px"; 
    desc.style.backgroundImage = "url(popup/1.png)"; 
    desc.style.top = pos.top + offset_y1 + "px"; 
    desc.style.display = 'block'; 
    if (/MSIE (5\.5|6).+Win/.test(navigator.userAgent))
    { desc.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='popup/1.png', sizingMethod='scale');"; }
  } 
  else if( pos.top - sp.top + offset_y1 + image_height >= ws.height && ( pos.left - sp.left + link.offsetWidth + offset_x1 + image_width < ws.width || pos.left + offset_x2 < 0 ) ) 
  { 
    if ( pos.left + link.offsetWidth + offset_x1 + image_width < ws.width )
      desc.style.left = pos.left + link.offsetWidth + offset_x1 + "px"; 
    else 
      desc.style.left = ws.width - image_width + "px"; 
    desc.style.backgroundImage='url(popup/2.png)';
    desc.style.top = pos.top + offset_y2 + "px";
    desc.style.display = 'block'; 
    if (/MSIE (5\.5|6).+Win/.test(navigator.userAgent))
    { desc.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='popup/2.png', sizingMethod='scale');"; }
  }
  else if( pos.top - sp.top + offset_y1 + image_height < ws.height) 
  { 
    desc.style.left = pos.left + offset_x2 + "px";
    desc.style.backgroundImage='url(popup/3.png)'; 
    desc.style.top = pos.top + offset_y1 + "px"; 
    desc.style.display = 'block'; 
    if (/MSIE (5\.5|6).+Win/.test(navigator.userAgent))
    { desc.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='popup/3.png', sizingMethod='scale');"; }
  } 
  else
  { 
    desc.style.left = pos.left + offset_x2 + "px";
    desc.style.backgroundImage='url(popup/4.png)'; 
    desc.style.top = pos.top + offset_y2 + "px";
    desc.style.display = 'block'; 
    if (/MSIE (5\.5|6).+Win/.test(navigator.userAgent))
    { desc.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='popup/4.png', sizingMethod='scale');"; }
  } 
}

function hide_popup(id)
{
  document.getElementById('desc' + id).style.display = 'none';
}

