commands menu, /listen and /mesgtoadm commands added
[brisk.git] / web / index.php
index 75f4869..bc0735f 100644 (file)
@@ -2,7 +2,7 @@
 /*
  *  brisk - index.php
  *
- *  Copyright (C) 2006-2008 Matteo Nastasi
+ *  Copyright (C) 2006-2009 Matteo Nastasi
  *                          mailto: nastasi@alternativeoutput.it 
  *                                  matteo.nastasi@milug.org
  *                          web: http://www.alternativeoutput.it
@@ -28,6 +28,9 @@ require_once("Obj/brisk.phh");
 require_once("Obj/auth.phh");
 require_once("Obj/proxyscan.phh");
 
+$mlang_room = array( 'userpasserr' => array('it' => 'Utente e/o password errati.',
+                                            'en' => 'Wrong user and/or password.') );
+
 // Use of proxies isn't allowed.
 if (!$G_is_local && is_proxy()) 
    exit;
@@ -44,7 +47,8 @@ function main()
 {
   GLOBAL $G_with_topbanner, $G_topbanner, $G_is_local;
   GLOBAL $sess, $name, $pass_private, $table_idx, $table_token, $BRISK_SHOWHTML, $BRISK_DEBUG, $_SERVER;
-
+  GLOBAL $G_lang, $G_lng, $mlang_room;
+  $is_login = FALSE;
   $body = "";
   $tables = "";
   $standup = "";
@@ -100,12 +104,24 @@ function main()
        $ACTION = "room";
        if ($idx < 0) {
           $idx = -$idx - 1;
-          $login_exists = TRUE;
+          $is_login = TRUE;
         }
-        else
-          $login_exists = FALSE;
 
-        log_legal($curtime, $user->sess, $user->name, "STAT:LOGIN", '');
+        log_legal($curtime, $user, "STAT:LOGIN", '');
+
+        // recovery lost game
+       if ($user->stat == "table") {
+         if (Room::save_data(&$room) == FALSE) {
+           echo "ERRORE SALVATAGGIO\n";
+           exit;
+         }
+         log_main("unlock Room");
+         Room::unlock_data($sem);
+         setcookie("table_token", $user->table_token, $curtime + 31536000);
+         setcookie("table_idx", $user->table, $curtime + 31536000);
+         header ("Location: briskin5/index.php");
+         exit;
+       }
 
 
        // setcookie ("sess", "", time() + 180);      
@@ -118,8 +134,9 @@ function main()
       }
       else {
        /* Login Rendering */
-       if ($idx == -3)
-         $body .= '<div class="urgmsg"><b>Utente e/o password errati.</b></div>';
+        /* MLANG: "Utente e/o password errati.", "Il nickname deve contenere almeno una lettera o una cifra.", "Spiacenti, non ci sono pi&ugrave; posti liberi. Riprova pi&ugrave; tardi.", "Il tuo nickname &egrave; gi&agrave; in uso." */
+       if ($idx == -3) 
+         $body .= '<div class="urgmsg"><b>'.$mlang_room['userpasserr'][$G_lang].'</b></div>';
        else if ($idx == -2)
          $body .= '<div class="urgmsg"><b>Il nickname deve contenere almeno una lettera o una cifra.</b></div>';
        else if ($idx == -1) 
