/** IE **/
if (!Array.indexOf) {
    Array.prototype.indexOf = function(let) {
        for(i = 0; i < this.length; i++) {
            if (this[i] == let) return i;
        }
        return -1;
    }
}

/** Распечатать объект. **/
function printObject(inputObject) {
    var list = inputObject + '\n';
    for (var prop in inputObject) {
        list += 'Свойство: ' + prop + ' значение: ' + inputObject[prop] + '\n';
    }
    list += '\n';
    return list;
}

// ID верхнего меню.
var topMenuSelected = []; 

/** Глобальные переменные. **/
var projectsView = [];
var projectsCount = 0;
var newsView = [];
var newsViewCount = 0;

var brendDescr = [];
var brendUrl = [];
var brendCount = 0;

var collectionDescr = [];
var collectionUrl = [];
var collectionCount = 0;

var newsContent = [];
var newsAnnotation = [];

/** Отображение окна загрузчика. **/
function showLoader() {
    var loader = document.getElementById('loader');
    if (loader) loader.style.display = "block";
}

/** Скрыть окно загрузчика. **/
function hideLoader() {
    var loader = document.getElementById('loader');
    if (loader) loader.style.display = "none";
}

/** Отображение окна сообщения. **/
function showMsg() {
    var msg = document.getElementById('timeout_server');
    if (msg) msg.style.display = "block";
}

/** Скрыть окно сообщения. **/
function hideMsg() {
    var msg = document.getElementById('timeout_server');
    if (msg) msg.style.display = "none";
}

/** Выделить пункт верхнего меню. **/
function topMenuSelectItem(id) {
    var topMenu = document.getElementById('topMenu');
    if (!topMenu) return;
    var topMenuItems = topMenu.getElementsByTagName('a');
    for (var i = 0; i < topMenuItems.length; ++i) {
        var elem = topMenuItems[i];
        topMenuSelected[elem.id] = false;
        if (elem.className.match(/\bnavi_select\b/)) {
            var tmp = elem.className.replace(/\bnavi_select\b/, 'navi_element');
            elem.className = tmp;
        }
        if ((elem.id) == id) {
            if (elem.className.match(/\bnavi_element\b/)) {
                var tmp = elem.className.replace(/\bnavi_element\b/, 'navi_select');
                elem.className = tmp;
            }
            topMenuSelected[elem.id] = true;
        }
    }
}

/** Сбросить все пункты меню в закладках. **/
function tabMenuReset() {
    var tabMenu = document.getElementById('content_1');
    if (!tabMenu) return;
    var tabMenuItems = tabMenu.getElementsByTagName('a');
    for (var i = 0; i < tabMenuItems.length; ++i) {
        var elem = tabMenuItems[i];
        if (elem.id == 'menu_element_1') elem.className = 'menu_element menu_element_1';
        if (elem.id == 'menu_element_2') elem.className = 'menu_element menu_element_2';
        if (elem.id == 'menu_element_3') elem.className = 'menu_element menu_element_3';
        if (elem.id == 'menu_element_4') elem.className = 'menu_element menu_element_4';
    }
    
    var tabMenu = document.getElementById('content_2');
    if (!tabMenu) return;
    var tabMenuItems = tabMenu.getElementsByTagName('a');
    for (var i = 0; i < tabMenuItems.length; ++i) {
        var elem = tabMenuItems[i];
        if (elem.id == 'menu_element_2_1') elem.className = 'menu_element menu_element_2_1';
        if (elem.id == 'menu_element_2_2') elem.className = 'menu_element menu_element_2_2';
        if (elem.id == 'menu_element_2_3') elem.className = 'menu_element menu_element_2_3';
    }
}

/** Выделить пункт меню в закладках. **/
function tabMenuCatalogSelectItem(id) {
    var tabMenu = document.getElementById('content_1');
    if (!tabMenu) return;
    var tabMenuItems = tabMenu.getElementsByTagName('a');
    for (var i = 0; i < tabMenuItems.length; ++i) {
        var elem = tabMenuItems[i];
        if (elem.id == 'menu_element_1') {
            if (elem.id == id) elem.className = 'menu_element menu_element_1_select';
            else elem.className = 'menu_element menu_element_1';
        }
        if (elem.id == 'menu_element_2') {
            if (elem.id == id) elem.className = 'menu_element menu_element_2_select';
            else elem.className = 'menu_element menu_element_2';
        }
        if (elem.id == 'menu_element_3') {
            if (elem.id == id) elem.className = 'menu_element menu_element_3_select';
            else elem.className = 'menu_element menu_element_3'; 
        }
        if (elem.id == 'menu_element_4') {
            if (elem.id == id) elem.className = 'menu_element menu_element_4_select';
            else elem.className = 'menu_element menu_element_4'; 
        }
    }
}

