﻿
var uti = new Object();


uti.getElement = function (key)
{
    if (!key)
        return;
    
    var ele;
		
    if (document.getElementById)
        ele = document.getElementById(key);
    else
        ele = document.all[key];

    return ele;
}


uti.getdXdY = function (e)
{
    var evt = e || window.event;
    var dX = evt.layerX || evt.offsetX;
    var dY = evt.layerY || evt.offsetY;

    return {x: dX, y: dY};
}


uti.onMouseClickCB;


uti.onMouseClick = function (e)
{
    if (!uti.onMouseClickCB)
        return true;

    var xy = uti.getdXdY(e);        

    return uti.onMouseClickCB(this, xy.x, xy.y);
}


uti.innerHTML = function (key, text)
{
    var ele = uti.getElement(key);
    
    if (!ele)
        return;
    if (text)
        ele.innerHTML = text;
    
    return ele.innerHTML;
}


uti.pukey = null;
uti.bboxkey = null;
uti.puvisibility = 'hidden';


uti.popupMove = function (e)
{
    if (uti.pukey == null)
        return true;

    var evt = e || window.event;
    var bb = uti.getElement(uti.bboxkey);
    var pu = uti.getElement(uti.pukey);
    var cw = pu.clientWidth;
    var ch = pu.clientHeight;
    var margin = 5;
    var north = margin;
    var east = bb.clientWidth - cw - margin;
    var south = bb.clientHeight - ch - margin;
    var west = margin;
    var xy = uti.getdXdY(e);        


    var posX = xy.x - (cw / 2);
    if (posX > east)
        posX = east;
    if (posX < west)
        posX = west;

    var posY = xy.y + 25;
    if (posY > south)
        posY = xy.y - ch - 10;
    if (posY > south)
        posY = south;
    if (posY < north)
        posY = north;
    
    posX += bb.offsetLeft;
    posY += bb.offsetTop;

    pu.style.left = posX + 'px';
    pu.style.top = posY + 'px';
    pu.style.visibility = uti.puvisibility;
}


uti.popupHide = function (key)
{
    if (!key || (key == null))
        return;

    uti.puvisibility = 'hidden';
}


uti.popupInit = function (key, bboxkey)
{
    var k = key || uti.pukey;
    

    var ele = uti.getElement(key);
    if (!ele)
        return;
        
    uti.pukey = key;
    uti.bboxkey = bboxkey;
    ele.innerHTML = '';
    ele.style.position = 'absolute';
    ele.style.visibility = 'hidden';
    uti.puvisibility = 'hidden';
}


uti.popup = function (key, bboxkey, text)
{
    var k = key || uti.pukey;
    

    if (!text)
    {
      uti.popupHide(k);
      return;
    }

    var ele = uti.getElement(key);
    if (!ele)
        return;
        
    uti.pukey = key;
    uti.bboxkey = bboxkey;
    ele.innerHTML = text;
    ele.style.position = 'absolute';
    ele.style.zIndex = '1';
    uti.puvisibility = 'visible';
}

