var defaultEmptyOK = false;

var whitespace = " \t\n\r";

var digitsInZIPCode1 = 5
var digitsInZIPCode2 = 9

var digitsInUSPhoneNumber = 10;

var currentDivQ;
var mousex = 0 ;
var mousey = 0;

var firstClick = false;

var contextPath;
var lastKeynum;


function isEmpty(s)
{
    return ((s == null) || (s.length == 0))
}


function isWhitespaceThere(s)

{
    var i;

    for (i = 0; i < s.length; i++)
    {
        var c = s.charAt(i);

        if (c == ' ') return true;
    }

    return false;
}


function isWhitespace(s)

{
    var i;

    if (isEmpty(s)) return true;

    for (i = 0; i < s.length; i++)
    {
        var c = s.charAt(i);

        if (whitespace.indexOf(c) == -1) return false;
    }

    return true;
}

function stripWhitespace(s)

{
    return stripCharsInBag(s, whitespace)
}

function stripCharsInBag(s, bag)

{
    var i;
    var returnString = "";

    for (i = 0; i < s.length; i++)
    {
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }

    return returnString;
}

function isEmail(s)
{

    if (isEmpty(s))
        if (isEmail.arguments.length == 1) return defaultEmptyOK;
        else return (isEmail.arguments[1] == true);

    if (isWhitespace(s)) return false;

    var i = 1;
    var sLength = s.length;

    while ((i < sLength) && (s.charAt(i) != "@"))
    {
        i++
    }

    if ((i >= sLength) || (s.charAt(i) != "@")) return false;
    else i += 2;

    while ((i < sLength) && (s.charAt(i) != "."))
    {
        i++
    }

    if ((i >= sLength - 1) || (s.charAt(i) != ".")) return false;
    else return true;
}


function checkEmail(theField, emptyOK)
{

    if (checkEmail.arguments.length == 1) emptyOK = defaultEmptyOK;
    if ((emptyOK == true) && (isEmpty(theField.value))) return true;
    else if (!isEmail(theField.value, false)) {

        return false;
    }
    else return true;
}

function isYear(s)
{
    if (isEmpty(s))
        if (isYear.arguments.length == 1) return defaultEmptyOK;
        else return (isYear.arguments[1] == true);
    if (!isNonnegativeInteger(s)) return false;
    return ((s.length == 2) || (s.length == 4));
}

function isNonnegativeInteger(s)
{
    var secondArg = defaultEmptyOK;

    if (isNonnegativeInteger.arguments.length > 1)
        secondArg = isNonnegativeInteger.arguments[1];
    return (isSignedInteger(s, secondArg)
            && ( (isEmpty(s) && secondArg) || (parseInt(s) >= 0) ) );
}

function isSignedInteger(s)

{
    if (isEmpty(s))
        if (isSignedInteger.arguments.length == 1) return defaultEmptyOK;
        else return (isSignedInteger.arguments[1] == true);

    else {
        var startPos = 0;
        var secondArg = defaultEmptyOK;

        if (isSignedInteger.arguments.length > 1)
            secondArg = isSignedInteger.arguments[1];

        // skip leading + or -
        if ((s.charAt(0) == "-") || (s.charAt(0) == "+"))
            startPos = 1;
        return (isInteger(s.substring(startPos, s.length), secondArg))
    }
}

function isLetter(c)
{
    return ( ((c >= "a") && (c <= "z")) || ((c >= "A") && (c <= "Z")) )
}


function isDigit(c)
{
    return ((c >= "0") && (c <= "9"))
}


function isLetterOrDigit(c)
{
    return (isLetter(c) || isDigit(c))
}


function isInteger(s)

{
    var i;

    if (isEmpty(s))
        if (isInteger.arguments.length == 1) return defaultEmptyOK;
        else return (isInteger.arguments[1] == true);

    for (i = 0; i < s.length; i++)
    {
        // Check that current character is number.
        var c = s.charAt(i);

        if (!isDigit(c)) return false;
    }

    return true;
}

function isZIPCode(s)
{
    if (isEmpty(s))
        if (isZIPCode.arguments.length == 1) return defaultEmptyOK;
        else return (isZIPCode.arguments[1] == true);
    return (isInteger(s) &&
            ((s.length == digitsInZIPCode1) ||
             (s.length == digitsInZIPCode2)))
}

function isUSPhoneNumber(s)
{
    if (isEmpty(s))
        if (isUSPhoneNumber.arguments.length == 1) return defaultEmptyOK;
        else return (isUSPhoneNumber.arguments[1] == true);
    return (isInteger(s) && s.length == digitsInUSPhoneNumber)
}

function isIntegerInRange(s, a, b)
{
    if (isEmpty(s))
        if (isIntegerInRange.arguments.length == 1) return defaultEmptyOK;
        else return (isIntegerInRange.arguments[1] == true);

    if (!isInteger(s, false)) return false;

    var num = parseInt(s);
    return ((num >= a) && (num <= b));
}


function isMonth(s)
{
    if (isEmpty(s))
        if (isMonth.arguments.length == 1) return defaultEmptyOK;
        else return (isMonth.arguments[1] == true);
    return isIntegerInRange(s, 1, 12);
}


function isDay(s)
{
    if (isEmpty(s))
        if (isDay.arguments.length == 1) return defaultEmptyOK;
        else return (isDay.arguments[1] == true);
    return isIntegerInRange(s, 1, 31);
}

