/**
 * Класс для работы с интерфейсом страницы
 * @type {Object}
 */
Umnitsa.Interface = {
    submitForm : function(el) {
        var p = el;
        while ((p = p.parentNode) && (p.tagName.toLowerCase() !== 'form'));
        if (p.tagName.toLowerCase() === 'form') {
            if(!p.__submited){
                p.__submited = true;
                p.submit();
            }
        }
    }
};


/**
 * Настройки показа телефона
 * @param {Object} params параметры
 */
Umnitsa.Interface.Phone = function(params) {
    var params = mergeHash(params, {
        fadeDuration : 300
    });

    var $phone = $(document.getElementById('phone-l'));
    if ($phone.length) {
        var $big = $phone.siblings('div').eq(0);
        var bigHTML = $big.html();
        var $layer = $(document.createElement('div'))
            .addClass('phone-big')
            .html(bigHTML)
            .hide()
            .appendTo(document.body);
        if (Browser.isIE6) {
            $layer.addClass('png').css('position', 'absolute');
        }
        $big.remove();
        function _close() {
            Umnitsa.Overlay.hide();
            $layer.fadeOut(params.fadeDuration);
        }
        $phone.hover(
            function(e) {
                if (!this._origHTML)
                    this._origHTML = this.innerHTML;

                this.innerHTML = '<small>&nbsp;</small>Показать крупно';
            },
            function() {
                this.innerHTML = this._origHTML;
            }
        )
        .click(function(e) {
            Umnitsa.Overlay.show();
            if (Browser.isIE6) {
                $layer.css({
                    position : 'absolute',
                    top : document.documentElement.clientHeight/2 + document.documentElement.scrollTop
                });
            }
            $layer.fadeIn(params.fadeDuration);
            e.stopImmediatePropagation();
            $(document).one('click', _close);
        });
    }
}

/**
 * Настройка показа промо-облаков
 * @param {Object} params
 */
Umnitsa.Interface.Clouds = function(params) {
    var params = mergeHash(params, {
        fadeDuration : 800,
        defaultTimeout : 10
    });

    var $clouds = $('#header .cloud').hide();
    var $activeCloud;
    var idx = -1;

    function showNextCloud() {
        idx ++;
        if (idx == $clouds.length) {
            idx = 0;
        }
        if ($activeCloud) {
            $activeCloud.css('zIndex', 1).fadeOut(params.fadeDuration);
        }
        $activeCloud = $clouds.eq(idx).css('zIndex', 2);
        $activeCloud.fadeIn(params.fadeDuration, function() {
            var timeout = $(this).find('input').val() || params.defaultTimeout;
            window.setTimeout(showNextCloud, timeout * 1000);
        });
    }

    showNextCloud();
}

/**
 * Настройка показа бокового меню
 * @param {Object} params
 */
Umnitsa.Interface.SideBarMenu = function(params) {
    var params = mergeHash(params, {
        slideDuration : 200
    });
    var $menu = $(document.getElementById('side-bar')).find('.menu');
    $menu.find('span').click(function(e) {
        e.stopPropagation();
        $(this.parentNode).toggleClass('e').children('ul').slideToggle(params.slideDuration);
        return false;
    });
    var $active = $menu.find('.active');
    if ($active.length) {
        $active.parentsUntil('.menu').filter('ul').show().parent().addClass('e');
    }
}

/**
 * Настройка главного меню
 * @param {Object} params
 */
Umnitsa.Interface.MainMenu = function(params) {
    var params = mergeHash(params, {
        fadeInDuration : 300,
        fadeOutDuration : 150
    });

    var $menu = $(document.getElementById('main-menu'));
    var $items = $menu.find('.item');
    for (var i = 0; i < $items.length; i++) {
        var $i = $items.eq(i);
        var $a = $i.find('.a');
        var o = $i.get(0);
        o._hover = $(document.createElement('a'))
            .addClass('au').html($a.html()).appendTo($i).hide()
            .add($i.find('.sub'));
        if (!Umnitsa.disableFade) {
            o._hover.css('opacity', 0);
        }
        if ($a.get(0).tagName === 'A') {
            o._hover.attr('href', $a.attr('href'));
        }
        o._z = $i.find('.z');
    }
    var overH = function() {
        this._hover.show().stop().animate({
            opacity : 1
        }, params.fadeInDuration, 'swing');
        if (this._z) {
            this._z.stop().animate({
                opacity : 0
            }, params.fadeInDuration, 'swing');
        }
    };
    var outH = function() {
        this._hover.stop().animate({
            opacity : 0
        }, params.fadeOutDuration, 'swing', function() {
            $(this).hide();
        });
        if (this._z) {
            this._z.stop().animate({
                opacity : 1
            }, params.fadeOutDuration, 'swing');
        }
    };
    if (Umnitsa.disableFade) {
        overH = function() {
            this._hover.show();
            if (this._z) {
                this._z.hide();
            }
        };
        outH = function() {
            this._hover.hide();
            if (this._z) {
                this._z.show();
            }
        };
    }
    $items.hover(overH, outH);
}

Umnitsa.Interface.GeoPopup = function() {
    var SHOW_DELAY = 3000,
        FADE_DURATION = 250,
        COOKIE_NAME = 'Geo.Popup';

    var flag = Cookies.get(COOKIE_NAME);

    var $popup = $('#geo-popup'),
         $popupBtn = $('#geo-popup-btn');

    function show() {
        if (($.browser.msie) && ($.browser.version < 9)) {
            $popup.show();
            $popupBtn.hide();
        } else{
            $popup.fadeIn(FADE_DURATION);
            $popupBtn.fadeOut(FADE_DURATION);
        }
    }
    function hide() {
        if (($.browser.msie) && ($.browser.version < 9)) {
            $popup.hide();
            $popupBtn.show();
        } else{
            $popup.fadeOut(FADE_DURATION);
            $popupBtn.fadeIn(FADE_DURATION);
        }
    }
    if ($popup.length) {
        $popupBtn.click(show);
        $popup.find('.popup-close').click(hide);
        if (!flag) {
            window.setTimeout(show, SHOW_DELAY);
            Cookies.set(COOKIE_NAME, 1, '+1d', '/', '.umnitsa.ru');
        }
    }
}

Umnitsa.Interface.SplashScreen = function(options) {
    var COOKIE_NAME = 'SplashScreen';

    var opt = $.extend({
        width : 860,
        height : 640
    }, options);

    var flag = Cookies.get(COOKIE_NAME);

    if ((!flag) && (swfobject.hasFlashPlayerVersion('9.0.0'))) {
        Umnitsa.Overlay.show();
        var $l = $(document.createElement('div'))
            .css({
                position : 'fixed',
                zIndex : 9999,
                left : '50%',
                top : '50%',
                width : opt.width,
                height : opt.height,
                marginLeft : -opt.width / 2,
                marginTop : -opt.height / 2,
            })
            .html('<div id="main-splash-screen"></div>')
            .appendTo(document.body);
        if (Browser.isIE6) {
            $l.css('position','absolute');
        }
        swfobject.embedSWF(opt.src,"main-splash-screen", opt.width, opt.height,"9.0.0","",{},{"background":"#ffffff","wmode":"opaque"},{"align":"center"});
        Cookies.set(COOKIE_NAME, 1, '+1d', '/', '.umnitsa.ru');
        window.disablePopup = function() {
            $l.remove();
            Umnitsa.Overlay.hide();
        }
    }
}

