-/*
+========
+ TODO
+========
+
BRISK3 (trusty)
======
+ - donameter
+ DONE - G_donors
+ DONE (WOW!) - js object with infos
+ DONE - main logic at login (cookie check in index_rd.php; show_message and createCookie via snippets with block
+ to prevent fast reload)
+ DONE - cookie per non assillare e visualizz.
+ graphical donameter
+ WIP content (in conf.)
+
+ DONE - numero di tavoli auth-only nel .brisk-install
+ - isolation
+ TEST - ricalcolo delle persone in piedi quando si cambia modalità
+ DONE - se si e' in isolation non si può cambiare nick perdendo l' auth
+ DONE - non leggere le chat di quelli non autenticati (in isolation)
+ DONE - regole per passare alla modalita' (in piedi o ai tavoli autenticati)
+ DONE - treni non auth da nascondere
+ DONE - verso gli altri ??: uguale a prima
+
+ finire multilingua (briskin5/index_wr.php e altri se ce ne sono)
+ coniglio
+ only auth strictly
+
+Dunque,
+
+- come vengono aggiornate le classifiche: ogni giorno alle 23:58
+
+- cosa cambia tra le tre coppie di classifiche:
+ ci sono le classifiche dell' ultima settimana, quelle dell' ultimo mese, e quelle dell' ultimo trimestre,
+ per ognuno di questi lassi di tempo poi c'e' la classifica di chi ha giocato piu' di TOT partite o meno di TOT partite, con TOT che cambia a seconda del lasso di tempo.
+
+- come vengono calcolate le classifiche: per ogni utente vengono presi tutti i punti fatti ai tavoli con lucchetto nel lasso di tempo preso in considerazione (ultima settimana, ultimo mese o ultimo trimestre), sommati e divisi per il numero di partite fatte in quello stesso lasso di tempo per normalizzare i valori; poi siccome la gente quando vede 0.18734 sbarella ho deciso di moltiplicare il tutto per 100.
+
+Un esempio per chiarire:
+
+ l'utente 'pippo' che è nuovo gioca 4 partite nell'ultima settimana con i seguenti punteggi:
+ -2, 1, 2, 1
+ lo score viene { [ (-2) + (1) + (2) + (1) ] / 4 } * 100 = 50.0
+
+ a parita' di score tra utenti va più in alto chi ha giocato più partite.
- BUG
- ===
- DONE righe troncate
- - problema col treno se mouse sopra mentre stringe (verif)
- DONE - questione "a monte" che:
- DONE - lascia fuori il bottone
- DONE - scrive à e compagnia
- DONE - refresh act_table when unauthorized
- DONE - problema ghost autenticato (ne prendi il posto ovunque sia)
+Se dopo quelle 4 partite 'pippo' non ne giochera' più, passata una settimana dall'ultima giocata
+sparirà dalla classifica settimanale e rimarrà in quelle mensili e trimestrali.
- MINOR
- DONE - refactoring of the owner name (auth attr for owner name)
- DONE - room
- DONE - at chat input line
- DONE - in the chat output line
- DONE - deauth management
- DONE - table
- DONE - at chat input line
- DONE - in the chat output line
- DONE - for user area of other users
- DONE - deauth management
- DONE - alart to one user
-
- TODO
- ====
- - strong ban: "expire time|IP|session|(nick if authenticated)"
- DONE - login: se auth - verifica solo gli expire per quel nick
- DONE - se non auth - verifica gli expire per IP e sessione
- - riscrivere i messaggi
-
- DONE - login
- DONE - se pass:
- DONE - richiede per l' utente un token (tutta la parte backend va un minimo studiata)
- DONE - lo legge, ci hasha la password
- DONE - invia la pass al server hashata
- DONE - se non pass:
- DONE - check del login e return corretto
- DONE - oggetto in shm single table con ( "ip", "login", timestamp ) e suo management
- DONE - rename ghost if logged
- DONE - onunload_cb e onbeforeunload_cb !!!
- DONE - da change attrs a change class (input field)
- DONE - colore del bg per arrivare ad essere omogeneo
- DONE - cambiare path e file di config
- DONE - login with or without pass
- DONE - registered nick notice (METTERE IL MSG NELLA PAG DI LOGIN)
- DONE - segnalare tavoli solo per auth
- DONE - rename restriction at auth table
- DONE - change nick (strcasecmp)
- DONE - refact js tables to handle flags
- restrict challenge per IP
- restricted charset for login
-
- - login modify
- DONE - db (fake)
- DONE - display auth
- - manage preferences
- - db (minimal)
- - db admin page
- - user db admin
- - use db
- - admin db
- DONE - work background
- DONE - reserved tables
+
- STUDIARE UN ANTI-DOS
+
+ BUG
+ ---
+
+ DONE - paste da demauroparavia
+ DONE - recupero partita per re-login con password
+ DONE - problema "|" nei nomi (manca enhance degli script lato server)
+ - problema col treno se mouse sopra mentre stringe (verif)
- DONE - room javascript refactoring
+ MINOR
+ -----
+
+ NORMAL
+ ------
+
+ - win test
+ WIP - /listen
+ DONE - skin della textarea
+ DONE - set cookie
+ DONE - init client (read from cookie) - ALWAYS BY SERVER
+ DONE - init server
+ DONE - after cookie check auth-only when no-auth case
+ DONE - aggiungi info accanto a "Chat"
+ DONE - /mesgtoadm
+ DONE - img dei comandi
+
+ DONE - form per garantire utenti (accoda in un file nel formato corretto)
+ DONE - process request
+ DONE - show form
+ DONE - close butt
+ DONE - submit form
+ DONE - process form js side
+ DONE - process form
+ DONE - documentazione in help
+
+ DONE - user status
+
+ DONE - aggiornare help
+ DONE - overflow management
+ DONE - for status
+ - for password
+
+ DONE - reload home
+ - notify for long pages
+
+ - buddy list
+ - silenziastolti vari (fino al buddy import)
+ - restrict challenge per IP
+ - restricted charset for login
+ - watchdog
+
+ - db (minimal)
+ - db admin page
+ - user db admin
+ - use db
+ - admin db
+
+ - studiare un anti-dos
+ - login modify
+ DONE - db (fake)
+ DONE - display auth
+ - manage preferences
minor
-----
- auth after login
+----- done ------
+
+ BUG
+ ---
+ DONE righe troncate
+ DONE - questione "a monte" che:
+ DONE - lascia fuori il bottone
+ DONE - scrive à e compagnia
+ DONE - refresh act_table when unauthorized
+ DONE - problema ghost autenticato (ne prendi il posto ovunque sia)
+
+ MINOR
+ -----
+ DONE - refactoring of the owner name (auth attr for owner name)
+ DONE - room
+ DONE - at chat input line
+ DONE - in the chat output line
+ DONE - deauth management
+ DONE - table
+ DONE - at chat input line
+ DONE - in the chat output line
+ DONE - for user area of other users
+ DONE - deauth management
+ DONE - alart to one user
+
+
+ NORMAL
+ ------
+ DONE - strong ban: "expire time|IP|session|(nick if authenticated)"
+ DONE - login: se auth - verifica solo gli expire per quel nick
+ DONE - se non auth - verifica gli expire per IP e sessione
+ DONE - riscrivere messaggi
+
+ DONE - login
+ DONE - se pass:
+ DONE - richiede per l' utente un token (tutta la parte backend va un minimo studiata)
+ DONE - lo legge, ci hasha la password
+ DONE - invia la pass al server hashata
+ DONE - se non pass:
+ DONE - check del login e return corretto
+ DONE - oggetto in shm single table con ( "ip", "login", timestamp ) e suo management
+ DONE - rename ghost if logged
+ DONE - onunload_cb e onbeforeunload_cb !!!
+ DONE - da change attrs a change class (input field)
+ DONE - colore del bg per arrivare ad essere omogeneo
+ DONE - cambiare path e file di config
+ DONE - login with or without pass
+ DONE - registered nick notice (METTERE IL MSG NELLA PAG DI LOGIN)
+ DONE - segnalare tavoli solo per auth
+ DONE - rename restriction at auth table
+ DONE - change nick (strcasecmp)
+ DONE - refact js tables to handle flags
+ DONE - room javascript refactoring
+
+ DONE - work background
+ DONE - reserved tables
+
BRISK2 (spawn)
======