if (typeof ice !== "undefined") {
    // init ICEfaces event handlers
    (function() {

        var startRequest;

        ice.onBeforeSubmit(function(source, userInitiated) {
            startRequest = new Date();
            util.style.showBusyAnimation();
            extendSession();
        });

        ice.onBeforeUpdate(function(updates) {
            util.log.duration(startRequest, "ice call " + updates.URL);
        });

        ice.onAfterUpdate(function(updates) {
            util.style.hideBusyAnimation();
        });

        var errorHandler = function(statusCode, description) {
            util.style.hideBusyAnimation();
            var errorText = "Unexpected error occurred: ";
            if (!!description) {
                errorText += description.substring(0, 500);
            } else {
                errorText += statusCode;
            }
            util.log.error(errorText);
            util.style.showElement("unexpectedErrorDialog");
        }

        ice.onNetworkError(errorHandler);
        ice.onServerError(errorHandler);
    })(jQuery);
}