function showDialog(divToShow) {
    var showthis = document.getElementById(divToShow);
    if (showthis.style.visibility == 'visible') {
        //
        showthis.style.visibility = "hidden";
        showthis.style.display = "none";
    } else {
        showthis.style.borderStyle = "double";
        showthis.style.zIndex = 100;
        showthis.style.display = "block";

        var top = document.body.clientHeight / 2 + showthis.offsetHeight / 2 ;
        var left = document.body.clientWidth / 2 + showthis.offsetWidth / 2;

        showthis.style.pixelLeft = 100;
        showthis.style.pixelTop = 100;

        showthis.style.visibility = "visible";
        showthis.style.display = "block";
    }

}

function isAlphabetic(s)

{
    var i;

    if (isEmpty(s))
        if (isAlphabetic.arguments.length == 1) return defaultEmptyOK;
        else return (isAlphabetic.arguments[1] == true);

    for (i = 0; i < s.length; i++)
    {
        var c = s.charAt(i);

        if (!isLetter(c))
            return false;
    }

    return true;
}

function isAlphanumeric(s)

{
    var i;

    if (isEmpty(s))
        if (isAlphanumeric.arguments.length == 1) return defaultEmptyOK;
        else return (isAlphanumeric.arguments[1] == true);

    var isNumeric = false;
    var isAlpha = false;
    for (i = 0; i < s.length; i++)
    {
        var c = s.charAt(i);

        if (isLetter(c))
            isNumeric = true;
        else if (isDigit(c))
            isAlpha = true;
    }

    if (isNumeric && isAlpha)
        return true;
    else
        return false;
}

function getAge(mm, dd, yyyy) {

    var now = new Date();
    var today = new Date(now.getFullYear(), now.getMonth(), now.getDate());

    var yearNow = now.getFullYear();
    var monthNow = now.getMonth();
    var dateNow = now.getDate();

    var dob = new Date(yyyy, mm, dd);
    var yearDob = dob.getFullYear();
    var monthDob = dob.getMonth();
    var dateDob = dob.getDate();

    yearAge = yearNow - yearDob;

    if (monthNow < monthDob) {
        yearAge--;
        var monthAge = 12 + monthNow - monthDob;
    }

    if (dateNow < dateDob)
    {
        monthAge--;
        var dateAge = 31 + dateNow - dateDob;

        if (monthAge < 0) {
            monthAge = 11;
            yearAge--;
        }
    }

    return yearAge;

}

function showSaveSummaryDialog(message)
{
    window.open('SaveSummaryAction.do?message=' + message, 'SaveSummary', 'top=100,left=100,width=700,height=600,toolbar=no,titlebar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,copyhistory=no,resizable=no');
}

function openPopup(page, name)
{
    window.open(page, name, 'top=400,left=400,width=600,height=500,toolbar=no,titlebar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,copyhistory=no,resizable=yes');
}
function forgotPwdEnterKey(e)
{
    var keynum
    if (window.event) // IE
    {
        keynum = e.keyCode;
    } else if (e.which) // Netscape/Firefox/Opera
    {
        keynum = e.which;
    }
    if (keynum == 13)
    {
        if (document.getElementById('forgotEmail').value.length > 2)
        {
            forgotPwdDCMD(document.getElementById('forgotEmail').value);
        } else
        {
            document.getElementById('forgotStatus').innerHTML = "Please enter an email";
            return;
        }
    }
}

function checkEnterKey(theForm, e, accessHome) {
    if (window.event) keynum = e.keyCode;
    else if (e.which) keynum = e.which;

    if (keynum == 13)
    {
        if (accessHome)
        {
            theForm.action = "LogonAction.do";
            theForm.method = "post";
            theForm.submit();
        } else
            loginDCMD(document.getElementById('logonName').value, document.getElementById('logonPassword').value);
    }
    else return;
}

function moveToPassword(theForm, e)
{
    if (window.event) keynum = e.keyCode;
    else if (e.which) keynum = e.which;

    if (keynum == 13) {
        document.getElementById('logonPassword').focus();
        return false;
    }
}

function moveOnEnter(field, e)
{
    if (window.event) keynum = e.keyCode;
    else if (e.which) keynum = e.which;

    if (keynum == 13) {
        document.getElementById(field).focus();
        return false;
    }
}

function callOnEnter(func, e)
{
    if (window.event) keynum = e.keyCode;
    else if (e.which) keynum = e.which;

    if (keynum == 13) return func();
}

function register() {
    top.location = "Register.do";

}

function toggleCheckBox(fullVer, theCheckbox) {
    var z = 0;
    if (fullVer.checked) {
        for (i = 0; i < theCheckbox.length; i++)
        {
            theCheckbox[i].checked = false;

        }
    }
}

function savesummary(pCommand) {
    if (pCommand == undefined)
        pCommand = "update";
    document.forms['saveSummaryForm'].elements['command'].value = pCommand;
    document.forms['saveSummaryForm'].submit();

}

function savesummaryas(pCommand) {
    if (pCommand == undefined)
        pCommand = "updateas";
    document.forms['saveSummaryForm'].elements['command'].value = pCommand;
    document.forms['saveSummaryForm'].elements['summaryName'].value = document.getElementById('summaryName2').value;
    document.forms['saveSummaryForm'].submit();

}


function fetchAnswer(divQ, qId, oEvent) {

    currentDivQ = divQ;

    getMouseXY(oEvent);
    document.forms['answerForm2'].elements['answerDataName'].value = qId;
    document.forms['answerForm2'].submit();
}

