module ApplicationHelper

  def render_catalogue_category_path(catalogue_category_path, link_last)
    catalogue_category_path.each_with_index do |catalogue_category, index|
      if index >= catalogue_category_path.size - 1 && !link_last
        safe_concat '<li class="breadcrumb__item">'
        concat catalogue_category.title
      else
        safe_concat '<li class="breadcrumb__item">'
        concat(link_to catalogue_category.title, catalogue_category_path(catalogue_category))
      end
      safe_concat '</li>'
    end
  end

  def render_catalogue_info_category_path(catalogue_category_path)
    catalogue_category_path.each_with_index do |catalogue_category, index|
      if index >= catalogue_category_path.size - 1
        safe_concat '<li class="breadcrumb__item current">'
        concat catalogue_category.title
      else
        safe_concat '<li class="breadcrumb__item">'
        concat(link_to catalogue_category.title, catalogue_category_path(catalogue_category))
      end
      safe_concat '</li>'
    end
  end

  def print_catalogue_tree(tree)
    even_elements_tree = tree.select.each_with_index { |_, i| i.odd? }
    odd_elements_tree = tree.select.each_with_index { |_, i| i.even? }
    print_readable_tree_node(even_elements_tree, true)
    print_readable_tree_node(odd_elements_tree, false)
  end

  def print_readable_tree_node(readable_hash_tree, is_even)
    if is_even
      safe_concat '<div class="cat-section__item">'
    else
      safe_concat '<div class="section__item">'
    end
    readable_hash_tree.each do |(section, subsections)|
      safe_concat '<div class="category">'
      safe_concat '<div class="category__header">'
      safe_concat "<a href=\"#{catalogue_category_path(section)}\">#{section.title}</a>"
      safe_concat '</div>'
      print_category_list(subsections)
      safe_concat '</div>'
    end
    safe_concat '</div>'
  end

  def print_category_list(readable_hash_tree)
    safe_concat '<ul class="category__list">'
    readable_hash_tree.each do |(section, subsections)|
      safe_concat '<li class="category__item">'
      safe_concat "<a href=\"#{catalogue_category_path(section)}\">#{section.title}</a>"
      print_subcategory_list(subsections)
      safe_concat '</li>'
    end
    safe_concat '</ul>'
  end

  def print_subcategory_list(readable_hash_tree)
    safe_concat '<ul class="sub-category__list">'
    readable_hash_tree.each do |(section, _subsections)|
      safe_concat '<li class="sub-category__item">'
      safe_concat "<a href=\"#{catalogue_category_path(section)}\">#{section.title}</a>"
      safe_concat '</li>'
    end
    safe_concat '</ul>'
  end
end
