// Scripts for the uc-hint.asp
// ccHintId contains the id of the hint div
function ccStaticShowHint(e,hKey) {
    if (e.ctrlKey) {
        ccStaticShowHintWindow(e);
        ccStaticGetHint(hKey);
    }
}
function ccStaticShowHint2(e,hKey) {
    ccStaticShowHintWindow(e);
    ccStaticGetHint(hKey);
}
function ccStaticShowHintWindow(e) {
    var x = e.pageX, y = e.pageY;
    var w = (document.body.scrollWidth > 0)?document.body.scrollWidth:((document.documentElement.scrollWidth > 0)?document.documentElement.scrollWidth:0);
    var h = (document.body.scrollHeight > 0)?document.body.scrollHeight:((document.documentElement.scrollHeight > 0)?document.documentElement.scrollHeight:0);
    var l = (document.body.scrollLeft)?document.body.scrollLeft:((document.documentElement.scrollLeft)?document.documentElement.scrollLeft:window.pageXOffset);
    var t = (document.body.scrollTop)?document.body.scrollTop:((document.documentElement.scrollTop)?document.documentElement.scrollTop:window.pageYOffset);
    t = (t)?t:0;
    l = (l)?l:0;
    
    if (w >= 0 && h >= 0) {
        //alert(w + "\t" + h + "\n" + x + "\t" + y);
        w = w + l;
        h = h + t;
        
        if (w - x < ccHintWindowWidth) {
            x = w - ccHintWindowWidth;
        }
        if (h - y < ccHintWindowHeight) {
            y = h - ccHintWindowHeight;
        }
    }
    var dHint = EL(ccHintId);
    dHint.style.left = x + "px";
    dHint.style.top = y + "px";
    dHint.style.display = "block";
}
function ccStaticHideHint() {
    var dHint = EL(ccHintId);
    dHint.style.display = "none";
}

var ccHintAsyncLoader = window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
var timeSpent = 0;
function ccStaticGetHint(hKey) {
    EL(ccHintId + "_Content").innerHTML = "Loading ...";
    if (ccHintAsyncLoader.readyState != 0) {
        ccHintAsyncLoader.abort();
    }
    timeSpent = 0;
    ccHintAsyncLoader.open("GET","/hint.asp?hint=" + hKey,true);
    ccHintAsyncLoader.send(null);
    setTimeout(ccStaticHintComplete,500);
}
function ccStaticHintComplete() {
    timeSpent += 1000;
    var dText = EL(ccHintId + "_Content");
    if (timeSpent > 5000) {
        dText.innerHTML = "Timeout occured!";
        timeSpent = 0;
        ccHintAsyncLoader.abort();
    } else {
        if (ccHintAsyncLoader.readyState == 4) {
            // var ct = ccHintAsyncLoader.getResponseHeader("content-type");
            dText.innerHTML = ccHintAsyncLoader.responseText;
            timeSpent = 0;
        } else {
            setTimeout(ccStaticHintComplete,1000);
        }
    }
}