@@ -142,8 +159,13 @@ function main()
   if ($ACTION == "room") {
     $tables .= '<div class="room_tab">';
     $tables .= '<table class="room_tab">';
-    for ($i = 0 ; $i < TABLES_N ; $i++) {
-      if ($i % 4 == 0)
+    for ($ii = 0 ; $ii < TABLES_N ; $ii++) {
+      if ($user->flags & USER_FLAG_AUTH)
+        $i = $ii;
+      else
+        $i = TABLES_N - $ii - 1;
+
+      if ($ii % 4 == 0)
        $tables .= '<tr>';
       $tables .= '<td>';
       $tables .= '<div class="room_div"><div class="room_tit"><b>Tavolo '.$i.'</b></div>';
@@ -151,7 +173,7 @@ function main()
       $tables .= sprintf('<div class="table_act" id="table_act%d"></div>', $i);
       $tables .= '</div>';
       $tables .= '</td>'."\n";
-      if ($i % 4 == 3)
+      if ($ii % 4 == 3)
        $tables .= '</tr>';
     }
     $tables .= '</table></div>';
@@ -159,10 +181,12 @@ function main()
 
     $standup .= '<table class="room_standup"><tr><td><div class="room_standup_orig" id="room_standup_orig"></div>';
     $standup .= '<div class="room_ex_standup">';
+    /* MLANG: "Giocatori in piedi", "Come ottenere user e password" */
+    // $standup .= '<div id="room_tit"><span class="room_titin"><b>Giocatori in piedi</b> - <a target="_blank" href="weboftrust.php">Come ottenere user e password</a> - </span></div>';
     $standup .= '<div id="room_tit"><span class="room_titin"><b>Giocatori in piedi</b></span></div>';
     
     $standup .= sprintf('<div id="standup" class="room_standup"></div>');
-    $standup .= '<div id="esco" class="esco"></div>';
+    $standup .= '<div id="esco" class="esco"><input type="button" class="button" name="xreload"  value="Reload." onclick="act_reloadroom();"><input class="button" name="logout" value="Esco." onclick="esco_cb();" type="button"></div>';
     $standup .= '</div></td></tr></table>';
   }
 
@@ -195,7 +219,7 @@ function main()
     $brisk_donate = "";
 
 
-
+  /* MLANG: "briscola chiamata in salsa ajax", */
 
 $brisk_header_form = '<div class="container">
 <!-- =========== header ===========  -->
@@ -247,13 +271,14 @@ google_color_url = "000000";
 </td></table>
 </div>';
 
+/* MLANG: ALL THE VERTICAL MENU */
 $brisk_vertical_menu = '
 <!--  =========== vertical menu ===========  -->
 <div class="topmenu">
 <!-- <a target="_blank" href="/briskhome.php"></a> -->
 
 <div class="webstart_hilite">
-<img class="nobo" src="img/brisk_start.png" onmouseover="menu_show(\'menu_webstart\');">
+<img class="nobo" src="img/brisk_start.png" onmouseover="menu_hide(0,0); menu_show(\'menu_webstart\');">
 <div class="webstart" id="menu_webstart" onmouseover="menu_over(1,this);" onmouseout="menu_over(-1,this);">
 
 <a target="_blank" href="http://www.alternativeoutput.it/briskhome.php" 
@@ -307,9 +332,9 @@ $brisk_vertical_menu = '
    title="prossime funzionalità implementate" onclick="act_roadmap();">roadmap</a><br>
 
 <a href="#" title="foto dei raduni di briskisti" 
-   onmouseover="menu_show(\'menu_raduni\');">raduni</a><br>
+   onmouseover="menu_show(\'menu_meeting\');">raduni</a><br>
 
-<div id="menu_raduni" class="webstart">
+<div id="menu_meeting" class="webstart">
 <a href="http://www.anomalia.it/mop/photoo" 
    target="_blank" onmouseover="menu_hide(0,2);"
    title="Torneo di Milano del 17/05/2008" >Milano 05/08</a><br>
@@ -318,14 +343,79 @@ $brisk_vertical_menu = '
    target="_blank" onmouseover="menu_hide(0,2);"
    title="Raduno di Piacenza del del 15/06/2008" >Piacenza 06/08</a><br>
 </div>
+</div>'. ($ACTION == "room" ? '<div style="padding: 0px; margin: 0px; witdh: 50px; height: 8px; font-size: 1px;"></div><img class="nobo" src="img/brisk_commands.png" onmouseover="menu_hide(0,0); menu_show(\'menu_commands\');">
+
+<div class="webstart" id="menu_commands" onmouseover="menu_over(1,this);" onmouseout="menu_over(-1,this);">
+
+<a href="#" title="imposta lo stato del tuo utente" 
+   onmouseover="menu_hide(0,1); menu_show(\'menu_state\');">stato</a><br>
+<div id="menu_state" class="webstart">
+<a href="#" 
+   onmouseover="menu_hide(0,2);"
+   title="" onclick="act_chatt(\'/st normale\'); menu_over(-1,this);">normale</a><br>
+
+<a href="#" 
+   onmouseover="menu_hide(0,2);"
+   title="" onclick="act_chatt(\'/st pausa\'); menu_over(-1,this);">pausa&nbsp;<img class="unbo" src="img/st_pau.png"></a><br>
+
+<a href="#" 
+   onmouseover="menu_hide(0,2);"
+   title="" onclick="act_chatt(\'/st fuori\'); menu_over(-1,this);">fuori&nbsp;<img class="unbo" src="img/st_out.png"></a><br>
+
+<a href="#" 
+   onmouseover="menu_hide(0,2);"
+   title="" onclick="act_chatt(\'/st cane\'); menu_over(-1,this);">cane&nbsp;<img class="unbo" src="img/st_dog.png"></a><br>
+
+<a href="#" 
+   onmouseover="menu_hide(0,2);"
+   title="" onclick="act_chatt(\'/st cibo\'); menu_over(-1,this);">cibo&nbsp;<img class="unbo" src="img/st_eat.png"></a><br>
+
+<a href="#" 
+   onmouseover="menu_hide(0,2);"
+   title="" onclick="act_chatt(\'/st lavoro\'); menu_over(-1,this);">lavoro&nbsp;<img class="unbo" src="img/st_wrk.png"></a><br>
+
+<a href="#" 
+   onmouseover="menu_hide(0,2);"
+   title="" onclick="act_chatt(\'/st sigaretta\'); menu_over(-1,this);">sigaretta&nbsp;<img class="unbo" src="img/st_smk.png"></a><br>
+
+<a href="#" 
+   onmouseover="menu_hide(0,2);"
+   title="" onclick="act_chatt(\'/st presente\'); menu_over(-1,this);">presente&nbsp;<img class="unbo" src="img/st_eye.png"></a><br>
+
 </div>
+
+<a href="#" title="avvia un ticker pubblicitario per il tuo tavolo" 
+   onmouseover="menu_hide(0,1);" onclick="act_chatt(\'/tav \'+$(\'txt_in\').value); menu_over(-1,this);">ticker &nbsp;<img class="unbo" src="img/train.png"></a><br>
+
+<a href="#" title="garantisci per un tuo conoscente" 
+   onmouseover="menu_hide(0,1);" onclick="act_chatt(\'/garante\'); menu_over(-1,this);">garantisci</a><br>
+
+<a href="#" title="manda un messaggio o una segnalazione all\'amministratore del sito" 
+   onmouseover="menu_hide(0,1);" onclick="act_chatt(\'/mesgtoadm\'); menu_over(-1,this);">segnala a mop</a><br>
+
+
+<a href="#" title="imposta le regole di ascolto" 
+   onmouseover="menu_hide(0,1); menu_show(\'menu_listen\');">ascolta</a><br>
+<div id="menu_listen" class="webstart">
+<a href="#" 
+   onmouseover="menu_hide(0,2);"
+   title="leggo i messaggi di tutti gli utenti collegati" onclick="act_chatt(\'/listen all\'); menu_over(-1,this);"><span id="list_all">tutti</span></a><br>
+<a href="#" 
+   onmouseover="menu_hide(0,2);"
+   title="leggo soltanto i messaggi degli utenti con password" onclick="act_chatt(\'/listen auth\'); menu_over(-1,this);"><span id="list_auth">solo autenticati</span></a><br>
+
+</div>
+
+</div>' : '').'
+
 </div>
-<br><br><br>
+<br>
 sponsored by:<br><br>'.$altout_carousel.'<br>
 <a target="_blank" href="http://www.dynamica.it"><img class="nobo" id="btn_dynamica" src="img/dynamica.png" onMouseOver="show_bigpict(this, \'over\',100,10);" onMouseOut="show_bigpict(this, \'out\',0,0);"></a><br><br>
 supported by:<br><br>
 <a target="_blank" href="http://www.briscolachiamata.it"><img class="nobo" id="btn_brichi" src="img/brichi.png" onMouseOver="show_bigpict(this, \'over\',100,10);" onMouseOut="show_bigpict(this, \'out\',0,0);"></a><br>
-<a target="_blank" href="http://www.forumolimpia.it"><img class="nobo" id="btn_foroli" src="img/forumolimpia.gif" onMouseOver="show_bigpict(this, \'over\',100,10);" onMouseOut="show_bigpict(this, \'out\',0,0);"></a><br><br>
+<a target="_blank" href="http://www.forumolimpia.it"><img class="nobo" id="btn_foroli" src="img/forumolimpia.gif" onMouseOver="show_bigpict(this, \'over\',100,10);" onMouseOut="show_bigpict(this, \'out\',0,0);"></a><br>
+<a target="_blank" href="http://it-it.facebook.com/group.php?gid=59742820791"><img class="nobo" id="btn_facebook" src="img/facebook_btn.png" title="unisciti al gruppo \'quelli della brisk\'"></a><br>
 <div id="proflashext" class="proflashext"><div id="proflash" class="proflash">
 </div><br><br></div>
 %s
@@ -353,20 +443,23 @@ supported by:<br><br>
 <script type="text/javascript" src="AC_OETags.js"></script>
 <script type="text/javascript" src="room.js"></script>
 <script type="text/javascript" src="md5.js"></script>
+<script type="text/javascript" src="probrowser.js"></script>
+<!-- <script type="text/javascript" src="myconsole.js"></script>  -->
 <link rel="stylesheet" type="text/css" href="brisk.css">
 <link rel="stylesheet" type="text/css" href="room.css">
 
 <SCRIPT type="text/javascript"><!--
+   var g_lang = "<? echo $G_lang; ?>";
    var g_withflash = false;
    var g_is_spawn = 0; 
    var gst  = new globst();
    var topbanner_sfx, topbanner_dx;
-
+   var g_brow = null;
    var sess = "not_connected";
   
    window.onload = function() {
      // alert(window.onbeforeunload);
-
+     g_brow = get_browser_agent();
      login_init();
 <?php
      if ($G_with_topbanner) {
@@ -385,6 +478,7 @@ supported by:<br><br>
    //-->
 </SCRIPT>
 </head>
+<!-- if myconsole <body onunload="deconsole();"> -->
 <body>
 <?php
     printf($brisk_header_form);
@@ -394,7 +488,10 @@ supported by:<br><br>
 ?> 
 
 <!--  =========== tables ===========  -->
-<?php echo "$body"; ?>
+<?php 
+
+/* MLANG: "Digita il tuo nickname per accedere ai tavoli della briscola.", "entra", "Se non hai ancora una password, lascia il campo in bianco ed entra." ,"(se usi firefox e qualcosa non funziona prova a ricaricare la pagina con Ctrl + F5)" */
+echo "$body"; ?>
 <br>
 <div style="text-align: center;">
    <br><br><br>
@@ -409,6 +506,7 @@ Digita il tuo nickname per accedere ai tavoli della briscola.<br><br>
 <tr><td colspan="2"><input id="sub" value="entra" type="submit" class="button"></td></tr>
 </table>
 </form><br>
+<b>Se non hai ancora una password, lascia il campo in bianco ed entra.</b><br><br>
 (se usi firefox e qualcosa non funziona<br>prova a ricaricare la pagina con <b>Ctrl + F5</b>)<br>
 </div>
 <br><br><br><br>
@@ -443,10 +541,13 @@ Digita il tuo nickname per accedere ai tavoli della briscola.<br><br>
 <script type="text/javascript" src="room.js"></script>
 <script type="text/javascript" src="preload_img.js"></script>
 <script type="text/javascript" src="AC_OETags.js"></script>
+<script type="text/javascript" src="probrowser.js"></script>
+<!-- <script type="text/javascript" src="myconsole.js"></script>  -->
 <link rel="stylesheet" type="text/css" href="brisk.css">
 <link rel="stylesheet" type="text/css" href="room.css">
 <SCRIPT type="text/javascript"><!--
    var sess;
+   var g_lang = "<? echo $G_lang; ?>";
    var tra = null;
    var stat = "";
    var subst = "";
@@ -458,7 +559,10 @@ Digita il tuo nickname per accedere ai tavoli della briscola.<br><br>
    var g_imgct= 0;
    var g_imgtot = g_preload_img_arr.length;
    var myfrom = "index_php";
+   var g_brow = null;
+
    window.onload = function() {
+     g_brow = get_browser_agent();
 <?php
 if ($BRISK_SHOWHTML == "debugtable") {
 ?>
@@ -492,8 +596,9 @@ else {
      setTimeout(preload_images, 0, g_preload_img_arr, g_imgct); 
      $("txt_in").focus();
 <?php
-if ($login_exists) {
-  echo show_notify("<br><br>Il nickname che stai usando &egrave; gi&agrave; registrato,<br><br>se il suo proprietario si autentificher&agrave;<br><br>verrai rinominato d'ufficio come ghost<i>N</i>.<br><br><br>", 0, "torna ai tavoli", 400, 150);
+if ($is_login) {
+  /* MLANG: "<br>Il nickname che stai usando &egrave; gi&agrave; registrato,<br><br>se il suo proprietario si autentificher&agrave;<br><br>verrai rinominato d'ufficio come ghost<i>N</i>.", "torna ai tavoli" */
+  echo show_notify("<br>Il nickname che stai usando &egrave; gi&agrave; registrato,<br><br>se il suo proprietario si autentificher&agrave;<br><br>verrai rinominato d'ufficio come ghost<i>N</i>.", 0, "torna ai tavoli", 400, 150);
 }
 ?>
 <?php
@@ -503,6 +608,7 @@ if ($login_exists) {
    //-->
 </SCRIPT>
 </head>
+<!-- if myconsole <body onunload="deconsole();"> -->
 <body>
 <?php
    printf($brisk_header_form);
@@ -522,10 +628,11 @@ if ($login_exists) {
 
 <!--  =========== bottom ===========  -->
     <div id="bottom" class="bottom">
-<b>Chat</b><br>
+<b>Chat</b> <span id="list_info" style="color: red;"></span><br>
 <div id="txt" class="chatt">
 </div>
 <div style="text-align: center; ">
+    <!-- MLANG: scrivi un invito al tavolo e clicca -->
     <table style="width: 98%; margin: auto;"><tr><td id="tickbut" class="tickbut"><img class="tickbut" src="img/train.png" onclick="act_tav();" title="scrivi un invito al tavolo e clicca"></td><td style="width:1%; text-align: center;">
     <div id="myname"></div>
     </td><td>
@@ -533,6 +640,46 @@ if ($login_exists) {
     </td></tr></table>
 </div>
 </div>
+
+    <div id="authbox" class="notify" style="text-align: center;">
+       <br>
+       <b>Garantisci per un tuo conoscente:</b>
+       <br><br>
+
+       <form id="auth_form" accept-charset="utf-8" method="post" action="" onsubmit="return j_authbox(this);">
+       <input type="hidden" name="realsub" value="666">
+<table class="login">
+<tr><td>nickname:</td>
+<td><input id="nameid" class="input_text" name="name" type="text" size="24" maxlength="12" value=""></td></tr>
+<tr><td>e-mail:</td>
+<td><input id="emailid" class="input_text" name="email" type="text" size="24" maxlength="1024" value=""></td></tr>
+<tr><td colspan="2" style="text-align: center;">
+       <input id="subid" name="sub" value="invia" type="submit" onclick="this.form.elements['realsub'].value = this.value;" class="button">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+<input id="cloid" name="clo" value="chiudi" type="submit" class="button" onclick="this.form.elements['realsub'].value = this.value;"></td></tr>
+</table>
+    </form>
+    </div>
+    <div id="mesgtoadmbox" class="notify_opaque" style="text-align: center;">
+       <br>
+       <b>Invia un messaggio o una segnalazione all'amministratore:</b>
+       <br><br>
+       <form id="mesgtoadm_form" accept-charset="utf-8" method="post" action="" onsubmit="return j_mesgtoadmbox(this);">
+
+
+       <input type="hidden" name="realsub" value="666">
+<table class="login">
+<!--MLANG: soggetto -->
+<tr><td><b>soggetto:</b></td>
+<td><input id="subjid" class="input_text" name="subj" type="text" size="32" maxlength="255" value=""></td></tr></table>
+<table class="login">
+<tr><td><img title="messaggio" class="nobo" src="img/mesgtoadm_mesg.png"></td>
+<td><textarea id="mesgid" class="input_text" name="mesg" cols="40" rows="8" wrap="soft"></textarea></td></tr>
+<tr><td colspan="2" style="text-align: center;">
+       <input id="subid" name="sub" value="invia" type="submit" onclick="this.form.elements['realsub'].value = this.value;" class="button">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+<input id="cloid" name="clo" value="chiudi" type="submit" class="button" onclick="this.form.elements['realsub'].value = this.value;"></td></tr>
+</table>
+    </form>
+    </div>
 <div id="heartbit"></div>
 <div id="sandbox"></div>
 <div id="imgct"></div>