/** Выделить проект в меню закладок. **/
function tabMenuProjectSelectItem(id) {
    var tabMenu = document.getElementById('content_2');
    if (!tabMenu) return;
    var tabMenuItems = tabMenu.getElementsByTagName('a');
    for (var i = 0; i < tabMenuItems.length; ++i) {
        var elem = tabMenuItems[i];
        if (elem.id == 'menu_element_2_1') {
            if (elem.id == id) elem.className = 'menu_element menu_element_2_1_select';
            else elem.className = 'menu_element menu_element_2_1';
        }
        if (elem.id == 'menu_element_2_2') {
            if (elem.id == id) elem.className = 'menu_element menu_element_2_2_select';
            else elem.className = 'menu_element menu_element_2_2';
        }
        if (elem.id == 'menu_element_2_3') {
            if (elem.id == id) elem.className = 'menu_element menu_element_2_3_select';
            else elem.className = 'menu_element menu_element_2_3'; 
        }
    }
}

/** Выбрать коллекцию по id. **/
function selectCollectionById(id) {
    var collection = document.getElementById('idCollection_' + id);
    if (collection) collection.className = 'collection_select';
}

/** Сбросить все выбранные коллекции. **/
function resetCollection() {
    var collectionList = document.getElementById('collection_list');
    var collectionHrefs = collectionList.getElementsByTagName('a');
    for (var i = 0; i < collectionHrefs.length; ++i) {
        var elem = collectionHrefs[i];
        if (elem.className.match(/\bcollection_select\b/)) elem.className = ''; 
    }
}

/** Выбрать производителя по id. **/
function selectProducerById(id) {
    var producer = document.getElementById('mosaicProducer_' + id);
    if (producer) producer.className = 'prodSelect';
}

/** Сбросить всех выбранных производителей. **/
function resetProducer() {
    var producerList = document.getElementById('mosaicProducers');
    var producerHrefs = producerList.getElementsByTagName('a');
    for (var i = 0; i < producerHrefs.length; ++i) {
        var elem = producerHrefs[i];
        if (elem.className.match(/\bprodSelect\b/)) elem.className = ''; 
    }
}

/** Создать окно просмотра изображений, если его нет. **/
function createImageArea() {
    // Проверка наличия области.
    var imageArea = document.getElementById('imageArea');
    if (imageArea) return;
    // Создание области изображений и уменьшение области текста.
    var topContent = document.getElementById('topContent');
    if (!topContent) return;
    var topscroll = document.getElementById('topscroll');
    if (!topscroll) return;
    if (!topscroll.className.match(/\bmycustomscroll2\b/)) return;
    // Получение прежнего содержимого.
    var contentWrapper = document.getElementById('topscroll_contentwrapper');
    if (contentWrapper == undefined) return;
    var oldContent = contentWrapper.innerHTML;
    oldContent = '<div id="topscroll" class="flexcroll mycustomscroll">' + oldContent + '</div>';
    newContent = '<div id="gallery">';
    newContent += '<div id="imageArea"><a href="#" onclick="mySlideShow.nav(-1); return false;" class="imgnav " id="previmg"></a>';
    newContent += '<a href="#" onclick="mySlideShow.nav(1); return false;" class="imgnav " id="nextimg"></a></div>';
    newContent += '<div id="listImages"></div>';
    newContent += '</div>';
    //var oldContent = topContent.innerHTML;
    topContent.innerHTML = oldContent + newContent;
    fleXenv.initByClass("flexcroll");
}

/** Превышено время ожидания. **/
function abortLoad() {
    hideLoader();
    showMsg();
    var timeout = setTimeout(function() { hideMsg(); clearTimeout(timeout); }, 3000);
}

/** Ошибочные данные сервера. **/
function failureLoad() {
    hideLoader();
}

/**
 * Информационные страницы.
 */
function loadInfoPage(url) {
    if (!nextjs.network.send) return false;
    var func = nextjs.network.send;
    var result = func(url, {onSuccess:successLoadInfoPage, onAbort:abortLoad, 
        onFailure:failureLoad, method:'get'}
    );
    showLoader();
}

/** Отображение данных **/
function successLoadInfoPage(xhr) {
    if (xhr.getResponseHeader('Content-Type').indexOf('application/json') >= 0) {
        var response = nextjs.data.parseJSON(xhr.responseText);
        mySlideShow.stop();
        /** Обработка ответа. **/
        if (response.title != undefined) {
            document.title = nextjs.data.htmlspecialchars_decode(response.title);
        }
        if (response.idMenu != undefined) {
            topMenuSelectItem(nextjs.data.htmlspecialchars_decode(response.idMenu));    
        }
        if (response.sitePath != undefined) {
            var sitePath = document.getElementById('sitePath');
            if (sitePath) sitePath.innerHTML = nextjs.data.htmlspecialchars_decode(response.sitePath);
        }
        if (response.topContent != undefined) {
            var topContent = document.getElementById('topContent');
            if (topContent) topContent.innerHTML = nextjs.data.htmlspecialchars_decode(response.topContent);
        }
        if (response.showImages == true) mySlideShow.start();
        fleXenv.initByClass("flexcroll");
    }
    hideLoader();
}

