#!/usr/bin/ruby1.8
#coding: utf-8

require "cgi"
require 'rubygems'
require 'dbi'

CGI_NAME = "rrpc.cgi"

# -----------------------------------------------
# --- login
# -----------------------------------------------

DBNAME = 'DBI:Mysql:koruri:magpie.koruri-word.net'
DBLOGIN = 'rerofumi'
DBPASS = 'mzEeZdEUhZcF'
VERB = false


# -----------------------------------------------
# --- html
# -----------------------------------------------

class GenHtml
  def initialize(db, id)
    @id = id
    @db = db
  end

  def header
    parts = ""
    parts << "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">"
    parts << "<html xmlns=\"http://www.w3.org/1999/xhtml\">\n"
    parts << "<HEAD>\n"
    parts << "<meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\" />\n"
#    parts << "<meta name=\"viewport\" content=\"width=device-width; initial-scale=1.0;\">\n"
    if FileTest.exist?("html_header.html") then
      open("html_header.html") do |fp|
        fp.each do |line|
          parts << line
        end
      end
    end
    parts << "</HEAD>\n"
    parts << "<body class=\"background\" onload=\"MM_preloadImages('talk_button_over.jpg','talk_button_push.jpg')\">\n"
    parts
  end

  def footer
    parts = ""
    parts << "</BODY></HTML>\n"
    parts
  end

  def preview
    ""
  end

  def param
    wavefile = @id.to_s + ".wav"
    tweet = ''
    sql = 'SELECT talk FROM ruripeco_talk WHERE time=?'
    sth = @db.execute(sql, @id.to_i)
    sth.fetch do |row|
      tweet << row[0]
      break
    end
    sth.finish
    #
    parts = ""
    parts << "<div class=\"mainwindow\">\n"
    parts << "  <div class=\"faceicon\">\n"
    parts << "  <img src=\"ruripeco_tw_icon01.png\" width=\"128\" height=\"128\" alt=\"faceicon\" />\n"
    parts << "  </div>\n"
    parts << "  <div class=\"name\">\n"
    parts << "    るりぺこ。/bot\n"
    parts << "  </div>\n"
    parts << "  <div class=\"talkbutton\">\n"
    parts << "<a href=\"#\" onClick=\"doTalk('data/#{wavefile}')\" onmouseout=\"MM_swapImgRestore()\" onmouseover=\"MM_swapImage('button','','talk_button_over.jpg',1)\" onmouseup=\"MM_swapImgRestore()\" onmousedown=\"MM_swapImage('button','','talk_button_push.jpg',1)\"><img src=\"talk_button.jpg\" name=\"button\" width=\"128\" height=\"128\" border=\"0\" id=\"button\" /></a>\n"
    parts << "  </div>\n"
    parts << "  <div class=\"tweet\">\n"
    parts << tweet
    parts << "  </div>\n"
    parts << "</div>\n"
    parts << "<p>\n"
    parts << sprintf("wavfile: <a href=\"data/%s\">%s</a>\n", wavefile, wavefile)
    parts << "</p>\n"
    parts
  end

  def generate
    page = "Content-type: text/html\n\n"
    page << header
    page << param
    page << preview
    page << footer
    page
  end
 
end


# -----------------------------------------------
# --- cgi work
# -----------------------------------------------

cgi = CGI.new
params = cgi.params
display_id = params["q"][0].to_i

# --- open DB
db = DBI.connect(DBNAME, DBLOGIN, DBPASS)
db.do('SET NAMES utf8')

# --- page generate
htmlmaker = GenHtml::new(db, display_id)

print htmlmaker.generate()

