First commit to github.

Based on original webpage version, modified to use
webpack and babel.
This commit is contained in:
Will Scullin 2019-09-04 18:42:09 -07:00
commit 41dbf0b420
No known key found for this signature in database
GPG Key ID: 9092A5C0A673416B
66 changed files with 29621 additions and 0 deletions

18
.editorconfig Normal file
View File

@ -0,0 +1,18 @@
root = true
[*]
charset = utf-8
end_of_line = lf
indent_style = space
insert_final_newline = true
trim_trailing_whitespace = true
[*.js]
indent_size = 4
[*.md]
trim_trailing_whitespace = true
[Makefile]
indent_style = tab
indent_size = 8

53
.eslintrc.json Normal file
View File

@ -0,0 +1,53 @@
{
"rules": {
"indent": [
2,
4
],
"quotes": [
2,
"single"
],
"linebreak-style": [
2,
"unix"
],
"semi": [
2,
"always"
]
},
"env": {
"builtin": true,
"browser": true,
"jquery": true,
"es6": true
},
"parserOptions": {
"sourceType": "module"
},
"extends": "eslint:recommended",
"overrides": [
{
"files": [ "bin/*", "babel.config.js", "webpack.config.js" ],
"rules": {
"no-console": 0
},
"env": {
"node": true,
"jquery": false,
"browser": false
}
}, {
"files": [ "test/*"],
"env": {
"jest": true
}
}, {
"files": [ "js/entry1.js"],
"env": {
"commonjs": true
}
}
]
}

4
.gitignore vendored Normal file
View File

@ -0,0 +1,4 @@
.*~
.vscode
/dist
/node_modules

20
LICENSE Normal file
View File

@ -0,0 +1,20 @@
The MIT License (MIT)
Copyright (c) 2010-2019 Will Scullin
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

27
README.md Normal file
View File

