 // Moves the box object to be directly beneath an object.  
 function move_box(an, box)  
 {  
     var cleft = 0;  
     var ctop = 0;  
     var obj = an;  
   
     while (obj.offsetParent)  
     {  
         cleft += obj.offsetLeft;  
         ctop += obj.offsetTop;  
         obj = obj.offsetParent;  
     }  
   
     //box.style.left = cleft + 'px';  
     //box.style.left = 50 + 'px';
   
     ctop += an.offsetHeight + 8;  
   
     // Handle Internet Explorer body margins,  
     // which affect normal document, but not  
     // absolute-positioned stuff.  
     if (document.body.currentStyle &&  
         document.body.currentStyle['marginTop'])  
     {  
         ctop += parseInt(  
             document.body.currentStyle['marginTop']);  
     }  
   
     box.style.top = ctop + 'px';  
 }  
   
 // Shows a box if it wasn't shown yet or is hidden  
 // or hides it if it is currently shown  
 function show_hide_box(an, width, height)  
 {  
     var href = an.href;  
     var boxdiv = document.getElementById(href);  
   
     if (boxdiv != null)  
     {  
         if (boxdiv.style.display=='none')  
         {  
             // Show existing box, move it  
             // if document changed layout  
             move_box(an, boxdiv);  
             boxdiv.style.display='block';  
   
             bringToFront(boxdiv);  
   
             // Workaround for Konqueror/Safari  
             if (!boxdiv.contents.contentWindow)  
                 boxdiv.contents.src = href;  
         }  
         else  
             // Hide currently shown box.  
             boxdiv.style.display='none';  
         return false;  
     }  
   
     // Create box object through DOM  
     boxdiv = document.createElement('div');  
   
     // Assign id equalling to the document it will show  
     boxdiv.setAttribute('id', href);  
     boxdiv.style.left='18%';
     boxdiv.style.display = 'block';  
     boxdiv.style.position = 'absolute';  
     boxdiv.style.width = width + 'px';  
     boxdiv.style.height = height + 'px';  
     boxdiv.style.border = '2px solid';  
     boxdiv.style.textAlign = 'right';  
     //boxdiv.style.padding = '0px';
     boxdiv.style.background = '#DED3BC'; 
     boxdiv.style.color = '#D4A276'; 
     document.body.appendChild(boxdiv);  
     bringToFront(boxdiv);  
   
     var offset = 0;  
   
     // Remove the following code if 'Close' hyperlink  
     // is not needed.  
     var close_href = document.createElement('a');  
     close_href.href = 'javascript:void(0);';  
     close_href.onmouseover = function()  
         { show_hide_box(an, width, height); }  
     close_href.appendChild(document.createTextNode('X'));  
     boxdiv.appendChild(close_href);  
     offset = close_href.offsetHeight;  
     // End of 'Close' hyperlink code.  
   
     var contents = document.createElement('iframe');  
     //contents.scrolling = 'no';  
     contents.overflowX = 'hidden';  
     contents.overflowY = 'scroll';  
     contents.frameBorder = '0';  
     contents.style.width = width + 'px';  
     contents.style.height = (height - offset) + 'px';  
   
     boxdiv.contents = contents;  
     boxdiv.appendChild(contents);  
   
     move_box(an, boxdiv);  
   
     if (contents.contentWindow)  
         contents.contentWindow.document.location.replace(  
             href);  
     else  
         contents.src = href;  
   
     // The script has successfully shown the box,  
     // prevent hyperlink navigation.  
     return false;  
 }  
   
 function getAbsoluteDivs()  
 {  
     var arr = new Array();  
     var all_divs = document.body.getElementsByTagName("DIV");  
     var j = 0;  
   
     for (i = 0; i < all_divs.length; i++)  
         if (all_divs.item(i).style.position=='absolute')  
         {  
             arr[j] = all_divs.item(i);  
             j++;  
         }  
   
     return arr;  
 }  
   
 function bringToFront(obj)  
 {  
     if (!document.getElementsByTagName)  
         return;  
   
     var divs = getAbsoluteDivs();  
     var max_index = 0;  
     var cur_index;  
   
     // Compute the maximal z-index of  
     // other absolute-positioned divs  
     for (i = 0; i < divs.length; i++)  
     {  
         var item = divs[i];  
         if (item == obj ||  
             item.style.zIndex == '')  
             continue;  
   
         cur_index = parseInt(item.style.zIndex);  
         if (max_index < cur_index)  
         {  
             max_index = cur_index;  
         }  
     }  
   
     obj.style.zIndex = max_index + 1;  
 }  

