﻿var delay;

function doDelayShowContact(me)
{
    doSetContactPosition(me);
    if(delay) { // we're transitioning to hidden 
        doCancelShowHideContact(); // cancel hide 
        doShowContact(me.id);
    } else {
        delay = window.setTimeout('doShowContact(\'' + me.id + '\')', 250)
    }
}
        
function doDelayHideContact(me)
{
    delay = window.setTimeout('doHideContact()', 500);
}

function doCancelShowHideContact()
{
    if(delay) window.clearTimeout(delay);
    delay = null;
}

function doHideContact()
{
    doSetContactVisibility(false);        
}
        
function doShowContact(id)
{
    doRenderContactInfo(id);
    doSetContactVisibility(true);
}

function doGetContactElement()
{
    return document.getElementById('divContact');
}

function doRenderContactInfo(id) 
{
    var el = document.getElementById(id);
    if(el && el.nextSibling) {
        var info = el.nextSibling.value.split(",");
        var div = doGetContactElement();
        
        doFindChildElement(div, 'h3', 0).innerHTML = info[0];
        doRenderContactField(div, 0, info[1]);
        doRenderContactField(div, 1, info[2]);
        doRenderContactField(div, 2, info[3]);                
        doRenderContactField(div, 3, info[4]);                
    }
}

function doRenderContactField(el, num, value)
{
    var field = doFindChildElement(el, 'div', num);
    var span = 
        doFindChildElement(
            doFindChildElement(field, 'span', 0), 'span', 0);
    if(span) span.innerHTML = value;
    doSetDivVisibility(field, value && value.length > 0);
}

function changeAt(e) {
    var email = e.href.substring(7, e.href.length);
    var addr = email.replace(new RegExp("\'nobots\'"), '\@');
    e.href = 'mailto:' + email;
    e.innerText = email;
    return true;    
}

function doSetContactPosition(me)
{
    var x = 0, y = 0;
    var parent = me;
    while (parent) {
        x += parent.offsetLeft;
        y += parent.offsetTop;
        parent = parent.offsetParent;
    };

    var el = doGetContactElement();
    if(el) {
        el.style["top"] = (y - 24) + 'px';
        el.style["left"] = (x + me.offsetWidth) + 'px';
    }
}

function doGetElementPosition(me, x, y)
{
    x = 440; y = 400;

}

function doGetContactVisibility()
{
    var el = doGetContactElement();
    if(el) return el.style["display"] != 'none';
    return false;
}

function doSetContactVisibility(vis)
{
    var el = doGetContactElement();
    doSetDivVisibility(el, vis);
    delay = null;
}

function doSetDivVisibility(div, vis)
{
    if(div) { div.style["display"] = vis?'block':'none'; }        
}