
function initDHTMLAPI() {
if (document.images) {
isCSS = (document.body && document.body.style) ? true : false;
isW3C = (isCSS && document.getElementById) ? true : false;
isIE4 = (isCSS && document.all) ? true : false;
isNN4 = (document.layers) ? true : false;
isIE6CSS = (document.compatMode && document.compatMode.indexOf("CSS1") >= 0) ? true : false;
}
}

window.onload = initDHTMLAPI;


function seekLayer(doc, name) {
var theObj;
for (var i = 0; i < doc.layers.length; i++) {
if (doc.layers[i].name == name) {
theObj = doc.layers[i];
break;
}

if (doc.layers[i].document.layers.length > 0) {
theObj = seekLayer(document.layers[i].document, name);
}
}
return theObj;
}


function getRawObject(obj) {
var theObj;
if (typeof obj == "string") {
if (isW3C) {
theObj = document.getElementById(obj);
} else if (isIE4) {
theObj = document.all(obj);
} else if (isNN4) {
theObj = seekLayer(document, obj);
}
} else {

theObj = obj;
}
return theObj;
}


function getObject(obj) {
var theObj = getRawObject(obj);
if (theObj && isCSS) {
theObj = theObj.style;
}
return theObj;
}


function shiftTo(obj, x, y) {
var theObj = getObject(obj);
if (theObj) {
if (isCSS) {

var units = (typeof theObj.left == "string") ? "px" : 0 
theObj.left = x + units;
theObj.top = y + units;
} else if (isNN4) {
theObj.moveTo(x,y)
}
}
}


function shiftBy(obj, deltaX, deltaY) {
var theObj = getObject(obj);
if (theObj) {
if (isCSS) {

var units = (typeof theObj.left == "string") ? "px" : 0 
theObj.left = getObjectLeft(obj) + deltaX + units;
theObj.top = getObjectTop(obj) + deltaY + units;
} else if (isNN4) {
theObj.moveBy(deltaX, deltaY);
}
}
}


function setZIndex(obj, zOrder) {
var theObj = getObject(obj);
if (theObj) {
theObj.zIndex = zOrder;
}
}


function setBGColor(obj, color) {
var theObj = getObject(obj);
if (theObj) {
if (isNN4) {
theObj.bgColor = color;
} else if (isCSS) {
theObj.backgroundColor = color;
}
}
}


function show(obj) {
var theObj = getObject(obj);
if (theObj) {
theObj.visibility = "visible";
}
}


function hide(obj) {
var theObj = getObject(obj);
if (theObj) {
theObj.visibility = "hidden";
}
}


function getObjectLeft(obj)  {
var elem = getRawObject(obj);
var result = 0;
if (document.defaultView) {
var style = document.defaultView;
var cssDecl = style.getComputedStyle(elem, "");
result = cssDecl.getPropertyValue("left");
} else if (elem.currentStyle) {
result = elem.currentStyle.left;
} else if (elem.style) {
result = elem.style.left;
} else if (isNN4) {
result = elem.left;
}
return parseInt(result);
}


function getObjectTop(obj)  {
var elem = getRawObject(obj);
var result = 0;
if (document.defaultView) {
var style = document.defaultView;
var cssDecl = style.getComputedStyle(elem, "");
result = cssDecl.getPropertyValue("top");
} else if (elem.currentStyle) {
result = elem.currentStyle.top;
} else if (elem.style) {
result = elem.style.top;
} else if (isNN4) {
result = elem.top;
}
return parseInt(result);
}


function getObjectWidth(obj)  {
var elem = getRawObject(obj);
var result = 0;
if (elem.offsetWidth) {
result = elem.offsetWidth;
} else if (elem.clip && elem.clip.width) {
result = elem.clip.width;
} else if (elem.style && elem.style.pixelWidth) {
result = elem.style.pixelWidth;
}
return parseInt(result);
}


function getObjectHeight(obj)  {
var elem = getRawObject(obj);
var result = 0;
if (elem.offsetHeight) {
result = elem.offsetHeight;
} else if (elem.clip && elem.clip.height) {
result = elem.clip.height;
} else if (elem.style && elem.style.pixelHeight) {
result = elem.style.pixelHeight;
}
return parseInt(result);
}



function getInsideWindowWidth() {
if (window.innerWidth) {
return window.innerWidth;
} else if (isIE6CSS) {

return document.body.parentElement.clientWidth
} else if (document.body && document.body.clientWidth) {
return document.body.clientWidth;
}
return 0;
}

