﻿// Show a "what's this?" overlay at the cursor position
function showOverlay(overlayDiv, side, containerId) {
    var popups = getElementsByClass('positionedOverlay', document, 'div');
    for (i = 0; i < popups.length; i++) {
        popups[i].style.visibility = "hidden";
    }
    var theDiv = document.getElementById(overlayDiv);
    AssignPosition(theDiv, side, containerId);
}
// Hide a "what's this" overlay
function hideOverlay(overlayDiv) {
    document.getElementById(overlayDiv).style.visibility = "hidden";
}
function getElementsByClass(searchClass, node, tag) {
    var classElements = new Array();
    if (node == null)
        node = document;
    if (tag == null)
        tag = '*';
    var els = node.getElementsByTagName(tag);
    var elsLen = els.length;
    for (i = 0, j = 0; i < elsLen; i++) {
        if (els[i].className.indexOf(searchClass) > -1) {
            classElements[j] = els[i];
            j++;
        }
    }
    return classElements;
}

// Utility code to determine where the overlay is to be displayed
var cX = 0; var cY = 0;
var rX = 0; var rY = 0;
var divY = 0;
if (document.all) { document.onmousemove = UpdateCursorPositionDocAll; }
else { document.onmousemove = UpdateCursorPosition; }
function UpdateCursorPosition(e) { cX = e.pageX; cY = e.pageY; }
function UpdateCursorPositionDocAll(e) { cX = event.clientX; cY = event.clientY; }
function AssignPosition(d, side, containerId) {
    var pageX = 0;
    if (containerId != null)
        pageX = findPos(document.getElementById(containerId))[0];

    if (self.pageYOffset) {
        rX = self.pageXOffset;
        rY = self.pageYOffset;
    }
    else if (document.documentElement && document.documentElement.scrollTop) {
        rX = document.documentElement.scrollLeft;
        rY = document.documentElement.scrollTop;
    }
    else if (document.body) {
        rX = document.body.scrollLeft;
        rY = document.body.scrollTop;
    }
    if (document.all) {
        cX += rX;
        cY += rY;
    }
    d.style.marginLeft = "-5000px";
    d.style.visibility = "visible";

    divY = cY - (d.clientHeight);
    if (divY < 0)
        divY = 0;
    d.style.marginLeft = "0";
    //d.style.top = (divY) + "px";

//    if (side == 'left') {
//        d.style.right = (cX - pageX + 10) + "px";
//    } else {
//        d.style.left = (cX - pageX + 10) + "px";
//    }
}

function findPos(obj) {
    var curleft = curtop = 0;
    if (obj.offsetParent) {
        do {
            curleft += obj.offsetLeft;
            curtop += obj.offsetTop;
        } while (obj = obj.offsetParent);
    }
    return [curleft, curtop];
}
function getElementsByClass(searchClass, node, tag) {
    var classElements = new Array();
    if (node == null)
        node = document;
    if (tag == null)
        tag = '*';
    var els = node.getElementsByTagName(tag);
    var elsLen = els.length;
    for (i = 0, j = 0; i < elsLen; i++) {
        if (els[i].className.indexOf(searchClass) > -1) {
            classElements[j] = els[i];
            j++;
        }
    }
    return classElements;
}

function checkSelection(itemSelector, msg) {
    var selectedItems = $(itemSelector);
    if (selectedItems.length == 1) {
        if (selectedItems.val().length <= 0)
            return confirm(msg);
    }
    return true;
}

