#!/usr/bin/ruby -w
##  adaptation en Ruby de l'exemple de 
##  Personnalisation persistante de langue (perl) (K&Y fig 8.5) 
require "erb"
require 'cgi'

greetings = {"USA" => "Welcome",
             "UK" => "Welcome",
             "Canada" => "Welcome",
             "France" => "Bienvenue",
             "Germany" => "Wilkommen",
             "Spain" => "Bienvenidos",
             "KlingonEmpire" => "nuqneH",
             "Romulus" => "Aefvadh"
}

cgi=CGI.new

if cgi.params["request"][0]=="reset"
  print cgi.header("type"=>"text/html")
  file = "preference_page.rhtml";
elsif cgi.cookies.has_key?("language") || cgi.params["request"][0]=="custom_page"
  if cgi.has_key?("language")
    language = cgi.params["language"][0]
    if cgi.has_key?("flag")
      flag="yes"
    else
      flag="no"      
    end
  else
    language=cgi.cookies["language"][0]
    flag=cgi.cookies["flag"][0]
  end
  in_a_year = Time.now+(24*60*60*365) # expire dans un an...
  cookie_language = CGI::Cookie.new('name'=>"language",
                                    'value'=>language,
                                    'path'=>"/",
                                    'expires'=>in_a_year)
  cookie_flag = CGI::Cookie.new('name'=>"flag",
                                'value'=>flag,
                                'path'=>"/",
                                'expires'=>in_a_year)
  print cgi.header("type"=>"text/html","cookie"=>[cookie_language,cookie_flag])
  file = "custom_page.rhtml"
else
  print cgi.header("type"=>"text/html")
  file = "preference_page.rhtml"
end
ERB.new(File.read(file)).run(binding)