﻿this.ascent = this.ascent || {};
this.ascent.cms = this.ascent.cms || {};
this.ascent.cms.widgets = this.ascent.cms.widgets || {};
this.ascent.cms.widgets.header = this.ascent.cms.widgets.header || {};

if (!this.ascent.cms.widgets.header.initializeControls) {

    this.ascent.cms.widgets.header.initializeControls =
    function (options) {
        // путь к директории, откуда нужно подтягивать картинки
        var baseImgUrl = options.baseImgUrl || "/images/header/";
        // названия файлов картинок, которые нужно подтянуть заранее
        var srcs = options.srcs || [];

        // составляем полные пути к картинкам
        srcs = $.map(srcs, function (e, i) {
            return baseImgUrl + e;
        });
        // для каждый ссылки создаем невидимую картинку и добавляем ее в конец тела страницы (чтобы подгрузилась заранее)
        $.each(srcs, function (i, e) {
            $("<img class='pre-loading' style='display: none;'/>").attr("src", e).appendTo(document.body);
        });
        // просматриваем все элементы внутри враппера
        $(".offices-list-wrapper").find("*").each(function (i, e) {
            var self = $(this);
            var src = null;
            // если это картинка, то берем ее src
            if (self.is("img")) {
                src = self.attr("src");
            }
            // если элемент имеет background-image != none, то вырезаем ссылку из url(ссылка)
            if (self.css("background-image") && self.css("background-image") != "none") {
                src = self.css("background-image").substr(4);
                src = src.substr(0, src.indexOf(")"));
            }
            // если ссылка не была подгружена ранее
            if (src && $.inArray(src, srcs) == -1) {
                // добавляем ссылку в массив загруженных
                srcs.push(src);
                // создаем для нее невидимую картинку
                $("<img class='pre-loading' style='display: none;'/>").attr("src", src).appendTo(document.body);
            }
        });


        var officesList = $(".offices-list");
        // пути к файлам картинок для пункта списка городов
        var itemHoverImages = { "inactive": officesList.find(".item:eq(0) .img img").attr("src") };
        itemHoverImages.active = officesList.data("active-src") ? officesList.data("active-src") : itemHoverImages.inactive;

        // обработчики хэдэра списка
        $(".offices-list-header").hover(function () {
            var $self = $(this);
            var $img = $self.find(".img");
            var src = $img.data("active-src");
            // если в данных есть ссылка на "активную" картинку, то меняем на нее
            if (src) {
                $img.attr("src", src);
            }
        }, function () {
            var $self = $(this);
            var $img = $self.find(".img");
            var src = $img.data("inactive-src");
            // если в данных есть ссылка на "неактивную" картинку, то меняем на нее
            if (src) {
                $img.attr("src", src);
            }
        }).toggle(function () {
            var $self = $(this);
            $self.addClass("active");
            var $img = $self.find(".img img");
            var src = $img.data("clicked-src");
            // если в данных есть ссылка на "кликнутую" картинку, то меняем на нее
            if (src) {
                $img.attr("src", src);
            }
            // показываем список городов
            $(".offices-list").slideDown();
        }, function () {
            var $self = $(this);
            $self.removeClass("active");

            var $img = $self.find(".img img");
            var src = $img.data("inactive-src");
            // если в данных есть ссылка на "неактивную" картинку, то меняем на нее
            if (src) {
                $img.attr("src", src);
            }
            // прячем список городов
            $(".offices-list").slideUp('fast');
        });

        $(".offices-list-wrapper").click(function () {
            $(this).find(".offices-list-header").click();
        });

        // обработчики событий пунктов списка
        $(".offices-list .item").click(function () {
            var redirectUrl = $(this).data("redirect-url");
            // если есть редирект-ссылка в данных, то переходим на нее
            if (redirectUrl) {
                window.location.assign(redirectUrl);
            }
        })
	    .hover(function () {
	        $(this).find(".img img").attr("src", itemHoverImages.active);
	    }, function () {
	        $(this).find(".img img").attr("src", itemHoverImages.inactive);
	    });


        $(".flag-item").hover(function () {
            var $img = $(this).find("img").css("position", "relative");
            $img.animate({
                "height": "+=4px",
                "width": "+=4px"
            }, 100);
        }, function () {
            var $img = $(this).find("img");
            $img.animate({
                "height": "-=4px",
                "width": "-=4px"
            }, 100);
        });

    }
}