function fecthTellMeMore(divQ, tmId, contentKindP) {
    var divo = document.getElementById("tellMeMorePerTM");
    if (divo.style.visibility == "visible") {
        divo.innerHTML = "";
        divo.style.visibility = "hidden";
    }
    currentDivQ = divQ;

    if (contentKindP != undefined) {
        document.tellMeMoreForm.contentKind.value = contentKindP;
    } else {
        document.tellMeMoreForm.contentKind.value = "TreatmentMessage";
    }
    document.tellMeMoreForm.action = "TellMeMoreAction.do";
    document.tellMeMoreForm.contentId.value = tmId;
    document.tellMeMoreForm.target = "loadTellMeMore";
    document.tellMeMoreForm.submit();

}

function showTellMeMore(divQ, tmId, contentKindP, urlP, oEvent) {

    currentDivQ = divQ;
    if (oEvent)
        getMouseXY(oEvent);
    var divo = document.getElementById("div_container");
    if (divo.style.visibility == "visible") {
        document.getElementById("div_container_holder").innerHTML = "";
        divo.style.visibility = "hidden";
    }
    createXMLHttpRequestG();
    //alert(xmlHttp);
    var url = "TellMeMoreAction.do";
    if (urlP != undefined)
        url = urlP;
    xmlHttpGlobal.open("POST", url, true);
    xmlHttpGlobal.onreadystatechange = callbackTMM;
    xmlHttpGlobal.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    if (contentKindP != undefined) {
        params = "contentId=" + tmId + "&requestMethod=2&contentKind=" + contentKindP;
    } else {
        params = "contentId=" + tmId + "&requestMethod=2&contentKind=TreatmentMessage";
    }
    xmlHttpGlobal.send(params);
}

function callbackTMM() {
    if (xmlHttpGlobal.readyState == 4) {
        if (xmlHttpGlobal.status == 200) {

            var responseText = xmlHttpGlobal.responseText;
            setTellMeMoreNoFrame(responseText);

        }
    }
}

function setTellMeMoreNoFrame(htmlText) {


    var divo = document.getElementById("div_container");
    mousex = calculateWindow(mousex, divo);
    divo.style.left = mousex + "px";

    divo.style.top = (mousey + 5) + "px";

    document.getElementById("div_container_holder").innerHTML = htmlText;
    document.getElementById("div_container_holder").style.display = "block";
    document.getElementById("div_container_holder").style.visibility = "visible";
    divo.style.display = "block";
    divo.style.visibility = "visible";
    firstClick = true;
}

function hideTellMeMore() {
    // hide popups
    _hideAllPopups();

    firstClick = false;
}

var preloadFlag = false;
function preloadImages() {
    if (document.images) {
        preloadFlag = true;
    }
}

//show & hide
function showMenu(targetId) {
    if (document.getElementById) {
        target = document.getElementById(targetId);
        if (target)  target.style.display = "block";
    }
}
function hideMenu(targetId) {
    if (document.getElementById) {
        target = document.getElementById(targetId);
        if (target)   target.style.display = "none";
    }
}
function newImage(arg) {
    if (document.images) {
        rslt = new Image();
        rslt.src = arg;
        return rslt;
    }
}

function changeImages() {
    if (document.images && (preloadFlag == true)) {
        for (var i = 0; i < changeImages.arguments.length; i += 2) {
            document[changeImages.arguments[i]].src = changeImages.arguments[i + 1];
        }
    }
}


// hiding a toggle div also hides the div it toggles on/of
//
function hideToggleDiv(divContainer, divClicked, divToHide, additionalCaption)
{
    var hidethis = document.getElementById(divToHide);
    if (hidethis.style.visibility == 'visible') {
        toggleDiv(divContainer, divClicked, divToHide, additionalCaption)
    }

    hide(divToHide);
}

function toggleDiv(divContainer, divClicked, divToShow, additionalCaption) {

    var showthis = document.getElementById(divToShow);


    if (showthis.style.visibility == 'visible') {
        //
        showthis.style.visibility = "hidden";
        showthis.style.display = "none";


        if (additionalCaption != undefined)
            divClicked.innerHTML = additionalCaption;
        else
            divClicked.innerHTML = "<b>Show</b>";
    } else {
        showthis.style.visibility = "visible";
        showthis.style.display = "block";
        if (additionalCaption != undefined)
            divClicked.innerHTML = "Hide " + additionalCaption;
        else
            divClicked.innerHTML = "<b>Hide</b>";


    }
    firstClick = true;

}

function toggleSource(divClicked, sourceDiv, tmm1, tmm2, additionalCaption) {

    var showthis = document.getElementById(sourceDiv);


    if (showthis.style.visibility == 'visible') {
        //
        showthis.style.visibility = "hidden";
        showthis.style.display = "none";


        if (additionalCaption != undefined)
            divClicked.innerHTML = additionalCaption;
        else
            divClicked.innerHTML = "<b>Show</b>";


    } else {
        showthis.style.visibility = "visible";
        showthis.style.display = "block";

        if (additionalCaption != undefined)
            divClicked.innerHTML = "Hide " + additionalCaption;
        else
            divClicked.innerHTML = "<b>Hide</b>";

    }


}


function displayDiv(divName, contentDiv)
{

    if (document.getElementById(divName) && document.getElementById(contentDiv)) {
        //alert(document.getElementById(divName).innerHTML);
        document.getElementById(contentDiv).innerHTML = document.getElementById(divName).innerHTML;

    }
}


