/** @type {Object} неймспейс проекта */
DesignCafe = function(undef) {
    return {
        undefined : undef,
        _ajaxCounter : 0
    }
}();

/** @type {String} url для ajax запроса */
DesignCafe.AJAX_URI = '/json/';

/** @type {String} id сессии из командной строки */
DesignCafe.SESS_ID = '';
if (window.location.toString().match(/SESS_ID=(\d+)/))
    DesignCafe.SESS_ID = RegExp.$1;

/**
 * Выполняет Ajax запрос с JSON-ответом
 * @param {Object} data Данные
 * @param {Function} handler Обработчик
 */
DesignCafe.getJSON = function(data, handler) {
    if (DesignCafe.SESS_ID)
        data['SESS_ID'] = DesignCafe.SESS_ID;
    $.post(DesignCafe.AJAX_URI, data, handler, 'json');
}

DesignCafe.initAjax = function() {
    var $body = $(document.body);
    function waitingState(state) {
        if (state) {
            $body.addClass('waiting');
        } else {
            $body.removeClass('waiting');
        }
    }

    $(document)
        .ajaxStart(function() {
            waitingState(true);
        })
        .ajaxStop(function() {
            waitingState(false);
        })
        .ajaxError(function(event, XMLHttpRequest, ajaxOptions, thrownError) {
            alert('Произошла ошибка при загрузки данных. Поробуйте перезагрузить страницу.');
            waitingState(false);
        });
}

DesignCafe.overlayOpacity = .6;

