module ParserCommon
 include ActionView::Helpers::TagHelper
  def menu_level(page, current_page, current, menu, edit = false)
    res = ''
    if page.ordered_and_visible_children.size > 0
      res << "
"
    end
    res
  end
  
  def menu_li(page, current_page, current, menu, i, edit)
    res = ""
  end
  # ad_banners
  def parse_ad_banners(body = nil, page = nil, id = nil, edit=nil)
    body.css('ad_banner').each do |banner|
      res = ''
      ad_banner = AdBanner.find(banner["id"]) rescue nil
      if ad_banner
        res << ""
        res << ""
        res << ""
        printable_ad_images = []
        ad_banner.ad_images.each do |ad_image|
          if ad_image.display?
            ad_image.weight.times do
              printable_ad_images << ad_image
            end
          end
        end
        printable_ad_images.shuffle!
        printable_ad_images.each  do |ad_image|  #TODO Need Reflact
          res << "

"          
        end
        res << "
 '
      end
      fragment = Nokogiri::HTML::DocumentFragment.new(body, res)
      page_image.swap(fragment)
    end
  end
  # page_menu
  def parse_menu(body, page, edit=nil)
    page_menu = body.css('.page_menu').first
    home = get_homepage
    menu = page.design.layout.menu
    fragment = Nokogiri::HTML::DocumentFragment.new(body, menu_level(home, page, 1, menu, edit))
    page_menu.swap(fragment)
  end
  # sub_menus
  def parse_sub_menus(body = nil, page = nil, id = nil, edit=nil)
    body.css('sub_menu').each do |sub_menu|
      menu_page = Page.find(sub_menu['id']) rescue nil
      res = ''
      if menu_page && menu_page.ordered_and_visible_children.size > 0
        res << "
'
      end
      fragment = Nokogiri::HTML::DocumentFragment.new(body, res)
      page_image.swap(fragment)
    end
  end
  # page_menu
  def parse_menu(body, page, edit=nil)
    page_menu = body.css('.page_menu').first
    home = get_homepage
    menu = page.design.layout.menu
    fragment = Nokogiri::HTML::DocumentFragment.new(body, menu_level(home, page, 1, menu, edit))
    page_menu.swap(fragment)
  end
  # sub_menus
  def parse_sub_menus(body = nil, page = nil, id = nil, edit=nil)
    body.css('sub_menu').each do |sub_menu|
      menu_page = Page.find(sub_menu['id']) rescue nil
      res = ''
      if menu_page && menu_page.ordered_and_visible_children.size > 0
        res << ""
        res << "
#{menu_page.i18n_variable[I18n.locale]}
"
        res << "
"
        res << ""
        res << "