/**
 * aka void main()
 */
$(function() {

    Impex.initAjax();
    Impex.Gallery();
    Impex.Search();
    Impex.ScrollBar();
    //Impex.Gallery();

});


/**
 * Глобальный неймспейс
 */
Impex = new Object();

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

//----- Общие настройки---------------------------------------------------------

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

/** @type {Number} Значение прозрачности для оверлея */
Impex.overlayOpacity = 0.6;

/** @type {string} Значение цвета для оверлея */
Impex.overlayColor = "#333333";

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

//------------------------------------------------------------------------------

//----- Общие функции ----------------------------------------------------------

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

/**
 * Настройки для Ajax запросов
 */
Impex.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);
        });
}

/**
 *  Слой - оверлей
 */
Impex.Overlay = function(){
    var $overlay = null;

    function _show(){
        if (!$overlay){
              $overlay = $(document.createElement('div'))
                         .addClass('overlay')
                         .css({
                              opacity: Impex.overlayOpacity
                         }).hide()
                         .appendTo(document.body);
        }
        $overlay.show();
        if (Browser.isIE6)
            $overlay.css({
                position : 'absolute',
                height : document.body.scrollHeight
            });
    }

    function _hide(){
        $overlay.hide();
    }

    return {
        show: function(){
            _show();
        },
        hide: function(){
            _hide();
        },
        onclick: function(handler){
            $overlay.unbind("click");
            $overlay.click(handler);
        }
    }
}();

//------------------------------------------------------------------------------

//----- Интерфейсные функции ---------------------------------------------------

// Показ видео-ролика из шапки сайта
Impex.Video = function(params){
    var video = $("#video");
    if(video.length>0){
        var code = $(video).find(".hd");
        $(video).find(".v-show").fancybox({ autoScale: false,
                                            titleShow: false,
                                            overlayOpacity: Impex.overlayOpacity,
                                            overlayColor: Impex.overlayColor,
                                            width: 640,
                                            height: 350,
                                            href: params.href,
                                            type: 'swf',
                                            swf: params.fvars });
    }
}

// инициализация галерей на сайте
Impex.Gallery = function(){
    $(".gallery a, a[rel='fancy']").fancybox({ overlayOpacity: Impex.overlayOpacity,
                                               overlayColor: Impex.overlayColor,
                                               titlePosition: "over"})
}

// инициализация формы поиска
Impex.Search = function(){
    $("#search-input").focus(function(){ this.className = 'focused'; })
                      .blur(function(){ if (this.value == '') { this.value = this.defaultValue; this.className = '';} });
}

// инициализация блока с прокруткой
Impex.ScrollBar = function(){
    $(".scroll-it").jScrollPane()
}


//------------------------------------------------------------------------------
