// Loading DIV

if (typeof(Prototype) != 'undefined') {

    var loadingFlags = new $H();

    var showLoading = function(divId) {

        var alreadyLoading = loadingFlags[divId];

        //  alert ('alreadyLoading = ' + alreadyLoading);

        if (!alreadyLoading) {

            var loadedDiv = $(divId);

            if (!loadedDiv) {
                return false;
            }

            loadedDiv.style.zIndex = 1;
            loadedDiv.style.position = 'relative';

            var loadingDiv = $(divId + 'Loading');

            if (!loadingDiv) {

                //  alert ('creating new div');

                loadingDiv = document.createElement('div');
                loadingDiv.id = divId + 'Loading';
                loadingDiv.className= 'transparentbg';
                loadingDiv.style.zIndex = 2;
                loadingDiv.style.position = 'absolute';
                loadingDiv.style.cursor = 'wait';
                var loadedDivParent = loadedDiv.parentNode;
                loadedDivParent.appendChild(loadingDiv);
            }

            loadingDiv.style.left = loadedDiv.offsetLeft + 'px';
            loadingDiv.style.top = loadedDiv.offsetTop + 'px';
            loadingDiv.style.width = loadedDiv.offsetWidth + 'px';
            loadingDiv.style.height = loadedDiv.offsetHeight + 'px';
            loadingDiv.style.display = 'block';

            loadingFlags[divId] = true;
        }
    };

    var hideLoading = function(divId) {

        var alreadyLoading = loadingFlags[divId];

        //  alert ('alreadyLoading = ' + alreadyLoading);

        if (alreadyLoading) {
            var loadingDiv = $(divId + 'Loading');

            if (!loadingDiv) {
                return false;
            }

            loadingDiv.style.display = 'none';

            loadingFlags[divId] = false;
        }
    };

}


// DWR error handler

if (typeof(dwr) != 'undefined' &&
    typeof(dwr.engine) != 'undefined' &&
    typeof(dwr.util) != 'undefined') {

    var qualErrorHandler = function(message) {
        var messageDescription = 'Exception message: ';
        if (typeof message == 'object' && message.name == 'Error' && message.description) {
            messageDescription += message.description;
        }
        else {
            messageDescription += message;
        }

        if (messageDescription.indexOf('Authentication') != -1 &&
            messageDescription.indexOf('SecurityContext') != -1) {
            window.location = 'welcome.html';
        }
    };

    dwr.engine.setErrorHandler(qualErrorHandler);
    dwr.util.setEscapeHtml(false);
}