/** П Р О Е К Т Ы **/

/**
 * Загрузка страниц проектов.
 */
function loadProjectsPage(url) {
    if (!nextjs.network.send) return false;
    var func = nextjs.network.send;
    var data = {};
    if (!topMenuSelected['topMenu_Projects']) data.mainContentLoad = true;
    else data.mainContentLoad = false;
    data.topContentLoad = true;
    var result = func(url, {onSuccess:successLoadProjects, onAbort:abortLoad, 
        onFailure:failureLoad, method:'get'}, data
    );
    showLoader();
}

/** Отображение данных **/
function successLoadProjects(xhr) {
    if (xhr.getResponseHeader('Content-Type').indexOf('application/json') >= 0) {
        var response = nextjs.data.parseJSON(xhr.responseText);
        mySlideShow.stop();
        /** Обработка ответа. **/
        if (response.topContent != undefined) {
            var topContent = document.getElementById('topContent');
            if (topContent) topContent.innerHTML = nextjs.data.htmlspecialchars_decode(response.topContent);
        }
        if (!topMenuSelected['topMenu_Projects']) {
            if (response.title != undefined) {
                document.title = nextjs.data.htmlspecialchars_decode(response.title);
            }
            if (response.idMenu != undefined) {
                topMenuSelectItem(nextjs.data.htmlspecialchars_decode(response.idMenu));    
            }
            if (response.sitePath != undefined) {
                var sitePath = document.getElementById('sitePath');
                if (sitePath) sitePath.innerHTML = nextjs.data.htmlspecialchars_decode(response.sitePath);
            }
            if (response.mainContent != undefined) {
                var mainContent = document.getElementById('mainContent');
                if (mainContent) mainContent.innerHTML = nextjs.data.htmlspecialchars_decode(response.mainContent);
            }
            tabMenuReset();
            tabSwitch('tab_2', 'content_2');
        }
        if (response.showImages == true) mySlideShow.start();
        fleXenv.initByClass("flexcroll");
    }
    hideLoader();
}

/** Загрузка страницы просмотра раздела Проектов. **/
function loadProjectsPart(url) {
    if (!nextjs.network.send) return false;
    var func = nextjs.network.send;
    var data = {};
    if (!topMenuSelected['topMenu_Projects']) data.topContentLoad = true;
    else data.topContentLoad = false;
    data.mainContentLoad = true;
    var result = func(url, {onSuccess:successLoadProjectsPart, onAbort:abortLoad, 
        onFailure:failureLoad, method:'get'}, data
    );
    showLoader();
}

/** Отображение данных **/
function successLoadProjectsPart(xhr) {
    if (xhr.getResponseHeader('Content-Type').indexOf('application/json') >= 0) {
        var response = nextjs.data.parseJSON(xhr.responseText);
        /** Обработка ответа. **/
        if (response.title != undefined) {
            document.title = nextjs.data.htmlspecialchars_decode(response.title);
        }
        if (!topMenuSelected[response.idMenu]) {
            mySlideShow.stop();
            if (response.idMenu != undefined) {
                topMenuSelectItem(nextjs.data.htmlspecialchars_decode(response.idMenu));    
            }
            if (response.topContent != undefined) {
                var topContent = document.getElementById('topContent');
                if (topContent) topContent.innerHTML = nextjs.data.htmlspecialchars_decode(response.topContent);
            }
            if (response.showImages == true) mySlideShow.start();
            fleXenv.initByClass("flexcroll");
        }
        if (response.sitePath != undefined) {
            var sitePath = document.getElementById('sitePath');
            if (sitePath) sitePath.innerHTML = nextjs.data.htmlspecialchars_decode(response.sitePath);
        }
        if (response.tabMenu != undefined) {
            tabMenuReset();
            tabMenuProjectSelectItem(nextjs.data.htmlspecialchars_decode(response.tabMenu));
        }
        var mainContent = document.getElementById('mainContent');
        if (!response.tabMenu && !response.mainContent) {
            if (mainContent) mainContent.innerHTML = '';
        }
        if (response.mainContent) {
            if (mainContent) mainContent.innerHTML = nextjs.data.htmlspecialchars_decode(response.mainContent);
        }
    }
    hideLoader();
}

/** Обновить кол-во просмотров проекта. **/
function updateProjectView(options, url) {
    var data = {};
    if (projectsView.indexOf(url) == -1) {
        projectsView[projectsCount] = url;
        ++projectsCount;
        data.projectUpdate = true;
    } else data.projectUpdate = false;
    if (!nextjs.network.send) return false;
    var func = nextjs.network.send;
    var urlProjectView = url;
    var result = func(url, {onSuccess:successProjectView, onAbort:abortLoad, 
        onFailure:failureLoad, method:'get'}, data
    );
    showLoader();
    myViewer.open(options);
}

