# -*- coding: iso-8859-1 -*-
# Mint szavaz.rb, csak most mar figyelunk, 
# hogy egy browserbol csak egyszer lehessen szavazni.
# WEBrick::Cookie leiras: http://segment7.net/projects/ruby/WEBrick/cookies.html

require 'wreq'

DOCTYPE = %{<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
	  "http://www.w3.org/TR/html4/loose.dtd">}

META = %{<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-2">}

@fizetes = { 'igen' => 0, 'nem' => 0}
@homerseklet = { 'igen' => 0, 'nem' => 0}

def szavazott?(req)
  # req.cookies tömbben kell megtalálnunk a "szavazott" nevut
  nil != req.cookies.find() { |cookie| cookie.name=="szavazott"}
end

def szavazhat (req,resp)
  new_cookie = WEBrick::Cookie.new("szavazott","igen")
  new_cookie.max_age = 10 #csak hogy tesztelheto legyen
  resp.cookies << new_cookie  
  if req.query['fizetes'] == "1" then
    @fizetes['igen']+=1
  else
    @fizetes['nem']+=1
  end
  if req.query['homerseklet'] == "1" then
    @homerseklet['igen']+=1
  else
    @homerseklet['nem']+=1
  end
  resp.body = %{
  #{DOCTYPE}
  <html>
   <head>
     #{META}
     <title>Szavazás</title>
   </head>
   <body>
      <p>
      A szavazás jelenlegi állása:
      <ul>
         <li>fizetés-reform: #{@fizetes['igen']} támogatás, #{@fizetes['nem']} elutasítás
         <li>hőmérséklet-reform: #{@homerseklet['igen']} támogatás, #{@homerseklet['nem']} elutasítás
      </ul>
   </body>
  </html>
}
end

def nem_szavazhat(resp)
  resp.body = %{
  #{DOCTYPE}
  <html>
    <head>
      #{META}
      <title>Szavazás</title> 
    </head>
    <body>
      Már szavazott! Mit akar még! Menjen haza!
    </body>
  </html>}
end

szavaz_proc = lambda do |req,resp|
  resp['Content-Type'] = "text/html"
  if szavazott?(req)
    nem_szavazhat(resp)
  else
    szavazhat(req,resp)
  end
end

s = MyServer.new(:Port => 9090)
s.publish("/do_szavaz",szavaz_proc)
s.publish_file("/szavaz","szavaz.html")
s.start
