chore: Use Unix line endings

Signed-off-by: txtsd <code@ihavea.quest>
This commit is contained in:
txtsd
2022-11-09 23:18:49 +05:30
parent 7a3b48e375
commit ceed85cb5c
3 changed files with 549 additions and 549 deletions
+207 -207
View File
@@ -1,207 +1,207 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<link rel="shortcut icon" type="image/x-icon" href="http://progressquest.com/favicon.ico">
<link rel="stylesheet" href="progros.css" type="text/css">
<link rel="stylesheet" href="main.css" type="text/css">
<title>Progress Quest</title>
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="viewport"
content="initial-scale=1.0,
maximum-scale=1.0,
minimum-scale=1.0,
user-scalable=0" />
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
<link rel="apple-touch-icon" href="touch-icon.png" />
</head>
<body>
<br>
<div class="vbox window" id="main">
<div id="titlebar">
<img src="swords.gif" alt="Progress Quest Logo">
<span id="title">Progress Quest</span>
<a id="quit"><img src="closeup.png" alt="Close button"></a>
</div>
<script src="json2.js"></script>
<script src="jquery-3.6.0.js"></script>
<script src="config.js"></script>
<script src="main.js"></script>
<div class="hbox">
<div class="vbox" id="Izquierda">
<span class="label head" >Character Sheet</span>
<table class="listbox" id="Trats">
<thead>
<tr>
<th>Trait</th>
<th>Value</th>
</tr>
</thead>
<tbody id="Traits">
<tr>
<td>Name</td>
<td></td>
</tr>
<tr>
<td>Race</td>
<td></td>
</tr>
<tr>
<td>Class</td>
<td></td>
</tr>
<tr>
<td>Level</td>
<td>1</td>
</tr>
</tbody>
<thead class="mid">
<tr>
<th>Stat</th>
<th>Value</th>
</tr>
</thead>
<tbody id="Stats">
<tr><td>STR</td><td></td></tr>
<tr><td>CON</td><td></td></tr>
<tr><td>DEX</td><td></td></tr>
<tr><td>INT</td><td></td></tr>
<tr><td>WIS</td><td></td></tr>
<tr><td>CHA</td><td></td></tr>
<tr><td>HP Max</td><td></td></tr>
<tr><td>MP Max</td><td></td></tr>
</tbody>
</table>
<div class="label">Experience</div>
<div class="progress-container" id="ExpBar">
<div class="hint"></div>
<div class="bar"></div>
</div>
<span class="label head" >Spell Book</span>
<div id="Spells" class="scroll listbox">
<table>
<thead>
<tr>
<th class="key">Spell</th>
<th class="value">Level</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
<div class="vbox" id="Centro">
<span class="label head">Equipment</span>
<table id="Equips" class="listbox">
<tbody>
<tr><td>Weapon</td><td></td></tr>
<tr><td>Shield</td><td></tr>
<tr><td>Helm<td></tr>
<tr><td>Hauberk<td></tr>
<tr><td>Brassairts<td></tr>
<tr><td>Vambraces<td></td></tr>
<tr><td>Gauntlets<td></tr>
<tr><td>Gambeson<td></tr>
<tr><td>Cuisses<td></tr>
<tr><td>Greaves<td></tr>
<tr><td>Sollerets<td></tr>
</tbody>
</table>
<span class="label head" >Inventory</span>
<div id="Inventory" class="scroll listbox">
<table >
<thead>
<tr>
<th class="key">Item</th>
<th class="value">Qty</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
<div class="label">Encumbrance</div>
<div class="progress-container" id="EncumBar">
<div class="hint"></div>
<div class="bar"></div>
</div>
</div>
<div class="vbox" id="Derecha">
<span class="label head">Plot Development</span>
<div id="Plots" class="scroll listbox">
<table>
<tbody>
</tbody>
</table>
</div>
<div class="progress-container" id="PlotBar">
<div class="hint"></div>
<div class="bar"></div>
</div>
<span class="label head">Quests</span>
<div id="Quests" class="scroll listbox">
<table>
<tbody>
</tbody>
</table>
</div>
<div class="progress-container" id="QuestBar">
<div class="hint"></div>
<div class="bar"></div>
</div>
</div>
</div>
<div id="Kill" class="label"></div>
<div class="progress-container" id="TaskBar">
<div class="hint"></div>
<div class="bar"></div>
</div>
</div>
<div id=bsodmom>
<div id=bsod>
<p class=c><span>&nbsp;Progress Quest&nbsp;</span>
<p>&nbsp;
<p>An error has occurred.
<p>Error:
<p id=bsod_message>
<p>In <span id=bsod_source></span> at <span id=bsod_lineno></span>:<span id=bsod_colno></span>
<p id=bsod_error>
<p class=c>Press any key to continue...</p>
</div>
</div>
<div id="paused"><br>PAUSED</div>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<link rel="shortcut icon" type="image/x-icon" href="http://progressquest.com/favicon.ico">
<link rel="stylesheet" href="progros.css" type="text/css">
<link rel="stylesheet" href="main.css" type="text/css">
<title>Progress Quest</title>
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="viewport"
content="initial-scale=1.0,
maximum-scale=1.0,
minimum-scale=1.0,
user-scalable=0" />
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
<link rel="apple-touch-icon" href="touch-icon.png" />
</head>
<body>
<br>
<div class="vbox window" id="main">
<div id="titlebar">
<img src="swords.gif" alt="Progress Quest Logo">
<span id="title">Progress Quest</span>
<a id="quit"><img src="closeup.png" alt="Close button"></a>
</div>
<script src="json2.js"></script>
<script src="jquery-3.6.0.js"></script>
<script src="config.js"></script>
<script src="main.js"></script>
<div class="hbox">
<div class="vbox" id="Izquierda">
<span class="label head" >Character Sheet</span>
<table class="listbox" id="Trats">
<thead>
<tr>
<th>Trait</th>
<th>Value</th>
</tr>
</thead>
<tbody id="Traits">
<tr>
<td>Name</td>
<td></td>
</tr>
<tr>
<td>Race</td>
<td></td>
</tr>
<tr>
<td>Class</td>
<td></td>
</tr>
<tr>
<td>Level</td>
<td>1</td>
</tr>
</tbody>
<thead class="mid">
<tr>
<th>Stat</th>
<th>Value</th>
</tr>
</thead>
<tbody id="Stats">
<tr><td>STR</td><td></td></tr>
<tr><td>CON</td><td></td></tr>
<tr><td>DEX</td><td></td></tr>
<tr><td>INT</td><td></td></tr>
<tr><td>WIS</td><td></td></tr>
<tr><td>CHA</td><td></td></tr>
<tr><td>HP Max</td><td></td></tr>
<tr><td>MP Max</td><td></td></tr>
</tbody>
</table>
<div class="label">Experience</div>
<div class="progress-container" id="ExpBar">
<div class="hint"></div>
<div class="bar"></div>
</div>
<span class="label head" >Spell Book</span>
<div id="Spells" class="scroll listbox">
<table>
<thead>
<tr>
<th class="key">Spell</th>
<th class="value">Level</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
<div class="vbox" id="Centro">
<span class="label head">Equipment</span>
<table id="Equips" class="listbox">
<tbody>
<tr><td>Weapon</td><td></td></tr>
<tr><td>Shield</td><td></tr>
<tr><td>Helm<td></tr>
<tr><td>Hauberk<td></tr>
<tr><td>Brassairts<td></tr>
<tr><td>Vambraces<td></td></tr>
<tr><td>Gauntlets<td></tr>
<tr><td>Gambeson<td></tr>
<tr><td>Cuisses<td></tr>
<tr><td>Greaves<td></tr>
<tr><td>Sollerets<td></tr>
</tbody>
</table>
<span class="label head" >Inventory</span>
<div id="Inventory" class="scroll listbox">
<table >
<thead>
<tr>
<th class="key">Item</th>
<th class="value">Qty</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
<div class="label">Encumbrance</div>
<div class="progress-container" id="EncumBar">
<div class="hint"></div>
<div class="bar"></div>
</div>
</div>
<div class="vbox" id="Derecha">
<span class="label head">Plot Development</span>
<div id="Plots" class="scroll listbox">
<table>
<tbody>
</tbody>
</table>
</div>
<div class="progress-container" id="PlotBar">
<div class="hint"></div>
<div class="bar"></div>
</div>
<span class="label head">Quests</span>
<div id="Quests" class="scroll listbox">
<table>
<tbody>
</tbody>
</table>
</div>
<div class="progress-container" id="QuestBar">
<div class="hint"></div>
<div class="bar"></div>
</div>
</div>
</div>
<div id="Kill" class="label"></div>
<div class="progress-container" id="TaskBar">
<div class="hint"></div>
<div class="bar"></div>
</div>
</div>
<div id=bsodmom>
<div id=bsod>
<p class=c><span>&nbsp;Progress Quest&nbsp;</span>
<p>&nbsp;
<p>An error has occurred.
<p>Error:
<p id=bsod_message>
<p>In <span id=bsod_source></span> at <span id=bsod_lineno></span>:<span id=bsod_colno></span>
<p id=bsod_error>
<p class=c>Press any key to continue...</p>
</div>
</div>
<div id="paused"><br>PAUSED</div>
</body>
</html>
+209 -209
View File
@@ -1,209 +1,209 @@
/* copyright (c)2002-2010 Eric Fredricksen all rights reserved */
function Roll(stat) {
stats[stat] = 3 + Random(6) + Random(6) + Random(6);
if (document)
$("#"+stat).text(stats[stat]);
return stats[stat];
}
function Choose(n, k) {
var result = n;
var d = 1;
for (var i = 2; i <= k; ++i) {
result *= (1+n-i);
d = d * i;
}
return result / d;
}
var stats = {};
var traits = {};
var total = 0;
var seedHistory = [];
function RollEm() {
stats.seed = randseed();
total = 0;
var best = -1;
$.each(K.PrimeStats, function () {
total += Roll(this);
if (best < stats[this]) {
best = stats[this];
stats.best = this;
}
});
stats['HP Max'] = Random(8) + stats.CON.div(6);
stats['MP Max'] = Random(8) + stats.INT.div(6);
var color =
(total >= (63+18)) ? 'red' :
(total > (4 * 18)) ? 'yellow' :
(total <= (63-18)) ? 'grey' :
(total < (3 * 18)) ? 'silver' :
'white';
if (document) {
var Total = $("#Total");
Total.text(total);
Total.css("background-color", color);
$("#Unroll").attr("disabled", !seedHistory.length);
}
}
function RerollClick() {
seedHistory.push(stats.seed);
RollEm();
}
function UnrollClick() {
randseed(seedHistory.pop());
RollEm();
}
function fill(e, a, n) {
var def = Random(a.length);
for (var i = 0; i < a.length; ++i) {
var v = a[i].split("|")[0];
var check = (def == i) ? " checked " : " ";
if (def == i) traits[n] = v;
if (document) {
$("<div><input type=radio id='" + v + "' name=\"" + n + "\" value=\"" + v + "\" " +
check +"><label for='" + v + "'>" + v + "</label></div>").appendTo(e);
}
}
}
function NewGuyFormLoad() {
seed = new Alea();
RollEm();
GenClick();
fill("#races", K.Races, "Race");
fill("#classes", K.Klasses, "Class");
if (document) {
$("#Reroll").click(RerollClick);
$("#Unroll").click(UnrollClick);
$("#RandomName").click(GenClick);
$('#Sold').click(sold);
$('#quit').click(cancel);
//var caption = 'Progress Quest - New Character';
//if (MainForm.GetHostName != '')
// caption = caption + ' [' + MainForm.GetHostName + ']';
$("#Name").focus();
$("#Name").select();
}
if (window.location.href.indexOf("?sold") > 0)
sold(); // TODO: cheesy
}
if (document)
$(document).ready(NewGuyFormLoad);
function sold() {
var newguy = {
Traits: traits,
dna: stats.seed,
seed: stats.seed,
birthday: ''+new Date(),
birthstamp: +new Date(),
Stats: stats,
beststat: stats.best + " " + stats[stats.best],
task: "",
tasks: 0,
elapsed: 0,
bestequip: "Sharp Rock",
Equips: {},
Inventory: [['Gold', 0]],
Spells: [],
act: 0,
bestplot: "Prologue",
Quests: [],
questmonster: "",
kill: "Loading....",
ExpBar: { position: 0, max: LevelUpTime(1) },
EncumBar: { position: 0, max: stats.STR + 10 },
PlotBar: { position: 0, max: 26 },
QuestBar: { position: 0, max: 1 },
TaskBar: { position: 0, max: 2000 },
queue: [
'task|10|Experiencing an enigmatic and foreboding night vision',
"task|6|Much is revealed about that wise old bastard you'd underestimated",
'task|6|A shocking series of events leaves you alone and bewildered, but resolute',
'task|4|Drawing upon an unrealized reserve of determination, you set out on a long and dangerous journey',
'plot|2|Loading'
]
};
if (document) {
newguy.Traits.Name = $("#Name").val();
newguy.Traits.Race = $("input:radio[name=Race]:checked").val();
newguy.Traits.Class = $("input:radio[name=Class]:checked").val();
}
newguy.Traits.Level = 1;
newguy.date = newguy.birthday;
newguy.stamp = newguy.birthstamp;
$.each(K.Equips, function (i,equip) { newguy.Equips[equip] = ''; });
newguy.Equips.Weapon = newguy.bestequip;
newguy.Equips.Hauberk = "-3 Burlap";
if ($("#multiplayer:checked").length > 0) {
newguy.online = {
realm: "Alpaquil",
host: "http://progressquest.com/alpaquil.php?",
// host: "http://localhost:9001/alpaquil.php?",
}
$("#sold").prop("disabled", true);
$("body").css("cursor", "progress");
let url = newguy.online.host;
url += 'cmd=create' +
'&name=' + UrlEncode(newguy.Traits.Name) +
'&realm=' + UrlEncode(newguy.online.realm) +
RevString;
$.ajax(url)
.done(body => {
if (body.split('|')[0].toLowerCase() == 'ok') {
newguy.online.passkey = parseInt(body.split('|')[1]);
charIsBorn(newguy);
} else {
$("#sold").prop("disabled", false);
$("body").css("cursor", "default");
alert(body);
}
});
} else {
charIsBorn(newguy);
}
}
function charIsBorn(newguy) {
storage.addToRoster(newguy, function () {
window.location.href = "main.html#" + escape(newguy.Traits.Name);
});
}
function cancel() {
window.location.href = "roster.html";
}
function GenClick() {
traits.Name = GenerateName();
if (document)
$("#Name").attr("value", traits.Name);
}
/* copyright (c)2002-2010 Eric Fredricksen all rights reserved */
function Roll(stat) {
stats[stat] = 3 + Random(6) + Random(6) + Random(6);
if (document)
$("#"+stat).text(stats[stat]);
return stats[stat];
}
function Choose(n, k) {
var result = n;
var d = 1;
for (var i = 2; i <= k; ++i) {
result *= (1+n-i);
d = d * i;
}
return result / d;
}
var stats = {};
var traits = {};
var total = 0;
var seedHistory = [];
function RollEm() {
stats.seed = randseed();
total = 0;
var best = -1;
$.each(K.PrimeStats, function () {
total += Roll(this);
if (best < stats[this]) {
best = stats[this];
stats.best = this;
}
});
stats['HP Max'] = Random(8) + stats.CON.div(6);
stats['MP Max'] = Random(8) + stats.INT.div(6);
var color =
(total >= (63+18)) ? 'red' :
(total > (4 * 18)) ? 'yellow' :
(total <= (63-18)) ? 'grey' :
(total < (3 * 18)) ? 'silver' :
'white';
if (document) {
var Total = $("#Total");
Total.text(total);
Total.css("background-color", color);
$("#Unroll").attr("disabled", !seedHistory.length);
}
}
function RerollClick() {
seedHistory.push(stats.seed);
RollEm();
}
function UnrollClick() {
randseed(seedHistory.pop());
RollEm();
}
function fill(e, a, n) {
var def = Random(a.length);
for (var i = 0; i < a.length; ++i) {
var v = a[i].split("|")[0];
var check = (def == i) ? " checked " : " ";
if (def == i) traits[n] = v;
if (document) {
$("<div><input type=radio id='" + v + "' name=\"" + n + "\" value=\"" + v + "\" " +
check +"><label for='" + v + "'>" + v + "</label></div>").appendTo(e);
}
}
}
function NewGuyFormLoad() {
seed = new Alea();
RollEm();
GenClick();
fill("#races", K.Races, "Race");
fill("#classes", K.Klasses, "Class");
if (document) {
$("#Reroll").click(RerollClick);
$("#Unroll").click(UnrollClick);
$("#RandomName").click(GenClick);
$('#Sold').click(sold);
$('#quit').click(cancel);
//var caption = 'Progress Quest - New Character';
//if (MainForm.GetHostName != '')
// caption = caption + ' [' + MainForm.GetHostName + ']';
$("#Name").focus();
$("#Name").select();
}
if (window.location.href.indexOf("?sold") > 0)
sold(); // TODO: cheesy
}
if (document)
$(document).ready(NewGuyFormLoad);
function sold() {
var newguy = {
Traits: traits,
dna: stats.seed,
seed: stats.seed,
birthday: ''+new Date(),
birthstamp: +new Date(),
Stats: stats,
beststat: stats.best + " " + stats[stats.best],
task: "",
tasks: 0,
elapsed: 0,
bestequip: "Sharp Rock",
Equips: {},
Inventory: [['Gold', 0]],
Spells: [],
act: 0,
bestplot: "Prologue",
Quests: [],
questmonster: "",
kill: "Loading....",
ExpBar: { position: 0, max: LevelUpTime(1) },
EncumBar: { position: 0, max: stats.STR + 10 },
PlotBar: { position: 0, max: 26 },
QuestBar: { position: 0, max: 1 },
TaskBar: { position: 0, max: 2000 },
queue: [
'task|10|Experiencing an enigmatic and foreboding night vision',
"task|6|Much is revealed about that wise old bastard you'd underestimated",
'task|6|A shocking series of events leaves you alone and bewildered, but resolute',
'task|4|Drawing upon an unrealized reserve of determination, you set out on a long and dangerous journey',
'plot|2|Loading'
]
};
if (document) {
newguy.Traits.Name = $("#Name").val();
newguy.Traits.Race = $("input:radio[name=Race]:checked").val();
newguy.Traits.Class = $("input:radio[name=Class]:checked").val();
}
newguy.Traits.Level = 1;
newguy.date = newguy.birthday;
newguy.stamp = newguy.birthstamp;
$.each(K.Equips, function (i,equip) { newguy.Equips[equip] = ''; });
newguy.Equips.Weapon = newguy.bestequip;
newguy.Equips.Hauberk = "-3 Burlap";
if ($("#multiplayer:checked").length > 0) {
newguy.online = {
realm: "Alpaquil",
host: "http://progressquest.com/alpaquil.php?",
// host: "http://localhost:9001/alpaquil.php?",
}
$("#sold").prop("disabled", true);
$("body").css("cursor", "progress");
let url = newguy.online.host;
url += 'cmd=create' +
'&name=' + UrlEncode(newguy.Traits.Name) +
'&realm=' + UrlEncode(newguy.online.realm) +
RevString;
$.ajax(url)
.done(body => {
if (body.split('|')[0].toLowerCase() == 'ok') {
newguy.online.passkey = parseInt(body.split('|')[1]);
charIsBorn(newguy);
} else {
$("#sold").prop("disabled", false);
$("body").css("cursor", "default");
alert(body);
}
});
} else {
charIsBorn(newguy);
}
}
function charIsBorn(newguy) {
storage.addToRoster(newguy, function () {
window.location.href = "main.html#" + escape(newguy.Traits.Name);
});
}
function cancel() {
window.location.href = "roster.html";
}
function GenClick() {
traits.Name = GenerateName();
if (document)
$("#Name").attr("value", traits.Name);
}
+133 -133
View File
@@ -1,133 +1,133 @@
/* RESET (via Boilerplate via Eric Meyer) */
html, body, div, span, applet, object, iframe, h1, h2, h3, h4,
h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite,
code, del, dfn, em, font, img, ins, kbd, q, s, samp, small,
strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd,
ol, ul, li, fieldset, form, label, legend, table, caption, tbody,
tfoot, thead, tr, th, td {
margin: 0;
padding: 0;
border: 0;
outline: 0;
font-size: 100%;
vertical-align: baseline;
background: transparent;
}
body { line-height: 1; }
ol, ul { list-style: none; }
blockquote, q { quotes: none; }
blockquote:before, blockquote:after, q:before, q:after {
content: ''; content: none;
}
:focus { outline: 0; }
ins { text-decoration: none; }
del { text-decoration: line-through; }
table { border-collapse: collapse; border-spacing: 0; }
/* XULish */
.hbox > * {
vertical-align: middle;
}
.vbox > * {
display: block;
}
.hbox > *, .horizontal > *, td > * {
display: inline-block;
}
.vbox {
vertical-align: top;
}
td, th, .label, tr input, #titlebar, div {
font-family: Tahoma, Helvetica, sans-serif;
font-size: 8pt;
}
td, th {
padding-left: 1ex;
}
th {
border-bottom: solid 1px grey;
text-align: left;
font-weight: normal;
}
th:first-child {
border-right: solid 1px grey;
}
#titlebar {
background-color: #008;
color: white;
font-weight: bold;
font-size: 9pt;
padding-bottom: 4px;
margin-bottom: 1ex;
}
#titlebar > img {
vertical-align: bottom;
margin: 2px 0 0 2px;
}
#quit {
float: right;
background: url(closedown.png);
text-decoration: none;
margin: 2px 2px 0 0;
width: 16px;
padding: 0;
}
#quit:active img {
opacity: 0;
}
.window {
background-color: #e7e7e7;
border: outset 2px silver;
padding: 2px;
text-align: left;
display: inline-block;
}
body {
background: url(back.jpg) no-repeat;
background-size: 100% 100%;
-webkit-background-size: 100% 100%;
-o-background-size: 100% 100%;
-moz-background-size: 100% 100%;
background-attachment: fixed;
text-align: center;
margin-top: 1em;
}
body.bare {
background: silver;
}
div.scroll {
overflow: scroll;
height: 100px;
width: 250px;
overflow-x: hidden;
}
div.scroll > table {
width: 234px;
}
.selected {
background-color: yellow;
}
/* RESET (via Boilerplate via Eric Meyer) */
html, body, div, span, applet, object, iframe, h1, h2, h3, h4,
h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite,
code, del, dfn, em, font, img, ins, kbd, q, s, samp, small,
strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd,
ol, ul, li, fieldset, form, label, legend, table, caption, tbody,
tfoot, thead, tr, th, td {
margin: 0;
padding: 0;
border: 0;
outline: 0;
font-size: 100%;
vertical-align: baseline;
background: transparent;
}
body { line-height: 1; }
ol, ul { list-style: none; }
blockquote, q { quotes: none; }
blockquote:before, blockquote:after, q:before, q:after {
content: ''; content: none;
}
:focus { outline: 0; }
ins { text-decoration: none; }
del { text-decoration: line-through; }
table { border-collapse: collapse; border-spacing: 0; }
/* XULish */
.hbox > * {
vertical-align: middle;
}
.vbox > * {
display: block;
}
.hbox > *, .horizontal > *, td > * {
display: inline-block;
}
.vbox {
vertical-align: top;
}
td, th, .label, tr input, #titlebar, div {
font-family: Tahoma, Helvetica, sans-serif;
font-size: 8pt;
}
td, th {
padding-left: 1ex;
}
th {
border-bottom: solid 1px grey;
text-align: left;
font-weight: normal;
}
th:first-child {
border-right: solid 1px grey;
}
#titlebar {
background-color: #008;
color: white;
font-weight: bold;
font-size: 9pt;
padding-bottom: 4px;
margin-bottom: 1ex;
}
#titlebar > img {
vertical-align: bottom;
margin: 2px 0 0 2px;
}
#quit {
float: right;
background: url(closedown.png);
text-decoration: none;
margin: 2px 2px 0 0;
width: 16px;
padding: 0;
}
#quit:active img {
opacity: 0;
}
.window {
background-color: #e7e7e7;
border: outset 2px silver;
padding: 2px;
text-align: left;
display: inline-block;
}
body {
background: url(back.jpg) no-repeat;
background-size: 100% 100%;
-webkit-background-size: 100% 100%;
-o-background-size: 100% 100%;
-moz-background-size: 100% 100%;
background-attachment: fixed;
text-align: center;
margin-top: 1em;
}
body.bare {
background: silver;
}
div.scroll {
overflow: scroll;
height: 100px;
width: 250px;
overflow-x: hidden;
}
div.scroll > table {
width: 234px;
}
.selected {
background-color: yellow;
}