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

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

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

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

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

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



/**
 * Настраиваем настоящее челябинское время
 */
Hotel74.Clocks = function() {
    var clocks = $(document.getElementById('clocks')).get(0);

    var l = new Date();
    var zoneOffset = (Hotel74.TIME_ZONE_OFFSET + l.getTimezoneOffset()) * 60000;
    function timerHandler() {
        var local = new Date();
        var date = new Date(local.getTime() + zoneOffset);
        var h = date.getHours();
        var m = date.getMinutes();
        if (h < 10)
            h = '0' + h;
        if (m < 10)
            m = '0' + m;
        var s = date.getSeconds();
        clocks.innerHTML = h + '<span>:</span>' + m;
        clocks.className = (s % 2 == 0) ? 'sh' : '';
    }
    timerHandler();

    var timer = window.setInterval(timerHandler, 500);
};

Hotel74.TextureBackground = function() {
    var $right = $(document.getElementById('right'));
    var top = $right.offset().top + $right.outerHeight() + 20;
    var $bg = $(document.createElement('div'))
        .addClass('tt-bg')
        .css({
            top : top
        })
        .html('<div></div>')
        .appendTo(document.body);
};