function showBubble(meaning, divClickedObj)
{
    var obj1TopX = getLeft(divClickedObj) ;
    var obj1TopY = getTop(divClickedObj);
    //alert(obj1TopX);
    var obj1BottomX = obj1TopX - 80;
    var obj1BottomY = obj1TopY + divClickedObj.offsetHeight + 3;

    divContainerObj = document.getElementById("bubble_container");
    divContainerObjBody = document.getElementById("bubble_container_body");
    divContainerObjBody.innerHTML = meaning;

    divContainerObj.style.left = obj1BottomX + "px";
    divContainerObj.style.top = obj1BottomY + "px";

    divContainerObj.style.visibility = "visible";
    divContainerObj.style.display = "block";
}


function showDiv2(oEvent, divToShow, divClicked) {

    getMouseXY(oEvent);
    var divo = document.getElementById(divToShow);
    mousex = calculateWindow(mousex, divClicked);
    divo.style.left = mousex + "px";

    divo.style.top = (mousey + 5) + "px";
    divo.style.visibility = "visible";
    divo.style.display = "block";

}

function showDiv(divClicked, divToShow) {

    var showOrHide = divClicked.innerHTML;
    var showthis = document.getElementById(divToShow);
    if (showOrHide == "Hide...") {
        divClicked.innerHTML = "More...";
        showthis.style.visibility = "hidden";
        showthis.style.display = "none";
    } else {
        divClicked.innerHTML = "Hide...";
        showthis.style.visibility = "visible";
        showthis.style.display = "block";
    }

}

function showInfoURL(divClicked, urlToShow, frameToLoad) {

    var frameToLoadObj = document.getElementById(frameToLoad);
    frameToLoadObj.src = urlToShow;

    var divContainerObj = document.getElementById("div_" + frameToLoad);

    if (divContainerObj != undefined && divContainerObj.style.visibility == "visible") {
        divContainerObj.style.visibility = "hidden";

    }
    //calculate where this divClicked
    var parent = divClicked.offsetParent;
    var top = 0;
    var left = 0;
    if (parent) {
        top = parent.offsetTop;
        left = parent.offsetLeft;

    }
    for (var i = 0; i < 10; i++) {
        parent = parent.offsetParent;
        if (parent) {
            top += parent.offsetTop;
            left += parent.offsetLeft;
        } else {
            break;
        }
    }
    divContainerObj.style.pixelLeft = divClicked.offsetLeft + left;
    divContainerObj.style.pixelTop = divClicked.offsetTop + divClicked.clientHeight + top + divClicked.offsetHeight;
    divContainerObj.style.visibility = "visible";
    divContainerObj.style.display = "block";

}

function showInfoInline(divToShow)
{
    var divContainerObj = document.getElementById(divToShow);
    //divContainerObj.style.height = "400px";
    //divContainerObj.style.overflow = "auto";
    divContainerObj.style.visibility = "visible";
    divContainerObj.style.display = "block";
}

function showInfo(divClicked, divToShow, divContainer, oEvent) {


    var divClickedObj = divClicked;
    var showthis = document.getElementById(divToShow);
    var divContainerObj = document.getElementById(divContainer);
    var divContainerHolder = document.getElementById(divContainer + "_holder");

    if (oEvent)
        getMouseXY(oEvent);

    if (divContainerObj != undefined && divContainerObj.style.visibility == "visible") {
        divContainerObj.style.visibility = "hidden";
    }
    if (divContainerObj != undefined) {

        //alert(mousex+ ":"+ mousey + "="+ divContainerHolder+":"+divToShow);

        if (showthis != undefined)
            divContainerHolder.innerHTML = showthis.innerHTML;
        divContainerHolder.style.visibility = "visible";
        divContainerHolder.style.display = "block";
        divContainerObj.style.visibility = "visible";
        divContainerObj.style.display = "block";
        mousex = calculateWindow(mousex, divContainerObj);
        divContainerObj.style.left = mousex + "px";
        divContainerObj.style.top = mousey + "px";
        firstClick = true;
    } else {
        //alert(divContainerHolder);

        if (showthis != undefined)
            divContainerHolder.innerHTML = showthis.innerHTML;
        divContainerHolder.style.visibility = "visible";
        divContainerHolder.style.display = "block";
        mousex = calculateWindow(mousex, divContainerHolder);
        divContainerHolder.style.left = mousex + "px";
        divContainerHolder.style.top = mousey + "px";
        firstClick = true;
    }

}

