annotate index.php @ 0:332b25bb4e36

Initial import.
author Matti Hamalainen <ccr@tnsp.org>
date Mon, 10 Jan 2011 00:16:36 +0200
parents
children 77d78ef45ed2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
1 <?
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
2 $pageTitle = "Pupunen BatMUD Chest Command Creator";
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
3 $pageIndex = "index.php";
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
4 require "mcommon.inc.php";
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
5
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
6 if (isset($_POST["mode"])) {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
7 $formMode = intval($_POST["mode"]);
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
8 } else
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
9 $formMode = 0;
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
10
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
11
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
12 function getJSArraySegment($arr)
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
13 {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
14 $str = "";
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
15 foreach ($arr as $item) {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
16 if ($str != "") $str .= ", ";
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
17 if (is_array($item))
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
18 $str .= "[".getJSArraySegment($item)."]";
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
19 else
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
20 $str .= "\"".addslashes($item)."\"";
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
21 }
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
22 return $str;
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
23 }
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
24
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
25
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
26 function printInputField($id, $label, $len)
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
27 {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
28 echo "<label for=\"".$id."\">".htmlentities($label)."</label>\n".
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
29 "<input type=\"text\" name=\"".$id."\" size=\"".$len."\" id=\"".$id."\" />\n";
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
30 }
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
31
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
32
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
33 printPageHeader($pageTitle);
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
34 echo "<h1>".$pageTitle."</h1>\n";
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
35
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
36 if ($formMode == 0) {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
37 ?>
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
38 <noscript>
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
39 <b>This application REQUIRES JavaScript to be enabled!</b>
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
40 </noscript>
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
41 <p>
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
42 First, you should provide a list of equipments you wish to manage.
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
43 Just plain copy &amp; paste of an inventory listing is enough.
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
44 </p>
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
45 <p>
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
46 <b>Stacks of items are not supported, and few other things may cause problems too.</b>
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
47 </p>
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
48 <form action="<? echo $pageIndex; ?>" method="post">
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
49 <textarea name="data" cols="80" rows="25"></textarea><br /><br />
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
50 <input type="hidden" value="1" name="mode" />
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
51 <div class="icenter">
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
52 <input type="submit" value=" Submit " />
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
53 </div>
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
54 </form>
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
55 <?
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
56 }
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
57 else if ($formMode == 1) {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
58 if (isset($_POST["data"])) {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
59 $formData = stripslashes($_POST["data"]);
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
60
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
61 $postData = explode("\n", $formData);
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
62 $data = array();
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
63 $ignored = array();
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
64
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
65 foreach ($postData as $line) {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
66 // Trim whitespace
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
67 $str = trim($line);
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
68
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
69 if ($str != "") {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
70 // Strip glows and counters from item "handle"
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
71 if (preg_match("/^(.+?)\s+(<.+? glow>|\(\d+\/\d+\))$/", $str, $m))
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
72 $str = $m[1];
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
73
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
74 // Discard multi-item lines
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
75 if (preg_match("/^(two|three|four|five|six|seven|eight|nine)\s+/", $str)) {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
76 $ignored[$str] = "multi";
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
77 } else {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
78 $data["items"][] = $str;
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
79 }
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
80 }
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
81 }
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
82
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
83 if (count($ignored) > 0) {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
84 ?>
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
85 <p>Item data processed. Following lines <b>were not accepted</b>:</p>
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
86 <table>
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
87 <tr><th>Item</th><th>Reason</th></tr>
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
88 <?
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
89 foreach ($ignored as $name => $reason) {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
90 echo " <tr><td>".htmlentities($name)."</td><td>".htmlentities($reason)."</td></tr>\n";
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
91 }
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
92 ?>
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
93 </table>
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
94
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
95 <form action="<? echo $pageIndex; ?>" method="post">
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
96 <input type="hidden" value="<? echo base64_encode(serialize($data)); ?>" name="data" />
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
97 <input type="hidden" value="2" name="mode" />
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
98 <input type="submit" value=" Continue " />
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
99 </form>
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
100 <?
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
101 } else
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
102 $formMode = 3;
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
103 } else {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
104 $errorMsg = "No item data provided.";
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
105 $errorSet = TRUE;
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
106 }
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
107 }
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
108
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
109 if ($formMode == 2) {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
110 if (isset($_POST["data"])) {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
111 $formData = base64_decode($_POST["data"]);
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
112 $data = @unserialize($formData);
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
113 $formMode = 3;
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
114 }
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
115 if ($data === FALSE) {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
116 $errorMsg = "Could not unserialize data, internal error.";
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
117 $errorSet = TRUE;
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
118 }
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
119 }
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
120
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
121 if ($data !== FALSE && $formMode == 3) {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
122 ?>
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
123 <form id="done" action="<? echo $pageIndex; ?>" method="post">
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
124 <input type="hidden" value="3" name="mode" />
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
125 <p>
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
126 When you are ready, hit <input type="submit" value=" Save and continue " /> to go to command creation step.
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
127 </p>
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
128 <table>
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
129 <tr>
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
130 <td>
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
131 <h2>Items pool</h2>
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
132 <select multiple="multiple" size="10" id="curr_items"></select>
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
133 <br />
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
134 <table width="100%">
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
135 <td width="15%"><input type="button" value=" Delete " onclick="deleteItems(this.form);" /></td>
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
136 <td width="15%"><input type="button" value=" Add new " onclick="addItems(this.form);" disabled="disabled" /></td>
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
137 <td width="60%" style="text-align: right;"><input id="move_button" type="button" value=" Move to chest " onclick="moveItems(this.form);" /></td>
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
138 </table>
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
139 </td>
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
140 <td id="chest_editor">
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
141 <h2>Editing chest "<span id="curr_name"></span>"</h2>
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
142 <select multiple="multiple" size="10" id="curr_chest"></select>
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
143 <br />
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
144 <input type="button" value=" Remove selected " onclick="chestRemoveItems(this.form);" />
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
145 </td>
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
146 </tr>
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
147 <tr>
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
148 <td>
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
149 <h2>Create / edit a chest</h2>
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
150 <?
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
151 printInputField("chest_name", "Identifier/name", 15);
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
152 printInputField("chest_slots", "Number of slots", 5);
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
153 ?>
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
154 <input type="button" value=" Create " onclick="chestCreate(this.form);" id="create_button" />
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
155 </td>
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
156 <td id="chest_list_editor">
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
157 <h2>Chests</h2>
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
158 <select size="5" id="chest_list"></select>
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
159 <br />
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
160 <input type="button" value=" Edit " onclick="chestEdit(this.form);" />
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
161 <input type="button" value=" Delete " onclick="chestDelete(this.form);" />
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
162 </td>
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
163 </tr>
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
164 </table>
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
165 </form>
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
166 <div style="position: absolute; bottom: 1em; right: 1em; left: 1em; padding: 1pt; margin: 2pt; border: 1px solid white;" id="status">&nbsp;</div>
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
167 <script type="text/javascript">
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
168 <!--
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
169 var curr_chest = null;
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
170
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
171 function Chest(name, slots, items)
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
172 {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
173 this.name = name;
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
174 this.slots = slots;
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
175 this.items = items;
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
176 this.changed = true;
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
177
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
178 this.getSpace = function() {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
179 return this.slots - this.items.length;
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
180 }
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
181
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
182 this.addItem = function(item) {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
183 this.changed = true;
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
184 return this.items.push(item);
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
185 }
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
186
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
187 this.deleteItemById = function(id) {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
188 this.changed = true;
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
189 delete this.items[id];
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
190 }
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
191
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
192 this.flush = function() {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
193 this.changed = true;
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
194 for (var i = 0; i < this.items.length; i++) {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
195 if (this.items[i] == undefined) {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
196 this.items.splice(i, 1);
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
197 i -= 1;
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
198 }
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
199 }
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
200 }
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
201
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
202 this.moveItemById = function(chest, id) {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
203 var item = this.getItemByIndex(id);
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
204 if (item != null) {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
205 this.deleteItemById(id);
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
206 chest.addItem(item);
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
207 this.changed = true;
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
208 }
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
209 }
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
210
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
211 this.getItemId = function(item) {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
212 return this.items.indexOf(item);
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
213 }
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
214
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
215 this.getItemByIndex = function(id) {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
216 if (id < 0 || id > this.items.length) return null;
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
217 return this.items[id];
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
218 }
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
219 }
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
220 -->
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
221 <?
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
222
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
223 function getChestObject($name, $slots, $items)
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
224 {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
225 return "new Chest(\"".$name."\", \"".$slots."\", [".getJSArraySegment($items)."])";
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
226 }
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
227
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
228 $str = "";
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
229 if (isset($data["chests"])) {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
230 foreach ($data["chests"] as $chest) {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
231 if ($str != "") $str .= ", ";
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
232 $str .= getChestObject($chest["name"], $chest["slots"], $chest["items"]);
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
233 }
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
234 }
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
235
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
236 echo
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
237 "var list_chests = [".$str."];\n".
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
238 "var list_items = ".getChestObject("items", 10000, $data["items"]).";\n";
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
239 ?>
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
240 <!-- #kludge --><!--
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
241
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
242
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
243 function setHTML(id, str)
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
244 {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
245 var o = document.getElementById(id);
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
246 if (o != null)
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
247 o.innerHTML = str;
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
248 }
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
249
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
250 function setListData(id, list)
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
251 {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
252 var o = document.getElementById(id);
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
253 o.options.length = 0;
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
254 for (var i = 0; i < list.length; i++) {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
255 o.options[i] = new Option(list[i], i, false, false);
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
256 }
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
257 }
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
258
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
259 // Update the form data
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
260 function updatePage()
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
261 {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
262 // List of items
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
263 if (list_items.changed)
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
264 setListData("curr_items", list_items.items);
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
265
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
266 // List of chests
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
267 var chest_list_editor = document.getElementById("chest_list_editor");
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
268 if (list_chests.length > 0) {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
269 chest_list_editor.style.display = "block";
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
270
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
271 o = document.getElementById("chest_list");
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
272 o.options.length = 0;
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
273 for (var i = 0; i < list_chests.length; i++) {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
274 o.options[i] = new Option(list_chests[i].name +" (" + list_chests[i].items.length +" of "+ list_chests[i].slots +" items)", i, false);
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
275 }
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
276 } else {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
277 chest_list_editor.style.display = "none";
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
278 }
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
279
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
280
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
281 // Update current chest
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
282 var chest_editor = document.getElementById("chest_editor");
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
283 if (curr_chest != null) {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
284 chest_editor.style.display = "block";
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
285 setHTML("curr_name", curr_chest.name);
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
286 if (curr_chest.changed)
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
287 setListData("curr_chest", curr_chest.items);
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
288 } else {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
289 chest_editor.style.display = "none";
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
290 }
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
291 }
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
292
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
293 // Output status message
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
294 function statusMsg(msg)
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
295 {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
296 var o = document.getElementById("status");
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
297 o.innerHTML = msg;
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
298 }
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
299
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
300
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
301 // Clear values of a given form
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
302 function clearForm(f)
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
303 {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
304 for (var i = 0; i < f.elements.length; i++) {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
305 var e = f.elements[i];
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
306 if (e.type.toLowerCase() == "text") e.value = "";
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
307 }
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
308 }
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
309
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
310
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
311 // Create a new chest, set current chest to it
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
312 function chestCreate(f)
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
313 {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
314 var name = f.elements['chest_name'].value;
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
315 var slots = parseInt(f.elements['chest_slots'].value, 10);
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
316
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
317 if (isNaN(slots) || slots < 1 || slots > 50) {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
318 statusMsg("Invalid number of slots.");
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
319 return;
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
320 }
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
321
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
322 if (name == "") {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
323 statusMsg("Empty chest name "+name+".");
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
324 return;
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
325 }
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
326
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
327 for (var i = 0; i < list_chests.length; i++) {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
328 if (list_chests[i].name == name) {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
329 statusMsg("Chest with identifier <b>'"+name+"'</b> already exists!");
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
330 return;
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
331 }
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
332 }
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
333
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
334 curr_chest = new Chest(name, slots, []);
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
335 list_chests.push(curr_chest);
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
336
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
337 clearForm(f);
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
338 statusMsg("OK, created new chest.");
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
339 updatePage();
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
340 }
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
341
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
342
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
343 function chestDelete(f)
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
344 {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
345 statusMsg("Deleted chest '"+name+"', items returned to pool.");
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
346 updatePage();
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
347 }
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
348
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
349
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
350 function getSelectedItems(items)
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
351 {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
352 var selected = [];
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
353 if (items != null) {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
354 for (var i = 0; i < items.length; i++)
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
355 if (items[i].selected) selected.push(items[i].value);
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
356 }
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
357 return selected;
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
358 }
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
359
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
360
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
361 function deleteItems(f)
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
362 {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
363 var selected = getSelectedItems(f.elements['curr_items']);
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
364
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
365 if (selected.length == 0) {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
366 statusMsg("No items selected for deletion.");
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
367 return;
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
368 } else {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
369 var answer = confirm("Really delete selected items?");
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
370 if (!answer) {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
371 statusMsg("Delete operation cancelled.");
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
372 return;
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
373 }
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
374
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
375 for (var i = 0; i < selected.length; i++)
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
376 list_items.deleteItemById(selected[i]);
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
377
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
378 list_items.flush();
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
379 updatePage();
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
380 statusMsg("Deleted "+selected.length+" items.");
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
381 }
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
382 }
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
383
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
384
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
385 function moveItems(f)
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
386 {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
387 if (curr_chest == null) {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
388 statusMsg("No chest selected, cannot move items.");
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
389 return;
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
390 }
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
391
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
392 var selected = getSelectedItems(f.elements['curr_items']);
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
393
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
394 if (selected.length == 0) {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
395 statusMsg("No items selected for deletion.");
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
396 return;
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
397 } else {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
398 if (curr_chest.getSpace() < selected.length) {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
399 statusMsg("Not enough space! "+ selected.length +" items, only "+ curr_chest.getSpace() +" slots available!");
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
400 return;
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
401 }
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
402
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
403 for (var i = 0; i < selected.length; i++)
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
404 list_items.moveItemById(curr_chest, selected[i]);
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
405
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
406 list_items.flush();
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
407 updatePage();
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
408 statusMsg("Moved " + selected.length + " items to current chest.");
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
409 }
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
410 }
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
411
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
412
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
413 function chestRemoveItems(f)
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
414 {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
415 if (curr_chest == null) {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
416 statusMsg("Internal error.");
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
417 return;
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
418 }
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
419
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
420 var selected = getSelectedItems(f.elements['curr_chest']);
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
421
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
422 if (selected.length == 0) {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
423 statusMsg("No items selected for deletion.");
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
424 return;
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
425 } else {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
426 for (var i = 0; i < selected.length; i++)
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
427 curr_chest.moveItemById(list_items, selected[i]);
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
428
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
429 curr_chest.flush();
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
430 updatePage();
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
431 statusMsg("Removed " + selected.length + " from current chest.");
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
432 }
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
433 }
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
434
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
435 updatePage();
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
436 -->
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
437 </script>
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
438 <?
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
439 }
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
440
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
441 if ($errorSet) {
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
442 echo "<h2>An error occured</h2>\n".
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
443 "<p>".$errorMsg."</p>";
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
444 }
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
445
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
446 printPageFooter();
332b25bb4e36 Initial import.
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
447 ?>