/** Отображение данных **/
function successProjectView(xhr) {
    if (xhr.getResponseHeader('Content-Type').indexOf('application/json') >= 0) {
        var response = nextjs.data.parseJSON(xhr.responseText);
        /** Обработка ответа. **/
        if (response.listImages && (response.showImages == true)) {
            mySlideShow.stop();
            // Проверка области изображения.
            createImageArea();
            var listImages = document.getElementById('listImages');
            if (listImages) listImages.innerHTML = nextjs.data.htmlspecialchars_decode(response.listImages);
            mySlideShow.start();
        }
    }
    hideLoader();
}

/** О Б О И **/
/**
 * Загрузка страницы обоев. Бренды.
 */
function loadWallpaperPage(url) {
    if (!nextjs.network.send) return false;
    var func = nextjs.network.send;
    var data = {};
    if (!topMenuSelected['topMenu_Wallpaper']) data.mainContentLoad = true;
    else data.mainContentLoad = false;
    data.topContentLoad = true;
    var result = func(url, {onSuccess:successLoadWallpaper, onAbort:abortLoad, 
        onFailure:failureLoad, method:'get'}, data
    );
    showLoader();
}

/** Отображение данных **/
function successLoadWallpaper(xhr) {
    if (xhr.getResponseHeader('Content-Type').indexOf('application/json') >= 0) {
        var response = nextjs.data.parseJSON(xhr.responseText);
        mySlideShow.stop();
        /** Обработка ответа. **/
        
        if (response.topContent != undefined) {
            var topContent = document.getElementById('topContent');
            if (topContent) topContent.innerHTML = nextjs.data.htmlspecialchars_decode(response.topContent);
        }
        if (!topMenuSelected['topMenu_Wallpaper']) {
            if (response.title != undefined) {
                document.title = nextjs.data.htmlspecialchars_decode(response.title);
            }
            if (response.idMenu != undefined) {
                topMenuSelectItem(nextjs.data.htmlspecialchars_decode(response.idMenu));    
            }
            if (response.sitePath != undefined) {
                var sitePath = document.getElementById('sitePath');
                if (sitePath) sitePath.innerHTML = nextjs.data.htmlspecialchars_decode(response.sitePath);
            }
            if (response.mainContent != undefined) {
                var mainContent = document.getElementById('mainContent');
                if (mainContent) mainContent.innerHTML = nextjs.data.htmlspecialchars_decode(response.mainContent);
            }
            tabMenuReset();
            tabSwitch('tab_1', 'content_1');
            tabMenuCatalogSelectItem('menu_element_1');
        }
        if (response.showImages == true) mySlideShow.start();
        fleXenv.initByClass("flexcroll");
    }
    hideLoader();
}

/** Загрузка страницы просмотра бренда. **/
function loadWallpaperPart(url) {
    if (!nextjs.network.send) return false;
    var func = nextjs.network.send;
    var data = {};
    if (!topMenuSelected['topMenu_Wallpaper']) data.topContentLoad = true;
    else data.topContentLoad = false;
    data.mainContentLoad = true;
    var result = func(url, {onSuccess:successLoadWallpaperPart, onAbort:abortLoad, 
        onFailure:failureLoad, method:'get'}, data
    );
    showLoader();
}

/** Отображение данных **/
function successLoadWallpaperPart(xhr) {
    if (xhr.getResponseHeader('Content-Type').indexOf('application/json') >= 0) {
        var response = nextjs.data.parseJSON(xhr.responseText);
        /** Обработка ответа. **/
        if (response.title != undefined) {
            document.title = nextjs.data.htmlspecialchars_decode(response.title);
        }
        if (!topMenuSelected[response.idMenu]) {
            mySlideShow.stop();
            if (response.idMenu != undefined) {
                topMenuSelectItem(nextjs.data.htmlspecialchars_decode(response.idMenu));    
            }
            if (response.topContent != undefined) {
                var topContent = document.getElementById('topContent');
                if (topContent) topContent.innerHTML = nextjs.data.htmlspecialchars_decode(response.topContent);
            }
            if (response.showImages == true) mySlideShow.start();
            fleXenv.initByClass("flexcroll");
        }
        if (response.sitePath != undefined) {
            var sitePath = document.getElementById('sitePath');
            if (sitePath) sitePath.innerHTML = nextjs.data.htmlspecialchars_decode(response.sitePath);
        }
        if (response.tabMenu != undefined) {
            tabMenuReset();
            tabSwitch('tab_1', 'content_1');
            tabMenuCatalogSelectItem('menu_element_1');
        }
        if (response.mainContent != undefined) {
            var mainContent = document.getElementById('mainContent');
            if (mainContent) mainContent.innerHTML = nextjs.data.htmlspecialchars_decode(response.mainContent);
        }
    }
    hideLoader();
}

/** Загрузка полного описания бренда. **/
function loadDescrBrend(url) {
    if (brendUrl.indexOf(url) == -1) {
        brendUrl[brendCount] = url;
        brendDescr[brendCount] = '';
        ++brendCount;
    }
    if (!nextjs.network.send) return false;
    var func = nextjs.network.send;
    var result = func(url, {onSuccess:successLoadDescrBrend, onAbort:abortLoad, 
        onFailure:failureLoad, method:'get'}
    );
    showLoader();
}