function showTMM(divClicked, divContainer, oEvent, title_, tmm, source_, tmm2) {


    var divClickedObj = divClicked;
    var showthis = document.getElementById(tmm);
    var showTMM2 = document.getElementById(tmm2);
    var showTitle = document.getElementById(title_);
    var showSource = document.getElementById(source_);
    var divContainerObj = document.getElementById(divContainer);
    var divTitle = document.getElementById(divContainer + "_title");
    var divSource = document.getElementById(divContainer + "_source");
    var divSourceLink = document.getElementById(divContainer + "_source_link");
    var divContainerTMM = document.getElementById(divContainer + "_tmm");
    var divContainerTMM2 = document.getElementById(divContainer + "_tmm2");
    var divContainerTMM2LINK = document.getElementById(divContainer + "_tmm2_link");

    if (oEvent)
        getMouseXY(oEvent);

    if (divContainerObj != undefined && divContainerObj.style.visibility == "visible") {
        divContainerObj.style.visibility = "hidden";
    }


    //alert("calle" +divContainerObj);

    if (divContainerObj != undefined) {

        //alert(mousex+ ":"+ mousey + "="+ divContainerHolder+":"+divToShow);

        if (showTitle != undefined)
        {
            divTitle.innerHTML = showTitle.innerHTML;
            divTitle.style.visibility = "visible";
            divTitle.style.display = "block";
        } else
        {
            divTitle.innerHTML = "";
            divTitle.style.visibility = "hidden";
            divTitle.style.display = "none";
        }


        var trimmed = showthis.innerHTML.replace(/^\s+|\s+$/g, '') ;

        if (trimmed && trimmed.length > 0)
        {

            divContainerTMM.innerHTML = trimmed;
            divContainerTMM.style.visibility = "visible";
            divContainerTMM.style.display = "block";
        } else
        {
            divContainerTMM.innerHTML = "";
            divContainerTMM.style.visibility = "hidden";
            divContainerTMM.style.display = "none";
        }


        var trimmed2 = showTMM2 ? showTMM2.innerHTML.replace(/^\s+|\s+$/g, '') : "" ;

        if (trimmed2.length > 0)
        {


            divContainerTMM2LINK.style.visibility = "visible";
            divContainerTMM2LINK.style.display = "block";


            divContainerTMM2.innerHTML = trimmed2;
            divContainerTMM2.style.visibility = "hidden";
            divContainerTMM2.style.display = "none";
            divContainerTMM2LINK.innerHTML = "MORE ...";


        }
        else {

            divContainerTMM2LINK.style.visibility = "hidden";
            divContainerTMM2LINK.style.display = "none";
            divContainerTMM2.innerHTML = "";
            divContainerTMM2.style.visibility = "hidden";
            divContainerTMM2.style.display = "none";
        }
        if (showSource)
        {
            divSource.innerHTML = showSource.innerHTML;
            divSource.style.visibility = "hidden";
            divSource.style.display = "none";
            divSourceLink.style.visibility = "visible";
            divSourceLink.style.display = "block";
            divSourceLink.innerHTML = "SOURCE +";
        } else
        {
            divSourceLink.style.visibility = "hidden";
            divSourceLink.style.display = "none";
            divSource.innerHTML = "";
            divSource.style.visibility = "hidden";
            divSource.style.display = "none";
            divSourceLink.innerHTML = "";
        }

        divContainerObj.style.visibility = "visible";
        divContainerObj.style.display = "block";

        mousex = calculateWindow(mousex, divContainerObj);


        divContainerObj.style.left = mousex + "px";
        divContainerObj.style.top = mousey + "px";
        firstClick = true;

    }

}

function calculateWindow(mousex, objContainer)
{
    return calculateWindowX(mousex, objContainer.offsetWidth);
}

function calculateWindowX(mousex, offsetWidth)
{
    var x,y;
    if (self.innerHeight) // all except Explorer
    {
        x = self.innerWidth;
        y = self.innerHeight;
    }
    else if (document.documentElement && document.documentElement.clientHeight)
    // Explorer 6 Strict Mode
    {
        x = document.documentElement.clientWidth;
        y = document.documentElement.clientHeight;
    }
    else if (document.body) // other Explorers
        {
            x = document.body.clientWidth;
            y = document.body.clientHeight;
        }

    if ((mousex + offsetWidth) > x) {
        mousex = x - offsetWidth - 50;
    }

    return mousex;
}


function setTellMeMore(divChild) {
    var divo = document.getElementById("tellMeMorePerTM");
    var parent = currentDivQ.offsetParent;


    var top = 0;
    var left = 0;
    if (parent) {
        top = parent.offsetTop;
        left = parent.offsetLeft;

    }
    for (var i = 0; i < 20; i++) {
        parent = parent.offsetParent;
        if (parent) {
            top += parent.offsetTop;
            left += parent.offsetLeft;
        } else {
            break;
        }
    }
    divo.innerHTML = divChild.innerHTML;
    divo.style.pixelLeft = currentDivQ.offsetLeft + left;


    divo.style.pixelTop = currentDivQ.offsetTop + currentDivQ.clientHeight + top + currentDivQ.offsetHeight;


    divo.style.visibility = "visible";
    divo.style.display = "block";
}


function getMouseXY(e) // works on IE6,FF,Moz,Opera7
{
    if (!e) e = window.event; // works on IE, but not NS (we rely on NS passing us the event)

    if (e)
    {
        if (e.pageX || e.pageY)
        { // this doesn't work on IE6!! (works on FF,Moz,Opera7)
            mousex = e.pageX;
            mousey = e.pageY;
            algor = '[e.pageX]';
            if (e.clientX || e.clientY) algor += ' [e.clientX] '
        }
        else if (e.clientX || e.clientY)
        { // works on IE6,FF,Moz,Opera7
            // Note: I am adding together both the "body" and "documentElement" scroll positions
            //       this lets me cover for the quirks that happen based on the "doctype" of the html page.
            //         (example: IE6 in compatibility mode or strict)
            //       Based on the different ways that IE,FF,Moz,Opera use these ScrollValues for body and documentElement
            //       it looks like they will fill EITHER ONE SCROLL VALUE OR THE OTHER, NOT BOTH
            //         (from info at http://www.quirksmode.org/js/doctypes.html)
            mousex = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
            mousey = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
            algor = '[e.clientX]';
            if (e.pageX || e.pageY) algor += ' [e.pageX] '
        }
    }
}
function setAnswerList(divChild, qId, drugName, sxName) {

    var divo = document.getElementById("div_answer_container");
    //alert(mousex + ":"+ mousey );


    //position under it
    divo.style.visibility = "visible";
    divo.style.display = "block";


    divo.style.width = 550 + "px";
    mousex = calculateWindow(mousex, divo);
    divo.style.left = mousex + "px";
    divo.style.top = (mousey + 5) + "px";
    divo.style.zIndex = 100;
    document.getElementById("div_answer_container_holder").innerHTML = "<form action='EditAnswer.do' name='answerForm' method='post' target='_top'>"
            + "<input type=hidden name='command' value='postAnswer' >" + "<input type='hidden' name='answerDataName' value='" + qId + "' >" +
                                                                       divChild.innerHTML;

    divChild.innerHTML = "";
    firstClick = true;
    if (drugName != null && drugName.length > 0) {
        reloadDrugs(drugName);
    }
    if (sxName != null && sxName.length > 0) {
        reloadSx(sxName);
    }

}