function getInsideWindowHeight() {
if (window.innerHeight) {
return window.innerHeight;
} else if (isIE6CSS) {

return document.body.parentElement.clientHeight
} else if (document.body && document.body.clientHeight) {
return document.body.clientHeight;
}
return 0;
}


function DL_GetElementTop(eElement)
{
if (!eElement && this)
{                     
eElement = this;   
}                                         

var DL_bIE = document.all ? true : false; 

var nTopPos = eElement.offsetTop;         
var eParElement = eElement.offsetParent;  

while (eParElement != null)
{                                         
if(DL_bIE)                             
{
if(eParElement.tagName == "TD")     
{
nTopPos += eParElement.clientTop;
}
}
else                                   
{
if(eParElement.tagName == "TABLE")  
{                                   
var nParBorder = parseInt(eParElement.border);
if(isNaN(nParBorder))            
{                                
var nParFrame = eParElement.getAttribute('frame');
if(nParFrame != null)         
{
nTopPos += 1;              
}
}
else if(nParBorder > 0)          
{
nTopPos += nParBorder;        
}
}
}

nTopPos += eParElement.offsetTop;      
eParElement = eParElement.offsetParent;
}                                         
return nTopPos;                           
}


function DL_GetElementLeft(eElement) {
if (!eElement && this)                       
{                                            
eElement = this;                         
}                                            

var nLeftPos = eElement.offsetLeft;          
var eParElement = eElement.offsetParent;     
while (eParElement != null)
{                                            
nLeftPos += eParElement.offsetLeft;      
eParElement = eParElement.offsetParent;  
}
return nLeftPos;                             
}


function getYScrollOffset() {
yOffset = -1;
if (document.body.scrollTop) {
yOffset = document.body.scrollTop;
} else if (window.pageYOffset) {
yOffset = window.pageYOffset;
}
return yOffset;
}

var bubble_openTimeout = null;
var bubble_closeTimeout = null;

var BUBBLE_INTIME = 500;
var BUBBLE_OUTTIME = 500;

var bubble_inBubble = false;
var bubble_inLink = false;
var bubble_activeElement = null;


function bubble_Open(id,id2) {
bubble_openTimeout = null;
if (bubble_activeElement == null) {
element = document.getElementById(id);
if (element) {
element.style.display="block";
bubble_activeElement = id;
bubble_SetPosition(id,id2);
}
}
return false;
}

function bubble_MouseIn() {
bubble_inBubble = true;
bubble_inLink = false;
bubble_TryClose(bubble_activeElement);
}

function bubble_MouseOut() {
bubble_inBubble = false;
bubble_TryClose(bubble_activeElement);
}

function bubble_TryClose(id) {
if (bubble_inBubble || bubble_inLink) {
if (bubble_closeTimeout!=null) {
window.clearTimeout(bubble_closeTimeout);
bubble_closeTimeout = null;
}
} else {
bubble_closeTimeout = window.setTimeout("bubble_Close('" + id + "')",BUBBLE_OUTTIME);
}
}

function bubble_SetPosition(id,id2) {
var yOffset = getYScrollOffset();
var height = DL_GetElementTop(document.getElementById(id2))-getObjectHeight(id) + 10;
if (height < yOffset) {
height=DL_GetElementTop(document.getElementById(id2)) + 12;
element = document.getElementById(id);
element.className = "bubble bubbleTop";
} else {
element = document.getElementById(id);
element.className = "bubble bubbleBottom";
height = DL_GetElementTop(document.getElementById(id2))-getObjectHeight(id) + 2;
}
shiftTo(id,DL_GetElementLeft(document.getElementById(id2)),height);

}

function bubble_TryOpen(id,id2) {

if (bubble_activeElement != null && bubble_activeElement != id) { 
bubble_Close(bubble_activeElement);
bubble_activeElement = null;
}
bubble_inLink = true;
bubble_openTimeout = window.setTimeout("bubble_Open('" + id + "','" + id2 + "')",BUBBLE_INTIME);
bubble_TryClose(id);
}
function bubble_Cancel(id) {
bubble_inLink = false;
if (bubble_openTimeout != null) {
window.clearTimeout(bubble_openTimeout);
bubble_openTimeout = null;
}
bubble_TryClose(id);

}

function bubble_Close(id) {
element = document.getElementById(id);
if (element) {
element.style.display="none";
bubble_activeElement = null;
}
}
function bubble_Click(id, id2) {
if (bubble_activeElement == null) {
bubble_Open(id,id2);
} else {
bubble_Close(id);
}
}
