a35bd9b4850d2a9dca38e21c6a437eb0cb545c23
[brisk.git] / web / briskin5 / index.php
1 <?php
2 /*
3  *  brisk - briskin5/index.php
4  *
5  *  Copyright (C) 2006-2012 Matteo Nastasi
6  *                          mailto: nastasi@alternativeoutput.it
7  *                                  matteo.nastasi@milug.org
8  *                          web: http://www.alternativeoutput.it
9  *
10  * This program is free software; you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License as published by
12  * the Free Software Foundation; either version 2 of the License, or
13  * (at your option) any later version.
14  *
15  * This program is distributed in the hope that it will be useful, but
16  * WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABLILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18  * General Public License for more details. You should have received a
19  * copy of the GNU General Public License along with this program; if
20  * not, write to the Free Software Foundation, Inc, 59 Temple Place -
21  * Suite 330, Boston, MA 02111-1307, USA.
22  *
23  */
24
25 /* MLANG: le img dell'asta */
26
27 $G_base = "../";
28
29 require_once("../Obj/brisk.phh");
30 require_once("Obj/briskin5.phh");
31
32 $mlang_bin5_index = array( 'aucwin' => array( 'it' => 'Hai vinto l\'asta.<br> Scegli il seme:',
33                                               'en' => 'You win the auction.<br> Choose the seed:' ),
34                            'tit_info'    => array( 'it' => 'Info',
35                                                    'en' => 'Info'),
36                            'tit_relo'    => array( 'it' => 'Reload',
37                                                    'en' => 'Reload'),
38                            'tit_out'     => array( 'it' => 'Fuori',
39                                                    'en' => 'Out'),
40                            'tit_pref'    => array( 'it' => 'Prefs',
41                                                    'en' => 'Prefs'),
42                            'itm_ringauc' => array('it' => 'riproduci un suono di notifica alla fine dell\' asta',
43                                                   'en' => 'play a sound at the end of the auction'),
44                            'btn_update'  => array('it' => 'Aggiorna.',
45                                                   'en' => 'Update.' )
46                            );
47
48
49 function bin5_index_main($transp_type, $header, &$header_out, $addr, $get, $post, $cookie)
50 {
51     GLOBAL $G_lang, $mlang_bin5_index;
52
53     $transp_port = ((array_key_exists("X-Forwarded-Proto", $header) &&
54                      $header["X-Forwarded-Proto"] == "https") ? 443 : 80);
55
56     if (($table_idx = gpcs_var('table_idx', $get, $post, $cookie)) === FALSE)
57         unset ($table_idx);
58     if (($laststate = gpcs_var('laststate', $get, $post, $cookie)) === FALSE)
59         unset ($laststate);
60     if (($sess = gpcs_var('sess', $get, $post, $cookie)) === FALSE)
61         unset ($sess);
62
63     fprintf(STDERR, "PREF_DECK SET %s", (isset($cookie['CO_bin5_pref_deck']) ? "YES" : "NO"));
64
65     $deck = (isset($cookie['CO_bin5_pref_deck']) ? $cookie['CO_bin5_pref_deck'] : 'xx');
66
67 // header('Content-type: text/html; charset="utf-8"',true);
68     ?>
69 <html>
70 <head>
71 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
72 <title>Brisk - Tavolo <?php echo "$table_idx";?></title>
73 <link rel="shortcut icon" href="../img/brisk_ico.png">
74 <script src="//ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
75 <script type="text/javascript" src="../commons.js?v=<? echo BSK_BUSTING; ?>"></script>
76 <script type="text/javascript" src="../heartbit.js?v=<? echo BSK_BUSTING; ?>"></script>
77 <script type="text/javascript" src="../xynt-streaming.js?v=<? echo BSK_BUSTING; ?>"></script>
78 <script type="text/javascript" src="dnd.js?v=<? echo BSK_BUSTING; ?>"></script>
79 <script type="text/javascript" src="dom-drag.js?v=<? echo BSK_BUSTING; ?>"></script>
80 <script type="text/javascript" src="preload_img<?php echo langtolng($G_lang); ?>.js?v=<? echo BSK_BUSTING; ?>"></script>
81 <script type="text/javascript" src="briskin5.js?v=<? echo BSK_BUSTING; ?>"></script>
82 <link rel="stylesheet" type="text/css" href="../brisk.css?v=<? echo BSK_BUSTING; ?>">
83 <link rel="stylesheet" type="text/css" href="briskin5.css?v=<? echo BSK_BUSTING; ?>">
84 <link rel="stylesheet" type="text/css" href="cards_<? echo $deck; ?>.css?v=<? echo BSK_BUSTING; ?>">
85 </head>
86 <body>
87 <SCRIPT type="text/javascript">
88    var $$ = jQuery.noConflict();
89
90    var myname = null;
91    var sess = "not_connected";
92    var xstm = null;
93    var g_lang = "<?php echo "$G_lang"; ?>";
94    var stat = "table";
95    var subst = "none";
96    var table_pos = "";
97    var g_jukebox = null;
98    var g_deck = "<?php echo "$deck"; ?>";
99
100    var asta_ptr;
101    var area_ptr;
102
103    var gst  = new globst();
104    gst.st = <?php
105    log_load("bin5/index.php");
106
107    if (isset($laststate) == false) {
108        $laststate = -1;
109    }
110    echo $laststate;
111    ?>;
112 var g_is_spawn=1;
113 // var g_table_idx=<?php echo "$table_idx";?>;
114
115 var g_imgct= 0;
116 var g_imgtot = g_preload_img_arr.length;
117 var g_exitlock = 0;
118
119
120 window.onload = function() {
121   g_jukebox = new jukebox([{'name': 'cow', 'file': 'cow.mp3'},
122                            {'name': 'rooster', 'file': 'rooster.mp3'},
123                            {'name': 'ringbell', 'file': 'ringbell.mp3'}]);
124   remark_off();
125
126   preferences_init();
127   preferences_update();
128
129   sess = "<?php echo "$sess"; ?>";
130   xstm = new xynt_streaming(window, <?php printf("\"%s\", %d", $transp_type, $transp_port); ?>, 2, null /* console */, gst, 'table_php', 'sess', sess, $('sandbox'), 'index_rd.php', function(com){eval(com);});
131   xstm.hbit_set(heartbit);
132
133   /* dynamic callerimg positioning */
134   $("callerimg").style.left = (160 - cards_width_d2) + "px";
135   $("callerimg").style.top = (60 - cards_height_d2) + "px";
136
137   window.onbeforeunload = onbeforeunload_cb;
138   window.onunload = onunload_cb;
139
140   xstm.start();
141
142   addEvent($('select_rules'), "change", function() { act_select_rules(this.value); } );
143   addEvent($('select_deck'), "change", function() { act_select_deck(this.value); } );
144   // FIXME: add this setTimeout(preload_images into data stream to avoid
145   // race on opened socket
146   // setTimeout(preload_images, 0, g_preload_img_arr, g_imgct);
147 }
148 </SCRIPT>
149 <div id="bg" class="area">
150
151 <div id="remark" class="remark0"></div>
152 <img id="card0" data-card-id="cover" src="img/cards_xx_empty.png" class="sp-card"/>
153 <img id="card1" data-card-id="cover" src="img/cards_xx_empty.png" class="sp-card"/>
154 <img id="card2" data-card-id="cover" src="img/cards_xx_empty.png" class="sp-card"/>
155 <img id="card3" data-card-id="cover" src="img/cards_xx_empty.png" class="sp-card"/>
156 <img id="card4" data-card-id="cover" src="img/cards_xx_empty.png" class="sp-card"/>
157 <img id="card5" data-card-id="cover" src="img/cards_xx_empty.png" class="sp-card"/>
158 <img id="card6" data-card-id="cover" src="img/cards_xx_empty.png" class="sp-card"/>
159 <img id="card7" data-card-id="cover" src="img/cards_xx_empty.png" class="sp-card"/>
160 <img id="takes" data-card-id="cover" src="img/cards_xx_empty.png" class="sp-card"/>
161 <img id="card_ne0" data-card-id="cover" src="img/cards_xx_empty.png" class="sp-card"/>
162 <img id="card_ne1" data-card-id="cover" src="img/cards_xx_empty.png" class="sp-card"/>
163 <img id="card_ne2" data-card-id="cover" src="img/cards_xx_empty.png" class="sp-card"/>
164 <img id="card_ne3" data-card-id="cover" src="img/cards_xx_empty.png" class="sp-card"/>
165 <img id="card_ne4" data-card-id="cover" src="img/cards_xx_empty.png" class="sp-card"/>
166 <img id="card_ne5" data-card-id="cover" src="img/cards_xx_empty.png" class="sp-card"/>
167 <img id="card_ne6" data-card-id="cover" src="img/cards_xx_empty.png" class="sp-card"/>
168 <img id="card_ne7" data-card-id="cover" src="img/cards_xx_empty.png" class="sp-card"/>
169 <img id="takes_ne" data-card-id="cover" src="img/cards_xx_empty.png" class="sp-card"/>
170 <img id="card_nw0" data-card-id="cover" src="img/cards_xx_empty.png" class="sp-card"/>
171 <img id="card_nw1" data-card-id="cover" src="img/cards_xx_empty.png" class="sp-card"/>
172 <img id="card_nw2" data-card-id="cover" src="img/cards_xx_empty.png" class="sp-card"/>
173 <img id="card_nw3" data-card-id="cover" src="img/cards_xx_empty.png" class="sp-card"/>
174 <img id="card_nw4" data-card-id="cover" src="img/cards_xx_empty.png" class="sp-card"/>
175 <img id="card_nw5" data-card-id="cover" src="img/cards_xx_empty.png" class="sp-card"/>
176 <img id="card_nw6" data-card-id="cover" src="img/cards_xx_empty.png" class="sp-card"/>
177 <img id="card_nw7" data-card-id="cover" src="img/cards_xx_empty.png" class="sp-card"/>
178 <img id="takes_nw" data-card-id="cover" src="img/cards_xx_empty.png" class="sp-card"/>
179 <img id="card_ea0" data-card-id="cover_ea" src="img/cards_xx_empty_ea.png" class="sp-card"/>
180 <img id="card_ea1" data-card-id="cover_ea" src="img/cards_xx_empty_ea.png" class="sp-card"/>
181 <img id="card_ea2" data-card-id="cover_ea" src="img/cards_xx_empty_ea.png" class="sp-card"/>
182 <img id="card_ea3" data-card-id="cover_ea" src="img/cards_xx_empty_ea.png" class="sp-card"/>
183 <img id="card_ea4" data-card-id="cover_ea" src="img/cards_xx_empty_ea.png" class="sp-card"/>
184 <img id="card_ea5" data-card-id="cover_ea" src="img/cards_xx_empty_ea.png" class="sp-card"/>
185 <img id="card_ea6" data-card-id="cover_ea" src="img/cards_xx_empty_ea.png" class="sp-card"/>
186 <img id="card_ea7" data-card-id="cover_ea" src="img/cards_xx_empty_ea.png" class="sp-card"/>
187 <img id="takes_ea" data-card-id="cover_ea" src="img/cards_xx_empty_ea.png" class="sp-card"/>
188 <img id="card_we0" data-card-id="cover_we" src="img/cards_xx_empty_we.png" class="sp-card"/>
189 <img id="card_we1" data-card-id="cover_we" src="img/cards_xx_empty_we.png" class="sp-card"/>
190 <img id="card_we2" data-card-id="cover_we" src="img/cards_xx_empty_we.png" class="sp-card"/>
191 <img id="card_we3" data-card-id="cover_we" src="img/cards_xx_empty_we.png" class="sp-card"/>
192 <img id="card_we4" data-card-id="cover_we" src="img/cards_xx_empty_we.png" class="sp-card"/>
193 <img id="card_we5" data-card-id="cover_we" src="img/cards_xx_empty_we.png" class="sp-card"/>
194 <img id="card_we6" data-card-id="cover_we" src="img/cards_xx_empty_we.png" class="sp-card"/>
195 <img id="card_we7" data-card-id="cover_we" src="img/cards_xx_empty_we.png" class="sp-card"/>
196 <img id="takes_we" data-card-id="cover_we" src="img/cards_xx_empty_we.png" class="sp-card"/>
197
198 <div id="asta" class="asta">
199   <img id="asta0" src="img/asta0.png" class="astacard">
200   <img id="asta1" src="img/asta1.png" class="astacard">
201   <img id="asta2" src="img/asta2.png" class="astacard">
202   <img id="asta3" src="img/asta3.png" class="astacard">
203   <img id="asta4" src="img/asta4.png" class="astacard">
204   <img id="asta5" src="img/asta5.png" class="astacard">
205   <img id="asta6" src="img/asta6.png" class="astacard">
206   <img id="asta7" src="img/asta7.png" class="astacard">
207   <img id="asta8" src="img/asta8.png" class="astacard">
208   <img id="asta9" src="img/asta9.png" class="astacard">
209   <div id="astaptdiv" class="punti">
210     <input class="puntifield" id="astapt" name="astapt" type="text" maxsize="3" size="3" value="61">
211   </div>
212   <img  id="astaptsub" src="img/astaptsub_ro.png" class="astacard">
213   <img  id="astapasso" src="img/astapasso_ro.png" class="astacard">
214   <img  id="astalascio" src="img/astalascio_ro.png" class="astacard">
215 </div>
216 <div id="name" class="pubinfo"></div>
217 <div id="public" class="public">
218    <div class="vert_midfloat">
219        <div id="pubasta" class="vert_innfloat_so">
220            <img id="pubacard" src="img/astapasso_ro.png" class="pubacard">
221            <div id="pubapnt"></div>
222        </div>
223    </div>
224 </div>
225 <div id="name_ea" class="pubinfo_ea"></div>
226 <div id="public_ea" class="public_ea">
227    <div class="vert_midfloat">
228       <div id="pubasta_ea" class="vert_innfloat">
229          <img id="pubacard_ea" src="img/astapasso_ro.png" class="pubacard_ea">
230          <div id="pubapnt_ea"></div>
231       </div>
232    </div>
233 </div>
234 <div id="name_ne" class="pubinfo_ne"></div>
235 <div id="public_ne" class="public_ne">
236    <div class="vert_midfloat">
237       <div id="pubasta_ne" class="vert_innfloat">
238          <img id="pubacard_ne" src="img/astapasso_ro.png" class="pubacard_ne">
239          <div id="pubapnt_ne"></div>
240       </div>
241    </div>
242 </div>
243 <div id="name_nw" class="pubinfo_nw"></div>
244 <div id="public_nw" class="public_nw">
245    <div class="vert_midfloat">
246       <div id="pubasta_nw" class="vert_innfloat">
247          <img id="pubacard_nw" src="img/astapasso_ro.png" class="pubacard_nw">
248          <div id="pubapnt_nw"></div>
249       </div>
250    </div>
251 </div>
252 <div id="name_we" class="pubinfo_we"></div>
253 <div id="public_we" class="public_we">
254    <div class="vert_midfloat">
255       <div id="pubasta_we" class="vert_innfloat">
256          <img id="pubacard_we" src="img/astapasso_ro.png" class="pubacard_we">
257          <div id="pubapnt_we"></div>
258       </div>
259    </div>
260 </div>
261 <div id="chooseed" class="chooseed">
262                            <?php echo $mlang_bin5_index['aucwin'][$G_lang]; ?>
263 <img id="seed0" src="img/00.png" class="seed0">
264 <img id="seed1" src="img/10.png" class="seed1">
265 <img id="seed2" src="img/20.png" class="seed2">
266 <img id="seed3" src="img/30.png" class="seed3">
267 </div>
268 <div id="caller" class="caller">
269 <div id="callerinfo" class="callerinfo">Info</div>
270 <img id="callerimg" src="img/noimg.png" class="sp-card">
271 </div>
272 <div class="table_commands">
273 <table>
274 <tr>
275 <td style="text-align: center;"><input type="button" class="button" name="xinfo"  value="<?php echo $mlang_bin5_index['tit_info'][$G_lang]; ?>" onclick="act_tableinfo();"></td>
276 <td style="text-align: center;"><input type="button" class="button" name="xreload"  value="<?php echo $mlang_bin5_index['tit_relo'][$G_lang]; ?>" onclick="act_reload();"></td>
277 <td style="text-align: center;"><input type="button" class="button" name="xout"  value="<?php echo $mlang_bin5_index['tit_out'][$G_lang]; ?>" onclick="safelogout();"></td>
278 </tr><tr>
279 <td style="text-align: center;"><img id="stm_stat" class="nobo" src="img/line-status_b.png"></td>
280 <td style="text-align: center;"><input type="button" class="button" name="xpref"  value="<?php echo $mlang_bin5_index['tit_pref'][$G_lang]; ?>" onclick="preferences_showhide();"></td>
281 </td>
282 <td style="text-align: center;"><img id="exitlock" class="button" style="visibility: hidden; border: 0px; display: inline; position: relative;" onclick="act_exitlock();"></td>
283 </tr>
284 </table>
285 </div>
286 <!--
287 <div class="table_commands">
288 <input type="button" class="button" name="xinfo"  value="Info." onclick="act_tableinfo();">
289 <input type="button" class="button" name="xreload"  value="Reload." onclick="act_reload();">
290 <div style="vertical-align: top;">
291 <img id="exitlock" class="button" style="visibility: hidden; border: 0px; display: inline; position: relative;" onclick="act_exitlock();"><input type="button" class="button" name="xout"  value="Out." onclick="safelogout();">
292 </div>
293 </div>
294 -->
295
296 </div>
297
298
299 <div class="subarea">
300 <div id="txt" class="chattshort"></div>
301     <table class="chattshort_table"><tr><td style="width:1%; text-align: right;">
302     <div id="myname"></div>
303     </td><td>
304     <input id="txt_in" maxlength="128" type="text" style="width: 100%;" onkeypress="chatt_checksend(this,event);">
305     </td></tr></table>
306
307 <div id="flasou" style="text-align: left;"></div>
308 <hr>
309 <div id="heartbit" style="text-align: left;"></div>
310 <hr>
311 <div id="imgct" style="text-align: left;">HERE</div>
312 <hr>
313 <div id="sandbox" style="text-align: left;"></div>
314 <div id="sandbox2" style="text-align: left;"></div>
315 <div id="sandbox3" style="text-align: left;"></div>
316 <pre>
317 <div id="xhrlog" style="text-align: left;"></div>
318 </pre>
319 <div id="xhrdeltalog" style="text-align: left;"></div>
320 </div>
321
322 <div id="preferences" class="notify" style="z-index: 200; width: 400px; margin-left: -200px; height: 200px; top: 126px; visibility: hidden;">
323 <div id="preferences_child" style="border-bottom: 1px solid gray; overflow: auto; height: 170px; text-align: center">
324
325 <h2><?php echo $mlang_bin5_index['tit_pref'][$G_lang]; ?></h2>
326 <div style="width: 95%; /* background-color: red; */ margin: auto; text-align: left;">
327     <div>
328         <input type="checkbox" name="pref_ring_endauct" id="pref_ring_endauct" onclick="pref_ring_endauct_set(this);"><?php echo $mlang_bin5_index['itm_ringauc'][$G_lang] ?>
329     </div>
330     <div>
331         <label>Regole:</label> <?php dom_select_rules();?>
332     </div>
333     <div>
334       <label>Tipo di carte:</label> <?php dom_select_deck($deck);?>
335    </div>
336 </div>
337 <div class="notify_clo"><input type="submit" class="input_sub" style="bottom: 4px;" onclick="act_preferences_update();" value="<?php echo $mlang_bin5_index['btn_update'][$G_lang]; ?>"/></div>
338 </div>
339
340
341 </body>
342 </html>
343 <?php
344 }
345 ?>