/** Убрать описание бренда. **/
function closeDescrBrend(url) {
    var pos = brendUrl.indexOf(url);
    if (pos != -1) {
        var brendDescription = document.getElementById('brendDescr');
        // Новое содержимое.
        if (brendDescription) {
            brendDescription.innerHTML = brendDescr[pos];
        }
    }    
}

/** Отображение полного описания бренда. **/
function successLoadDescrBrend(xhr) {
    if (xhr.getResponseHeader('Content-Type').indexOf('application/json') >= 0) {
        var response = nextjs.data.parseJSON(xhr.responseText);
        /** Обработка ответа. **/
        var url = nextjs.data.htmlspecialchars_decode(response.url);
        var pos = brendUrl.indexOf(url);
        if (pos != -1) {
            var brendDescription = document.getElementById('brendDescr');
            // Новое содержимое.
            if (brendDescription && response.fullDescription != undefined) {
                brendDescr[pos] = brendDescription.innerHTML;
                brendDescription.innerHTML = nextjs.data.htmlspecialchars_decode(response.fullDescription);
            }
        }
    }
    hideLoader();
}

/** Загрузка страницы просмотра коллекции. **/
function loadWallpaperCollection(url) {
    if (!nextjs.network.send) return false;
    var func = nextjs.network.send;
    var result = func(url, {onSuccess:successLoadWallpaperCollection, onAbort:abortLoad, 
        onFailure:failureLoad, method:'get'}
    );
    showLoader();
}

/** Отображение данных **/
function successLoadWallpaperCollection(xhr) {
    if (xhr.getResponseHeader('Content-Type').indexOf('application/json') >= 0) {
        var response = nextjs.data.parseJSON(xhr.responseText);
        /** Обработка ответа. **/
        if (response.title != undefined) {
            document.title = nextjs.data.htmlspecialchars_decode(response.title);
        }
        if (response.sitePath != undefined) {
            var sitePath = document.getElementById('sitePath');
            if (sitePath) sitePath.innerHTML = nextjs.data.htmlspecialchars_decode(response.sitePath);
        }
        if (response.collectionId != undefined) {
            resetCollection();
            selectCollectionById(response.collectionId);
        }
        if (response.collectionInfo != undefined) {
            mySlideMenu.stop();
            var collectionInfo = document.getElementById('collectionInfo');
            if (collectionInfo) collectionInfo.innerHTML = nextjs.data.htmlspecialchars_decode(response.collectionInfo);
            mySlideMenu.start();
        }
        if (response.collectionImages && (response.showImages == true)) {
            mySlideShow.stop();
            // Проверка области изображения.
            createImageArea();
            var listImages = document.getElementById('listImages');
            if (listImages) listImages.innerHTML = nextjs.data.htmlspecialchars_decode(response.collectionImages);
            mySlideShow.start();
        }
    }
    hideLoader();
}

/** Загрузка полного описания коллекции. **/
function loadDescrCollection(url) {
    if (collectionUrl.indexOf(url) == -1) {
        collectionUrl[collectionCount] = url;
        collectionDescr[collectionCount] = '';
        ++collectionCount;
    }
    if (!nextjs.network.send) return false;
    var func = nextjs.network.send;
    var result = func(url, {onSuccess:successLoadDescrCollection, onAbort:abortLoad, 
        onFailure:failureLoad, method:'get'}
    );
    showLoader();
}

/** Убрать описание коллекции. **/
function closeDescrCollection(url) {
    var pos = collectionUrl.indexOf(url);
    if (pos != -1) {
        var collectionDescription = document.getElementById('collectionDescr');
        // Новое содержимое.
        if (collectionDescription) {
            collectionDescription.innerHTML = collectionDescr[pos];
        }
    }    
}

/** Отображение полного описания коллекции. **/
function successLoadDescrCollection(xhr) {
    if (xhr.getResponseHeader('Content-Type').indexOf('application/json') >= 0) {
        var response = nextjs.data.parseJSON(xhr.responseText);
        /** Обработка ответа. **/
        var url = nextjs.data.htmlspecialchars_decode(response.url);
        var pos = collectionUrl.indexOf(url);
        if (pos != -1) {
            var collectionDescription = document.getElementById('collectionDescr');
            // Новое содержимое.
            if (collectionDescription && response.fullDescription != undefined) {
                collectionDescr[pos] = collectionDescription.innerHTML;
                collectionDescription.innerHTML = nextjs.data.htmlspecialchars_decode(response.fullDescription);
            }
        }
    }
    hideLoader();
}

/** Описание обозначений обоев. **/
function loadIcons(url) {
    if (!nextjs.network.send) return false;
    var func = nextjs.network.send;
    var result = func(url, {onSuccess:successLoadIcons, onAbort:abortLoad, 
        onFailure:failureLoad, method:'get'}
    );
    showLoader();
}

/** Отображение описание значков. **/
function successLoadIcons(xhr) {
    if (xhr.getResponseHeader('Content-Type').indexOf('application/json') >= 0) {
        var response = nextjs.data.parseJSON(xhr.responseText);
        /** Обработка ответа. **/
        if (response.title != undefined && response.content != undefined) {
            var title = nextjs.data.htmlspecialchars_decode(response.title);
            var content = nextjs.data.htmlspecialchars_decode(response.content);
            //myWindow.create
            myWindow.open(title, content);
            fleXenv.fleXcrollMain('myWindow');
        }
    }
    hideLoader();
}

/** МОЗАИКА. **/
function loadMosaicPage(url) {
    if (!nextjs.network.send) return false;
    var func = nextjs.network.send;
    var data = {};
    if (!topMenuSelected['topMenu_Mosaic']) data.mainContentLoad = true;
    else data.mainContentLoad = false;
    data.topContentLoad = true;
    var result = func(url, {onSuccess:successLoadMosaic, onAbort:abortLoad, 
        onFailure:failureLoad, method:'get'}, data
    );
    showLoader();
}

/** Отображение данных **/
function successLoadMosaic(xhr) {
    if (xhr.getResponseHeader('Content-Type').indexOf('application/json') >= 0) {
        var response = nextjs.data.parseJSON(xhr.responseText);
        mySlideShow.stop();
        /** Обработка ответа. **/
        if (response.topContent != undefined) {
            var topContent = document.getElementById('topContent');
            if (topContent) topContent.innerHTML = nextjs.data.htmlspecialchars_decode(response.topContent);
        }
        if (!topMenuSelected['topMenu_Mosaic']) {
            if (response.title != undefined) {
                document.title = nextjs.data.htmlspecialchars_decode(response.title);
            }
            if (response.idMenu != undefined) {
                topMenuSelectItem(nextjs.data.htmlspecialchars_decode(response.idMenu));    
            }
            if (response.sitePath != undefined) {
                var sitePath = document.getElementById('sitePath');
                if (sitePath) sitePath.innerHTML = nextjs.data.htmlspecialchars_decode(response.sitePath);
            }
            if (response.mainContent != undefined) {
                var mainContent = document.getElementById('mainContent');
                if (mainContent) mainContent.innerHTML = nextjs.data.htmlspecialchars_decode(response.mainContent);
            }
            tabMenuReset();
            tabSwitch('tab_1', 'content_1');
            tabMenuCatalogSelectItem('menu_element_4');
        }
        if (response.showImages == true) mySlideShow.start();
        fleXenv.initByClass("flexcroll");
    }
    hideLoader();
}

/** Загрузка страницы просмотра категории. **/
function loadMosaicPart(url) {
    if (!nextjs.network.send) return false;
    var func = nextjs.network.send;
    var data = {};
    if (!topMenuSelected['topMenu_Mosaic']) data.topContentLoad = true;
    else data.topContentLoad = false;
    data.mainContentLoad = true;
    var result = func(url, {onSuccess:successLoadMosaicPart, onAbort:abortLoad, 
        onFailure:failureLoad, method:'get'}, data
    );
    showLoader();
}

/** Отображение данных **/
function successLoadMosaicPart(xhr) {
    if (xhr.getResponseHeader('Content-Type').indexOf('application/json') >= 0) {
        var response = nextjs.data.parseJSON(xhr.responseText);
        /** Обработка ответа. **/
        if (response.title != undefined) {
            document.title = nextjs.data.htmlspecialchars_decode(response.title);
        }
        if (!topMenuSelected[response.idMenu]) {
            mySlideShow.stop();
            if (response.idMenu != undefined) {
                topMenuSelectItem(nextjs.data.htmlspecialchars_decode(response.idMenu));    
            }
            if (response.topContent != undefined) {
                var topContent = document.getElementById('topContent');
                if (topContent) topContent.innerHTML = nextjs.data.htmlspecialchars_decode(response.topContent);
            }
            if (response.showImages == true) mySlideShow.start();
            fleXenv.initByClass("flexcroll");
        }
        if (response.sitePath != undefined) {
            var sitePath = document.getElementById('sitePath');
            if (sitePath) sitePath.innerHTML = nextjs.data.htmlspecialchars_decode(response.sitePath);
        }
        if (response.tabMenu != undefined) {
            tabMenuReset();
            tabSwitch('tab_1', 'content_1');
            tabMenuCatalogSelectItem('menu_element_4');
        }
        if (response.mainContent != undefined) {
            var mainContent = document.getElementById('mainContent');
            if (mainContent) mainContent.innerHTML = nextjs.data.htmlspecialchars_decode(response.mainContent);
        }
    }
    hideLoader();
}

/** Загрузка страницы просмотра товаров производителя. **/
function loadMosaicProducer(url) {
    if (!nextjs.network.send) return false;
    var func = nextjs.network.send;
    var result = func(url, {onSuccess:successLoadMosaicProducer, onAbort:abortLoad, 
        onFailure:failureLoad, method:'get'}
    );
    showLoader();
}

/** Отображение данных **/
function successLoadMosaicProducer(xhr) {
    if (xhr.getResponseHeader('Content-Type').indexOf('application/json') >= 0) {
        var response = nextjs.data.parseJSON(xhr.responseText);
        /** Обработка ответа. **/
        if (response.title != undefined) {
            document.title = nextjs.data.htmlspecialchars_decode(response.title);
        }
        if (response.sitePath != undefined) {
            var sitePath = document.getElementById('sitePath');
            if (sitePath) sitePath.innerHTML = nextjs.data.htmlspecialchars_decode(response.sitePath);
        }
        if (response.producerId != undefined) {
            resetProducer();
            selectProducerById(response.producerId);
        }
        if (response.listGoods != undefined) {
            var mosaicBlockInfo = document.getElementById('mosaicBlockInfo');
            if (mosaicBlockInfo) mosaicBlockInfo.innerHTML = nextjs.data.htmlspecialchars_decode(response.listGoods);
        }
        if (response.listImages && (response.showImages == true)) {
            mySlideShow.stop();
            // Проверка области изображения.
            createImageArea();
            var listImages = document.getElementById('listImages');
            if (listImages) listImages.innerHTML = nextjs.data.htmlspecialchars_decode(response.listImages);
            mySlideShow.start();
        }
        fleXenv.initByClass("flexcroll");
    }
    hideLoader();
}

/** Загрузка списка товаров. **/
function loadMosaicListGoods(url) {
    if (!nextjs.network.send) return false;
    var func = nextjs.network.send;
    var result = func(url, {onSuccess:successLoadMosaicListGoods, onAbort:abortLoad, 
        onFailure:failureLoad, method:'get'}
    );
    showLoader();
}

/** Отображение данных **/
function successLoadMosaicListGoods(xhr) {
    if (xhr.getResponseHeader('Content-Type').indexOf('application/json') >= 0) {
        var response = nextjs.data.parseJSON(xhr.responseText);
        if (response.listGoods != undefined) {
            var mosaicListItems = document.getElementById('mosaicListItemsWrapper');
            if (mosaicListItems) {
                mosaicListItems.innerHTML = nextjs.data.htmlspecialchars_decode(response.listGoods);
                fleXenv.initByClass("flexcroll");
                //fleXenv.fleXcrollMain('mosaicListItems');
            }
        }
    }
    hideLoader();
}

/** Загрузка данных о товаре. **/
function loadMosaicGood(url) {
    if (!nextjs.network.send) return false;
    var func = nextjs.network.send;
    var result = func(url, {onSuccess:successLoadMosaicGood, onAbort:abortLoad, 
        onFailure:failureLoad, method:'get'}
    );
    showLoader();
}

/** Отображение данных **/
function successLoadMosaicGood(xhr) {
    if (xhr.getResponseHeader('Content-Type').indexOf('application/json') >= 0) {
        var response = nextjs.data.parseJSON(xhr.responseText);
        /** Обработка ответа. **/
        /**
        if (response.listImages && (response.showImages == true)) {
            mySlideShow.stop();
            // Проверка области изображения.
            createImageArea();
            var listImages = document.getElementById('listImages');
            if (listImages) listImages.innerHTML = nextjs.data.htmlspecialchars_decode(response.listImages);
            mySlideShow.start();
        }
        **/
        if (response.goodInfo != undefined) {
            var mosaicViewItem = document.getElementById('mosaicViewItem');
            if (mosaicViewItem) mosaicViewItem.innerHTML = nextjs.data.htmlspecialchars_decode(response.goodInfo);
        }
    }
    hideLoader();
}


/** РАЗДЕЛ ДИЗАЙНЕРАМ. НОВОСТИ. **/
/**
 * Загрузка страницы новостей.
 */
function loadNewsPage(url) {
    if (!nextjs.network.send) return false;
    var func = nextjs.network.send;
    var data = {};
    if (!topMenuSelected['topMenu_News']) data.mainContentLoad = true;
    else data.mainContentLoad = false;
    data.topContentLoad = true;
    var result = func(url, {onSuccess:successLoadNews, onAbort:abortLoad, 
        onFailure:failureLoad, method:'get'}, data
    );
    showLoader();
}

/** Отображение данных **/
function successLoadNews(xhr) {
    if (xhr.getResponseHeader('Content-Type').indexOf('application/json') >= 0) {
        var response = nextjs.data.parseJSON(xhr.responseText);
        mySlideShow.stop();
        /** Обработка ответа. **/
        if (response.topContent != undefined) {
            var topContent = document.getElementById('topContent');
            if (topContent) topContent.innerHTML = nextjs.data.htmlspecialchars_decode(response.topContent);
        }
        if (!topMenuSelected['topMenu_News']) {
            if (response.title != undefined) {
                document.title = nextjs.data.htmlspecialchars_decode(response.title);
            }
            if (response.idMenu != undefined) {
                topMenuSelectItem(nextjs.data.htmlspecialchars_decode(response.idMenu));    
            }
            if (response.sitePath != undefined) {
                var sitePath = document.getElementById('sitePath');
                if (sitePath) sitePath.innerHTML = nextjs.data.htmlspecialchars_decode(response.sitePath);
            }
            if (response.mainContent != undefined) {
                var mainContent = document.getElementById('mainContent');
                if (mainContent) mainContent.innerHTML = nextjs.data.htmlspecialchars_decode(response.mainContent);
            }
        }
        tabMenuReset();
        if (response.showImages == true) mySlideShow.start();
        fleXenv.initByClass("flexcroll");
    }
    hideLoader();
}

/** Загрузка только списка новостей. **/
function loadNewsPart(url) {
    if (!nextjs.network.send) return false;
    var func = nextjs.network.send;
    var data = {};
    if (!topMenuSelected['topMenu_News']) data.topContentLoad = true;
    else data.topContentLoad = false;
    data.mainContentLoad = true;
    var result = func(url, {onSuccess:successLoadNewsPart, onAbort:abortLoad, 
        onFailure:failureLoad, method:'get'}, data
    );
    showLoader();
}

/** Отображение данных **/
function successLoadNewsPart(xhr) {
    if (xhr.getResponseHeader('Content-Type').indexOf('application/json') >= 0) {
        var response = nextjs.data.parseJSON(xhr.responseText);
        /** Обработка ответа. **/
        if (response.title != undefined) {
            document.title = nextjs.data.htmlspecialchars_decode(response.title);
        }
        if (!topMenuSelected[response.idMenu]) {
            mySlideShow.stop();
            if (response.idMenu != undefined) {
                topMenuSelectItem(nextjs.data.htmlspecialchars_decode(response.idMenu));    
            }
            if (response.topContent != undefined) {
                var topContent = document.getElementById('topContent');
                if (topContent) topContent.innerHTML = nextjs.data.htmlspecialchars_decode(response.topContent);
            }
            if (response.showImages == true) mySlideShow.start();
            fleXenv.initByClass("flexcroll");
        }
        if (response.sitePath != undefined) {
            var sitePath = document.getElementById('sitePath');
            if (sitePath) sitePath.innerHTML = nextjs.data.htmlspecialchars_decode(response.sitePath);
        }
        if (response.mainContent != undefined) {
            var mainContent = document.getElementById('mainContent');
            if (mainContent) mainContent.innerHTML = nextjs.data.htmlspecialchars_decode(response.mainContent);
        }
        tabMenuReset();
    }
    hideLoader();
}

/** Загрузить содержимое новости. **/
function loadNewsContent(url, id) {
    if (newsContent[id] != undefined) {
        insertNewsContent(newsContent[id], id);
    } else {
        if (!nextjs.network.send) return false;
        var func = nextjs.network.send;
        var result = func(url, {onSuccess:successLoadNewsContent, onAbort:abortLoad, 
            onFailure:failureLoad, method:'get'}
        );
        showLoader();
    }   
}

function insertNewsContent(objNews, id) {
    if (objNews.title != undefined) {
        document.title = objNews.title;
    }
    if (objNews.contentNews != undefined) {
        var contentNews = document.getElementById('newsItem_' + id);
        if (contentNews) {
            // Сохранение прежнего содержимого.
            newsAnnotation[id] = contentNews.innerHTML;
            contentNews.innerHTML = objNews.contentNews;
        }
    }
    if (objNews.listImages && (objNews.showImages == true)) {
        mySlideShow.stop();
        // Проверка области изображения.
        createImageArea();
        var listImages = document.getElementById('listImages');
        if (listImages) listImages.innerHTML = objNews.listImages;
        mySlideShow.start();
    }
    
}

function successLoadNewsContent(xhr) {
    if (xhr.getResponseHeader('Content-Type').indexOf('application/json') >= 0) {
        var response = nextjs.data.parseJSON(xhr.responseText);
        var objNews = {};
        /** Обработка ответа. **/
        if (response.idNews != undefined) {
            objNews.idNews = nextjs.data.htmlspecialchars_decode(response.idNews);
        }
        if (response.title != undefined) {
            objNews.title = nextjs.data.htmlspecialchars_decode(response.title);
        }
        if (response.contentNews != undefined) {
            objNews.contentNews = nextjs.data.htmlspecialchars_decode(response.contentNews);
        }
        if (response.listImages && (response.showImages == true)) {
            objNews.listImages = nextjs.data.htmlspecialchars_decode(response.listImages);
            objNews.showImages = true;
        }
        newsContent[objNews.idNews] = objNews;
        insertNewsContent(objNews, objNews.idNews)
    }
    hideLoader();
}

function closeNews(idNews) {
    var contentNews = document.getElementById('newsItem_' + idNews);
    if (contentNews && (newsAnnotation[idNews] != undefined)) {
        // Сохранение прежнего содержимого.
        contentNews.innerHTML = newsAnnotation[idNews];
    }
}