@ -0,0 +1,27 @@
apple1js
========
An Apple 1 emulator written in Javascript.
Things are still a little rough around the edges right now, hopefully I will have more time to clean things up.
First
```sh
npm install
```
To run a development server
```sh
npm run dev
```
The open
[http://localhost:8080/apple1js.html](http://localhost:8080/apple1js.html)
To build a static distribution into `dist`
```sh
npm run build
```

161
about.html Normal file
View File

@ -0,0 +1,161 @@
<!DOCTYPE html>
<!-- -*- mode: HTML; indent-tabs-mode: nil -*- -->
<!-- Copyright 2010 Will Scullin -->
<html>
<head>
<meta charset="utf-8" />
<meta name="keywords" content="apple2,apple,ii,javascript,emulator,html5" />
<link rel="shortcut icon" href="logoicon.png" />
<link rel="stylesheet" type="text/css" href="css/apple1.css" />
<title>About Apple 1js</title>
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-19205057-1']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
<meta property="og:title" content="About Apple 1js" />
<meta property="og:type" content="website" />
<meta property="og:description" content="Apple 1js is an Apple 1 emulator written using only JavaScript and HTML5." />
<meta property="og:url" content="http://www.scullinsteel.com/apple1/about.html" />
<meta property="og:image" content="http://www.scullinsteel.com/apple1/img/image.png" />
<meta property="fb:admins" content="700585391" />
</head>
<body id="about">
<div style="text-align: center">
<span class="motter" style="font-size: 2em">Apple 1js</span>
</div>
<div style="max-width: 800px; margin: auto">
<h2>What is this?</h2>
<span class="motter"><a href="../apple1/">Apple 1js</a></span>
is an Apple 1 emulator written entirely in JavaScript and HTML5.
<h2>Updates</h2>
<h3>2013-06-25</h3>
<ul>
<li><h4>ACI Emulation</h4>
Programs are now loaded via ACI emulation off of virtual tapes.
This is slower than just slamming them into memory, faster
than emulated typing.
Actually loading programs from audio files is on my radar, but
quite a bit more work.
</li>
</ul>
<h3>2013-06-05</h3>
<ul>
<li><h4>More Accurater</h4>
I've scraped the Internet for more information. For instance
<a href="http://cameronscloset.com/category/apple-1/">
Cameron's Closet
</a> had some nice info on character display.
</li>
<li><h4>Krusader off by default</h4>
Krusader seems to cause some output weirdness outside of the Krusader
shell, so I'm not using it by default anymore.
Use #krusader to turn it back on.
</li>
</ul>
<h3>2013-05-28</h3>
<ul>
<li><h4>Less Limited Input</h4>
Pasting into the load window is now the same as typing. For now it
is not any faster, though.
</li>
</ul>
<h3>2013-05-27</h3>
<ul>
<li><h4>Krusader</h4>
I've decided to use
<a href="http://school.anhb.uwa.edu.au/personalpages/kwessen/apple1/Krusader.htm">Krusader</a>
as the default ROM for now. I'm just starting to find my way around it,
but other Apple 1 people might find it useful.
</li>
</ul>
<h2>Requirements</h2>
<ul>
<li><h3>A Browser with HTML5 Support</h3>
The most recent versions of
<a href="http://www.google.com/chrome/" target="_blank">
Google Chrome</a>,
<a href="http://www.apple.com/safari/" target="_blank">
Safari</a>,
<a href="http://www.firefox.com/" target="_blank" >
Firefox</a>, and
<a href="http://www.opera.com/" target="_blank">
Opera</a>
all seem to work reasonably well these days, although
variations in HTML5 support pop up, and occasionally a major release
will move things around out from under me.
IEs prior to 9 lacks canvas tag support and are unsupported.
<a href="http://windows.microsoft.com/ie9">IE 9+</a> renders nicely on
a modern machine.<br/>
</li>
<li><h3>Basic Knowledge of the Apple 1</h3>
If you don't know how to use an Apple 1, this won't be much fun for
you. A good place to start is the <a href="http://applefritter.com/apple1">Apple I Owners Club</a>.
</li>
</ul>
<h2>Known Limitations</h2>
<ul>
<li><h3>Limited Accuracy</h3>
Unlike the <a href="../apple2/">Apple ][</a> I wrote an emulator for, I don't own an Apple 1.
My emulation is based on all the reference materials I was able to dig up, and by comparison
to the behavior of other emulators.
</li>
</ul>
<h2>Acknowlegements</h2>
<ul>
<li>
<h3>I'm using the following libraries:</h3>
<ul>
<li>
<a href="http://jquery.com">jQuery</a> and
<a href="http://jqueryui.com">jQuery UI</a>
</li>
<li>
<a href="http://www.JSON.org/json2.js">JSON 2</a>
</li>
<li>
Base64 Utilities via
<a href="http://kevin.vanzonneveld.net/">KvZ</a>
</li>
</ul>
</li>
<li>
<h3>I heavily referenced:</h3>
<ul>
<li>
<a href="http://applefritter.com/apple1">Apple I Owners Club</a>
and the <a href="http://applefritter.com/forum">applefritter forums</a>.
</li>
</ul>
<li>
<h3>And special thanks to:</h3>
<ul>
<li>
<a href="http://www.willegal.net/index.htm">Mike</a> for an eclectic
collection of useful information. Someday I will work up the nerve
to try building a replica.
</li>
<li>
And of course <a href="http://www.woz.org">Woz</a>, for launching my 30+ years
of both silly and practical computer projects.
</li>
</ul>
</li>
</ul>
<h2>Contact</h2>
<ul>
<li>
<a href="mailto:apple1js@scullinsteel.com">apple1js@scullinsteel.com</a>
</li>
</ul>
</div>
</body>
</html>

161
apple1js.html Normal file
View File

@ -0,0 +1,161 @@
<!DOCTYPE html><!-- -*- mode: HTML; indent-tabs-mode: nil -*- -->
<!--
Copyright 2010-2019 Will Scullin <scullin@scullinsteel.com>
Permission to use, copy, modify, distribute, and sell this software and its
documentation for any purpose is hereby granted without fee, provided that
the above copyright notice appear in all copies and that both that
copyright notice and this permission notice appear in supporting
documentation. No representations are made about the suitability of this
software for any purpose. It is provided "as is" without express or
implied warranty.
-->
<html>
<head>
<title>Apple 1js - An Apple 1 Emulator in JavaScript</title>
<meta name="viewport" content="width=device-width user-scalable=0" />
<meta name="apple-mobile-web-app-capable" content="yes">
<meta charset="utf-8" />
<meta name="description" content="Apple 1js is an Apple 1 emulator written using only JavaScript and HTML5. Works best in the Chrome and Safari browsers." />
<meta name="keywords" content="apple1,apple,i,javascript,emulator,html5" />
<link rel="apple-touch-icon" href="img/webapp-iphone.png" />
<link rel="apple-touch-icon" size="72x72" href="img/webapp-ipad.png" />
<link rel="shortcut icon" href="logoicon.png" />
<link rel="stylesheet" type="text/css" href="css/apple1.css" />
<link rel="stylesheet" type="text/css"
href="css/custom-choc/jquery-ui-1.8.all.css" />
<meta property="og:title" content="Apple 1js" />
<meta property="og:type" content="website" />
<meta property="og:description" content="Apple 1js is an Apple 1 emulator written using only JavaScript and HTML5." />
<meta property="og:url" content="https://www.scullinsteel.com/apple1/" />
<meta property="og:image" content="https://www.scullinsteel.com/apple1/img/image.png" />
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jqueryui/1.8.7/jquery-ui.min.js"></script>
<!-- Tapes -->
<script type="text/javascript">
var tapes = {};
</script>
<script type="text/javascript" src="tapes/apple30th.js"></script>
<script type="text/javascript" src="tapes/applesoft.js"></script>
<script type="text/javascript" src="tapes/basic.js"></script>
<script type="text/javascript" src="tapes/blackjack.js"></script>
<script type="text/javascript" src="tapes/checkers.js"></script>
<script type="text/javascript" src="tapes/codebreaker.js"></script>
<script type="text/javascript" src="tapes/hamurabi.js"></script>
<script type="text/javascript" src="tapes/life.js"></script>
<script type="text/javascript" src="tapes/little_tower.js"></script>
<script type="text/javascript" src="tapes/lunar_lander.js"></script>
<script type="text/javascript" src="tapes/matrix.js"></script>
<script type="text/javascript" src="tapes/monitor.js"></script>
<script type="text/javascript" src="tapes/microchess.js"></script>
<script type="text/javascript" src="tapes/slots.js"></script>
<script type="text/javascript" src="tapes/startrek.js"></script>
<script type="text/javascript" src="tapes/startrek2003.js"></script>
<script type="text/javascript" src="tapes/volksforth.js"></script>
<script type="text/javascript" src="tapes/wumpus2.js"></script>
<!-- Web FE -->
</head>
<body>
<div style="margin: auto; width: 604px">
<h1 style="font-size: 24px" class="motter">Apple 1js</h1>
<h2 id="subtitle">An Apple 1 Emulator in JavaScript</h2>
<table id="display">
<tr>
<td style="vertical-align: top">
<div role="textbox" class="overscan"
onkeydown="_keydown(event);"
onkeyup="_keyup(event);">
<canvas id="text" width="560" height="384"></canvas>
</div>
<div style="color: #75d475; position: absolute">Type E000R for BASIC</div>
</td>
</tr>
</table>
<div class="inset">
<div id="khz" onclick="Apple1.toggleFPS()">0KHz</div>
<input type="button" value="Pause" onclick="Apple1.pauseRun(this)" />
<input type="button" value="Load" onclick="Apple1.openLoadText(event)" />
<div id="player">
<!--
<div id="supply"></div>
<div id="takeup"></div>
-->
<div id="tape"></div>
</div>
<div style="float: right">
<input type="button" onclick="window.open('about.html','_html')"
name="About" value="About">
<input type="button" onclick="$('#options').dialog('open')"
name="Options" value="Options">
</div>
</div>
<div class="inset">
<div style="margin: 0px 0px">
<div id="keyboard"></div>
</div>
</div>
</div>
<div id="options" title="Options" style="display: none">
<h3>CPU</h3>
<ul>
<li>
<input type="checkbox" checked="checked" id="speed_toggle"
onclick="Apple1.toggleSpeed()"/>
<label for="speed_toggle">
Regulate Speed
</label>
</li>
</ul>
<h3>Monitor</h3>
<ul>
<li>
<input type="checkbox" id="green_screen"
onclick="Apple1.updateScreen()" />
<label for="green_screen">
Green Screen
</label>
</li>
<li>
<input type="checkbox" id="show_scanlines"
onclick="Apple1.updateScreen()" />
<label for="show_scanlines">
Show Scanlines
</label>
</li>
</ul>
<h3>I/O</h3>
<ul>
<li>
<input type="checkbox" id="turbo_tape"
onclick="Apple1.setTurboTape(this.checked)" />
<label for="turbo_tape">
Turbo Tape Loading
</label>
</li>
</ul>
</div>
<div id="input_text" title="Input Text" style="display: none">
<form action="#">
<select id="tape_select">
<option>Or Select Tape...</option>
</select>
<input type="button" onclick="$('#text_input').val('')"
name="Clear" value="Clear" />
<textarea id="text_input" rows="24" cols="80"></textarea>
</form>
</div>
<div id="local" title="Load Local File" style="display: none">
<form action="#">
<input type="file" id="local_file" />
</form>
</div>
<script type="text/javascript" src="dist/apple1.js"></script>
</body>
</html>

13
babel.config.js Normal file
View File

@ -0,0 +1,13 @@
// babel.config.js
module.exports = {
presets: [
[
'@babel/preset-env',
{
targets: {
node: 'current',
},
},
],
],
};

366
css/apple1.css Normal file
View File

@ -0,0 +1,366 @@
/* Copyright 2010-2013 Will Scullin */
img {
border: none;
}
img#badge {
padding: 0px 12px;
cursor: pointer;
}
h1 {
margin: 0px;
padding: 3px 0px 0px 10px;
color: #fff;
font-family: Helvetica, Ariel;
font-size: 17px;
font-weight: normal;
}
h2 {
margin: 0px;
padding: 3px 0px 0px 10px;
color: #fff;
font-family: Helvetica, Ariel;
font-size: 13px;
font-weight: normal;
}
input[type="button"] {
width: 75px;
}
input[type="text"] {
width: 40px;
}
body {
margin: 16px 0px;
font-size: 10px;
background-color: #114024;
color: #fff;
}
#display {
margin: 5px 0px;
}
.overscan {
margin: auto;
position: relative;
background-color: black;
padding: 16px;
width: 560px;
height: 384px;
border: 6px solid #75d475;
border-radius: 10px;
}
#power {
padding: 2px;
border: 1px inset #ddc364;
}
span.code {
font-family: Courier;
font-size: 14px;
white-space: pre;
}
th {
background-color: #ccc;
}
.inset {
background: #114024;
width: 590px;
border-radius: 6px;
border: 3px solid #75d475;
padding: 6px;
margin: 10px 0px;
position: relative;
}
#speed {
margin: 9px 0px;
width: 200px;
}
#khz {
margin-right: 4px;
padding: 4px;
float: left;
font-family: Courier;
font-size: 12px;
width: 60px;
height: 15px;
text-align: right;
background: #000;
color: #fff;
border: 2px solid #75d475;
border-radius: 4px;
}
canvas {
position: absolute;
top: 16px;
left: 16px;
cursor: crosshair;
width: 560px;
height: 384px;
image-rendering: -moz-crisp-edges;
image-rendering: -webkit-optimize-contrast;
image-rendering: optimize-contrast;
}
:-webkit-full-screen #display {
width: 100%;
height: 100%;
}
@media screen and (min-device-width:1120px) {
:-webkit-full-screen {
background: #000;
}
:-webkit-full-screen .overscan {
border: 0px none !important;
width: 1120px;
height: 768px;
}
:-webkit-full-screen canvas {
width: 1120px;
height: 768px;
}
:-webkit-full-screen #scanlines {
width: 1120px;
height: 768px;
}
}
#scanlines {
position: absolute;
top: 16px;
left: 16px;
cursor: crosshair;
z-index: 1;
width: 560px;
height: 384px;
}
#about iframe {
border: 1px inset #666;
width: 99%;
height: 99%;
}
#about {
padding: 16px;
margin: 0px;
font-family: "Adobe Garamond Pro",Garamond,Times;
font-size: 14px;
background-color: #fff;
color: #000;
}
#about a {
background-color: #fff;
color: #000;
}
#load select {
width: 250px;
height: 300px;
}
#keyboard {
border-radius: 6px;
padding: 0px 0px 3px 0px;
}
#keyboard .row {
display: block;
margin: 0px;
padding: 0px;
height: 43px;
font-family: Helvetica;
width: 605px;
}
#keyboard .row0 {
margin-left: 20px;
}
#keyboard .row2 {
margin-left: 10px;
}
#keyboard .row3 {
margin-left: 10px;
}
#keyboard .row4 {
margin-left: 10px;
}
#keyboard .key {
display: block;
float: left;
margin: 0px;
padding: 0px;
width: 34px;
height: 34px;
background-color: #44372C;
color: white;
vertical-align: bottom;
text-align: center;
position: relative;
border: 5px outset #66594E;
border-radius: 5px;
cursor: pointer;
}
#keyboard .pressed {
background-color: #22150A;
border: 5px outset #44372C;
}
#keyboard .key div {
border-radius: 3px;
position: absolute;
bottom: 0px;
width: 100%;
text-align: center;
}
#keyboard .vcenter div {
bottom: 10px;
}
#keyboard .vcenter2 div {
bottom: 5px;
}
#keyboard .key span {
font-size: 14px;
}
#keyboard .key span.small {
font-size: 7px;
}
#keyboard .key-SHIFT {
width: 53px;
}
#keyboard .active {
color: #4f4;
}
#keyboard .key-RETURN {
width: 52px;
}
#keyboard .key-DELETE {
width: 47px;
}
#keyboard .key-TAB {
width: 47px;
}
#keyboard .key-nbsp {
margin-left: 104px;
width: 330px;
}
#keyboard .key-POW {
width: 38px;
height: 38px;
border: 2px groove black;
background-color: #ffd;
color: black;
border-radius: 2px;
}
#keyboard .key-POW div {
bottom: 15px;
}
#keyboard .key-POW span {
background: #4f4;
color: #4f4;
}
#keyboard .key-OPEN_APPLE div {
background-image: url(../img/open-apple24.png);
width: 24px;
height: 24px;
bottom: 1px;
left: 4px;
}
#keyboard .key-OPEN_APPLE span {
display: none;
}
#keyboard .key-OPEN_APPLE.active div {
background-image: url(../img/open-apple24-green.png);
}
#keyboard .key-CLOSED_APPLE div {
background-image: url(../img/closed-apple24.png);
width: 24px;
height: 24px;
bottom: 1px;
left: 4px;
}
#keyboard .key-CLOSED_APPLE.active div {
background-image: url(../img/closed-apple24-green.png);
}
#keyboard .key-CLOSED_APPLE span {
display: none;
}
#text_input {
font-family: Courier, fixed;
}
#player {
position: absolute;
left: 290px;
top: 12px;
border: 2px solid #75d475;
border-radius: 4px;
width: 100px;
height: 10px;
background: black;
text-align: center;
}
#supply {
width: 75px;
height: 10px;
position: absolute;
background: brown;
}
#takeup {
width: 0px;
height: 10px;
position: absolute;
right: 0px;
background: brown;
}
#tape {
width: 0px;
height: 10px;
position: absolute;
background: brown;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 180 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 129 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

