//////
// popup.js
//
// author: Allam Hansen, fah@daimi.au.dk
//////

var IE = (document.getElementById && document.all)? true : false;
var NS6 = (document.getElementById && navigator.appName.indexOf("Netscape")>=0 )? true: false;
var DOM = (document.getElementById)? true : false;

// Window size
var w_x, w_y;

// Const
var maxheight = 48;

// current timeout for popups
var timeo = null;

function getWindowDimensions(){
  w_y=(NS6)? window.innerHeight : (IE)? document.body.clientHeight : 0;
  w_x=(NS6)? window.innerWidth : (IE)? document.body.clientWidth : 0;
}

function getPageScrollY() {
  if(IE)return document.body.scrollTop;
  if(NS6)return window.pageYOffset;
}

function getPageScrollX(){
  if(IE)return document.body.scrollLeft;
  if(NS6)return window.pageXOffset;
}

/*
* 
* Computes the absolute rendered position of an element 
*
*/
function getAbsoluteLeft(oNode){
   var oCurrentNode=oNode;
   var iLeft=0;
   while( oCurrentNode != null ) {
     iLeft+=oCurrentNode.offsetLeft;
     oCurrentNode=oCurrentNode.offsetParent;
   }
   return iLeft;
}

function getAbsoluteTop(oNode){
   var oCurrentNode=oNode;
   var iTop=0;
   while( oCurrentNode != null) {
      iTop+=oCurrentNode.offsetTop;
      oCurrentNode=oCurrentNode.offsetParent;
   }
   return iTop;
}

function getAbsoluteRight(oNode){
  var oCurrentNode=oNode;
  return getAbsoluteLeft(oNode)+oCurrentNode.offsetWidth;  
}

function getAbsoluteBottom(oNode){
  var oCurrentNode=oNode;
  return getAbsoluteTop(oNode)+oCurrentNode.offsetHeight;
}

function showPopUp(id, srcid, image) {
  // compute window size
  getWindowDimensions();
  
  // find the clicked element
  srcobj = document.getElementById(srcid);

  // compute its position
  leftcord = getAbsoluteLeft(srcobj);
  topcord = getAbsoluteTop(srcobj);
  rightcord = getAbsoluteRight(srcobj);
  bottomcord = getAbsoluteBottom(srcobj);

  // find the popup
  l = document.getElementById(id);
   if (l==null) {
	  var oimg=document.createElement("img");
      oimg.className = "popup";
      oimg.setAttribute("id", id);
	  oimg.setAttribute("alt", image);
	  oimg.setAttribute("src", "billeder/thumb/" + image);
      document.getElementById("body").appendChild(oimg);
	 
	   l = document.getElementById(id);
  }
    
  //Optegn popupen 
   l.style.height =maxheight + "px";
  l.style.width = "auto";
  l.style.top = "auto";
  l.style.bottom = "auto";
  l.style.left = "auto";
  l.style.right = "auto";
  
  if (IE) {
	  l.style.top = ( topcord-maxheight - 2) + "px";
	  l.style.right = (w_x  - rightcord + getPageScrollX()) + "px";
  } else {
	  l.style.top = ( topcord-maxheight - 2) + "px";
	  l.style.right = (w_x  - rightcord) + "px";
  }
  
  timeo = setTimeout("realize('" + id + "')", 700);
}

function realize(id) {
  l = document.getElementById(id); 
  l.style.display = "block";
  l.style.visibility = "visible";
}

function hidePopUp(id) {
  if (timeo != null) {
	  clearTimeout(timeo);
  }	
  timeo=null;
	
  l = document.getElementById(id);
  l.style.display = "none";
  l.style.visibility = "hidden";
}

function setOpacity(val) {
	if (IE) {
       l.style.filter = "alpha(opacity=" + val + ")";
    } else { // Mozilla and N6
      l.style.MozOpacity = (val/100);
    } 	
}