function setLocation(loc) {
    window.top.location = loc;
}

function submitToForm(formObj, targetName, actionName, openAttr) {

    if (openAttr != undefined) {
        window.open("blank.jsp", targetName, openAttr);
    }

    if (targetName != undefined)
        formObj.target = targetName;

    if (actionName != undefined)
        formObj.action = actionName;
    //alert(formObj);
    formObj.submit();
}

function submitToFAQForm(formObj, targetName, actionName, attributes, faqIdP) {

    if (faqIdP != undefined)
        formObj.faqID.value = faqIdP;
    else
        formObj.faqID.value = '0';
    submitToForm(formObj, targetName, actionName, attributes);
}

function submitToSaveForm(formObj, targetName, actionName, attributes, actionValue, summaryIdValue) {

    window.name = "icdmainwindow";
    formObj.command.value = actionValue;
    formObj.summaryId.value = summaryIdValue;

    submitToForm(formObj, targetName, actionName, attributes);

}

function submitToReportForm(formObj, summaryIdValue) {
    formObj.surveyDataSetId.value = summaryIdValue;


    submitToForm(formObj);

}

function isForSelf(conditionName, loc) {

    if (conditionName == 'false') {
        show('div_forSelf');
    } else {
        document.forms['conditionForm'].action = "SurveyAction.do";
        document.forms['conditionForm'].target = "_top";
        document.forms['conditionForm'].takingForSelf.value = "false";
        document.forms['conditionForm'].submit();
    }
}

function goToSurvey(forSelfQ, thisform) {
    var chosen = "";

    if (forSelfQ != undefined) {
        for (i = 0; i < forSelfQ.length; i++)
        {
            if (forSelfQ[i].checked == true)
            {
                chosen = forSelfQ[i].value;
                break;
            }
        }
        thisform.takingForSelf.value = chosen;
    } else {
        thisform.takingForSelf.value = "false";
    }
    thisform.target = "_top";
    thisform.action = "SurveyAction.do";
    thisform.submit();
}


function showMoreMessage(divQ, tmId) {
    var divo = document.getElementById("d_showMoreMessage");
    if (divo.style.visibility == "visible") {
        divo.innerHTML = "";
        divo.style.visibility = "hidden";
    }

    currentDivQ = divQ;
    document.tellMeMoreForm.action = "MyConditionSummary.do";
    document.tellMeMoreForm.target = "i_showMoreMessage";
    document.tellMeMoreForm.contentId.value = tmId;
    document.tellMeMoreForm.submit();
}

function setShowMoreMessage(divChild) {
    var divo = document.getElementById("d_showMoreMessage");
    var parent = currentDivQ.offsetParent;

    var top = 0;
    var left = 0;
    if (parent) {
        top = parent.offsetTop;
        left = parent.offsetLeft;

    }
    for (var i = 0; i < 20; i++) {
        parent = parent.offsetParent;
        if (parent) {
            top += parent.offsetTop;
            left += parent.offsetLeft;
        } else {
            break;
        }
    }
    divo.innerHTML = divChild.innerHTML;
    divo.style.pixelLeft = currentDivQ.offsetLeft + left;
    divo.style.pixelTop = currentDivQ.offsetTop + currentDivQ.clientHeight + top + currentDivQ.offsetHeight;

    divo.style.visibility = "visible";
    divo.style.display = "block";

}

function setAltTag(num, img) {
    switch (num) {

        case 0:

            img.alt = "Not available";
            break;
        case 1:
            img.alt = "Poor";
            break;

        case 2:
            img.alt = "Fair";
            break;

        case 3:
            img.alt = "Good";
            break;

        case 4:
            img.alt = "Very Good";
            break;
        case 5:
            img.alt = "Excellent";
            break;

    }
}

var divClosed = false;
function flagClose(divShown) {
    divClosed = true;
    hide(divShown);
    hideCurtain();
}
wpcFolder_LEFT = 'Left';
wpcFolder_MIDDLE = 'Middle';
wpcFolder_RIGHT = 'Right';
wpcFolder_IS_SELECTED = "isSelected";
wpcFolder_SELECTED_CLASS = "selectedClass";
wpcFolder_UNSELECTED_CLASS = "unselectedClass";

function wpcFolder_toggleTabs(selectTabs, unselectTabs) {
    var tabArr = selectTabs.split(',');

    for (var i = 0; i < tabArr.length; i++) {
        wpcFolder_selectTab(tabArr[i]);
    }
    var tabArr = unselectTabs.split(',');

    for (var i = 0; i < tabArr.length; i++) {
        wpcFolder_unselectTab(tabArr[i]);
    }
}