489
css/custom-choc/jquery-ui-1.8.all.css vendored Executable file
View File

@ -0,0 +1,489 @@
/*
* jQuery UI CSS Framework
* Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
*/
/* Layout helpers
----------------------------------*/
.ui-helper-hidden { display: none; }
.ui-helper-hidden-accessible { position: absolute; left: -99999999px; }
.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
.ui-helper-clearfix { display: inline-block; }
/* required comment for clearfix to work in Opera \*/
* html .ui-helper-clearfix { height:1%; }
.ui-helper-clearfix { display:block; }
/* end clearfix */
.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
/* Interaction Cues
----------------------------------*/
.ui-state-disabled { cursor: default !important; }
/* Icons
----------------------------------*/
/* states and images */
.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
/* Misc visuals
----------------------------------*/
/* Overlays */
.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
/*
* jQuery UI CSS Framework
* Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Segoe%20UI,%20Helvetica,%20Arial,%20sans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=453326&bgTextureHeader=12_gloss_wave.png&bgImgOpacityHeader=25&borderColorHeader=695649&fcHeader=e3ddc9&iconColorHeader=e3ddc9&bgColorContent=201913&bgTextureContent=05_inset_soft.png&bgImgOpacityContent=10&borderColorContent=9c947c&fcContent=ffffff&iconColorContent=222222&bgColorDefault=1c160d&bgTextureDefault=12_gloss_wave.png&bgImgOpacityDefault=20&borderColorDefault=695444&fcDefault=e3ddc9&iconColorDefault=e3ddc9&bgColorHover=44372c&bgTextureHover=12_gloss_wave.png&bgImgOpacityHover=30&borderColorHover=9c947c&fcHover=ffffff&iconColorHover=ffffff&bgColorActive=201913&bgTextureActive=03_highlight_soft.png&bgImgOpacityActive=20&borderColorActive=9c947c&fcActive=e3ddc9&iconColorActive=e3ddc9&bgColorHighlight=9c947c&bgTextureHighlight=03_highlight_soft.png&bgImgOpacityHighlight=20&borderColorHighlight=d0cdc3&fcHighlight=ffffff&iconColorHighlight=ffffff&bgColorError=5f391b&bgTextureError=02_glass.png&bgImgOpacityError=15&borderColorError=5f391b&fcError=ffffff&iconColorError=f1fd86&bgColorOverlay=aaaaaa&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
*/
/* Component containers
----------------------------------*/
.ui-widget { font-family: Segoe UI, Helvetica, Arial, sans-serif; font-size: 1.1em; }
.ui-widget .ui-widget { font-size: 1em; }
.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Segoe UI, Helvetica, Arial, sans-serif; font-size: 1em; }
.ui-widget-content { border: 1px solid #9c947c; background: #201913 url(images/ui-bg_inset-soft_10_201913_1x100.png) 50% bottom repeat-x; color: #ffffff; }
.ui-widget-content a { color: #ffffff; }
.ui-widget-header { border: 1px solid #695649; background: #453326 url(images/ui-bg_gloss-wave_25_453326_500x100.png) 50% 50% repeat-x; color: #e3ddc9; font-weight: bold; }
.ui-widget-header a { color: #e3ddc9; }
/* Interaction states
----------------------------------*/
.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #695444; background: #1c160d url(images/ui-bg_gloss-wave_20_1c160d_500x100.png) 50% 50% repeat-x; font-weight: bold; color: #e3ddc9; }
.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #e3ddc9; text-decoration: none; }
.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #9c947c; background: #44372c url(images/ui-bg_gloss-wave_30_44372c_500x100.png) 50% 50% repeat-x; font-weight: bold; color: #ffffff; }
.ui-state-hover a, .ui-state-hover a:hover { color: #ffffff; text-decoration: none; }
.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #9c947c; background: #201913 url(images/ui-bg_highlight-soft_20_201913_1x100.png) 50% 50% repeat-x; font-weight: bold; color: #e3ddc9; }
.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #e3ddc9; text-decoration: none; }
.ui-widget :active { outline: none; }
/* Interaction Cues
----------------------------------*/
.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #d0cdc3; background: #9c947c url(images/ui-bg_highlight-soft_20_9c947c_1x100.png) 50% top repeat-x; color: #ffffff; }
.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #ffffff; }
.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #5f391b; background: #5f391b url(images/ui-bg_glass_15_5f391b_1x400.png) 50% 50% repeat-x; color: #ffffff; }
.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #ffffff; }
.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #ffffff; }
.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
/* Icons
----------------------------------*/
/* states and images */
.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); }
.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
.ui-widget-header .ui-icon {background-image: url(images/ui-icons_e3ddc9_256x240.png); }
.ui-state-default .ui-icon { background-image: url(images/ui-icons_e3ddc9_256x240.png); }
.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); }
.ui-state-active .ui-icon {background-image: url(images/ui-icons_e3ddc9_256x240.png); }
.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); }
.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_f1fd86_256x240.png); }
/* positioning */
.ui-icon-carat-1-n { background-position: 0 0; }
.ui-icon-carat-1-ne { background-position: -16px 0; }
.ui-icon-carat-1-e { background-position: -32px 0; }
.ui-icon-carat-1-se { background-position: -48px 0; }
.ui-icon-carat-1-s { background-position: -64px 0; }
.ui-icon-carat-1-sw { background-position: -80px 0; }
.ui-icon-carat-1-w { background-position: -96px 0; }
.ui-icon-carat-1-nw { background-position: -112px 0; }
.ui-icon-carat-2-n-s { background-position: -128px 0; }
.ui-icon-carat-2-e-w { background-position: -144px 0; }
.ui-icon-triangle-1-n { background-position: 0 -16px; }
.ui-icon-triangle-1-ne { background-position: -16px -16px; }
.ui-icon-triangle-1-e { background-position: -32px -16px; }
.ui-icon-triangle-1-se { background-position: -48px -16px; }
.ui-icon-triangle-1-s { background-position: -64px -16px; }
.ui-icon-triangle-1-sw { background-position: -80px -16px; }
.ui-icon-triangle-1-w { background-position: -96px -16px; }
.ui-icon-triangle-1-nw { background-position: -112px -16px; }
.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
.ui-icon-arrow-1-n { background-position: 0 -32px; }
.ui-icon-arrow-1-ne { background-position: -16px -32px; }
.ui-icon-arrow-1-e { background-position: -32px -32px; }
.ui-icon-arrow-1-se { background-position: -48px -32px; }
.ui-icon-arrow-1-s { background-position: -64px -32px; }
.ui-icon-arrow-1-sw { background-position: -80px -32px; }
.ui-icon-arrow-1-w { background-position: -96px -32px; }
.ui-icon-arrow-1-nw { background-position: -112px -32px; }
.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
.ui-icon-arrow-4 { background-position: 0 -80px; }
.ui-icon-arrow-4-diag { background-position: -16px -80px; }
.ui-icon-extlink { background-position: -32px -80px; }
.ui-icon-newwin { background-position: -48px -80px; }
.ui-icon-refresh { background-position: -64px -80px; }
.ui-icon-shuffle { background-position: -80px -80px; }
.ui-icon-transfer-e-w { background-position: -96px -80px; }
.ui-icon-transferthick-e-w { background-position: -112px -80px; }
.ui-icon-folder-collapsed { background-position: 0 -96px; }
.ui-icon-folder-open { background-position: -16px -96px; }
.ui-icon-document { background-position: -32px -96px; }
.ui-icon-document-b { background-position: -48px -96px; }
.ui-icon-note { background-position: -64px -96px; }
.ui-icon-mail-closed { background-position: -80px -96px; }
.ui-icon-mail-open { background-position: -96px -96px; }
.ui-icon-suitcase { background-position: -112px -96px; }
.ui-icon-comment { background-position: -128px -96px; }
.ui-icon-person { background-position: -144px -96px; }
.ui-icon-print { background-position: -160px -96px; }
.ui-icon-trash { background-position: -176px -96px; }
.ui-icon-locked { background-position: -192px -96px; }
.ui-icon-unlocked { background-position: -208px -96px; }
.ui-icon-bookmark { background-position: -224px -96px; }
.ui-icon-tag { background-position: -240px -96px; }
.ui-icon-home { background-position: 0 -112px; }
.ui-icon-flag { background-position: -16px -112px; }
.ui-icon-calendar { background-position: -32px -112px; }
.ui-icon-cart { background-position: -48px -112px; }
.ui-icon-pencil { background-position: -64px -112px; }
.ui-icon-clock { background-position: -80px -112px; }
.ui-icon-disk { background-position: -96px -112px; }
.ui-icon-calculator { background-position: -112px -112px; }
.ui-icon-zoomin { background-position: -128px -112px; }
.ui-icon-zoomout { background-position: -144px -112px; }
.ui-icon-search { background-position: -160px -112px; }
.ui-icon-wrench { background-position: -176px -112px; }
.ui-icon-gear { background-position: -192px -112px; }
.ui-icon-heart { background-position: -208px -112px; }
.ui-icon-star { background-position: -224px -112px; }
.ui-icon-link { background-position: -240px -112px; }
.ui-icon-cancel { background-position: 0 -128px; }
.ui-icon-plus { background-position: -16px -128px; }
.ui-icon-plusthick { background-position: -32px -128px; }
.ui-icon-minus { background-position: -48px -128px; }
.ui-icon-minusthick { background-position: -64px -128px; }
.ui-icon-close { background-position: -80px -128px; }
.ui-icon-closethick { background-position: -96px -128px; }
.ui-icon-key { background-position: -112px -128px; }
.ui-icon-lightbulb { background-position: -128px -128px; }
.ui-icon-scissors { background-position: -144px -128px; }
.ui-icon-clipboard { background-position: -160px -128px; }
.ui-icon-copy { background-position: -176px -128px; }
.ui-icon-contact { background-position: -192px -128px; }
.ui-icon-image { background-position: -208px -128px; }
.ui-icon-video { background-position: -224px -128px; }
.ui-icon-script { background-position: -240px -128px; }
.ui-icon-alert { background-position: 0 -144px; }
.ui-icon-info { background-position: -16px -144px; }
.ui-icon-notice { background-position: -32px -144px; }
.ui-icon-help { background-position: -48px -144px; }
.ui-icon-check { background-position: -64px -144px; }
.ui-icon-bullet { background-position: -80px -144px; }
.ui-icon-radio-off { background-position: -96px -144px; }
.ui-icon-radio-on { background-position: -112px -144px; }
.ui-icon-pin-w { background-position: -128px -144px; }
.ui-icon-pin-s { background-position: -144px -144px; }
.ui-icon-play { background-position: 0 -160px; }
.ui-icon-pause { background-position: -16px -160px; }
.ui-icon-seek-next { background-position: -32px -160px; }
.ui-icon-seek-prev { background-position: -48px -160px; }
.ui-icon-seek-end { background-position: -64px -160px; }
.ui-icon-seek-start { background-position: -80px -160px; }
/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
.ui-icon-seek-first { background-position: -80px -160px; }
.ui-icon-stop { background-position: -96px -160px; }
.ui-icon-eject { background-position: -112px -160px; }
.ui-icon-volume-off { background-position: -128px -160px; }
.ui-icon-volume-on { background-position: -144px -160px; }
.ui-icon-power { background-position: 0 -176px; }
.ui-icon-signal-diag { background-position: -16px -176px; }
.ui-icon-signal { background-position: -32px -176px; }
.ui-icon-battery-0 { background-position: -48px -176px; }
.ui-icon-battery-1 { background-position: -64px -176px; }
.ui-icon-battery-2 { background-position: -80px -176px; }
.ui-icon-battery-3 { background-position: -96px -176px; }
.ui-icon-circle-plus { background-position: 0 -192px; }
.ui-icon-circle-minus { background-position: -16px -192px; }
.ui-icon-circle-close { background-position: -32px -192px; }
.ui-icon-circle-triangle-e { background-position: -48px -192px; }
.ui-icon-circle-triangle-s { background-position: -64px -192px; }
.ui-icon-circle-triangle-w { background-position: -80px -192px; }
.ui-icon-circle-triangle-n { background-position: -96px -192px; }
.ui-icon-circle-arrow-e { background-position: -112px -192px; }
.ui-icon-circle-arrow-s { background-position: -128px -192px; }
.ui-icon-circle-arrow-w { background-position: -144px -192px; }
.ui-icon-circle-arrow-n { background-position: -160px -192px; }
.ui-icon-circle-zoomin { background-position: -176px -192px; }
.ui-icon-circle-zoomout { background-position: -192px -192px; }
.ui-icon-circle-check { background-position: -208px -192px; }
.ui-icon-circlesmall-plus { background-position: 0 -208px; }
.ui-icon-circlesmall-minus { background-position: -16px -208px; }
.ui-icon-circlesmall-close { background-position: -32px -208px; }
.ui-icon-squaresmall-plus { background-position: -48px -208px; }
.ui-icon-squaresmall-minus { background-position: -64px -208px; }
.ui-icon-squaresmall-close { background-position: -80px -208px; }
.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
/* Misc visuals
----------------------------------*/
/* Corner radius */
.ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; }
.ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; }
.ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; }
.ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
.ui-corner-top { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; }
.ui-corner-bottom { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
.ui-corner-right { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
.ui-corner-left { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; }
.ui-corner-all { -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; }
/* Overlays */
.ui-widget-overlay { background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); }
.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/* Resizable
----------------------------------*/
.ui-resizable { position: relative;}
.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;}
.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/* Selectable
----------------------------------*/
.ui-selectable-helper { border:1px dotted black }
/* Accordion
----------------------------------*/
.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
.ui-accordion .ui-accordion-li-fix { display: inline; }
.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
/* IE7-/Win - Fix extra vertical space in lists */
.ui-accordion a { zoom: 1; }
.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
.ui-accordion .ui-accordion-content-active { display: block; }/* Autocomplete
----------------------------------*/
.ui-autocomplete { position: absolute; cursor: default; }
.ui-autocomplete-loading { background: white url('images/ui-anim_basic_16x16.gif') right center no-repeat; }
/* workarounds */
* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
/* Menu
----------------------------------*/
.ui-menu {
list-style:none;
padding: 2px;
margin: 0;
display:block;
}
.ui-menu .ui-menu {
margin-top: -3px;
}
.ui-menu .ui-menu-item {
margin:0;
padding: 0;
zoom: 1;
float: left;
clear: left;
width: 100%;
}
.ui-menu .ui-menu-item a {
text-decoration:none;
display:block;
padding:.2em .4em;
line-height:1.5;
zoom:1;
}
.ui-menu .ui-menu-item a.ui-state-hover,
.ui-menu .ui-menu-item a.ui-state-active {
font-weight: normal;
margin: -1px;
}
/* Button
----------------------------------*/
.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */
.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
.ui-button-icons-only { width: 3.4em; }
button.ui-button-icons-only { width: 3.7em; }
/*button text element */
.ui-button .ui-button-text { display: block; line-height: 1.4; }
.ui-button-text-only .ui-button-text { padding: .4em 1em; }
.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
.ui-button-text-icon .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
/* no icon support for input elements, provide padding by default */
input.ui-button { padding: .4em 1em; }
/*button icon element(s) */
.ui-button-icon-only .ui-icon, .ui-button-text-icon .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
.ui-button-text-icon .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
/*button sets*/
.ui-buttonset { margin-right: 7px; }
.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
/* workarounds */
button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
/* Dialog
----------------------------------*/
.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
.ui-dialog .ui-dialog-titlebar { padding: .5em 1em .3em; position: relative; }
.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .2em 0; }
.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
.ui-dialog .ui-dialog-content { border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
.ui-dialog .ui-dialog-buttonpane button { float: right; margin: .5em .4em .5em 0; cursor: pointer; padding: .2em .6em .3em .6em; line-height: 1.4em; width:auto; overflow:visible; }
.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
.ui-draggable .ui-dialog-titlebar { cursor: move; }
/* Slider
----------------------------------*/
.ui-slider { position: relative; text-align: left; }
.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
.ui-slider-horizontal { height: .8em; }
.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
.ui-slider-horizontal .ui-slider-range-min { left: 0; }
.ui-slider-horizontal .ui-slider-range-max { right: 0; }
.ui-slider-vertical { width: .8em; height: 100px; }
.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
.ui-slider-vertical .ui-slider-range-min { bottom: 0; }
.ui-slider-vertical .ui-slider-range-max { top: 0; }/* Tabs
----------------------------------*/
.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
.ui-tabs .ui-tabs-hide { display: none !important; }
/* Datepicker
----------------------------------*/
.ui-datepicker { width: 17em; padding: .2em .2em 0; }
.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
.ui-datepicker .ui-datepicker-prev { left:2px; }
.ui-datepicker .ui-datepicker-next { right:2px; }
.ui-datepicker .ui-datepicker-prev-hover { left:1px; }
.ui-datepicker .ui-datepicker-next-hover { right:1px; }
.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: