//////////////////////////////////////catalog
var cat_group;
var curent;
var curent_picker;


//======= Функция получения интерфейса управления каталогами через Ajax ========
function catalog_group_manager()
{
    $('out_block').innerHTML='<img src="images/ajax-loader.gif" align=center valign=center />';
    //$('out_block').setStyle('background',"url('/images/ajax-loader.gif') repeat-x");
    var myRequest = new Request.HTML({
        url: 'modules/catalog_group_manager/ajax/actions.php?groups',
        method: 'get',
        update: 'out_block',
        onRequest: function()
        {
            // set_title("Управление группами товаров"),
            // set_description("Данный раздел позволяет редактировать группы товаров и распределять каталог.")
        },
        onComplete:function(q,w,e)
        {
            addEventShowTools($$(".catalog_group"));
            
            
            //$('out_block').setStyle('background',"");
        },
        evalScripts: true
    }).send();
}
//==============================================================================
  

////-----------------------------------lmenu functions-------------------------//
// обновление левого меню
function update_lmenu() {
  
/*  var myRequest = new Request.HTML({
        url: 'admin/catalog2/ajax/update_lmenu.php',
        method: 'get',
        update: 'lmenu_catalog',
        evalScripts: true,
        onComplete: function(){ }
    }).send();*/
}
// блик элемента
function flash_el(obj)
{
    $(obj).highlight('#d7e9be', '#f2f2f2');
}

//================= обновление раздела левого меню =============================
//type=1 - раздел, 2-элемент
function update_lmenu_el(id, type)
{
    if (type ==1)
    {
        var update_block = 'subgroups_' + id;
    }
    else
    {
        var update_block = 'group_' + id;
    }
    
    var pars = $H({
        type:type,
        id:id
    }).toQueryString();

    var myRequest = new Request.HTML({
        url: 'modules/catalog_group_manager/ajax/actions.php?update_elmenu',
        method: 'get',
        update: update_block,
        evalScripts: true,
        onComplete: function(){}
    }).send(pars);
    
}
//==============================================================================
//=================== Изменение статуса группы =================================
function change_status(group_id)
{
    var element = 'status_' +group_id;
    var btn = document.getElementById(element);
    var status;        
    if (btn.className == 'btn_status_show')
    {
        btn.className = ('btn_status_hide');
        status = 0; 
    }
    else
    {
        btn.className = ('btn_status_show');
        status = 1;
    }
    
    var pars = $H({
        group_id:group_id,
        status:status
    }).toQueryString();
    
    var myRequest = new Request.HTML({
        url: 'modules/catalog_group_manager/ajax/actions.php?change_status_group',
        method: 'get',
        
        evalScripts: true,
        onComplete: function(){ }
    }).send(pars);
}
//==============================================================================
//=============== Отображение панели редактирования группы =====================
function edit_group_load(group_id)
{
    var pars = $H({
        group_id:group_id        
    }).toQueryString();
    var myRequest = new Request.HTML({
        url: 'modules/catalog_group_manager/ajax/actions.php?edit_group',
        method: 'get',
        update: 'catalog_edit',
        evalScripts: true,
        onComplete: function(){ 
            $('catalog_edit').style.display = 'block';
        }
    }).send(pars);
}
//==============================================================================
//============== Сохранение группы после редактирования ========================
function edit_group_save()
{
    var group_name = document.getElementById('group_name');
    var group_name2 = group_name.value;

    var group_id = document.getElementById('group_id');
    var group_id2 = group_id.value;

    var group_status = document.getElementById('group_status');
    var group_status2 = group_status.value;
    
    var parent_id = document.getElementById('parent_id');
    var parent_id2 = parent_id.value;
	
    //var img_group = document.getElementById('img_group');
    //var img_group2 = img_group.value;

    var group_sort = document.getElementById('group_sort');
    var group_sort2 = group_sort.value;

    var pars = $H({
        save:'1',
        group_name:group_name2,
        group_id:group_id2,
        group_status:group_status2,
        group_parent_id:parent_id2,
        group_sort:group_sort2
        //img_group2:img_group2

    }).toQueryString();

    var myRequest = new Request.HTML({
        url: 'modules/catalog_group_manager/ajax/actions.php?edit_group',
        method: 'get',
        update: 'catalog_edit',
        evalScripts: true,
        onRequest: function()
        {
            $('loader_'+group_id2).setStyle('display', 'block');
        },
        onComplete: function(){ 
            var group_save_flag = document.getElementById('group_save_flag');
            if (group_save_flag.value == 2)
            {
                edit_group_close();             //закрытие окна для добавления группы
                catalog('groups');
                //      update_lmenu_el(group_id2, '2');
            
                $('loader_'+group_id2).setStyle('display', 'none');

            }
        }
    }).send(pars);
}
//==============================================================================
//============= Закрытие окна создания/редактирования группы ===================
function edit_group_close()
{
    $('catalog_edit').setStyle('display', 'none');
}
//==============================================================================
//=============== Отображение панели добавления новой группы ===================
function add_group_load(parent_id)
{
    var pars = $H({
        group_parent_id:parent_id
    }).toQueryString();

    var myRequest = new Request.HTML({
        url: 'modules/catalog_group_manager/ajax/actions.php?add_group',
        method: 'get',
        update: 'catalog_edit',
        evalScripts: true,
        onComplete: function(){}
    }).send(pars);
    $('catalog_edit').style.display = 'block';
}
//==============================================================================
//================= Сохранение вновь добавленной группы ========================
function add_group_save()
{
    var group_parent_id = document.getElementById('group_parent_id');
    var group_parent_id2 = group_parent_id.value;

    var parent_id = document.getElementById('parent_id');
    var parent_id2 = parent_id.value;

    var group_name = document.getElementById('group_name');
    var group_name2 = group_name.value;

    var group_sort = document.getElementById('group_sort');
    var group_sort2 = group_sort.value;

    var group_status = document.getElementById('group_status');
    var group_status2 = group_status.value;

    var pars = $H({
        save:'1',
        group_name:group_name2,
        group_parent_id:group_parent_id2,
        parent_id:parent_id2,
        group_status:group_status2,
        group_sort:group_sort2
    }).toQueryString();

    var myRequest = new Request.HTML({
        url: 'modules/catalog_group_manager/ajax/actions.php?add_group',
        method: 'get',
        update: 'catalog_edit',
        evalScripts: true,
        onRequest: function()
        {
            if ($('loader_'+group_parent_id2)!=null)
                $('loader_'+group_parent_id2).setStyle('display', 'block');
        },
        
        onComplete: function(){
            var group_save_flag = document.getElementById('group_save_flag');
            if (group_save_flag.value == 2) //если сохранение успешно..
            {
                edit_group_close();             //закрытие окна для добавления группы
                
                if (parent_id2 == 0)              //обновление левого меню
                    catalog('groups'); 
                // update_lmenu();
                else
                {
                    $('group_' + parent_id2).highlight('#d7e9be', '#f2f2f2');
                    update_lmenu_el(parent_id2, '1')
                    update_lmenu_el(parent_id2, '2')
                }
                if ($('loader_'+group_parent_id2)!=null)
                    $('loader_'+group_parent_id2).setStyle('display', 'none');
                
            }
        }
    }).send(pars);
  
}
//==============================================================================
//======== определение ид родителя и его имени по клику на список ==============
function set_parent_id(parent_id, parent_name) 
{
    //alert(parent_name);
    if (('parent_id')!==null)
    {
        var parent = $('parent_id');
        parent.value = parent_id;
        var parent_el = $('parent_name')
        parent_el.value = parent_name;
    }
}
//==============================================================================
//==================== Подгрузка содержимого каталога ==========================
function view_subgroup(parent_id) {

    var out_list = 'subgroups_'+parent_id;
    var pars = $H({
        parent_id:parent_id
    }).toQueryString();
    var myRequest = new Request.HTML({
        url: 'modules/catalog_group_manager/ajax/actions.php?view_subgroup',
        method: 'get',
        update: out_list,
        evalScripts: true,
        onRequest: function()
        {
            //$('loader_'+parent_id).setStyle('display', 'block');
        },
        
        onComplete: function(){
            //$('loader_'+parent_id).setStyle('display', 'none');
            /* show_catalog(parent_id);*/
            //var myFX = new ()
            if($(out_list).getStyle('display') == 'none')
            {
                $$("div.catalog_group#group_"+parent_id+" .btn_plus").removeClass('btn_plus').addClass('btn_minus');
                $(out_list).setStyle('display', 'block');
                addEventShowTools($$(".catalog_group"));
            }
            else
            {
                $$("div.catalog_group#group_"+parent_id+" .btn_minus").removeClass('btn_minus').addClass('btn_plus');
                $(out_list).setStyle('display', 'none');
            }
            
        }
    }).send(pars);
}
//==============================================================================
//====== Появление/ исчезание панели инструментов для выделенной группы ========
function show_hide_tools(el, show){
    var tools = $(el).getElement(".tools_panel");
    var kol_elements = $(el).getElement(".kol_elements");
    if (show ){
        $(tools).setStyle('opacity','0');
        $(tools).setStyle('display','block');
        $(tools).fade('in');
        
        $(kol_elements).setStyle('opacity','0');
        $(kol_elements).setStyle('display','block');
        $(kol_elements).fade('in');
    }
    else {
        $(tools).fade(0);
        $(kol_elements).fade(0);
        
    }
    
}
//==============================================================================
//== Привязка обработчика события наведения наведения мыши на элемент дерева ===
function addEventShowTools(el){
    $$(el).addEvent('mouseenter',function(){    
        show_hide_tools(this, true);
    });
            
    $$(el).addEvent('mouseleave',function(){
        show_hide_tools(this, false);
    })    
}
//==============================================================================
//============ Функция отвязки вложенных элементов от группы ===================
function unlink_elements(obj, groupId){
    var el = obj;
    // Получаем кол-во элементов в группе из id кнопки
    var count = $$(el).get('id');
    // Получаем название группы
    var nameGroup = $$(el).getParent().getParent().getElement(".lmenu_group_name").get('text');
    // Если группа не содержит элементов - выводим сообщение
    if ($$(el).get('id')==0) {
        alert("В группе не содержится элементов");
        return;
    }
    // Выводим диалог подтверждения операции
    if (!confirm("Вы действительно хотите удалить прикрепление "+count+" товаров от группы '"+nameGroup+"'?")) return;
    // Формируем строку параметров
    var pars = $H({
        group_id:groupId
    }).toQueryString();
    
    // Отправляем AJAX-запрос на удаление привязки элементов к группе 
    request = new Request.HTML({
        url: 'modules/catalog_group_manager/ajax/actions.php?unlink_elements',
        method: 'get',
        evalScripts: false, 
        onComplete: function(q,w,responseText){
            // Если произошла ошибка удаления привязок - выводим сообщение
            if (responseText=='ERROR'){
                alert("Прикрепление товаров не выполнено. Попробуйте обновить страницу и повторить операцию.");
                return;
            }
            // Выводим сообщение об успешном удалении привязок
            alert(responseText+" товаров успешно откреплены от группы "+nameGroup);
            // Обновляем текст с количеством элементов в группе
            $$(el).getParent().getParent().getElement("span.kol_elements").set('text','(Элементов:0)');
            // Обновляем кол-во элементов в id
            $$(el).set('id',0);
            // Обновляем кол-во элементов для кнопки удаления группы
            $$(el).getParent().getElement(".btn_delete_group").set('id',0);
        }
    }).send(pars);
}
//==============================================================================
//===================== Функция удаления группы ================================
function delete_group(obj, groupId){
    var el = obj;
    // Получаем кол-во элементов в группе из id кнопки
    var count = $$(el).get('id');
    // Получаем название группы
    var nameGroup = $$(el).getParent().getParent().getElement(".lmenu_group_name").get('text');
    // Если группа содержит элементы - выводим сообщение
    if ($$(el).get('id')!=0) {
        alert("В группе содержатся элементы. Ее невозможно удалить.");
        return;
    };
    // Выводим диалог подтверждения операции
    if (!confirm("Вы действительно хотите удалить группу '"+nameGroup+"'?")) return;
    // Формируем строку параметров
    var pars = $H({
        group_id:groupId
    }).toQueryString();
    
    // Отправляем AJAX-запрос на удаление группы
    request = new Request.HTML({
        url: 'modules/catalog_group_manager/ajax/actions.php?delete_group',
        method: 'get',
        evalScripts: false, 
        onComplete: function(q,w,responseText){
            // Если произошла ошибка удаления группы - выводим сообщение
            if (responseText=='ERROR_DELETE'){
                alert("Удаление группы не выполнено. Попробуйте обновить страницу и повторить операцию.");
                return;
            }
            // Если задан неверный id группы
            else if (responseText=='INCORRECT_ID'){
                alert("Удаление группы не выполнено. Попробуйте обновить страницу и повторить операцию.");
                return;
            }
            // Если группа содержит подгруппы
            else if (responseText=='HAS_GROUPS'){
                alert("Данная группа содержит подгруппы. Невозможно ее удаление.");
                return;
            }
            // Выводим сообщение об успешном удалении привязок
            alert("Группа "+nameGroup+" успешно удалена!");
            // Обновляем текст с количеством элементов в группе
            $$(el).getParent().getParent().destroy();
        }
    }).send(pars);
}
//==============================================================================