function toggleTabs(selectTabs, unselectTabs) {
    var tabArr = selectTabs.split(',');

    for (var i = 0; i < tabArr.length; i++) {
        selectTab(tabArr[i]);
    }
    var tabArr = unselectTabs.split(',');

    for (var i = 0; i < tabArr.length; i++) {
        unselectTab(tabArr[i]);
    }
}

function setPath(rootPath)
{

    contextPath = rootPath;
}

function selectTab(theTabId) {


    imageObj = document.getElementById("tab_" + theTabId);
    if (imageObj != null) {
        if (contextPath)
            imageObj.src = contextPath + "/skins/base/images/tab_" + theTabId + "_on.gif";
        else
            imageObj.src = "skins/base/images/tab_" + theTabId + "_on.gif";
    }
    if (document.getElementById("tab_" + theTabId + "_left"))
    {
        document.getElementById("tab_" + theTabId + "_left").className = 'tab_left_on';
        document.getElementById("tab_" + theTabId + "_middle").className = 'tab_title_on';
        document.getElementById("tab_" + theTabId + "_right").className = 'tab_right_on';
    }


}

function unselectTab(theTabId) {

    imageObj = document.getElementById("tab_" + theTabId);
    if (imageObj != null) {
        if (contextPath)
            imageObj.src = contextPath + "/skins/base/images/tab_" + theTabId + "_off.gif";
        else
            imageObj.src = "skins/base/images/tab_" + theTabId + "_off.gif";
    }

    if (document.getElementById("tab_" + theTabId + "_left"))
    {
        document.getElementById("tab_" + theTabId + "_left").className = 'tab_left_off';
        document.getElementById("tab_" + theTabId + "_middle").className = 'tab_title_off';
        document.getElementById("tab_" + theTabId + "_right").className = 'tab_right_off';
    }
}

function wpcFolder_selectTab(theTabId) {

    theCell = document.getElementById(theTabId + wpcFolder_MIDDLE);
    if (theCell != null) {
        theCell.className = theCell.getAttribute(wpcFolder_SELECTED_CLASS);
        theCell.setAttribute(wpcFolder_IS_SELECTED, "true");
    }

}

function wpcFolder_unselectTab(theTabId) {

    theCell = document.getElementById(theTabId + wpcFolder_MIDDLE);
    if (theCell != null) {
        theCell.className = theCell.getAttribute(wpcFolder_UNSELECTED_CLASS);
        theCell.setAttribute(wpcFolder_IS_SELECTED, "false");
    }
}

function wpcFolder_setTabLocation(tabId, newLocation) {
    var theDiv = document.getElementById(tabId);
    var theFrame = theDiv.firstChild;

    while (theFrame != null && theFrame.tagName != "IFRAME") {
        theFrame = theFrame.nextSibling;
    }
    theFrame.setAttribute("src", newLocation);
}

function wpcFolder_tabIsSelected(tabId) {
    var returnMe = false;
    theCell = document.getElementById(tabId + wpcFolder_LEFT);
    if (theCell != null) {
        if (theCell.getAttribute(wpcFolder_IS_SELECTED) == "true") {
            returnMe = true;
        }
    }
    return returnMe;
}

function saveDTEval(divClicked, divContainer) {
    var divClickedObj = divClicked;
    var divContainerObj = document.getElementById(divContainer);

    if (divContainerObj != undefined) {

        var obj1TopX = getLeft(divClickedObj);
        var obj1TopY = getTop(divClickedObj);
        var obj1BottomX = obj1TopX - (divClickedObj.offsetWidth * 2 - 50);
        var obj1BottomY = obj1TopY + divClickedObj.offsetHeight + 3;
        divContainerObj.style.left = obj1BottomX + "px";
        divContainerObj.style.top = obj1BottomY + "px";

        divContainerObj.style.visibility = "visible";
        divContainerObj.style.display = "block";

    }

}


function goDTHome() {
    document.location = "DTHome.do";
}


function loadSaveEval()
{
    createXMLHttpRequest();
    var url = "DTHome.do";

    xmlHttpRequest.onreadystatechange = callbackHome;
    xmlHttpRequest.open("POST", url, true);
    xmlHttpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    params = "loginClient=true";

    xmlHttpRequest.send(params);
}

function callbackHome()
{
    if (xmlHttpRequest)
    {
        if (xmlHttpRequest.readyState == 4) {
            if (xmlHttpRequest.status == 200) {
                var rtn = xmlHttpRequest.responseText;
                document.getElementById("loggedInAction").innerHTML = "<a href=\"javascript:void(0)\" " +
                                                                      "onMouseOver=\"showMenu('registeredBox'); return true;\"  >" +
                                                                      "<img src=\"skins/base/images/mySavedEvaluations.gif\" alt=\"My saved evaluations\" width=\"106\" " +
                                                                      "height=\"37\" border=\"0\"  ></a>";
                document.getElementById("savedContentBox").innerHTML = rtn;

            }
        }
    }
}

var _username;
var _pw;
var _email;
var _registerdata;
var _forumsid;

