require 'open-uri'
require 'hpricot'

Shoes.app do
  flow do
    (Hpricot(open('http://the-shoebox.org/'))/"div#app_grid/a").each do |app|
      stack :width=>170 do
        stack(:height=>10) {}
        flow :width=>150 do
          stack(:width=>10) {}
          stack do
            background red
            src=app.at("div.app").at("img")['src']
            image((src[0..6]=="http://" ? src : "http://the-shoebox.org"+src),:width => 150,:height => 75)
            para app.at("h6").inner_html
            click do
              app_page=Hpricot(open(app['href']))
              Shoes.app do
                stack do
                  stack do
                    para((app_page/"div.description_display").inner_html.strip.gsub(/<(.*?)>/,''))
                  end
                  flow {
                    @links = stack {}
                    @pics = stack {}
                  }
                  (app_page/"div.version").each do |version| 
                    ext=version.at("div.version_extension").inner_html.strip
                    if ext == ".rb" or ext == ".shy"
                      a=version.at('a')
                      @links.append { para link(a.inner_html,:click => proc { `shoes #{a['href']}` } ) }
                    elsif ext == ".png"
                      @pics.append { image version.at('a')['href'] }
                    end
                  end
                end
              end
            end
          end
          stack(:width=>10) {}
        end
        stack(:height=>10) {}
      end
    end
  end   
end