﻿// Holds a setTimeout id for the onmouseout event, so it can be cancelled at a later time.
var languageSelectorAutoClose;

// Opens or closes the language selector drop down
function openCloseLanguageSelector() {
    div = document.getElementById('divLanguageSelector');
    div.style.display = (div.style.display != 'block' ? 'block' : 'none');
}

// Returns true is childNode is or is a child of parentNode.
function isChildOf(parentNode, childNode) {
    if (parentNode == childNode) return true;

    if (parentNode && parentNode.childNodes)
        for (var i = 0; i < parentNode.childNodes.length; i++)
        if (isChildOf(parentNode.childNodes[i], childNode))
        return true;

    return false;
}

// Sets up a timeout to close the language selector in 500 ms.
// If the users hovers back over the language selector, the timeout is canceled.
function closeLanguageSelector(container, e) {
    if (!isChildOf(container, e.relatedTarget))
        languageSelectorAutoClose = setTimeout("closeLanguageSelectorNow();", 500);
}

// Cancels the timeout set to close the language selector.
function cancelCloseLanguageSelector() {
    if (languageSelectorAutoClose) {
        clearTimeout(languageSelectorAutoClose);
        languageSelectorAutoClose = null;
    }
}

// Forces the language selector to close. It also clears the language selector timeout.
function closeLanguageSelectorNow() {
    cancelCloseLanguageSelector();
    div = document.getElementById('divLanguageSelector');
    div.style.display = 'none';
}