function registerUserForForum(username, pw, email) {
    createXMLHttpRequest();
    xmlHttpRequest.open("POST", "/forum/profile.php", false);
    xmlHttpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    _registerdata = "mode=register&agreed=true&username=" + username;
    _registerdata += "&email=" + email + "&new_password=" + pw + "&password_confirm=" + pw + "&coppa=0&submit=Submit";
    _username = username;
    _pw = pw;
    _email = email;

    if (_forumsid)
        senddataset = _registerdata + "&sid=" + _forumsid;
    else
        senddataset = "mode=register&agreed=true";

    //alert(senddataset + _forumsid);
    if (_forumsid)
        xmlHttpRequest.onreadystatechange = loginForum;
    else
        xmlHttpRequest.onreadystatechange = getSid;


    xmlHttpRequest.send(senddataset);

    //    xmlHttpRequest = null;
}
function loginForum()
{
    if (xmlHttpRequest.readyState == 4) {
        if (xmlHttpRequest.status == 200) {
            //alert(xmlHttpRequest.responseText);
            loginUserForForum(_username, _pw);

        }
    }

}

function getSid() {

    if (xmlHttpRequest.readyState == 4) {
        if (xmlHttpRequest.status == 200) {
            document.getElementById("message_head").className = "hideDiv";
            document.getElementById("message_head").innerHTML = xmlHttpRequest.responseText;
            _forumsid = document.getElementById("siddiv").innerHTML;
            //alert(_forumsid);
            if (_forumsid)
                registerUserForForum(_username, _pw, _email);
        }
    }
}


function loginUserForForum(username, pw) {
    createXMLHttpRequest();

    xmlHttpRequest.open("POST", "/forum/login.php", true);
    xmlHttpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    registerdata = "login=Log in&username=" + username + "&password=" + pw;

    xmlHttpRequest.onreadystatechange = showMessage;
    xmlHttpRequest.send(registerdata);

}

function showMessage() {

    if (xmlHttpRequest.readyState == 4) {
        if (xmlHttpRequest.status == 200) {
            //alert(xmlHttpRequest.responseText);
            //document.getElementById("message_head").innerHTML= xmlHttpRequest.responseText;
        }
    }
}

function mouseoverImage(imgObj, imgName) {
    imgObj.src = "skins/base/images/" + imgName + "_ov.gif";

}


function mouseoutImage(imgObj, imgName) {
    imgObj.src = "skins/base/images/" + imgName + ".gif";

}

function getClassName(node) {
    if (node.className) return node.className;
    //	else if(node.class) return node.class;
    else return "";
}

function setClassName(node, className) {
    //	node.class = className;
    node.className = className;
}

function inputFocus(node) {
    if (!(node || node.inputFrame)) return;

    var frameElements = node.inputFrame.getElementsByTagName("td");
    if (frameElements[0]) {
        for (var i = 0; i < frameElements.length; i++) {
            var className = getClassName(frameElements[i]);
            if (className && className.match(/^input/) && !className.match(/Focus$/)) setClassName(frameElements[i], className + "Focus");
        }
    }
}

function inputBlur(node) {
    if (!(node || node.inputFrame)) return;

    var frameElements = node.inputFrame.getElementsByTagName("td");
    if (frameElements[0]) {
        for (var i = 0; i < frameElements.length; i++) {
            var className = getClassName(frameElements[i]);
            if (className && className.match(/^input.*Focus$/)) setClassName(frameElements[i], className.slice(0, className.length - 5));
        }
    }
}

function setupFocusBlurEvents() {
    if (!document.getElementsByTagName) return false;

    var inputs = document.getElementsByTagName("input");
    if (inputs[0]) {
        for (var i = 0; i < inputs.length; i++) {
            if (inputs[i].type == "text" || inputs[i].type == "password") {
                var inputFrame = inputs[i];
                while (inputFrame = inputFrame.parentNode) {
                    if (getClassName(inputFrame) == "inputFrame") break;
                }
                if (inputFrame) {
                    inputs[i].inputFrame = inputFrame;
                    inputs[i].onfocus = function() {
                        inputFocus(this);
                    }
                    inputs[i].onblur = function() {
                        inputBlur(this);
                    }
                    if (inputs[i].tabIndex == 1) inputFocus(inputs[i]);
                }
            }
        }
    }
    var textAreas = document.getElementsByTagName("textarea");
    if (textAreas[0]) {
        for (var i = 0; i < textAreas.length; i++) {
            var inputFrame = textAreas[i];
            while (inputFrame = inputFrame.parentNode) {
                if (getClassName(inputFrame) == "inputFrame") break;
            }
            if (inputFrame) {
                textAreas[i].inputFrame = inputFrame;
                textAreas[i].onfocus = function() {
                    inputFocus(this);
                }
                textAreas[i].onblur = function() {
                    inputBlur(this);
                }
            }
        }
    }
}

function defaultOnload() {
    preloadImages();
    //    setupFocusBlurEvents();
    try {
        curentPageInit();
    }
    catch(e) {
    }
}

function confirmDeleteReport(id, name) {
    var msg = "Are you sure you want to delete '" + name + "' ?";
    var okFunc = function() {
        deleteReport(id);
    };
    showOkCancelBox(msg, okFunc);
}

function deleteReport(id) {
    $.ajax({
        type: "GET",
        url: "/deleteReport.do",
        data: {id: id},
        cache: false,
        success: function () {
            hide("okcancelBox");
            $("#report" + id).remove();
        }
    });
}

function viewReport(id) {
    $.ajax({
        type: "GET",
        url: "/loadReport.do",
        data: {id: id},
        cache: false,
        success: function () {
            window.location = "DTHome.do";
        }
    });
}