diff --git a/CHANGELOG.md b/CHANGELOG.md
index 490c3299..28e873c9 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,12 @@
# Changelog
-## 2026-05-02 (latest)
+## 2026-05-03 (latest)
+- **GSP 1.0 baseline:** Reset all bundled/core module versions to `1.0`. DB schema versions (`$db_version`) are unchanged.
+- **FAQ module refresh:** Restored online RSS update code from upstream (opengamepanel.org), fixed `$local = false` initialization bug, switched local cache to `ogpfaq.rss`, added PHP 8.3-compatible `(array)` casts, restored upstream credits footer, and opened `navigation.xml` access to `user,admin,subuser`.
+- **Config XML editor improvements:** Added schema validation before save (both structured editor and raw XML path); invalid XML is rejected with line-level error messages instead of being written to disk. Added auto-restore from backup on validation failure. Fields are now displayed in schema-defined order with required/optional badges. Added a raw XML editing panel with validation warning. Unknown/custom XML fields are preserved when only specific nodes are modified.
+- **Obsidian theme:** Added `themes/Obsidian/` from `hmrserver/Obsidian`. The theme is immediately selectable in the panel theme settings.
+
+
- Removed 22 stray backup/duplicate files left by manual editing (`.bak`, `.BAK`, `.orig`, `.backup` extensions). Files inside `modules/config_games/server_configs/backup/` (intentional runtime backup folder) were left untouched.
## 2026-05-01
diff --git a/modules/addonsmanager/module.php b/modules/addonsmanager/module.php
index dc482d70..45c8dcd6 100644
--- a/modules/addonsmanager/module.php
+++ b/modules/addonsmanager/module.php
@@ -24,7 +24,7 @@
// Module general information
$module_title = "Addons Manager";
-$module_version = "1.2";
+$module_version = "1.0";
$db_version = 1;
$module_required = TRUE;
$module_menus = array( array( 'subpage' => 'addons_manager', 'name'=>'Addons Manager', 'group'=>'admin' ) );
diff --git a/modules/administration/module.php b/modules/administration/module.php
index f349f33b..26a14032 100644
--- a/modules/administration/module.php
+++ b/modules/administration/module.php
@@ -24,7 +24,7 @@
// Module general information
$module_title = "Administration";
-$module_version = "1.1";
+$module_version = "1.0";
$db_version = 1;
$module_required = TRUE;
$module_menus = array( array( 'subpage' => 'watch_logger', 'name'=>'Watch Logger', 'group'=>'admin' ) );
diff --git a/modules/backup-restore/module.php b/modules/backup-restore/module.php
index c2e76a49..8fd78454 100644
--- a/modules/backup-restore/module.php
+++ b/modules/backup-restore/module.php
@@ -8,7 +8,7 @@
//* navigation.xml (OPTIONAL):
$module_title = "Backup/Restore";
-$module_version = "0.2";
+$module_version = "1.0";
$db_version = 0;
$module_required = false;
?>
diff --git a/modules/config_games/config_servers.php b/modules/config_games/config_servers.php
index 9404f83f..9d55ebb7 100644
--- a/modules/config_games/config_servers.php
+++ b/modules/config_games/config_servers.php
@@ -98,6 +98,77 @@ function config_games_next_form_key(): string
return 'node_' . $counter;
}
+// Schema-defined element order and required/optional flags for game_config root.
+// Source: modules/config_games/schema_server_config.xml (server_config_type sequence).
+function config_games_schema_order(): array
+{
+ return [
+ 'game_key' => true,
+ 'protocol' => false,
+ 'lgsl_query_name' => false,
+ 'gameq_query_name' => false,
+ 'installer' => false,
+ 'game_name' => true,
+ 'server_exec_name' => true,
+ 'query_port' => false,
+ 'cli_template' => false,
+ 'cli_params' => false,
+ 'reserve_ports' => false,
+ 'cli_allow_chars' => false,
+ 'maps_location' => false,
+ 'map_list' => false,
+ 'console_log' => false,
+ 'exe_location' => false,
+ 'max_user_amount' => false,
+ 'control_protocol' => false,
+ 'control_protocol_type' => false,
+ 'mods' => true,
+ 'replace_texts' => false,
+ 'server_params' => false,
+ 'custom_fields' => false,
+ 'list_players_command' => false,
+ 'player_info_regex' => false,
+ 'player_info' => false,
+ 'player_commands' => false,
+ 'pre_install' => false,
+ 'post_install' => false,
+ 'pre_start' => false,
+ 'post_start' => false,
+ 'environment_variables' => false,
+ 'lock_files' => false,
+ 'configuration_files' => false,
+ ];
+}
+
+/**
+ * Validate an XML file against the game config schema.
+ * Returns an empty array on success, or an array of error strings on failure.
+ */
+function config_games_validate_xml_file(string $config_file): array
+{
+ if (!file_exists($config_file) || !is_readable($config_file)) {
+ return ['Configuration file not found or unreadable: ' . htmlspecialchars($config_file, ENT_QUOTES, 'UTF-8')];
+ }
+ $prev = libxml_use_internal_errors(true);
+ libxml_clear_errors();
+ $dom = new DOMDocument();
+ if ($dom->load($config_file) === false) {
+ $errors = array_map(function ($e) { return trim($e->message) . ' (line ' . $e->line . ')'; }, libxml_get_errors());
+ libxml_clear_errors();
+ libxml_use_internal_errors($prev);
+ return $errors ?: ['XML is not well-formed.'];
+ }
+ if ($dom->schemaValidate(XML_SCHEMA) !== true) {
+ $errors = array_map(function ($e) { return trim($e->message) . ' (line ' . $e->line . ')'; }, libxml_get_errors());
+ libxml_clear_errors();
+ libxml_use_internal_errors($prev);
+ return $errors ?: ['XML failed schema validation.'];
+ }
+ libxml_clear_errors();
+ libxml_use_internal_errors($prev);
+ return [];
+}
+
function config_games_print_editor_css()
{
static $printed = false;
@@ -109,9 +180,14 @@ function config_games_print_editor_css()
CSS;
}
-function config_games_render_node(SimpleXMLElement $node, array $ancestors, array &$counters, int $depth = 0)
+function config_games_render_node(SimpleXMLElement $node, array $ancestors, array &$counters, int $depth = 0, ?bool $isRequired = null)
{
+ $schemaOrder = config_games_schema_order();
$name = $node->getName();
$pathKey = implode('/', $ancestors) === '' ? $name : implode('/', $ancestors) . '/' . $name;
$counters[$pathKey] = ($counters[$pathKey] ?? 0) + 1;
@@ -149,9 +233,18 @@ function config_games_render_node(SimpleXMLElement $node, array $ancestors, arra
$displayPath = htmlspecialchars(str_replace('[', '[', $rawPath), ENT_QUOTES, 'UTF-8');
$isScript = in_array(strtolower($name), ['pre_install','post_install','precmd','postcmd','cli_template']);
- $html = "
";
+ // Determine required status: use passed value, fall back to schema lookup for top-level nodes
+ if ($isRequired === null) {
+ $isRequired = $depth === 1 && array_key_exists($name, $schemaOrder) ? $schemaOrder[$name] : false;
+ }
+ $nodeClass = 'xml-node depth-' . $depth . ($isRequired ? ' xml-node--required' : '');
+ $badge = $isRequired
+ ? "
required "
+ : "
optional ";
+
+ $html = "
";
$actionId = 'node_action_' . substr(md5($safePath . $index), 0, 8);
- $html .= "
+
+
\ No newline at end of file
diff --git a/themes/Obsidian/bottom.html b/themes/Obsidian/bottom.html
new file mode 100644
index 00000000..6c37da03
--- /dev/null
+++ b/themes/Obsidian/bottom.html
@@ -0,0 +1,19 @@
+
+
+
Crafted with
by
HMR
+ %footer%
+
+
+
\ No newline at end of file
diff --git a/themes/Obsidian/config/config.php b/themes/Obsidian/config/config.php
new file mode 100644
index 00000000..e502eb40
--- /dev/null
+++ b/themes/Obsidian/config/config.php
@@ -0,0 +1,82 @@
+formatOutput = true;
+$xml->preserveWhiteSpace = false;
+$xml->load('config.xml');
+$theme = $xml->getElementsByTagName('theme')->item(0);
+$type = $theme->getElementsByTagName($type)->item(0);
+$type->nodeValue = $data;
+htmlentities($xml->save('config.xml'));
+}
+function ConfigRead($type) {
+
+$xml = new DOMDocument('1.0', 'UTF-8');
+$xml->formatOutput = true;
+$xml->preserveWhiteSpace = false;
+$xml->load('config.xml');
+$theme = $xml->getElementsByTagName('theme')->item(0);
+$type = $theme->getElementsByTagName($type)->item(0);
+return $type->nodeValue;
+}
+ ?>
\ No newline at end of file
diff --git a/themes/Obsidian/config/config.xml b/themes/Obsidian/config/config.xml
new file mode 100644
index 00000000..e224cbc6
--- /dev/null
+++ b/themes/Obsidian/config/config.xml
@@ -0,0 +1,9 @@
+
+
+ themes/Obsidian/images/favicon.ico
+ themes/Obsidian/images/bg.jpg
+ 0
+ themes/Obsidian/images/logo.png
+ default
+ 0
+
diff --git a/themes/Obsidian/css/login.css b/themes/Obsidian/css/login.css
new file mode 100644
index 00000000..032cbaa5
--- /dev/null
+++ b/themes/Obsidian/css/login.css
@@ -0,0 +1 @@
+.login_header{font-size:20px!important;text-transform:uppercase;font-weight:400;padding:10px 25px 2px 25px;background-color:rgba(25,48,65,0.301)}.register_header{font-size:20px!important;text-transform:uppercase;font-weight:400;padding:10px 25px 2px 25px;background-color:#1930414d}#ulogin,input[name="upassword"],#ulogin:hover,input[name="upassword"]:hover{width:320px;height:25px;padding:3px;border-bottom:1px solid #b1b0b0!important;background:transparent;color:#eee;border:1px solid transparent}#ulogin::-webkit-input-placeholder,input[name="upassword"]::-webkit-input-placeholder{color:#eee}#ulogin:focus,input[name="upassword"]:focus{border-bottom:2px solid #fff!important;border:1px solid transparent;color:#37b799;outline:-webkit-focus-ring-color auto 0}.uregister,.uregister:hover{width:320px;height:25px;padding:3px!important;border-color:none!important;border-radius:0;background:transparent!Important;color:#eee!important;border:1px solid transparent!important;border-bottom:1px solid #b1b0b0!important}.uregister:focus{border-bottom:2px solid #fff!important;border:1px solid transparent}.login_button:hover{color:#398bba;transition:all 300ms linear}.login_button{width:320px;background-color:#378cd5;padding:8px!important;color:#fff;text-transform:uppercase;font-size:14px;cursor:pointer;transition:all 300ms linear;border-radius:2px}.register_button:hover{color:#398bba;transition:all 300ms linear}.register_button{width:320px;background-color:#378cd5;padding:8px!important;color:#fff;text-transform:uppercase;font-size:14px;cursor:pointer;transition:all 300ms linear;border-radius:2px}#login-bg:before{content:"";position:fixed;left:-5%;top:-5%;right:0;z-index:-1;display:block;background-size:cover;background-repeat:no-repeat;width:110%;height:110%}@media(max-width:600px){.menu-bg {float: none !important;}}
\ No newline at end of file
diff --git a/themes/Obsidian/css/pace/big-counter.css b/themes/Obsidian/css/pace/big-counter.css
new file mode 100644
index 00000000..36ea47d7
--- /dev/null
+++ b/themes/Obsidian/css/pace/big-counter.css
@@ -0,0 +1 @@
+.pace{-webkit-pointer-events:none;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.pace.pace-inactive .pace-progress{display:none}.pace .pace-progress{position:fixed;z-index:2000;top:0;right:0;height:5rem;width:5rem;-webkit-transform:translate3d(0,0,0)!important;-ms-transform:translate3d(0,0,0)!important;transform:translate3d(0,0,0)!important}.pace .pace-progress:after{display:block;position:absolute;top:0;right:.5rem;content:attr(data-progress-text);font-family:"Helvetica Neue",sans-serif;font-weight:100;font-size:5rem;line-height:1;text-align:right;color:rgba(0,255,255,0.19999999999999996)}
\ No newline at end of file
diff --git a/themes/Obsidian/css/pace/bounce.css b/themes/Obsidian/css/pace/bounce.css
new file mode 100644
index 00000000..c99c6869
--- /dev/null
+++ b/themes/Obsidian/css/pace/bounce.css
@@ -0,0 +1 @@
+.pace{width:140px;height:300px;position:fixed;top:-90px;right:-20px;z-index:2000;-webkit-transform:scale(0);-moz-transform:scale(0);-ms-transform:scale(0);-o-transform:scale(0);transform:scale(0);opacity:0;-webkit-transition:all 2s linear 0s;-moz-transition:all 2s linear 0s;transition:all 2s linear 0s}.pace.pace-active{-webkit-transform:scale(.25);-moz-transform:scale(.25);-ms-transform:scale(.25);-o-transform:scale(.25);transform:scale(.25);opacity:1}.pace .pace-activity{width:140px;height:140px;border-radius:70px;background:cyan;position:absolute;top:0;z-index:1911;-webkit-animation:pace-bounce 1s infinite;-moz-animation:pace-bounce 1s infinite;-o-animation:pace-bounce 1s infinite;-ms-animation:pace-bounce 1s infinite;animation:pace-bounce 1s infinite}.pace .pace-progress{position:absolute;display:block;left:50%;bottom:0;z-index:1910;margin-left:-30px;width:60px;height:75px;background:rgba(20,20,20,.1);box-shadow:0 0 20px 35px rgba(20,20,20,.1);border-radius:30px / 40px;-webkit-transform:scaleY(.3)!important;-moz-transform:scaleY(.3)!important;-ms-transform:scaleY(.3)!important;-o-transform:scaleY(.3)!important;transform:scaleY(.3)!important;-webkit-animation:pace-compress .5s infinite alternate;-moz-animation:pace-compress .5s infinite alternate;-o-animation:pace-compress .5s infinite alternate;-ms-animation:pace-compress .5s infinite alternate;animation:pace-compress .5s infinite alternate}@-webkit-keyframes pace-bounce{0%{top:0;-webkit-animation-timing-function:ease-in}50%{top:140px;height:140px;-webkit-animation-timing-function:ease-out}55%{top:160px;height:120px;border-radius:70px / 60px;-webkit-animation-timing-function:ease-in}65%{top:120px;height:140px;border-radius:70px;-webkit-animation-timing-function:ease-out}95%{top:0;-webkit-animation-timing-function:ease-in}100%{top:0;-webkit-animation-timing-function:ease-in}}@-moz-keyframes pace-bounce{0%{top:0;-moz-animation-timing-function:ease-in}50%{top:140px;height:140px;-moz-animation-timing-function:ease-out}55%{top:160px;height:120px;border-radius:70px / 60px;-moz-animation-timing-function:ease-in}65%{top:120px;height:140px;border-radius:70px;-moz-animation-timing-function:ease-out}95%{top:0;-moz-animation-timing-function:ease-in}100%{top:0;-moz-animation-timing-function:ease-in}}@keyframes pace-bounce{0%{top:0;animation-timing-function:ease-in}50%{top:140px;height:140px;animation-timing-function:ease-out}55%{top:160px;height:120px;border-radius:70px / 60px;animation-timing-function:ease-in}65%{top:120px;height:140px;border-radius:70px;animation-timing-function:ease-out}95%{top:0;animation-timing-function:ease-in}100%{top:0;animation-timing-function:ease-in}}@-webkit-keyframes pace-compress{0%{bottom:0;margin-left:-30px;width:60px;height:75px;background:rgba(20,20,20,.1);box-shadow:0 0 20px 35px rgba(20,20,20,.1);border-radius:30px / 40px;-webkit-animation-timing-function:ease-in}100%{bottom:30px;margin-left:-10px;width:20px;height:5px;background:rgba(20,20,20,.3);box-shadow:0 0 20px 35px rgba(20,20,20,.3);border-radius:20px / 20px;-webkit-animation-timing-function:ease-out}}@-moz-keyframes pace-compress{0%{bottom:0;margin-left:-30px;width:60px;height:75px;background:rgba(20,20,20,.1);box-shadow:0 0 20px 35px rgba(20,20,20,.1);border-radius:30px / 40px;-moz-animation-timing-function:ease-in}100%{bottom:30px;margin-left:-10px;width:20px;height:5px;background:rgba(20,20,20,.3);box-shadow:0 0 20px 35px rgba(20,20,20,.3);border-radius:20px / 20px;-moz-animation-timing-function:ease-out}}@keyframes pace-compress{0%{bottom:0;margin-left:-30px;width:60px;height:75px;background:rgba(20,20,20,.1);box-shadow:0 0 20px 35px rgba(20,20,20,.1);border-radius:30px / 40px;animation-timing-function:ease-in}100%{bottom:30px;margin-left:-10px;width:20px;height:5px;background:rgba(20,20,20,.3);box-shadow:0 0 20px 35px rgba(20,20,20,.3);border-radius:20px / 20px;animation-timing-function:ease-out}}
\ No newline at end of file
diff --git a/themes/Obsidian/css/pace/center-atom.css b/themes/Obsidian/css/pace/center-atom.css
new file mode 100644
index 00000000..15ed8f85
--- /dev/null
+++ b/themes/Obsidian/css/pace/center-atom.css
@@ -0,0 +1 @@
+.pace.pace-inactive{display:none}.pace{-webkit-pointer-events:none;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:2000;position:fixed;height:60px;width:100px;margin:auto;top:0;left:0;right:0;bottom:0}.pace .pace-progress{z-index:2000;position:absolute;height:60px;width:100px;-webkit-transform:translate3d(0,0,0)!important;-ms-transform:translate3d(0,0,0)!important;transform:translate3d(0,0,0)!important}.pace .pace-progress:before{content:attr(data-progress-text);text-align:center;color:#fff;background:cyan;border-radius:50%;font-family:"Helvetica Neue",sans-serif;font-size:14px;font-weight:100;line-height:1;padding:20% 0 7px;width:50%;height:40%;margin:10px 0 0 30px;display:block;z-index:999;position:absolute}.pace .pace-activity{font-size:15px;line-height:1;z-index:2000;position:absolute;height:60px;width:100px;display:block;-webkit-animation:pace-theme-center-atom-spin 2s linear infinite;-moz-animation:pace-theme-center-atom-spin 2s linear infinite;-o-animation:pace-theme-center-atom-spin 2s linear infinite;animation:pace-theme-center-atom-spin 2s linear infinite}.pace .pace-activity{border-radius:50%;border:5px solid cyan;content:' ';display:block;position:absolute;top:0;left:0;height:60px;width:100px}.pace .pace-activity:after{border-radius:50%;border:5px solid cyan;content:' ';display:block;position:absolute;top:-5px;left:-5px;height:60px;width:100px;-webkit-transform:rotate(60deg);-moz-transform:rotate(60deg);-o-transform:rotate(60deg);transform:rotate(60deg)}.pace .pace-activity:before{border-radius:50%;border:5px solid cyan;content:' ';display:block;position:absolute;top:-5px;left:-5px;height:60px;width:100px;-webkit-transform:rotate(120deg);-moz-transform:rotate(120deg);-o-transform:rotate(120deg);transform:rotate(120deg)}@-webkit-keyframes pace-theme-center-atom-spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@-moz-keyframes pace-theme-center-atom-spin{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(359deg)}}@-o-keyframes pace-theme-center-atom-spin{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(359deg)}}@keyframes pace-theme-center-atom-spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}
\ No newline at end of file
diff --git a/themes/Obsidian/css/pace/center-circle.css b/themes/Obsidian/css/pace/center-circle.css
new file mode 100644
index 00000000..76f83451
--- /dev/null
+++ b/themes/Obsidian/css/pace/center-circle.css
@@ -0,0 +1 @@
+.pace{-webkit-pointer-events:none;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-perspective:12rem;-moz-perspective:12rem;-ms-perspective:12rem;-o-perspective:12rem;perspective:12rem;z-index:2000;position:fixed;height:6rem;width:6rem;margin:auto;top:0;left:0;right:0;bottom:0}.pace.pace-inactive .pace-progress{display:none}.pace .pace-progress{position:fixed;z-index:2000;display:block;position:absolute;left:0;top:0;height:6rem;width:6rem!important;line-height:6rem;font-size:2rem;border-radius:50%;background:rgba(0,255,255,0.8);color:#fff;font-family:"Helvetica Neue",sans-serif;font-weight:100;text-align:center;-webkit-animation:pace-theme-center-circle-spin linear infinite 2s;-moz-animation:pace-theme-center-circle-spin linear infinite 2s;-ms-animation:pace-theme-center-circle-spin linear infinite 2s;-o-animation:pace-theme-center-circle-spin linear infinite 2s;animation:pace-theme-center-circle-spin linear infinite 2s;-webkit-transform-style:preserve-3d;-moz-transform-style:preserve-3d;-ms-transform-style:preserve-3d;-o-transform-style:preserve-3d;transform-style:preserve-3d}.pace .pace-progress:after{content:attr(data-progress-text);display:block}@-webkit-keyframes pace-theme-center-circle-spin{from{-webkit-transform:rotateY(0deg)}to{-webkit-transform:rotateY(360deg)}}@-moz-keyframes pace-theme-center-circle-spin{from{-moz-transform:rotateY(0deg)}to{-moz-transform:rotateY(360deg)}}@-ms-keyframes pace-theme-center-circle-spin{from{-ms-transform:rotateY(0deg)}to{-ms-transform:rotateY(360deg)}}@-o-keyframes pace-theme-center-circle-spin{from{-o-transform:rotateY(0deg)}to{-o-transform:rotateY(360deg)}}@keyframes pace-theme-center-circle-spin{from{transform:rotateY(0deg)}to{transform:rotateY(360deg)}}
\ No newline at end of file
diff --git a/themes/Obsidian/css/pace/center-radar.css b/themes/Obsidian/css/pace/center-radar.css
new file mode 100644
index 00000000..e5438e60
--- /dev/null
+++ b/themes/Obsidian/css/pace/center-radar.css
@@ -0,0 +1 @@
+.pace{-webkit-pointer-events:none;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:2000;position:fixed;height:90px;width:90px;margin:auto;top:0;left:0;right:0;bottom:0}.pace.pace-inactive .pace-activity{display:none}.pace .pace-activity{position:fixed;z-index:2000;display:block;position:absolute;left:-30px;top:-30px;height:90px;width:90px;display:block;border-width:30px;border-style:double;border-color:cyan transparent transparent;border-radius:50%;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-animation:spin 1s linear infinite;-moz-animation:spin 1s linear infinite;-o-animation:spin 1s linear infinite;animation:spin 1s linear infinite}.pace .pace-activity:before{content:' ';position:absolute;top:10px;left:10px;height:50px;width:50px;display:block;border-width:10px;border-style:solid;border-color:cyan transparent transparent;border-radius:50%;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}@-webkit-keyframes spin{100%{-webkit-transform:rotate(359deg)}}@-moz-keyframes spin{100%{-moz-transform:rotate(359deg)}}@-o-keyframes spin{100%{-moz-transform:rotate(359deg)}}@keyframes spin{100%{transform:rotate(359deg)}}
\ No newline at end of file
diff --git a/themes/Obsidian/css/pace/center-rotate.css b/themes/Obsidian/css/pace/center-rotate.css
new file mode 100644
index 00000000..3ff51ce8
--- /dev/null
+++ b/themes/Obsidian/css/pace/center-rotate.css
@@ -0,0 +1 @@
+.pace,.pace .pace-progress{z-index:2000;height:60px;width:100px}.pace.pace-inactive{display:none}.pace{-webkit-pointer-events:none;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;position:fixed;margin:auto;top:0;left:0;right:0;bottom:0}.pace .pace-progress{position:absolute;-webkit-transform:translate3d(0,0,0)!important;-ms-transform:translate3d(0,0,0)!important;transform:translate3d(0,0,0)!important}.pace .pace-progress:before{content:attr(data-progress-text);text-align:center;color:#fff;background:cyan;border-radius:50%;font-family:"Helvetica Neue",sans-serif;font-size:14px;font-weight:100;line-height:1;padding:20% 0 7px;width:50%;height:40%;margin:10px 0 0 30px;display:block;z-index:999;position:absolute}.pace .pace-activity{font-size:9px;margin:0 19px auto;text-indent:-9999em;width:8em;height:8em;border-radius:50%;background:rgba(0,255,255,0.501);background:-moz-linear-gradient(left,rgba(0,255,255,0.501) 10%,rgba(255,255,255,0) 42%);background:-webkit-linear-gradient(left,rgba(0,255,255,0.501) 10%,rgba(255,255,255,0) 42%);background:-o-linear-gradient(left,rgba(0,255,255,0.501) 10%,rgba(255,255,255,0) 42%);background:-ms-linear-gradient(to right,rgba(0,255,255,0.501) 10%,rgba(255,255,255,0) 42%);background:linear-gradient(to right,rgba(0,255,255,0.501) 10%,rgba(255,255,255,0) 42%);position:relative;-webkit-animation:load3 1.4s infinite linear;animation:load3 1.4s infinite linear;-webkit-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0)}.pace .pace-activity:after,.pace .pace-activity:before{content:'';position:absolute;top:0;left:0}.pace .pace-activity:before{width:50%;height:50%;border-radius:100% 0 0}.pace .pace-activity:after{background:cyan;width:75%;height:75%;border-radius:50%;margin:auto;bottom:0;right:0}@-webkit-keyframes load3{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes load3{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}
\ No newline at end of file
diff --git a/themes/Obsidian/css/pace/center-simple.css b/themes/Obsidian/css/pace/center-simple.css
new file mode 100644
index 00000000..7f910ddf
--- /dev/null
+++ b/themes/Obsidian/css/pace/center-simple.css
@@ -0,0 +1 @@
+.pace{-webkit-pointer-events:none;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:2000;position:fixed;margin:auto;top:0;left:0;right:0;bottom:0;height:5px;width:200px;background:#fff;border:1px solid cyan;overflow:hidden}.pace .pace-progress{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;-o-box-sizing:border-box;box-sizing:border-box;-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);transform:translate3d(0,0,0);max-width:200px;position:fixed;z-index:2000;display:block;position:absolute;top:0;right:100%;height:100%;width:100%;background:cyan}.pace.pace-inactive{display:none}
\ No newline at end of file
diff --git a/themes/Obsidian/css/pace/corner-indicator.css b/themes/Obsidian/css/pace/corner-indicator.css
new file mode 100644
index 00000000..5d7df7d8
--- /dev/null
+++ b/themes/Obsidian/css/pace/corner-indicator.css
@@ -0,0 +1 @@
+.pace{-webkit-pointer-events:none;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.pace .pace-activity{display:block;position:fixed;z-index:2000;top:0;right:0;width:300px;height:300px;background:cyan;-webkit-transition:-webkit-transform .3s;transition:transform .3s;-webkit-transform:translateX(100%) translateY(-100%) rotate(45deg);transform:translateX(100%) translateY(-100%) rotate(45deg);pointer-events:none;opacity:0.9;}.pace.pace-active .pace-activity{-webkit-transform:translateX(50%) translateY(-50%) rotate(45deg);transform:translateX(50%) translateY(-50%) rotate(45deg)}.pace .pace-activity::before,.pace .pace-activity::after{-moz-box-sizing:border-box;box-sizing:border-box;position:absolute;bottom:30px;left:50%;display:block;border:5px solid #fff;border-radius:50%;content:''}.pace .pace-activity::before{margin-left:-40px;width:80px;height:80px;border-right-color:rgba(0,0,0,.2);border-left-color:rgba(0,0,0,.2);-webkit-animation:pace-theme-corner-indicator-spin 3s linear infinite;animation:pace-theme-corner-indicator-spin 3s linear infinite}.pace .pace-activity::after{bottom:50px;margin-left:-20px;width:40px;height:40px;border-top-color:rgba(0,0,0,.2);border-bottom-color:rgba(0,0,0,.2);-webkit-animation:pace-theme-corner-indicator-spin 1s linear infinite;animation:pace-theme-corner-indicator-spin 1s linear infinite}@-webkit-keyframes pace-theme-corner-indicator-spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@keyframes pace-theme-corner-indicator-spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}
\ No newline at end of file
diff --git a/themes/Obsidian/css/pace/default.css b/themes/Obsidian/css/pace/default.css
new file mode 100644
index 00000000..4a1842f4
--- /dev/null
+++ b/themes/Obsidian/css/pace/default.css
@@ -0,0 +1 @@
+.pace {-webkit-pointer-events:none;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none } .pace-inactive {display:none } .pace .pace-progress {background:aqua;position:fixed;z-index:2000;top:0;right:100%;width:100%;height:2px } .pace .pace-progress-inner {display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px aqua,0 0 5px aqua;opacity:1.0;-webkit-transform:rotate(3deg) translate(0px,-4px);-moz-transform:rotate(3deg) translate(0px,-4px);-ms-transform:rotate(3deg) translate(0px,-4px);-o-transform:rotate(3deg) translate(0px,-4px);transform:rotate(3deg) translate(0px,-4px) } .pace .pace-activity {display:block;position:fixed;z-index:2000;top:15px;right:15px;width:14px;height:14px;border:solid 2px transparent;border-top-color:aqua;border-left-color:aqua;border-radius:10px;-webkit-animation:pace-spinner 400ms linear infinite;-moz-animation:pace-spinner 400ms linear infinite;-ms-animation:pace-spinner 400ms linear infinite;-o-animation:pace-spinner 400ms linear infinite;animation:pace-spinner 400ms linear infinite } @-webkit-keyframes pace-spinner {0% {-webkit-transform:rotate(0deg);transform:rotate(0deg) } 100% {-webkit-transform:rotate(360deg);transform:rotate(360deg) }} @-moz-keyframes pace-spinner {0% {-moz-transform:rotate(0deg);transform:rotate(0deg) } 100% {-moz-transform:rotate(360deg);transform:rotate(360deg) }} @-o-keyframes pace-spinner {0% {-o-transform:rotate(0deg);transform:rotate(0deg) } 100% {-o-transform:rotate(360deg);transform:rotate(360deg) }} @-ms-keyframes pace-spinner {0% {-ms-transform:rotate(0deg);transform:rotate(0deg) } 100% {-ms-transform:rotate(360deg);transform:rotate(360deg) }} @keyframes pace-spinner {0% {transform:rotate(0deg);transform:rotate(0deg) } 100% {transform:rotate(360deg);transform:rotate(360deg) }}
\ No newline at end of file
diff --git a/themes/Obsidian/css/pace/material.css b/themes/Obsidian/css/pace/material.css
new file mode 100644
index 00000000..b4f58954
--- /dev/null
+++ b/themes/Obsidian/css/pace/material.css
@@ -0,0 +1 @@
+.pace{-webkit-pointer-events:none;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:cyan}.pace-progress{position:fixed;z-index:2000;top:50%;left:50%;margin-left:-2.5rem;margin-top:-2.5rem;height:5rem;width:5rem;opacity:1;-webkit-transition:opacity .1s;transition:opacity .1s;-webkit-transform:translate3d(0,0,0)!important;-ms-transform:translate3d(0,0,0)!important;transform:translate3d(0,0,0)!important}.pace-inactive .pace-progress,.pace-progress[data-progress="00"]{opacity:0}.pace-progress:after{height:5rem;width:5rem;text-align:center;line-height:5rem;content:attr(data-progress);display:block;font-size:1.8rem;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:300}.pace-progress .pace-progress-inner{overflow:hidden;position:absolute;width:2.5rem;height:5rem;-webkit-transform-origin:left center;-ms-transform-origin:left center;transform-origin:left center;-webkit-transition:-webkit-transform .1s;transition:transform .1s;left:2.5rem;top:0}.pace-progress .pace-progress-inner:before,.pace-progress .pace-progress-inner:after{position:absolute;width:5rem;height:5rem;content:' ';left:-2.5rem;top:0;box-sizing:border-box;border:1px solid;border-radius:5rem}.pace-progress .pace-progress-inner:before{border-right-color:transparent;border-bottom-color:transparent;-webkit-transform:rotate(135deg);-ms-transform:rotate(135deg);transform:rotate(135deg)}.pace-progress .pace-progress-inner:after{border-left-color:transparent;border-top-color:transparent;display:none;-webkit-transform:rotate(315deg);-ms-transform:rotate(315deg);transform:rotate(315deg)}.pace-progress[data-progress="00"] .pace-progress-inner:before{-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.pace-progress[data-progress="01"] .pace-progress-inner:before{-webkit-transform:rotate(-41deg);-ms-transform:rotate(-41deg);transform:rotate(-41deg)}.pace-progress[data-progress="02"] .pace-progress-inner:before{-webkit-transform:rotate(-38deg);-ms-transform:rotate(-38deg);transform:rotate(-38deg)}.pace-progress[data-progress="03"] .pace-progress-inner:before{-webkit-transform:rotate(-34deg);-ms-transform:rotate(-34deg);transform:rotate(-34deg)}.pace-progress[data-progress="04"] .pace-progress-inner:before{-webkit-transform:rotate(-31deg);-ms-transform:rotate(-31deg);transform:rotate(-31deg)}.pace-progress[data-progress="05"] .pace-progress-inner:before{-webkit-transform:rotate(-27deg);-ms-transform:rotate(-27deg);transform:rotate(-27deg)}.pace-progress[data-progress="06"] .pace-progress-inner:before{-webkit-transform:rotate(-23deg);-ms-transform:rotate(-23deg);transform:rotate(-23deg)}.pace-progress[data-progress="07"] .pace-progress-inner:before{-webkit-transform:rotate(-20deg);-ms-transform:rotate(-20deg);transform:rotate(-20deg)}.pace-progress[data-progress="08"] .pace-progress-inner:before{-webkit-transform:rotate(-16deg);-ms-transform:rotate(-16deg);transform:rotate(-16deg)}.pace-progress[data-progress="09"] .pace-progress-inner:before{-webkit-transform:rotate(-13deg);-ms-transform:rotate(-13deg);transform:rotate(-13deg)}.pace-progress[data-progress="10"] .pace-progress-inner:before{-webkit-transform:rotate(-9deg);-ms-transform:rotate(-9deg);transform:rotate(-9deg)}.pace-progress[data-progress="11"] .pace-progress-inner:before{-webkit-transform:rotate(-5deg);-ms-transform:rotate(-5deg);transform:rotate(-5deg)}.pace-progress[data-progress="12"] .pace-progress-inner:before{-webkit-transform:rotate(-2deg);-ms-transform:rotate(-2deg);transform:rotate(-2deg)}.pace-progress[data-progress="13"] .pace-progress-inner:before{-webkit-transform:rotate(2deg);-ms-transform:rotate(2deg);transform:rotate(2deg)}.pace-progress[data-progress="14"] .pace-progress-inner:before{-webkit-transform:rotate(5deg);-ms-transform:rotate(5deg);transform:rotate(5deg)}.pace-progress[data-progress="15"] .pace-progress-inner:before{-webkit-transform:rotate(9deg);-ms-transform:rotate(9deg);transform:rotate(9deg)}.pace-progress[data-progress="16"] .pace-progress-inner:before{-webkit-transform:rotate(13deg);-ms-transform:rotate(13deg);transform:rotate(13deg)}.pace-progress[data-progress="17"] .pace-progress-inner:before{-webkit-transform:rotate(16deg);-ms-transform:rotate(16deg);transform:rotate(16deg)}.pace-progress[data-progress="18"] .pace-progress-inner:before{-webkit-transform:rotate(20deg);-ms-transform:rotate(20deg);transform:rotate(20deg)}.pace-progress[data-progress="19"] .pace-progress-inner:before{-webkit-transform:rotate(23deg);-ms-transform:rotate(23deg);transform:rotate(23deg)}.pace-progress[data-progress="20"] .pace-progress-inner:before{-webkit-transform:rotate(27deg);-ms-transform:rotate(27deg);transform:rotate(27deg)}.pace-progress[data-progress="21"] .pace-progress-inner:before{-webkit-transform:rotate(31deg);-ms-transform:rotate(31deg);transform:rotate(31deg)}.pace-progress[data-progress="22"] .pace-progress-inner:before{-webkit-transform:rotate(34deg);-ms-transform:rotate(34deg);transform:rotate(34deg)}.pace-progress[data-progress="23"] .pace-progress-inner:before{-webkit-transform:rotate(38deg);-ms-transform:rotate(38deg);transform:rotate(38deg)}.pace-progress[data-progress="24"] .pace-progress-inner:before{-webkit-transform:rotate(41deg);-ms-transform:rotate(41deg);transform:rotate(41deg)}.pace-progress[data-progress="25"] .pace-progress-inner:before{-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.pace-progress[data-progress="26"] .pace-progress-inner:before{-webkit-transform:rotate(49deg);-ms-transform:rotate(49deg);transform:rotate(49deg)}.pace-progress[data-progress="27"] .pace-progress-inner:before{-webkit-transform:rotate(52deg);-ms-transform:rotate(52deg);transform:rotate(52deg)}.pace-progress[data-progress="28"] .pace-progress-inner:before{-webkit-transform:rotate(56deg);-ms-transform:rotate(56deg);transform:rotate(56deg)}.pace-progress[data-progress="29"] .pace-progress-inner:before{-webkit-transform:rotate(59deg);-ms-transform:rotate(59deg);transform:rotate(59deg)}.pace-progress[data-progress="30"] .pace-progress-inner:before{-webkit-transform:rotate(63deg);-ms-transform:rotate(63deg);transform:rotate(63deg)}.pace-progress[data-progress="31"] .pace-progress-inner:before{-webkit-transform:rotate(67deg);-ms-transform:rotate(67deg);transform:rotate(67deg)}.pace-progress[data-progress="32"] .pace-progress-inner:before{-webkit-transform:rotate(70deg);-ms-transform:rotate(70deg);transform:rotate(70deg)}.pace-progress[data-progress="33"] .pace-progress-inner:before{-webkit-transform:rotate(74deg);-ms-transform:rotate(74deg);transform:rotate(74deg)}.pace-progress[data-progress="34"] .pace-progress-inner:before{-webkit-transform:rotate(77deg);-ms-transform:rotate(77deg);transform:rotate(77deg)}.pace-progress[data-progress="35"] .pace-progress-inner:before{-webkit-transform:rotate(81deg);-ms-transform:rotate(81deg);transform:rotate(81deg)}.pace-progress[data-progress="36"] .pace-progress-inner:before{-webkit-transform:rotate(85deg);-ms-transform:rotate(85deg);transform:rotate(85deg)}.pace-progress[data-progress="37"] .pace-progress-inner:before{-webkit-transform:rotate(88deg);-ms-transform:rotate(88deg);transform:rotate(88deg)}.pace-progress[data-progress="38"] .pace-progress-inner:before{-webkit-transform:rotate(92deg);-ms-transform:rotate(92deg);transform:rotate(92deg)}.pace-progress[data-progress="39"] .pace-progress-inner:before{-webkit-transform:rotate(95deg);-ms-transform:rotate(95deg);transform:rotate(95deg)}.pace-progress[data-progress="40"] .pace-progress-inner:before{-webkit-transform:rotate(99deg);-ms-transform:rotate(99deg);transform:rotate(99deg)}.pace-progress[data-progress="41"] .pace-progress-inner:before{-webkit-transform:rotate(103deg);-ms-transform:rotate(103deg);transform:rotate(103deg)}.pace-progress[data-progress="42"] .pace-progress-inner:before{-webkit-transform:rotate(106deg);-ms-transform:rotate(106deg);transform:rotate(106deg)}.pace-progress[data-progress="43"] .pace-progress-inner:before{-webkit-transform:rotate(110deg);-ms-transform:rotate(110deg);transform:rotate(110deg)}.pace-progress[data-progress="44"] .pace-progress-inner:before{-webkit-transform:rotate(113deg);-ms-transform:rotate(113deg);transform:rotate(113deg)}.pace-progress[data-progress="45"] .pace-progress-inner:before{-webkit-transform:rotate(117deg);-ms-transform:rotate(117deg);transform:rotate(117deg)}.pace-progress[data-progress="46"] .pace-progress-inner:before{-webkit-transform:rotate(121deg);-ms-transform:rotate(121deg);transform:rotate(121deg)}.pace-progress[data-progress="47"] .pace-progress-inner:before{-webkit-transform:rotate(124deg);-ms-transform:rotate(124deg);transform:rotate(124deg)}.pace-progress[data-progress="48"] .pace-progress-inner:before{-webkit-transform:rotate(128deg);-ms-transform:rotate(128deg);transform:rotate(128deg)}.pace-progress[data-progress="49"] .pace-progress-inner:before{-webkit-transform:rotate(131deg);-ms-transform:rotate(131deg);transform:rotate(131deg)}.pace-progress[data-progress="50"] .pace-progress-inner:before{-webkit-transform:rotate(135deg);-ms-transform:rotate(135deg);transform:rotate(135deg)}.pace-progress[data-progress="50"] .pace-progress-inner:after{-webkit-transform:rotate(315deg);-ms-transform:rotate(315deg);transform:rotate(315deg);display:block}.pace-progress[data-progress="51"] .pace-progress-inner:after{-webkit-transform:rotate(319deg);-ms-transform:rotate(319deg);transform:rotate(319deg);display:block}.pace-progress[data-progress="52"] .pace-progress-inner:after{-webkit-transform:rotate(322deg);-ms-transform:rotate(322deg);transform:rotate(322deg);display:block}.pace-progress[data-progress="53"] .pace-progress-inner:after{-webkit-transform:rotate(326deg);-ms-transform:rotate(326deg);transform:rotate(326deg);display:block}.pace-progress[data-progress="54"] .pace-progress-inner:after{-webkit-transform:rotate(329deg);-ms-transform:rotate(329deg);transform:rotate(329deg);display:block}.pace-progress[data-progress="55"] .pace-progress-inner:after{-webkit-transform:rotate(333deg);-ms-transform:rotate(333deg);transform:rotate(333deg);display:block}.pace-progress[data-progress="56"] .pace-progress-inner:after{-webkit-transform:rotate(337deg);-ms-transform:rotate(337deg);transform:rotate(337deg);display:block}.pace-progress[data-progress="57"] .pace-progress-inner:after{-webkit-transform:rotate(340deg);-ms-transform:rotate(340deg);transform:rotate(340deg);display:block}.pace-progress[data-progress="58"] .pace-progress-inner:after{-webkit-transform:rotate(344deg);-ms-transform:rotate(344deg);transform:rotate(344deg);display:block}.pace-progress[data-progress="59"] .pace-progress-inner:after{-webkit-transform:rotate(347deg);-ms-transform:rotate(347deg);transform:rotate(347deg);display:block}.pace-progress[data-progress="60"] .pace-progress-inner:after{-webkit-transform:rotate(351deg);-ms-transform:rotate(351deg);transform:rotate(351deg);display:block}.pace-progress[data-progress="61"] .pace-progress-inner:after{-webkit-transform:rotate(355deg);-ms-transform:rotate(355deg);transform:rotate(355deg);display:block}.pace-progress[data-progress="62"] .pace-progress-inner:after{-webkit-transform:rotate(358deg);-ms-transform:rotate(358deg);transform:rotate(358deg);display:block}.pace-progress[data-progress="63"] .pace-progress-inner:after{-webkit-transform:rotate(362deg);-ms-transform:rotate(362deg);transform:rotate(362deg);display:block}.pace-progress[data-progress="64"] .pace-progress-inner:after{-webkit-transform:rotate(365deg);-ms-transform:rotate(365deg);transform:rotate(365deg);display:block}.pace-progress[data-progress="65"] .pace-progress-inner:after{-webkit-transform:rotate(369deg);-ms-transform:rotate(369deg);transform:rotate(369deg);display:block}.pace-progress[data-progress="66"] .pace-progress-inner:after{-webkit-transform:rotate(373deg);-ms-transform:rotate(373deg);transform:rotate(373deg);display:block}.pace-progress[data-progress="67"] .pace-progress-inner:after{-webkit-transform:rotate(376deg);-ms-transform:rotate(376deg);transform:rotate(376deg);display:block}.pace-progress[data-progress="68"] .pace-progress-inner:after{-webkit-transform:rotate(380deg);-ms-transform:rotate(380deg);transform:rotate(380deg);display:block}.pace-progress[data-progress="69"] .pace-progress-inner:after{-webkit-transform:rotate(383deg);-ms-transform:rotate(383deg);transform:rotate(383deg);display:block}.pace-progress[data-progress="70"] .pace-progress-inner:after{-webkit-transform:rotate(387deg);-ms-transform:rotate(387deg);transform:rotate(387deg);display:block}.pace-progress[data-progress="71"] .pace-progress-inner:after{-webkit-transform:rotate(391deg);-ms-transform:rotate(391deg);transform:rotate(391deg);display:block}.pace-progress[data-progress="72"] .pace-progress-inner:after{-webkit-transform:rotate(394deg);-ms-transform:rotate(394deg);transform:rotate(394deg);display:block}.pace-progress[data-progress="73"] .pace-progress-inner:after{-webkit-transform:rotate(398deg);-ms-transform:rotate(398deg);transform:rotate(398deg);display:block}.pace-progress[data-progress="74"] .pace-progress-inner:after{-webkit-transform:rotate(401deg);-ms-transform:rotate(401deg);transform:rotate(401deg);display:block}.pace-progress[data-progress="75"] .pace-progress-inner:after{-webkit-transform:rotate(405deg);-ms-transform:rotate(405deg);transform:rotate(405deg);display:block}.pace-progress[data-progress="76"] .pace-progress-inner:after{-webkit-transform:rotate(409deg);-ms-transform:rotate(409deg);transform:rotate(409deg);display:block}.pace-progress[data-progress="77"] .pace-progress-inner:after{-webkit-transform:rotate(412deg);-ms-transform:rotate(412deg);transform:rotate(412deg);display:block}.pace-progress[data-progress="78"] .pace-progress-inner:after{-webkit-transform:rotate(416deg);-ms-transform:rotate(416deg);transform:rotate(416deg);display:block}.pace-progress[data-progress="79"] .pace-progress-inner:after{-webkit-transform:rotate(419deg);-ms-transform:rotate(419deg);transform:rotate(419deg);display:block}.pace-progress[data-progress="80"] .pace-progress-inner:after{-webkit-transform:rotate(423deg);-ms-transform:rotate(423deg);transform:rotate(423deg);display:block}.pace-progress[data-progress="81"] .pace-progress-inner:after{-webkit-transform:rotate(427deg);-ms-transform:rotate(427deg);transform:rotate(427deg);display:block}.pace-progress[data-progress="82"] .pace-progress-inner:after{-webkit-transform:rotate(430deg);-ms-transform:rotate(430deg);transform:rotate(430deg);display:block}.pace-progress[data-progress="83"] .pace-progress-inner:after{-webkit-transform:rotate(434deg);-ms-transform:rotate(434deg);transform:rotate(434deg);display:block}.pace-progress[data-progress="84"] .pace-progress-inner:after{-webkit-transform:rotate(437deg);-ms-transform:rotate(437deg);transform:rotate(437deg);display:block}.pace-progress[data-progress="85"] .pace-progress-inner:after{-webkit-transform:rotate(441deg);-ms-transform:rotate(441deg);transform:rotate(441deg);display:block}.pace-progress[data-progress="86"] .pace-progress-inner:after{-webkit-transform:rotate(445deg);-ms-transform:rotate(445deg);transform:rotate(445deg);display:block}.pace-progress[data-progress="87"] .pace-progress-inner:after{-webkit-transform:rotate(448deg);-ms-transform:rotate(448deg);transform:rotate(448deg);display:block}.pace-progress[data-progress="88"] .pace-progress-inner:after{-webkit-transform:rotate(452deg);-ms-transform:rotate(452deg);transform:rotate(452deg);display:block}.pace-progress[data-progress="89"] .pace-progress-inner:after{-webkit-transform:rotate(455deg);-ms-transform:rotate(455deg);transform:rotate(455deg);display:block}.pace-progress[data-progress="90"] .pace-progress-inner:after{-webkit-transform:rotate(459deg);-ms-transform:rotate(459deg);transform:rotate(459deg);display:block}.pace-progress[data-progress="91"] .pace-progress-inner:after{-webkit-transform:rotate(463deg);-ms-transform:rotate(463deg);transform:rotate(463deg);display:block}.pace-progress[data-progress="92"] .pace-progress-inner:after{-webkit-transform:rotate(466deg);-ms-transform:rotate(466deg);transform:rotate(466deg);display:block}.pace-progress[data-progress="93"] .pace-progress-inner:after{-webkit-transform:rotate(470deg);-ms-transform:rotate(470deg);transform:rotate(470deg);display:block}.pace-progress[data-progress="94"] .pace-progress-inner:after{-webkit-transform:rotate(473deg);-ms-transform:rotate(473deg);transform:rotate(473deg);display:block}.pace-progress[data-progress="95"] .pace-progress-inner:after{-webkit-transform:rotate(477deg);-ms-transform:rotate(477deg);transform:rotate(477deg);display:block}.pace-progress[data-progress="96"] .pace-progress-inner:after{-webkit-transform:rotate(481deg);-ms-transform:rotate(481deg);transform:rotate(481deg);display:block}.pace-progress[data-progress="97"] .pace-progress-inner:after{-webkit-transform:rotate(484deg);-ms-transform:rotate(484deg);transform:rotate(484deg);display:block}.pace-progress[data-progress="98"] .pace-progress-inner:after{-webkit-transform:rotate(488deg);-ms-transform:rotate(488deg);transform:rotate(488deg);display:block}.pace-progress[data-progress="99"] .pace-progress-inner:after{-webkit-transform:rotate(491deg);-ms-transform:rotate(491deg);transform:rotate(491deg);display:block}.pace-progress[data-progress="100"] .pace-progress-inner:after{-webkit-transform:rotate(495deg);-ms-transform:rotate(495deg);transform:rotate(495deg);display:block}.pace-progress[data-progress="00"] .pace-progress-inner{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}.pace-progress[data-progress="01"] .pace-progress-inner{-webkit-transform:rotate(4deg);-ms-transform:rotate(4deg);transform:rotate(4deg)}.pace-progress[data-progress="02"] .pace-progress-inner{-webkit-transform:rotate(7deg);-ms-transform:rotate(7deg);transform:rotate(7deg)}.pace-progress[data-progress="03"] .pace-progress-inner{-webkit-transform:rotate(11deg);-ms-transform:rotate(11deg);transform:rotate(11deg)}.pace-progress[data-progress="04"] .pace-progress-inner{-webkit-transform:rotate(14deg);-ms-transform:rotate(14deg);transform:rotate(14deg)}.pace-progress[data-progress="05"] .pace-progress-inner{-webkit-transform:rotate(18deg);-ms-transform:rotate(18deg);transform:rotate(18deg)}.pace-progress[data-progress="06"] .pace-progress-inner{-webkit-transform:rotate(22deg);-ms-transform:rotate(22deg);transform:rotate(22deg)}.pace-progress[data-progress="07"] .pace-progress-inner{-webkit-transform:rotate(25deg);-ms-transform:rotate(25deg);transform:rotate(25deg)}.pace-progress[data-progress="08"] .pace-progress-inner{-webkit-transform:rotate(29deg);-ms-transform:rotate(29deg);transform:rotate(29deg)}.pace-progress[data-progress="09"] .pace-progress-inner{-webkit-transform:rotate(32deg);-ms-transform:rotate(32deg);transform:rotate(32deg)}.pace-progress[data-progress="10"] .pace-progress-inner{-webkit-transform:rotate(36deg);-ms-transform:rotate(36deg);transform:rotate(36deg)}.pace-progress[data-progress="11"] .pace-progress-inner{-webkit-transform:rotate(40deg);-ms-transform:rotate(40deg);transform:rotate(40deg)}.pace-progress[data-progress="12"] .pace-progress-inner{-webkit-transform:rotate(43deg);-ms-transform:rotate(43deg);transform:rotate(43deg)}.pace-progress[data-progress="13"] .pace-progress-inner{-webkit-transform:rotate(47deg);-ms-transform:rotate(47deg);transform:rotate(47deg)}.pace-progress[data-progress="14"] .pace-progress-inner{-webkit-transform:rotate(50deg);-ms-transform:rotate(50deg);transform:rotate(50deg)}.pace-progress[data-progress="15"] .pace-progress-inner{-webkit-transform:rotate(54deg);-ms-transform:rotate(54deg);transform:rotate(54deg)}.pace-progress[data-progress="16"] .pace-progress-inner{-webkit-transform:rotate(58deg);-ms-transform:rotate(58deg);transform:rotate(58deg)}.pace-progress[data-progress="17"] .pace-progress-inner{-webkit-transform:rotate(61deg);-ms-transform:rotate(61deg);transform:rotate(61deg)}.pace-progress[data-progress="18"] .pace-progress-inner{-webkit-transform:rotate(65deg);-ms-transform:rotate(65deg);transform:rotate(65deg)}.pace-progress[data-progress="19"] .pace-progress-inner{-webkit-transform:rotate(68deg);-ms-transform:rotate(68deg);transform:rotate(68deg)}.pace-progress[data-progress="20"] .pace-progress-inner{-webkit-transform:rotate(72deg);-ms-transform:rotate(72deg);transform:rotate(72deg)}.pace-progress[data-progress="21"] .pace-progress-inner{-webkit-transform:rotate(76deg);-ms-transform:rotate(76deg);transform:rotate(76deg)}.pace-progress[data-progress="22"] .pace-progress-inner{-webkit-transform:rotate(79deg);-ms-transform:rotate(79deg);transform:rotate(79deg)}.pace-progress[data-progress="23"] .pace-progress-inner{-webkit-transform:rotate(83deg);-ms-transform:rotate(83deg);transform:rotate(83deg)}.pace-progress[data-progress="24"] .pace-progress-inner{-webkit-transform:rotate(86deg);-ms-transform:rotate(86deg);transform:rotate(86deg)}.pace-progress[data-progress="25"] .pace-progress-inner{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.pace-progress[data-progress="26"] .pace-progress-inner{-webkit-transform:rotate(94deg);-ms-transform:rotate(94deg);transform:rotate(94deg)}.pace-progress[data-progress="27"] .pace-progress-inner{-webkit-transform:rotate(97deg);-ms-transform:rotate(97deg);transform:rotate(97deg)}.pace-progress[data-progress="28"] .pace-progress-inner{-webkit-transform:rotate(101deg);-ms-transform:rotate(101deg);transform:rotate(101deg)}.pace-progress[data-progress="29"] .pace-progress-inner{-webkit-transform:rotate(104deg);-ms-transform:rotate(104deg);transform:rotate(104deg)}.pace-progress[data-progress="30"] .pace-progress-inner{-webkit-transform:rotate(108deg);-ms-transform:rotate(108deg);transform:rotate(108deg)}.pace-progress[data-progress="31"] .pace-progress-inner{-webkit-transform:rotate(112deg);-ms-transform:rotate(112deg);transform:rotate(112deg)}.pace-progress[data-progress="32"] .pace-progress-inner{-webkit-transform:rotate(115deg);-ms-transform:rotate(115deg);transform:rotate(115deg)}.pace-progress[data-progress="33"] .pace-progress-inner{-webkit-transform:rotate(119deg);-ms-transform:rotate(119deg);transform:rotate(119deg)}.pace-progress[data-progress="34"] .pace-progress-inner{-webkit-transform:rotate(122deg);-ms-transform:rotate(122deg);transform:rotate(122deg)}.pace-progress[data-progress="35"] .pace-progress-inner{-webkit-transform:rotate(126deg);-ms-transform:rotate(126deg);transform:rotate(126deg)}.pace-progress[data-progress="36"] .pace-progress-inner{-webkit-transform:rotate(130deg);-ms-transform:rotate(130deg);transform:rotate(130deg)}.pace-progress[data-progress="37"] .pace-progress-inner{-webkit-transform:rotate(133deg);-ms-transform:rotate(133deg);transform:rotate(133deg)}.pace-progress[data-progress="38"] .pace-progress-inner{-webkit-transform:rotate(137deg);-ms-transform:rotate(137deg);transform:rotate(137deg)}.pace-progress[data-progress="39"] .pace-progress-inner{-webkit-transform:rotate(140deg);-ms-transform:rotate(140deg);transform:rotate(140deg)}.pace-progress[data-progress="40"] .pace-progress-inner{-webkit-transform:rotate(144deg);-ms-transform:rotate(144deg);transform:rotate(144deg)}.pace-progress[data-progress="41"] .pace-progress-inner{-webkit-transform:rotate(148deg);-ms-transform:rotate(148deg);transform:rotate(148deg)}.pace-progress[data-progress="42"] .pace-progress-inner{-webkit-transform:rotate(151deg);-ms-transform:rotate(151deg);transform:rotate(151deg)}.pace-progress[data-progress="43"] .pace-progress-inner{-webkit-transform:rotate(155deg);-ms-transform:rotate(155deg);transform:rotate(155deg)}.pace-progress[data-progress="44"] .pace-progress-inner{-webkit-transform:rotate(158deg);-ms-transform:rotate(158deg);transform:rotate(158deg)}.pace-progress[data-progress="45"] .pace-progress-inner{-webkit-transform:rotate(162deg);-ms-transform:rotate(162deg);transform:rotate(162deg)}.pace-progress[data-progress="46"] .pace-progress-inner{-webkit-transform:rotate(166deg);-ms-transform:rotate(166deg);transform:rotate(166deg)}.pace-progress[data-progress="47"] .pace-progress-inner{-webkit-transform:rotate(169deg);-ms-transform:rotate(169deg);transform:rotate(169deg)}.pace-progress[data-progress="48"] .pace-progress-inner{-webkit-transform:rotate(173deg);-ms-transform:rotate(173deg);transform:rotate(173deg)}.pace-progress[data-progress="49"] .pace-progress-inner{-webkit-transform:rotate(176deg);-ms-transform:rotate(176deg);transform:rotate(176deg)}.pace-progress[data-progress="50"] .pace-progress-inner{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.pace-progress[data-progress="51"] .pace-progress-inner{-webkit-transform:rotate(184deg);-ms-transform:rotate(184deg);transform:rotate(184deg);overflow:visible}.pace-progress[data-progress="52"] .pace-progress-inner{-webkit-transform:rotate(187deg);-ms-transform:rotate(187deg);transform:rotate(187deg);overflow:visible}.pace-progress[data-progress="53"] .pace-progress-inner{-webkit-transform:rotate(191deg);-ms-transform:rotate(191deg);transform:rotate(191deg);overflow:visible}.pace-progress[data-progress="54"] .pace-progress-inner{-webkit-transform:rotate(194deg);-ms-transform:rotate(194deg);transform:rotate(194deg);overflow:visible}.pace-progress[data-progress="55"] .pace-progress-inner{-webkit-transform:rotate(198deg);-ms-transform:rotate(198deg);transform:rotate(198deg);overflow:visible}.pace-progress[data-progress="56"] .pace-progress-inner{-webkit-transform:rotate(202deg);-ms-transform:rotate(202deg);transform:rotate(202deg);overflow:visible}.pace-progress[data-progress="57"] .pace-progress-inner{-webkit-transform:rotate(205deg);-ms-transform:rotate(205deg);transform:rotate(205deg);overflow:visible}.pace-progress[data-progress="58"] .pace-progress-inner{-webkit-transform:rotate(209deg);-ms-transform:rotate(209deg);transform:rotate(209deg);overflow:visible}.pace-progress[data-progress="59"] .pace-progress-inner{-webkit-transform:rotate(212deg);-ms-transform:rotate(212deg);transform:rotate(212deg);overflow:visible}.pace-progress[data-progress="60"] .pace-progress-inner{-webkit-transform:rotate(216deg);-ms-transform:rotate(216deg);transform:rotate(216deg);overflow:visible}.pace-progress[data-progress="61"] .pace-progress-inner{-webkit-transform:rotate(220deg);-ms-transform:rotate(220deg);transform:rotate(220deg);overflow:visible}.pace-progress[data-progress="62"] .pace-progress-inner{-webkit-transform:rotate(223deg);-ms-transform:rotate(223deg);transform:rotate(223deg);overflow:visible}.pace-progress[data-progress="63"] .pace-progress-inner{-webkit-transform:rotate(227deg);-ms-transform:rotate(227deg);transform:rotate(227deg);overflow:visible}.pace-progress[data-progress="64"] .pace-progress-inner{-webkit-transform:rotate(230deg);-ms-transform:rotate(230deg);transform:rotate(230deg);overflow:visible}.pace-progress[data-progress="65"] .pace-progress-inner{-webkit-transform:rotate(234deg);-ms-transform:rotate(234deg);transform:rotate(234deg);overflow:visible}.pace-progress[data-progress="66"] .pace-progress-inner{-webkit-transform:rotate(238deg);-ms-transform:rotate(238deg);transform:rotate(238deg);overflow:visible}.pace-progress[data-progress="67"] .pace-progress-inner{-webkit-transform:rotate(241deg);-ms-transform:rotate(241deg);transform:rotate(241deg);overflow:visible}.pace-progress[data-progress="68"] .pace-progress-inner{-webkit-transform:rotate(245deg);-ms-transform:rotate(245deg);transform:rotate(245deg);overflow:visible}.pace-progress[data-progress="69"] .pace-progress-inner{-webkit-transform:rotate(248deg);-ms-transform:rotate(248deg);transform:rotate(248deg);overflow:visible}.pace-progress[data-progress="70"] .pace-progress-inner{-webkit-transform:rotate(252deg);-ms-transform:rotate(252deg);transform:rotate(252deg);overflow:visible}.pace-progress[data-progress="71"] .pace-progress-inner{-webkit-transform:rotate(256deg);-ms-transform:rotate(256deg);transform:rotate(256deg);overflow:visible}.pace-progress[data-progress="72"] .pace-progress-inner{-webkit-transform:rotate(259deg);-ms-transform:rotate(259deg);transform:rotate(259deg);overflow:visible}.pace-progress[data-progress="73"] .pace-progress-inner{-webkit-transform:rotate(263deg);-ms-transform:rotate(263deg);transform:rotate(263deg);overflow:visible}.pace-progress[data-progress="74"] .pace-progress-inner{-webkit-transform:rotate(266deg);-ms-transform:rotate(266deg);transform:rotate(266deg);overflow:visible}.pace-progress[data-progress="75"] .pace-progress-inner{-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg);overflow:visible}.pace-progress[data-progress="76"] .pace-progress-inner{-webkit-transform:rotate(274deg);-ms-transform:rotate(274deg);transform:rotate(274deg);overflow:visible}.pace-progress[data-progress="77"] .pace-progress-inner{-webkit-transform:rotate(277deg);-ms-transform:rotate(277deg);transform:rotate(277deg);overflow:visible}.pace-progress[data-progress="78"] .pace-progress-inner{-webkit-transform:rotate(281deg);-ms-transform:rotate(281deg);transform:rotate(281deg);overflow:visible}.pace-progress[data-progress="79"] .pace-progress-inner{-webkit-transform:rotate(284deg);-ms-transform:rotate(284deg);transform:rotate(284deg);overflow:visible}.pace-progress[data-progress="80"] .pace-progress-inner{-webkit-transform:rotate(288deg);-ms-transform:rotate(288deg);transform:rotate(288deg);overflow:visible}.pace-progress[data-progress="81"] .pace-progress-inner{-webkit-transform:rotate(292deg);-ms-transform:rotate(292deg);transform:rotate(292deg);overflow:visible}.pace-progress[data-progress="82"] .pace-progress-inner{-webkit-transform:rotate(295deg);-ms-transform:rotate(295deg);transform:rotate(295deg);overflow:visible}.pace-progress[data-progress="83"] .pace-progress-inner{-webkit-transform:rotate(299deg);-ms-transform:rotate(299deg);transform:rotate(299deg);overflow:visible}.pace-progress[data-progress="84"] .pace-progress-inner{-webkit-transform:rotate(302deg);-ms-transform:rotate(302deg);transform:rotate(302deg);overflow:visible}.pace-progress[data-progress="85"] .pace-progress-inner{-webkit-transform:rotate(306deg);-ms-transform:rotate(306deg);transform:rotate(306deg);overflow:visible}.pace-progress[data-progress="86"] .pace-progress-inner{-webkit-transform:rotate(310deg);-ms-transform:rotate(310deg);transform:rotate(310deg);overflow:visible}.pace-progress[data-progress="87"] .pace-progress-inner{-webkit-transform:rotate(313deg);-ms-transform:rotate(313deg);transform:rotate(313deg);overflow:visible}.pace-progress[data-progress="88"] .pace-progress-inner{-webkit-transform:rotate(317deg);-ms-transform:rotate(317deg);transform:rotate(317deg);overflow:visible}.pace-progress[data-progress="89"] .pace-progress-inner{-webkit-transform:rotate(320deg);-ms-transform:rotate(320deg);transform:rotate(320deg);overflow:visible}.pace-progress[data-progress="90"] .pace-progress-inner{-webkit-transform:rotate(324deg);-ms-transform:rotate(324deg);transform:rotate(324deg);overflow:visible}.pace-progress[data-progress="91"] .pace-progress-inner{-webkit-transform:rotate(328deg);-ms-transform:rotate(328deg);transform:rotate(328deg);overflow:visible}.pace-progress[data-progress="92"] .pace-progress-inner{-webkit-transform:rotate(331deg);-ms-transform:rotate(331deg);transform:rotate(331deg);overflow:visible}.pace-progress[data-progress="93"] .pace-progress-inner{-webkit-transform:rotate(335deg);-ms-transform:rotate(335deg);transform:rotate(335deg);overflow:visible}.pace-progress[data-progress="94"] .pace-progress-inner{-webkit-transform:rotate(338deg);-ms-transform:rotate(338deg);transform:rotate(338deg);overflow:visible}.pace-progress[data-progress="95"] .pace-progress-inner{-webkit-transform:rotate(342deg);-ms-transform:rotate(342deg);transform:rotate(342deg);overflow:visible}.pace-progress[data-progress="96"] .pace-progress-inner{-webkit-transform:rotate(346deg);-ms-transform:rotate(346deg);transform:rotate(346deg);overflow:visible}.pace-progress[data-progress="97"] .pace-progress-inner{-webkit-transform:rotate(349deg);-ms-transform:rotate(349deg);transform:rotate(349deg);overflow:visible}.pace-progress[data-progress="98"] .pace-progress-inner{-webkit-transform:rotate(353deg);-ms-transform:rotate(353deg);transform:rotate(353deg);overflow:visible}.pace-progress[data-progress="99"] .pace-progress-inner{-webkit-transform:rotate(356deg);-ms-transform:rotate(356deg);transform:rotate(356deg);overflow:visible}.pace-progress[data-progress="100"] .pace-progress-inner{-webkit-transform:rotate(360deg);-ms-transform:rotate(360deg);transform:rotate(360deg);overflow:visible}
\ No newline at end of file
diff --git a/themes/Obsidian/css/pace/pace.css b/themes/Obsidian/css/pace/pace.css
new file mode 100644
index 00000000..4a1842f4
--- /dev/null
+++ b/themes/Obsidian/css/pace/pace.css
@@ -0,0 +1 @@
+.pace {-webkit-pointer-events:none;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none } .pace-inactive {display:none } .pace .pace-progress {background:aqua;position:fixed;z-index:2000;top:0;right:100%;width:100%;height:2px } .pace .pace-progress-inner {display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px aqua,0 0 5px aqua;opacity:1.0;-webkit-transform:rotate(3deg) translate(0px,-4px);-moz-transform:rotate(3deg) translate(0px,-4px);-ms-transform:rotate(3deg) translate(0px,-4px);-o-transform:rotate(3deg) translate(0px,-4px);transform:rotate(3deg) translate(0px,-4px) } .pace .pace-activity {display:block;position:fixed;z-index:2000;top:15px;right:15px;width:14px;height:14px;border:solid 2px transparent;border-top-color:aqua;border-left-color:aqua;border-radius:10px;-webkit-animation:pace-spinner 400ms linear infinite;-moz-animation:pace-spinner 400ms linear infinite;-ms-animation:pace-spinner 400ms linear infinite;-o-animation:pace-spinner 400ms linear infinite;animation:pace-spinner 400ms linear infinite } @-webkit-keyframes pace-spinner {0% {-webkit-transform:rotate(0deg);transform:rotate(0deg) } 100% {-webkit-transform:rotate(360deg);transform:rotate(360deg) }} @-moz-keyframes pace-spinner {0% {-moz-transform:rotate(0deg);transform:rotate(0deg) } 100% {-moz-transform:rotate(360deg);transform:rotate(360deg) }} @-o-keyframes pace-spinner {0% {-o-transform:rotate(0deg);transform:rotate(0deg) } 100% {-o-transform:rotate(360deg);transform:rotate(360deg) }} @-ms-keyframes pace-spinner {0% {-ms-transform:rotate(0deg);transform:rotate(0deg) } 100% {-ms-transform:rotate(360deg);transform:rotate(360deg) }} @keyframes pace-spinner {0% {transform:rotate(0deg);transform:rotate(0deg) } 100% {transform:rotate(360deg);transform:rotate(360deg) }}
\ No newline at end of file
diff --git a/themes/Obsidian/css/responsive.css b/themes/Obsidian/css/responsive.css
new file mode 100644
index 00000000..be3bcd63
--- /dev/null
+++ b/themes/Obsidian/css/responsive.css
@@ -0,0 +1 @@
+@media(max-width:600px){#wrapper{border-left:0!important}.menu-bg,.menu>ul{width:100%;margin-bottom:10px}}@media(max-width:512px){.datetime{display:none!important}.slider{float:right;top:0;padding:17px;right:0;left:0}}
\ No newline at end of file
diff --git a/themes/Obsidian/css/style.css b/themes/Obsidian/css/style.css
new file mode 100644
index 00000000..0e39933f
--- /dev/null
+++ b/themes/Obsidian/css/style.css
@@ -0,0 +1 @@
+@charset "UTF-8";html{background:$bottomWrapper.bg.color;margin:0 0 0 -1px;padding:0;overflow-Y:scroll}select[name="home_cfg_id"]{margin-bottom:10px}select[name="home_id-mod_id-ip-port"]{margin-bottom:10px}body{padding:0;margin:0;width:100%;color:#FFF;font-family:'Open Sans',sans-serif;background:#4a9667;background:-moz-radial-gradient(center,ellipse cover,#4a9667 0,#22504c 55%,#021736 100%);background:-webkit-gradient(radial,center center,0px,center center,100%,color-stop(0%,#4a9667),color-stop(55%,#22504c),color-stop(100%,#021736));background:-webkit-radial-gradient(center,ellipse cover,#4a9667 0,#22504c 55%,#021736 100%);background:-o-radial-gradient(center,ellipse cover,#4a9667 0,#22504c 55%,#021736 100%);background:-ms-radial-gradient(center,ellipse cover,#4a9667 0,#22504c 55%,#021736 100%);background:radial-gradient(ellipse at center,#4a9667 0,#22504c 55%,#021736 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#4a9667',endColorstr='#021736',GradientType=1);background-attachment:fixed;font-size:13px;font-style:normal;font-weight:normal;text-transform:normal}#ipaddress{color:#fff}#datetime{background:#1d3248;color:#fff;height:48px}#wrapper{margin:0;border-left:230px solid #111f2d}#topWrapper{border:0;border:0;margin:0;padding:0;background-color:#000}#topBanner{background-position:center;height:120px;background-image:url(../images/topBanner.png);background-repeat:no-repeat}#refresh-manual{color:#333;height:23px;background:#111f2d;padding:8px 8px 3px 8px;text-align:center;font-family:'Open Sans',sans-serif;font-size:12px;border-radius:3px;right:3%;position:fixed;bottom:5%;z-index:55}.main-content{background:#162535;border-radius:2px;-moz-border-radius:2px;overflow-x:hidden;padding-right:1%;padding-bottom:1%;padding-left:1%;box-shadow:0 1px 1px rgba(0,0,0,0.1);display:none}div.submit-start{margin-top:10px}table.start-server td.info{border-top:0}table.start-server tbody tr td{border-top:0}table.start-server td.left{border-top:0}table.start-server td.right{text-align:left;border-top:0}hr{display:none}.user_menu_link_selected,.admin_menu_link_selected{color:#fff!important;border-left-color:#3cbc81!important;background:#0e1723!important;text-shadow:none!important}.pull-right{margin-top:3px;font-size:14px!important}.menu>ul li>ul>li>a>span:before,.menu>ul>li>a>span:before,.menu ul>li>a>span:before,.menu>ul li>ul>li.copied>a>span:before{font:normal normal normal 18px/1 FontAwesome;padding-right:10px}.menu>ul li>ul>li>a>.addons_manager:before{content:"\f055"}.menu>ul li>ul>li>a>.ticket_settings:before{content:"\f0e6"}.menu>ul li>ul>li.copied>a>span:before{content:"\f0db"}.menu>ul li>ul>li>a>.extras:before{content:"\f06b"}.menu>ul li>ul>li>a>.ftp_admin:before{content:"\f07b"}.menu>ul li>ul>li>a>.user_games:before{content:"\f11b"}.menu>ul li>ul>li>a>.config_games:before{content:"\f0c3"}.menu>ul li>ul>li>a>.show_groups:before,.menu ul>li>a>span.groups:before{content:"\f0c0"}.menu>ul li>ul>li>a>.modulemanager:before{content:"\f12e"}.menu>ul li>ul>li>a>.settings:before{content:"\f013"}.menu>ul li>ul>li>a>.server:before{content:"\f17c"}.menu>ul li>ul>li>a>.themes:before{content:"\f009"}.menu>ul li>ul>li>a>.update:before{content:"\f0ac"}.menu>ul li>ul>li>a>.lgsl_admin:before{content:"\f080"}.menu>ul li>ul>li>a>.orders:before{content:"\f217"}.menu>ul li>ul>li>a>.rcon:before{content:"\f069"}.menu>ul li>ul>li>a>.services:before{content:"\f218"}.menu>ul li>ul>li>a>.shop_settings:before{content:"\f07a"}.menu>ul li>ul>li>a>.admin_dsi:before{content:"\f03e"}.menu>ul li>ul>li>a>.cron:before{content:"\f1da"}.menu>ul li>ul>li>a>.fastdl:before{content:"\f019"}.menu>ul li>ul>li>a>.fast_download:before{content:"\f019"}.menu>ul li>ul>li>a>.user_admin:before,.menu ul>li>a>span.subusers:before{content:"\f234"}.menu>ul li>ul>li>a>.watch_logger:before{content:"\f15c"}.menu>ul li>ul>li>a>.litefm_settings:before{content:"\f085"}.menu>ul li>ul>li>a>.mysql_admin:before{content:"\f1c0"}.menu>ul li>ul>li>a>.admin_news:before{content:"\f1ea"}.menu>ul>li>a>span.tickets:before{content:"\f0e6"}.menu>ul>li>a>span.dashboard:before{content:"\f0e4"}.menu>ul>li>a>span.game_monitor:before{content:"\f109"}.menu>ul>li>a>span.TS3Admin:before{content:"\f025"}.menu>ul>li>a>span.ftp:before{content:"\f07c"}.menu>ul>li>a>span.administration:before{content:"\f0ae"}.menu>ul>li>a>span.username:before{content:"\f007"}.menu ul>li>a>span.logout:before{content:"\f011"}.menu>ul>li>a>span.controlpanellogin:before{content:"\f090"}.menu>ul>li>a>span.form:before{content:"\f234"}.menu>ul>li>a>span.lgsl:before{content:"\f080"}.menu>ul>li>a>span.user_cron:before{content:"\f1da"}.menu>ul>li>a>span.user_dsi:before,.menu>ul>li>a>span.list_dsi:before{content:"\f03e"}.menu>ul>li>a>span.fd_user:before{content:"\f019"}.menu>ul>li>a>span.support:before{content:"\f1cd"}.menu>ul>li>a>span.util:before{content:"\f085"}.menu>ul>li>a>span.news:before{content:"\f1ea"}.menu>ul>li>a>span.shop:before,.menu>ul>li>a>span.shop_guest:before{content:"\f07a"}.menu>ul li>ul>li>a>.faq:before{content:"\f02d"}.menu>ul>li>a>span.dashboard,.menu>ul>li>a>span.game_monitor,.menu>ul>li>a>span.TS3Admin,.menu>ul>li>a>span.ftp,.menu>ul>li>a>span.administration,.menu>ul>li>a>span.username,.menu ul>li>a>span.logout,.menu>ul>li>a>span.controlpanellogin,.menu>ul>li>a>span.form,.menu ul>li>a>span.subusers,.menu ul>li>a>span.groups,.menu>ul>li>a>span.lgsl,.menu>ul>li>a>span.user_cron,.menu>ul>li>a>span.user_dsi,.menu>ul>li>a>span.fd_user,.menu>ul>li>a>span.support,.menu>ul>li>a>span.util,.menu>ul>li>a>span.shop,.menu>ul>li>a>span.shop_guest,.menu>ul>li>a>span.list_dsi{padding-top:5px;padding-bottom:5px}.menu ul>li>a>span.customtab{background:url(../images/menu/customtab1.png) no-repeat scroll left center transparent;padding-left:35px;padding-top:5px;padding-bottom:5px}.menu-bg{float:left}.menu>ul{list-style:none;margin:0;padding:0;vertical-align:baseline;line-height:1}.menu>ul{z-index:100;display:block;position:relative;width:230px;display:none}.menu>ul li{display:block;position:relative;margin:0;padding:0;width:100%}.menu>ul>li>a{display:block;position:relative;margin:0;padding:11px 20px;font-family:'Open Sans',sans-serif;color:#d8d8d8;text-decoration:none;font-size:12px;font-weight:300;background:#111f2d;border-left:5px solid transparent;line-height:1.42857143}.menu>ul li:first-child>a{border-top:0}.menu>ul li:last-child>a{border-bottom:0}.menu>ul>li>a:hover,.menu>ul>li:hover>a{color:#fff;text-shadow:0 1px 0 rgba(0,0,0,0.3);border-left-color:#64b48f;background:#0f1926}.menu>ul .has-sub>a::after{content:"";position:absolute;top:16px;right:10px;width:0;height:0;border:4px solid transparent;border-left:4px solid #d8d8d8}.menu>ul .has-sub>a::before{content:"";position:absolute;top:17px;right:10px;width:0;height:0;border:4px solid transparent;border-left:4px solid #000}.menu>ul li>a:hover::after,.menu>ul li:hover>a::after{border-left:4px solid #fff}.menu>ul li>a:hover::before,.menu>ul li:hover>a::before{border-left:4px solid rgba(0,0,0,0.3)}.treeview-sub{background-color:#172638;list-style:none;padding:0;padding-left:5px;opacity:1;display:none}.menu li.active>.treeview-sub{display:block}.treeview-sub>li>a{padding:7px 7px 7px 15px;display:block;font-size:13px;color:#8aa4af;text-decoration:none}.treeview-sub>li:hover>a{color:#fff}.menu>ul li:hover>ul{left:100%;opacity:1;visibility:visible}#submenu_0,#submenu_1{margin-top:-1px}#container{min-height:500px;padding:1%}#banner{margin:15px auto;width:100%}#content{margin:0 auto;text-align:left}#content a:link,#content a:visited{color:#a0c9e1;font-weight:bold;text-decoration:none;transition:all 300ms linear;-moz-transition:all 300ms linear;-webkit-transition:all 300ms linear}#content p{margin-top:10px;text-align:left}.last{margin-right:0!important;clear:right}.one_two{float:left;width:48%;position:relative;margin-left:1%;margin-right:1%}.one_fourth{float:left;width:25%;position:relative}.bloc{padding:0 15px 1px 15px;background-color:#0f1a26;border-radius:4px;-moz-border-radius:4px;overflow:hidden;text-align:left;font-size:.9em}.bloc h4{font-size:15px;margin-left:-15px;margin-right:-15px}.dragbox-content{padding-top:15px;padding-bottom:15px}.column{min-height:150px}.column .dragbox{margin-bottom:20px}.column .placeholder:before{content:"\f125";color:rgba(255,255,255,0.5);display:block;text-align:center;line-height:77px;font-family:"FontAwesome";font-size:40px}.column .placeholder{background:rgba(19,31,44,0.4);margin-bottom:20px;border:1px dashed #152536;border-radius:4px;-moz-border-radius:4px}.dragbox h4.collapse:before{font:normal normal normal 21px/1 FontAwesome;content:"\f0dd";right:32px;position:relative;float:right;top:-5px;width:0}.dragbox h4 .configure{font-size:11px;font-weight:normal;margin-right:30px;float:right}.half{float:left;width:440px;margin:20px 40px 20px 0;position:relative}.padd15{padding:15px}.padd20{padding:20px}p{letter-spacing:normal;line-height:1.7em}p2{text-align:left;margin:10px 0 10px 0;color:#fff;font-size:20px;clear:both}h0{color:#fff;margin:10px 0 10px 0;clear:both;width:99.8%;height:35px;background:#0b141d;/*! */margin-top:20px;padding-top:10px;text-align:center;font-family:'Open Sans',sans-serif;font-size:20px;display:block;font-weight:bold;border-radius:2px}h1{color:#fff;margin:20px 0 10px 0;clear:both}h2{color:#fff;clear:both;height:35px;background:#0f1a26;padding-top:10px;margin-top:-1px;margin-right:-1%;margin-left:-1%;text-align:center;color:#FFFF;font-weight:300;font-family:'Open Sans',sans-serif}h3{color:#fff;margin:10px 0 5px 0;clear:both}h4{color:#fff;margin:0 auto;height:31px;background:#131f2c;padding-top:10px;text-align:center;font-family:'Open Sans',sans-serif}a:link,a:visited{color:#6364ec;text-decoration:none}a:hover{color:#fff!important;transition:all 300ms linear;-moz-transition:all 300ms linear;-webkit-transition:all 300ms linear}#bottomWrapper{background-color:rgba(6,15,17,0.6);background-position:center top;background-repeat:repeat-x;text-align:center;color:#fff;text-align:center;width:100%;height:110px;bottom:0;position:relative;clear:both}#bottomWrapper a:link,#bottomWrapper a:visited{color:#379bb9}#bottomWrapper a:hover{color:#cdb380;text-decoration:none}#footer{min-height:260px;width:920px;margin:0 auto;background-color:#101010;background-image:url(../images/footer-bg.png);background-position:center top;background-repeat:no-repeat}.footer-last{margin-right:0!important;clear:right}.footer-one-third{float:left;margin:40px 100px 20px 0;width:240px;position:relative;text-align:left;overflow:hidden}.footer-one-third h2{margin-top:10px;color:#FFF}.footer-one-third ul{border-top:1px solid #1a1a1a;padding:0}.footer-one-third ul,.footer-one-third li{list-style:none;margin-left:0}.footer-one-third li{border-bottom:1px solid #1a1a1a;padding:5px 0}#bottom-links{height:60px;background:#010101 url('../images/bottomLinks-bg.png') center top repeat-x}a img{border:0;padding-right:10px}.online_servers{color:#000;background-color:#FCBG0D;margin-left:auto;margin-right:auto;text-align:center}.online_servers tr td{padding:5px 10px;background-color:#20aa52;border-radius:3px;color:transparent;-webkit-border-radius:3px}.online_servers tr td>div>a{color:#fff!important}table.tablesorter{font-family:'Open Sans',sans-serif;background-color:#0f1a26;margin:10px 0 15px;width:100%;text-align:left;border-collapse:collapse;border-spacing:1px;border-left:1px solid #0f1a26;border-right:1px solid #0f1a26}.expand-child{border-bottom:1px solid rgba(15,26,38,0.6)}table.tablesorter thead tr th,table.tablesorter tfoot tr th{background-color:#0f1a26;font-size:10pt;padding:10px 5px}table.tablesorter thead tr .header{cursor:pointer;color:#fff}table.tablesorter tbody tr{background-color:#162535}table.tablesorter tbody tr:hover,table.tablesorter tbody tr:hover tr{background-color:#111f2d}table.tablesorter tbody td{color:#fff;padding:8px 6px;vertical-align:top}table.tablesorter thead tr .headerSortUp{background-image:url(../images/asc.gif);background-repeat:no-repeat;background-position:center right}table.tablesorter thead tr .headerSortDown{background-image:url(../images/desc.gif);background-repeat:no-repeat;background-position:center right}table.tablesorter thead tr .headerSortDown,table.tablesorter thead tr .headerSortUp{background-color:#0f1a26}table.tablesorter tfoot td{color:#fff;padding-top:15px;padding-left:4px;padding-right:4px;padding-bottom:4px;background-color:#0f1a26;vertical-align:top}table.tablesorter tfoot{border:1px solid #0f1a26!important}.hidden{visibility:hidden;font-size:0}.install{margin-left:auto;margin-right:auto;text-align:left;font-size:1.1em}.failure{color:red;text-align:center}.success{color:#14e926;text-align:center}pre{text-decoration:none;text-align:left;clear:both;margin:0 auto;padding:0;color:white;background-color:black;border-left:10px #000 solid;border-right:10px #000 solid;border-top:5px #000 solid;border-bottom:5px #000 solid;word-wrap: / overflow:auto}.log{text-decoration:none;color:white;background-color:black;border-left:5px #000 solid;border-right:5px #000 solid;border-top:5px #000 solid;border-bottom:5px #000 solid;word-wrap: / overflow:auto}.button{border:1px dotted gray}.server_monitor{background:#eee}.monitor-1{float:left;display:inline-block}.monitor-1 div{float:left;padding-right:5px;display:inline-block}.monitor-2{background-color:#0f1a26;float:right;display:inline-block;text-align:center;padding:10px;box-shadow:0 1px 1px #0000004d}.monitor-2 div{display:inline-block}.monitor-3{clear:both;position:relative;top:5px;margin-bottom:5px}.srvctrl{border:0;border-collapse:collapse;border-spacing:0;font-weight:normal}.srvctrl td,.srvctrl th{padding:0;border:0}.mapicon{width:135px;height:100px;float:left}.hostname{width:100px}.login{margin-left:auto;margin-right:auto}.lostpass{margin-left:auto;margin-right:auto}.note{display:inline;padding:.2em .6em .3em;font-size:80%;font-weight:700;line-height:1;color:#fff;text-align:center;border-radius:.25em;top:-1px}p{text-align:center}.player_monitor{border-collapse:collapse}.player_monitor th{background:#CCC}.player_monitor tbody tr td .odd{background:333}.input{border:1px solid #006}.serverIdToggle,input[type="submit"],input[type="button"],button,.default-btn{padding:4px 8px;border-radius:2px;cursor:pointer;margin:0 2px;color:#fff!important;background-color:#37b799;border-color:#37b799;border:2px solid #37b799;font-weight:normal!important}.serverIdToggle:hover,input[type="submit"]:hover,input[type="button"]:hover,button:hover,.default-btn:hover{border:2px solid #248e75;background:#248e75!important;color:#eee;border-radius:2px}.serverIdToggle:active,button:active,button[type="submit"]:active,input[type="submit"]:active,input[type="button"]:active,.default-btn:active{background-color:#204d74!important;border-color:#204d74}input[type="text"],input[type="password"],input[type="number"],textarea{color:#fff;padding:4px;border:1px solid #121c32;border-radius:2px;background-color:rgba(29,50,72,0.501)}input[type="text"]:focus,input[type="password"]:focus,textarea:focus,input[type="number"]:focus,input[type="text"]:hover,input[type="number"]:hover,input[type="password"]:hover,textarea:hover{border-color:#3cbc81}.jqmWindow{display:none;position:fixed;top:17%;left:50%;margin-left:-300px;width:600px;background-color:#EEE;color:#333;border:1px solid black;padding:12px}.jqmOverlay{background-color:#000}* iframe.jqm{position:absolute;top:0;left:0;z-index:-1;width:expression(this.parentNode.offsetWidth+'px');height:expression(this.parentNode.offsetHeight+'px')}* html .jqmWindow{position:absolute;top:expression((document.documentElement.scrollTop || document.body.scrollTop)+Math.round(17 *(document.documentElement.offsetHeight || document.body.clientHeight) / 100)+'px')}.administration-table{text-align:center;margin-left:auto;margin-right:auto;margin-bottom:20px}.administration-buttons{padding:15px}.remove-button{width:10px;border:0 solid transparent}.start-server{width:100%;word-wrap:break-word;table-layout:fixed}.start-server td.left select{max-width:265px}.start-server td.left input[type=text]{word-break:normal}.start-server td.right{width:50%;text-align:right!important}.start-server td.left{width:50%;text-align:left!important}.submit-start{text-align:center}.owner{width:90px;word-break:break-all}.operations{width:320px}.ts3-add-virtual select{max-width:194px}.server-starting,.list_table{width:100%}.server-starting td.right,.list_table td.right{width:200px}#servermonitor>tfoot .bloc{display:inline-block}#servermonitor>tfoot .bloc.right{float:right}#datetime>a>img{width:230px!important;padding:6.08px 0;transition:all 300ms linear;-moz-transition:all 300ms linear;-webkit-transition:all 300ms linear;height:auto!important}#datetime>a>img:hover{background:url("../images/light-bg.png");transition:all 300ms linear;-moz-transition:all 300ms linear;-webkit-transition:all 300ms linear}.slider{position:relative;padding:15px;top:-19px;left:-4px;font-size:14px;cursor:pointer}.slider:hover{background:url("../images/dark-bg.png")}.datetime{float:right;height:48px;position:relative;right:15px;width:170px;line-height:48px;text-align:center;cursor:pointer;display:none}.datetime>ul{position:absolute;background:#1d3248 url("../images/dark-bg.png");list-style:none;top:50px;width:170px;padding:0;z-index:9999;opacity:0;visibility:hidden;transition:all 300ms linear;-moz-transition:all 300ms linear;-webkit-transition:all 300ms linear;cursor:default}.datetime:hover{background:url("../images/dark-bg.png")}.datetime:hover>ul{top:35px;opacity:1;visibility:visible;transition:all 300ms linear;-moz-transition:all 300ms linear;-webkit-transition:all 300ms linear}.datetime>ul>li>span>i{cursor:pointer}.menu-hidder{margin-left:-230px;display:none;transition:visibility 0s,opacity .5s linear}.wrapper-hidder{border-left:0!important}.copied>.treeview-a>.fa-angle-left:before{content:none}.treeview.active>a>.fa-angle-left{transform:rotate(-90deg);-webkit-transform:rotate(-90deg)}.treeview>a.treeview-a{padding-left:5px;padding-right:18px}.treeview-sub>li>a.admin_menu_link_selected{border-left:none!important;background:transparent!important}.treeview-sub>li>a.user_menu_link_selected{border-left:none!important;background:#2c3b41!important}.treeview-sub>li.treeview>a{padding-right:18px;padding-left:16px}.avatar-cover{padding:12px;min-height:64px}#avatar{border-radius:100%;width:64px;height:64px}.avatar-username{color:#fff;font-size:15px;left:20px;position:relative;top:10px;vertical-align:top}.avatar-status{color:#a2a2a2;font-size:13px;left:95px;position:absolute;top:90px}.avatar-status i{color:#44b44d;font-size:12px;padding-right:5px}.pulse_heart{color:#e90606;margin:0 3px;font-size:10px;cursor:pointer;animation:pound_heart .35s infinite alternate;-webkit-animation:pound_heart .35s infinite alternate}@-webkit-keyframes pound_heart{to{transform:scale(1.4)}}@keyframes pound_heart{to{transform:scale(1.4)}}.edit_avatar{overflow:hidden;position:relative}.edit_avatar [type=file]{cursor:inherit;display:block;font-size:999px;filter:alpha(opacity=0);min-height:100%;min-width:100%;opacity:0;position:absolute;right:0;text-align:right;top:0}.edit_avatar{color:#d2d7d6;cursor:pointer;float:left;left:95px;margin:-12px 0 0 -1px;position:absolute}#remove_avatar{color:#f82006;cursor:pointer;margin:-12px 0 0;padding:0;position:absolute;left:120px}.fileContainer [type=file]{cursor:pointer}select{background:rgba(29,50,72,0.501);padding:2px;border:1px solid rgba(21,37,54,0.501);color:#fff}button.upload-image{margin:5px 0;padding:5px 13px}img.mapicon{border:1px solid #0c151e}.ui-widget-content{border:1px solid transparent!important;background:#162535!important;color:#fff!important}.ui-widget-header{border:1px solid #0a121b!important;background:#0f1a26!important;color:#fff!important}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited,a.ui-button,a.ui-button:link,a.ui-button:visited,.ui-button{color:#fff!important}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default,.ui-button,html .ui-button.ui-state-disabled:hover,html .ui-button.ui-state-disabled:active{border:1px solid #37b799!important;background:#37b799!important;color:#fff!important}.ui-button-icon-only .ui-icon{filter:brightness(0) invert(1)}#dialog div.progress{font-size:.75rem;line-height:1rem;background-color:transparent!important;border-radius:2px;border:none!important}button:active{background-color:#204d74!important;transition:background-color .25s;-webkit-transition:background-color .25s;border-color:#204d74}.tip{opacity:0!important;display:block!important;transition:all 400ms linear!important;-moz-transition:all 400ms linear!important;-webkit-transition:all 400ms linear!important;font-weight:bold!important;padding:4px 8px!important;color:#fff!important;position:absolute!important;margin-left:32px!important;margin-top:-20px!important;z-index:20;text-align:left;-moz-border-radius:2px!important;-webkit-border-radius:2px!important;border-radius:2px!important;transition:all 400ms linear!important;-moz-transition:all 400ms linear!important;-webkit-transition:all 400ms linear!important;background-color:#498fcd!important;width:250px!important;box-shadow:none!important;background-image:none!important;visibility:hidden!important}.image-tip:hover .tip,.tip:hover{opacity:1!important;margin-left:20px!important;transition:all 400ms linear!important;-moz-transition:all 400ms linear!important;-webkit-transition:all 400ms linear!important;visibility:visible!important}.return-to-top-active{opacity:1!important;bottom:20px!important;right:20px!important;-webkit-transition:all .3s linear;-moz-transition:all .3s ease;-ms-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease}#return-to-top{position:fixed;bottom:-50px;right:-50px;background:rgba(16,203,158,0.501);width:45px;height:45px;display:block;text-decoration:none;-webkit-border-radius:35px;-moz-border-radius:35px;border-radius:4px;opacity:0;-webkit-transition:all .3s linear;-moz-transition:all .3s ease;-ms-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease;box-shadow:0 1px 1px #000}#return-to-top i{color:#fff;margin:0;position:relative;margin-left:12px;top:10px;font-size:19px;-webkit-transition:all .3s ease;-moz-transition:all .3s ease;-ms-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease}#return-to-top:hover{background:#10cb9e}#return-to-top:hover i{color:#fff;top:5px}.serverIdToggle{text-decoration:none!important;float:left;margin-bottom:10px}input[src="modules/administration/images/remove.gif"]{margin:4.5px 2px 0 2px}.g_pPL,.g_fPL,.g_pL,.g_lPL,.g_nPL,.g_cPL{background-color:#37b799;padding:6px 11.4px;color:#fff!important;font-weight:normal!important;border:1px solid #247763;margin-left:-1px}#pagination span a:hover{background-color:#248e75;border-color:1px solid #248e75!important}#pagination span a:focus{background-color:#204d74;border-color:1px solid #204d74!important}.g_cPL{background-color:#fff;color:#37b799!important;font-weight:bold!important}.g_pPL{border-radius:20px 0 0 20px;margin-right:-4px}.g_nPL{border-radius:0 20px 20px 0;margin-left:-4px}#pagination{margin:18px 5px 10px 5px}.callout{background-color:#00c0ef!important;border-radius:3px;margin:0 0 20px 0;padding:15px 30px 15px 15px;border-left:5px solid #eee;border-color:#0097bc}.callout span{margin-top:0;margin-bottom:10px;font-weight:600;font-size:18px}
diff --git a/themes/Obsidian/css/tip.css b/themes/Obsidian/css/tip.css
new file mode 100644
index 00000000..fc8f1571
--- /dev/null
+++ b/themes/Obsidian/css/tip.css
@@ -0,0 +1,2 @@
+/* TipTip CSS - Version 1.2 */
+.tipsy{position:absolute;padding:5px;z-index:100000}.tipsy-inner{font-size:12px;background:#37b799;color:#fff;max-width:200px;padding:5px 8px;text-align:center;border-radius:2px;-moz-border-radius:2px;-webkit-border-radius:2px}.tipsy-arrow{position:absolute;width:0;height:0;line-height:0;border:5px dashed #37b799}.tipsy-arrow-n{border-bottom-color:#37b799}.tipsy-arrow-s{border-top-color:#37b799}.tipsy-arrow-e{border-left-color:#161616}.tipsy-arrow-w{border-right-color:#161616}.tipsy-n .tipsy-arrow{top:0;left:50%;margin-left:-5px;border-bottom-style:solid;border-top:0;border-left-color:transparent;border-right-color:transparent}.tipsy-nw .tipsy-arrow{top:0;left:10px;border-bottom-style:solid;border-top:0;border-left-color:transparent;border-right-color:transparent}.tipsy-ne .tipsy-arrow{top:0;right:10px;border-bottom-style:solid;border-top:0;border-left-color:transparent;border-right-color:transparent}.tipsy-s .tipsy-arrow{bottom:0;left:50%;margin-left:-5px;border-top-style:solid;border-bottom:0;border-left-color:transparent;border-right-color:transparent}.tipsy-sw .tipsy-arrow{bottom:0;left:10px;border-top-style:solid;border-bottom:0;border-left-color:transparent;border-right-color:transparent}.tipsy-se .tipsy-arrow{bottom:0;right:10px;border-top-style:solid;border-bottom:0;border-left-color:transparent;border-right-color:transparent}.tipsy-e .tipsy-arrow{right:0;top:50%;margin-top:-5px;border-left-style:solid;border-right:0;border-top-color:transparent;border-bottom-color:transparent}.tipsy-w .tipsy-arrow{left:0;top:50%;margin-top:-5px;border-right-style:solid;border-left:none;border-top-color:transparent;border-bottom-color:transparent}
\ No newline at end of file
diff --git a/themes/Obsidian/images/addfolder.png b/themes/Obsidian/images/addfolder.png
new file mode 100644
index 00000000..0f906ab9
Binary files /dev/null and b/themes/Obsidian/images/addfolder.png differ
diff --git a/themes/Obsidian/images/arrowdown.png b/themes/Obsidian/images/arrowdown.png
new file mode 100644
index 00000000..afd76ba3
Binary files /dev/null and b/themes/Obsidian/images/arrowdown.png differ
diff --git a/themes/Obsidian/images/arrows.gif b/themes/Obsidian/images/arrows.gif
new file mode 100644
index 00000000..b69bb359
Binary files /dev/null and b/themes/Obsidian/images/arrows.gif differ
diff --git a/themes/Obsidian/images/asc.gif b/themes/Obsidian/images/asc.gif
new file mode 100644
index 00000000..4ddbaab2
Binary files /dev/null and b/themes/Obsidian/images/asc.gif differ
diff --git a/themes/Obsidian/images/auto_update.png b/themes/Obsidian/images/auto_update.png
new file mode 100644
index 00000000..dabb6263
Binary files /dev/null and b/themes/Obsidian/images/auto_update.png differ
diff --git a/themes/Obsidian/images/bg.gif b/themes/Obsidian/images/bg.gif
new file mode 100644
index 00000000..fac668fc
Binary files /dev/null and b/themes/Obsidian/images/bg.gif differ
diff --git a/themes/Obsidian/images/bg.jpg b/themes/Obsidian/images/bg.jpg
new file mode 100644
index 00000000..c67f7986
Binary files /dev/null and b/themes/Obsidian/images/bg.jpg differ
diff --git a/themes/Obsidian/images/bg2.jpg b/themes/Obsidian/images/bg2.jpg
new file mode 100644
index 00000000..8dbf32df
Binary files /dev/null and b/themes/Obsidian/images/bg2.jpg differ
diff --git a/themes/Obsidian/images/bottomLinks-bg.png b/themes/Obsidian/images/bottomLinks-bg.png
new file mode 100644
index 00000000..989da3a5
Binary files /dev/null and b/themes/Obsidian/images/bottomLinks-bg.png differ
diff --git a/themes/Obsidian/images/bottomWrapper-bg.png b/themes/Obsidian/images/bottomWrapper-bg.png
new file mode 100644
index 00000000..5f6e772c
Binary files /dev/null and b/themes/Obsidian/images/bottomWrapper-bg.png differ
diff --git a/themes/Obsidian/images/code.png b/themes/Obsidian/images/code.png
new file mode 100644
index 00000000..d8d957f2
Binary files /dev/null and b/themes/Obsidian/images/code.png differ
diff --git a/themes/Obsidian/images/collapse.png b/themes/Obsidian/images/collapse.png
new file mode 100644
index 00000000..4d5c085c
Binary files /dev/null and b/themes/Obsidian/images/collapse.png differ
diff --git a/themes/Obsidian/images/customfields.png b/themes/Obsidian/images/customfields.png
new file mode 100644
index 00000000..275b8f0b
Binary files /dev/null and b/themes/Obsidian/images/customfields.png differ
diff --git a/themes/Obsidian/images/dark-bg.png b/themes/Obsidian/images/dark-bg.png
new file mode 100644
index 00000000..46a1ae43
Binary files /dev/null and b/themes/Obsidian/images/dark-bg.png differ
diff --git a/themes/Obsidian/images/default_avatar.png b/themes/Obsidian/images/default_avatar.png
new file mode 100644
index 00000000..bfd4632b
Binary files /dev/null and b/themes/Obsidian/images/default_avatar.png differ
diff --git a/themes/Obsidian/images/desc.gif b/themes/Obsidian/images/desc.gif
new file mode 100644
index 00000000..4cce6d25
Binary files /dev/null and b/themes/Obsidian/images/desc.gif differ
diff --git a/themes/Obsidian/images/edit.png b/themes/Obsidian/images/edit.png
new file mode 100644
index 00000000..02e19d04
Binary files /dev/null and b/themes/Obsidian/images/edit.png differ
diff --git a/themes/Obsidian/images/editconfig.png b/themes/Obsidian/images/editconfig.png
new file mode 100644
index 00000000..f08b3530
Binary files /dev/null and b/themes/Obsidian/images/editconfig.png differ
diff --git a/themes/Obsidian/images/error.png b/themes/Obsidian/images/error.png
new file mode 100644
index 00000000..2f205f12
Binary files /dev/null and b/themes/Obsidian/images/error.png differ
diff --git a/themes/Obsidian/images/exec.png b/themes/Obsidian/images/exec.png
new file mode 100644
index 00000000..ac3b42b6
Binary files /dev/null and b/themes/Obsidian/images/exec.png differ
diff --git a/themes/Obsidian/images/favicon.ico b/themes/Obsidian/images/favicon.ico
new file mode 100644
index 00000000..a5357048
Binary files /dev/null and b/themes/Obsidian/images/favicon.ico differ
diff --git a/themes/Obsidian/images/file.png b/themes/Obsidian/images/file.png
new file mode 100644
index 00000000..095f549e
Binary files /dev/null and b/themes/Obsidian/images/file.png differ
diff --git a/themes/Obsidian/images/file_size.png b/themes/Obsidian/images/file_size.png
new file mode 100644
index 00000000..54ca462d
Binary files /dev/null and b/themes/Obsidian/images/file_size.png differ
diff --git a/themes/Obsidian/images/filemanager.png b/themes/Obsidian/images/filemanager.png
new file mode 100644
index 00000000..94396179
Binary files /dev/null and b/themes/Obsidian/images/filemanager.png differ
diff --git a/themes/Obsidian/images/folder.png b/themes/Obsidian/images/folder.png
new file mode 100644
index 00000000..5a1ad6fc
Binary files /dev/null and b/themes/Obsidian/images/folder.png differ
diff --git a/themes/Obsidian/images/ftp.png b/themes/Obsidian/images/ftp.png
new file mode 100644
index 00000000..b93d5a1e
Binary files /dev/null and b/themes/Obsidian/images/ftp.png differ
diff --git a/themes/Obsidian/images/gamemanager.png b/themes/Obsidian/images/gamemanager.png
new file mode 100644
index 00000000..ae11b916
Binary files /dev/null and b/themes/Obsidian/images/gamemanager.png differ
diff --git a/themes/Obsidian/images/half.png b/themes/Obsidian/images/half.png
new file mode 100644
index 00000000..92fb8178
Binary files /dev/null and b/themes/Obsidian/images/half.png differ
diff --git a/themes/Obsidian/images/hmenu-sel.jpg b/themes/Obsidian/images/hmenu-sel.jpg
new file mode 100644
index 00000000..589d4d98
Binary files /dev/null and b/themes/Obsidian/images/hmenu-sel.jpg differ
diff --git a/themes/Obsidian/images/hmenu.jpg b/themes/Obsidian/images/hmenu.jpg
new file mode 100644
index 00000000..589d4d98
Binary files /dev/null and b/themes/Obsidian/images/hmenu.jpg differ
diff --git a/themes/Obsidian/images/hover.gif b/themes/Obsidian/images/hover.gif
new file mode 100644
index 00000000..285df3c6
Binary files /dev/null and b/themes/Obsidian/images/hover.gif differ
diff --git a/themes/Obsidian/images/hover_sub.gif b/themes/Obsidian/images/hover_sub.gif
new file mode 100644
index 00000000..99f8d7ac
Binary files /dev/null and b/themes/Obsidian/images/hover_sub.gif differ
diff --git a/themes/Obsidian/images/icon_details.png b/themes/Obsidian/images/icon_details.png
new file mode 100644
index 00000000..411edde1
Binary files /dev/null and b/themes/Obsidian/images/icon_details.png differ
diff --git a/themes/Obsidian/images/icon_help_small.png b/themes/Obsidian/images/icon_help_small.png
new file mode 100644
index 00000000..f5bf44a3
Binary files /dev/null and b/themes/Obsidian/images/icon_help_small.png differ
diff --git a/themes/Obsidian/images/icons/chip.png b/themes/Obsidian/images/icons/chip.png
new file mode 100644
index 00000000..c5538e16
Binary files /dev/null and b/themes/Obsidian/images/icons/chip.png differ
diff --git a/themes/Obsidian/images/icons/computer.png b/themes/Obsidian/images/icons/computer.png
new file mode 100644
index 00000000..a9213e91
Binary files /dev/null and b/themes/Obsidian/images/icons/computer.png differ
diff --git a/themes/Obsidian/images/icons/folder.png b/themes/Obsidian/images/icons/folder.png
new file mode 100644
index 00000000..ec4785af
Binary files /dev/null and b/themes/Obsidian/images/icons/folder.png differ
diff --git a/themes/Obsidian/images/icons/game_monitor.png b/themes/Obsidian/images/icons/game_monitor.png
new file mode 100644
index 00000000..78119528
Binary files /dev/null and b/themes/Obsidian/images/icons/game_monitor.png differ
diff --git a/themes/Obsidian/images/icons/list_server.png b/themes/Obsidian/images/icons/list_server.png
new file mode 100644
index 00000000..df736065
Binary files /dev/null and b/themes/Obsidian/images/icons/list_server.png differ
diff --git a/themes/Obsidian/images/icons/ram_memory.png b/themes/Obsidian/images/icons/ram_memory.png
new file mode 100644
index 00000000..ae775164
Binary files /dev/null and b/themes/Obsidian/images/icons/ram_memory.png differ
diff --git a/themes/Obsidian/images/icons/server_uptime.png b/themes/Obsidian/images/icons/server_uptime.png
new file mode 100644
index 00000000..ab151ed6
Binary files /dev/null and b/themes/Obsidian/images/icons/server_uptime.png differ
diff --git a/themes/Obsidian/images/icons/servers.png b/themes/Obsidian/images/icons/servers.png
new file mode 100644
index 00000000..ee118051
Binary files /dev/null and b/themes/Obsidian/images/icons/servers.png differ
diff --git a/themes/Obsidian/images/icons/storage.png b/themes/Obsidian/images/icons/storage.png
new file mode 100644
index 00000000..e3097be6
Binary files /dev/null and b/themes/Obsidian/images/icons/storage.png differ
diff --git a/themes/Obsidian/images/icons/support.png b/themes/Obsidian/images/icons/support.png
new file mode 100644
index 00000000..ae11b916
Binary files /dev/null and b/themes/Obsidian/images/icons/support.png differ
diff --git a/themes/Obsidian/images/install.png b/themes/Obsidian/images/install.png
new file mode 100644
index 00000000..3ff57ad3
Binary files /dev/null and b/themes/Obsidian/images/install.png differ
diff --git a/themes/Obsidian/images/light-bg.png b/themes/Obsidian/images/light-bg.png
new file mode 100644
index 00000000..decc3be8
Binary files /dev/null and b/themes/Obsidian/images/light-bg.png differ
diff --git a/themes/Obsidian/images/limit.png b/themes/Obsidian/images/limit.png
new file mode 100644
index 00000000..353b683e
Binary files /dev/null and b/themes/Obsidian/images/limit.png differ
diff --git a/themes/Obsidian/images/locked.png b/themes/Obsidian/images/locked.png
new file mode 100644
index 00000000..177f27b7
Binary files /dev/null and b/themes/Obsidian/images/locked.png differ
diff --git a/themes/Obsidian/images/log.png b/themes/Obsidian/images/log.png
new file mode 100644
index 00000000..1fe1bef4
Binary files /dev/null and b/themes/Obsidian/images/log.png differ
diff --git a/themes/Obsidian/images/logo.png b/themes/Obsidian/images/logo.png
new file mode 100644
index 00000000..e9a0b683
Binary files /dev/null and b/themes/Obsidian/images/logo.png differ
diff --git a/themes/Obsidian/images/logo.png final b/themes/Obsidian/images/logo.png final
new file mode 100644
index 00000000..28ddda85
Binary files /dev/null and b/themes/Obsidian/images/logo.png final differ
diff --git a/themes/Obsidian/images/magnifglass.png b/themes/Obsidian/images/magnifglass.png
new file mode 100644
index 00000000..fcdab6e1
Binary files /dev/null and b/themes/Obsidian/images/magnifglass.png differ
diff --git a/themes/Obsidian/images/master.png b/themes/Obsidian/images/master.png
new file mode 100644
index 00000000..2915c68a
Binary files /dev/null and b/themes/Obsidian/images/master.png differ
diff --git a/themes/Obsidian/images/mime.png b/themes/Obsidian/images/mime.png
new file mode 100644
index 00000000..94a05950
Binary files /dev/null and b/themes/Obsidian/images/mime.png differ
diff --git a/themes/Obsidian/images/mysql.png b/themes/Obsidian/images/mysql.png
new file mode 100644
index 00000000..bb87ea84
Binary files /dev/null and b/themes/Obsidian/images/mysql.png differ
diff --git a/themes/Obsidian/images/offline.png b/themes/Obsidian/images/offline.png
new file mode 100644
index 00000000..01a0eee7
Binary files /dev/null and b/themes/Obsidian/images/offline.png differ
diff --git a/themes/Obsidian/images/online.png b/themes/Obsidian/images/online.png
new file mode 100644
index 00000000..84cc678a
Binary files /dev/null and b/themes/Obsidian/images/online.png differ
diff --git a/themes/Obsidian/images/rcon_preset.png b/themes/Obsidian/images/rcon_preset.png
new file mode 100644
index 00000000..cff9d32e
Binary files /dev/null and b/themes/Obsidian/images/rcon_preset.png differ
diff --git a/themes/Obsidian/images/restart.png b/themes/Obsidian/images/restart.png
new file mode 100644
index 00000000..c0ebaff6
Binary files /dev/null and b/themes/Obsidian/images/restart.png differ
diff --git a/themes/Obsidian/images/rsync.png b/themes/Obsidian/images/rsync.png
new file mode 100644
index 00000000..5de7a295
Binary files /dev/null and b/themes/Obsidian/images/rsync.png differ
diff --git a/themes/Obsidian/images/slideshowBottom.png b/themes/Obsidian/images/slideshowBottom.png
new file mode 100644
index 00000000..ff65fa6c
Binary files /dev/null and b/themes/Obsidian/images/slideshowBottom.png differ
diff --git a/themes/Obsidian/images/slideshowLeftCorner.png b/themes/Obsidian/images/slideshowLeftCorner.png
new file mode 100644
index 00000000..30ec0522
Binary files /dev/null and b/themes/Obsidian/images/slideshowLeftCorner.png differ
diff --git a/themes/Obsidian/images/slideshowRightCorner.png b/themes/Obsidian/images/slideshowRightCorner.png
new file mode 100644
index 00000000..5467e3bd
Binary files /dev/null and b/themes/Obsidian/images/slideshowRightCorner.png differ
diff --git a/themes/Obsidian/images/spinner_big.gif b/themes/Obsidian/images/spinner_big.gif
new file mode 100644
index 00000000..944ec825
Binary files /dev/null and b/themes/Obsidian/images/spinner_big.gif differ
diff --git a/themes/Obsidian/images/start.png b/themes/Obsidian/images/start.png
new file mode 100644
index 00000000..225975f4
Binary files /dev/null and b/themes/Obsidian/images/start.png differ
diff --git a/themes/Obsidian/images/steam.png b/themes/Obsidian/images/steam.png
new file mode 100644
index 00000000..3d60d28c
Binary files /dev/null and b/themes/Obsidian/images/steam.png differ
diff --git a/themes/Obsidian/images/stop.png b/themes/Obsidian/images/stop.png
new file mode 100644
index 00000000..37be06d7
Binary files /dev/null and b/themes/Obsidian/images/stop.png differ
diff --git a/themes/Obsidian/images/theme.png b/themes/Obsidian/images/theme.png
new file mode 100644
index 00000000..c26beba8
Binary files /dev/null and b/themes/Obsidian/images/theme.png differ
diff --git a/themes/Obsidian/images/topBanner.png b/themes/Obsidian/images/topBanner.png
new file mode 100644
index 00000000..bed4c9a6
Binary files /dev/null and b/themes/Obsidian/images/topBanner.png differ
diff --git a/themes/Obsidian/images/topWrapper-bg.jpg b/themes/Obsidian/images/topWrapper-bg.jpg
new file mode 100644
index 00000000..c8fd4f1e
Binary files /dev/null and b/themes/Obsidian/images/topWrapper-bg.jpg differ
diff --git a/themes/Obsidian/images/txt.png b/themes/Obsidian/images/txt.png
new file mode 100644
index 00000000..db010cac
Binary files /dev/null and b/themes/Obsidian/images/txt.png differ
diff --git a/themes/Obsidian/images/unlocked.png b/themes/Obsidian/images/unlocked.png
new file mode 100644
index 00000000..319bdd2e
Binary files /dev/null and b/themes/Obsidian/images/unlocked.png differ
diff --git a/themes/Obsidian/images/wrapper-bg.png b/themes/Obsidian/images/wrapper-bg.png
new file mode 100644
index 00000000..a396b9d8
Binary files /dev/null and b/themes/Obsidian/images/wrapper-bg.png differ
diff --git a/themes/Obsidian/js/Obsidian.min.js b/themes/Obsidian/js/Obsidian.min.js
new file mode 100644
index 00000000..f9358974
--- /dev/null
+++ b/themes/Obsidian/js/Obsidian.min.js
@@ -0,0 +1,268 @@
+
+jQuery(function($){
+ $(".slider").click(function() { //The Left Side bar's Hide/Show button function
+ if ($("#wrapper").hasClass("wrapper-hidder")){
+ $(".menu-bg").removeClass("menu-hidder");
+ $("#wrapper").removeClass("wrapper-hidder");
+ $.cookie('menu-bg-options', "show", { expires: 365, path: '/' });
+ }
+ else {
+ $(".menu-bg").addClass("menu-hidder");
+ $("#wrapper").addClass("wrapper-hidder");
+ $.cookie('menu-bg-options', "hide", { expires: 365, path: '/' });
+ }
+ });
+
+ if($.cookie("menu-bg-options") == "show") {
+ $(".menu-bg").removeClass("menu-hidder");
+ $("#wrapper").removeClass("wrapper-hidder");
+ } else if($.cookie("menu-bg-options") == "hide") {
+ $(".menu-bg").addClass("menu-hidder");
+ $("#wrapper").addClass("wrapper-hidder");
+ }
+ if(window.location.href.indexOf("home.php?m=support&p=support") == -1 && window.location.href.indexOf("home.php?m=user_games&p=edit&home_id=") == -1){
+ //those Hover-info boxes
+ jQuery("a").tipsy({gravity: jQuery.fn.tipsy.autoNS});
+ jQuery("title").tipsy({gravity: jQuery.fn.tipsy.autoNS});
+ jQuery("img").tipsy({gravity: jQuery.fn.tipsy.autoNS});
+ jQuery("i").tipsy({gravity: jQuery.fn.tipsy.autoNS});
+ jQuery("span").tipsy({gravity: jQuery.fn.tipsy.autoNS});
+ jQuery("div").tipsy({gravity: jQuery.fn.tipsy.autoNS});
+ jQuery("label").tipsy({gravity: jQuery.fn.tipsy.autoNS});
+ jQuery("input").tipsy({gravity: jQuery.fn.tipsy.autoNS});
+ }
+ /* Login */
+ if((window.location.href.indexOf("index.php") != -1 && window.location.href.indexOf("index.php?") == -1 && $('div.bloc h4').length != false) || $('input[name=ulogin]').length != false) {
+ $("head").append(' ');
+ var username_text = $(".bloc > form > table > tbody > tr:nth-child(2) > td:first").html().replace(':','');
+ var pass_text = $(".bloc > form > table > tbody > tr:nth-child(3) > td:first").html().replace(':','');
+ $("body").attr("id", "login-bg");
+ $("div.bloc").attr('style', 'background-color: rgba(25,48,65,0.701);');
+ $("#bottomWrapper").attr('style', 'background-color: rgba(24,33,36,0.301);');
+ $(".menu-bg").addClass("menu-hidder");
+ $("#wrapper").addClass("wrapper-hidder");
+ /* Login Elements */
+ $("div.main-content").attr('style', 'box-shadow: none;');//Remove unwanted Shadow effect
+ $('div.bloc h4').addClass('login_header'); //Adds classes to main-content
+ $("div.main-content > table").removeAttr("style"); //Removes style from table.
+ $("div.main-content > table").attr('align', 'center');//Center it.
+ $("div.main-content > table").attr('style', 'padding: 0px 10px 1px 10px;margin-top: 80px;'); //Removes style from table + droping it little down..
+ $("input[name=login]").addClass('login_button');//Adding class
+ $("div.bloc > form > table > tbody > tr:first").appendTo("div.bloc > form > table > tbody");//droping language tr down.
+ $("div.bloc > form > table > tbody > tr:last").find('td').contents().unwrap();//Removing all Td tags
+ $("div.bloc > form > table > tbody > tr:last").contents().wrapAll(" ");//Wrapping who td with that.
+ $("div.bloc > form > table > tbody > tr:last").append(" ");
+ $("div.bloc > form > table > tbody > tr:last").contents().wrapAll("");
+ $("div.bloc > form > table > tbody > tr td > a").appendTo("div.bloc > form > table > tbody > tr:last > td > span.forgotp");
+ if ($(".g-recaptcha")[0]) { //There is Google Captcha
+ $("div.bloc > form > table > tbody > tr:nth-child(4)").appendTo("div.bloc > form > table > tbody");
+ $("div.bloc > form > table > tbody > tr:nth-child(3) > td:first").remove();
+ $("div.bloc > form > table > tbody > tr:nth-child(3) > td").attr('align', 'center');
+ $("div.bloc > form > table > tbody > tr:nth-child(4) > td:first").attr('style', 'padding: 20px 25px 10px;');
+ $(".g-recaptcha").attr('data-theme', 'dark'); // makes the Google Captcha dark!
+ }else {
+ $("div.bloc > form > table > tbody > tr:nth-child(3)").appendTo("div.bloc > form > table > tbody");
+ $("div.bloc > form > table > tbody > tr:nth-child(3) > td:first").attr('style', 'padding: 20px 25px 10px;');
+ }
+ $("div.bloc > form > table > tbody > tr:nth-child(2) > td:first").remove();
+ $("div.bloc > form > table > tbody > tr:first > td:first").remove();
+ $("div.bloc > form > table > tbody > tr:last > td:last").remove();
+ $('input[name=ulogin]').attr('placeholder', username_text);
+ $('input[name=upassword]').attr('placeholder', pass_text);
+ $("div.bloc > form > table > tbody > tr:first > td:first").attr('style', 'padding: 25px 20px 10px;');
+ $("div.bloc > form > table > tbody > tr:nth-child(2) > td:first").attr('style', 'padding: 5px 20px;');
+ $("div.bloc > form > table > tbody > tr:last > td:first").attr('style', 'text-align: center;');
+ if($('.menu > ul > li > a[href="?m=register&p=form"').length > 0) {
+ $("div.bloc > form > table > tbody > tr:last > td").append(" Need an account ? Register ")
+ }
+ }
+
+
+ //Replacing images/ path with themes/Obsidian/images/ path
+ $('img').each(function() {
+ if ($(this).attr('src') == 'images/edit.png') {
+ $(this).attr('src', 'themes/Obsidian/images/edit.png');
+ }else if ($(this).attr('src') == 'images/file_size.png') {
+ $(this).attr('src', 'themes/Obsidian/images/file_size.png');
+ }else if ($(this).attr('src') == 'images/ftp.png') {
+ $(this).attr('src', 'themes/Obsidian/images/ftp.png');
+ }else if ($(this).attr('src') == 'images/install.png') {
+ $(this).attr('src', 'themes/Obsidian/images/install.png');
+ }else if ($(this).attr('src') == 'images/txt.png') {
+ $(this).attr('src', 'themes/Obsidian/images/txt.png');
+ }else if ($(this).attr('src') == 'images/log.png') {
+ $(this).attr('src', 'themes/Obsidian/images/log.png');
+ }else if ($(this).attr('src') == 'images/rsync.png') {
+ $(this).attr('src', 'themes/Obsidian/images/rsync.png');
+ }else if ($(this).attr('src') == 'images/magnifglass.png') {
+ $(this).attr('src', 'themes/Obsidian/images/magnifglass.png');
+ }else if ($(this).attr('src') == 'images/icon_help_small.gif') {
+ $(this).attr('src', 'themes/Obsidian/images/icon_help_small.png');
+ }else if ($(this).attr('src') == 'images/steam.png') {
+ $(this).attr('src', 'themes/Obsidian/images/steam.png');
+ }else if ($(this).attr('src') == 'images/auto_update.png') {
+ $(this).attr('src', 'themes/Obsidian/images/auto_update.png');
+ }
+ });
+
+ $('#pagination').each(function() {
+ $(this).html($(this).html().replace(/, /g, ''));
+ $(this).html($(this).html().replace(/]|\[/g, ''));
+ $(this).find('[class$="_firstPageLink"]').addClass('g_fPL');
+ $(this).find('[class$="_pageLinks"]').addClass('g_pL');
+ $(this).find('[class$="_lastPageLink"]').addClass('g_lPL');
+ $(this).find('[class$="_previousPageLink"]').addClass('g_pPL');
+ $(this).find('[class$="_currentPageLink"]').addClass('g_cPL');
+ $(this).find('[class$="_nextPageLink"]').addClass('g_nPL');
+ });
+
+
+ $('.image-tip').each(function(){
+ var tip_text = $(this).find('.tip').text();
+ $(this).find('.tip').remove();
+ $(this).attr('title', tip_text)
+ });
+
+ $("#wrapper").removeAttr("style"); //Removes style from Wrapper.
+ $(".logout").text($(".logout").text().replace('[', '').replace(']', ''));
+
+ //sidebar//
+ $('div.menu li:has(ul)').addClass('treeview');
+ $('div.menu li:has(ul) > a').append(' ');
+ $('div.menu ul ul').addClass('treeview-sub');
+ $('.treeview > a').addClass('treeview-a');
+
+ $.sidebarMenu = function(menu) {
+ var animationSpeed = 300;
+
+ $(menu).on('click', 'li a', function(e) {
+ var $this = $(this);
+ var checkElement = $this.next();
+
+ if (checkElement.is('.treeview-sub') && checkElement.is(':visible')) {
+ checkElement.slideUp(animationSpeed, function() {
+ checkElement.removeClass('menu-open');
+ });
+
+ checkElement.parent("li").removeClass("active");
+ }
+
+ //If the menu is not visible
+ else if ((checkElement.is('.treeview-sub')) && (!checkElement.is(':visible'))) {
+ //Get the parent menu
+ var parent = $this.parents('ul').first();
+ //Close all open menus within the parent
+ var ul = parent.find('ul:visible').slideUp(animationSpeed);
+ //Remove the menu-open class from the parent
+ ul.removeClass('menu-open');
+ //Get the parent li
+ var parent_li = $this.parent("li");
+
+ //Open the target menu and add the menu-open class
+ checkElement.slideDown(animationSpeed, function() {
+ //Add the class active to the parent li
+ checkElement.addClass('menu-open');
+ parent.find('li.active').removeClass('active');
+ parent_li.addClass('active');
+ });
+ }
+
+ //if this isn't a link, prevent the page from being redirected
+ if (checkElement.is('.treeview-sub')) {
+ e.preventDefault();
+ }
+ });
+ } //sidebarMenu end.
+
+ //GOT HELP//
+ $('li.treeview').each(function() {
+ $(' ').html($(this).children('a').clone()).prependTo($(this).children('ul')).find('> a > span').html('Overview');
+ });
+ $(".copied > a").removeClass('admin_menu_link_selected');
+ $(".copied > a").removeClass('user_menu_link_selected');
+ $(".copied > a > span").removeAttr('data-icon_path');
+ $(".treeview > a").removeClass('treeview-a');
+ $('.treeview').each(function() {
+ var $linked = $(this);
+ if ($linked.find('.admin_menu_link_selected').length > 0) {
+ $linked.addClass('active');
+ } else if ($linked.find('.user_menu_link_selected').length > 0) {
+ $linked.addClass('active');
+ }
+ }); //treeview.each end.
+ $.sidebarMenu($('.menu'));
+
+ $(".copied > a > span").css("background", "");
+ $(".copied > a > span").css("padding", "");
+ if(window.location.href.indexOf("home.php?m=") > -1) {
+ $(".menu").prepend(' Online
');
+ $(".avatar-username").text($("li.treeview > a > span.username").text());
+
+ $.ajax({
+ url: "themes/Obsidian/upload/get.php",
+ type: 'get',
+ dataType: 'html',
+ async: false,
+ success: function(data) {
+ $(".menu .avatar-cover").prepend(' ');
+ }
+ });
+ } //href index of end.
+
+
+
+ //You might want to do if check to see if localstorage set for theImage here
+
+ $('body').on('click', '#remove_avatar',function(){
+ $.ajax({
+ url: "themes/Obsidian/upload/remove.php",
+ type: "POST",
+ data: {remove: "1"},
+ success: function(data)
+ {
+ $("#avatar").remove();
+ $(".menu .avatar-cover").prepend(' ');
+ },
+ error: function(data)
+ {
+ }
+ });
+ }); //body.on.click end.
+
+ $(".avatarinput").change((function(){
+ $("#avatar").remove();
+ $(".avatar-cover").prepend(' ');
+ var form = $('#ava-form').get(0);
+ $.ajax({
+ url: "themes/Obsidian/upload/upload.php",
+ type: "POST",
+ data: new FormData(form),
+ async: false,
+ contentType: false,
+ cache: false,
+ processData:false,
+ success: function(data)
+ {
+ $("#avatar").remove();
+ $(".avatar-cover").prepend(data).fadeIn();
+ $.cookie('avatar', data, { expires: 365, path: '/' });
+ },
+ error: function()
+ {
+ $("#avatar").remove();
+ $(".avatar-cover").prepend(' ').fadeIn();
+ }
+ });
+ })); //body.on.change end.
+ if($("#refresh-manual").length > 0) {
+ $('.main-content').attr('style', 'background: rgba(22,37,53,0.4);');
+ }
+
+ $(window).load(function() {
+
+ $(".datetime").fadeIn(2000);
+ $(".menu > ul").fadeIn(2000);
+ $(".main-content").fadeIn(2000);
+ });
+ }); //document.ready end
+
\ No newline at end of file
diff --git a/themes/Obsidian/js/config.min.js b/themes/Obsidian/js/config.min.js
new file mode 100644
index 00000000..f54243bb
--- /dev/null
+++ b/themes/Obsidian/js/config.min.js
@@ -0,0 +1 @@
+jQuery(function(a){a.ajax({type:"GET",url:"themes/Obsidian/config/config.xml",dataType:"xml",success:function(g){var j=a.parseXML(g),c=a(j);var h=a(g).find("favicon").text();var i=a(g).find("loginbg").text();var e=a(g).find("bgblur").text();var d=a(g).find("logo").text();var b=a(g).find("pace").text();var f=a(g).find("responsive").text();a("#m_favicon").attr("href",h);a("head").append('');if(e==1){window.onload=function(){a("head").append("")}}if(f==1){a("head").append(' ')}a("#m_logo").attr("src",d);if(b==0){window.onload=function(){a("#m_pace_js").remove();a("#m_pace_css").remove()}}}})});
\ No newline at end of file
diff --git a/themes/Obsidian/js/cookie.js b/themes/Obsidian/js/cookie.js
new file mode 100644
index 00000000..31e77ef9
--- /dev/null
+++ b/themes/Obsidian/js/cookie.js
@@ -0,0 +1,10 @@
+/**
+* Cookie plugin
+*
+* Copyright (c) 2006 Klaus Hartl (stilbuero.de)
+* Dual licensed under the MIT and GPL licenses:
+* http://www.opensource.org/licenses/mit-license.php
+* http://www.gnu.org/licenses/gpl.html
+*
+*/
+jQuery.cookie=function(name,value,options){if(typeof value!="undefined"){options=options||{};if(value===null){value="";options.expires=-1;}var expires="";if(options.expires&&(typeof options.expires=="number"||options.expires.toUTCString)){var date;if(typeof options.expires=="number"){date=new Date();date.setTime(date.getTime()+(options.expires*24*60*60*1000));}else{date=options.expires;}expires="; expires="+date.toUTCString();}var path=options.path?"; path="+(options.path):"";var domain=options.domain?"; domain="+(options.domain):"";var secure=options.secure?"; secure":"";document.cookie=[name,"=",encodeURIComponent(value),expires,path,domain,secure].join("");}else{var cookieValue=null;if(document.cookie&&document.cookie!=""){var cookies=document.cookie.split(";");for(var i=0;ib;b++)if(b in this&&this[b]===a)return b;return-1};for(u={catchupTime:100,initialRate:.01,minTime:100,ghostTime:100,maxProgressPerFrame:200,easeFactor:1.25,startOnPageLoad:!0,restartOnPushState:!0,restartOnRequestAfter:100,target:"body",elements:{checkInterval:100,selectors:["body"]},eventLag:{minSamples:10,sampleCount:3,lagThreshold:3},ajax:{trackMethods:["GET"],trackWebSockets:!0,ignoreURLs:[]}},C=function(){var a;return null!=(a="undefined"!=typeof performance&&null!==performance&&"function"==typeof performance.now?performance.now():void 0)?a:+new Date},E=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame,t=window.cancelAnimationFrame||window.mozCancelAnimationFrame,null==E&&(E=function(a){return setTimeout(a,50)},t=function(a){return clearTimeout(a)}),G=function(a){var b,c;return b=C(),(c=function(){var d;return d=C()-b,d>=33?(b=C(),a(d,function(){return E(c)})):setTimeout(c,33-d)})()},F=function(){var a,b,c;return c=arguments[0],b=arguments[1],a=3<=arguments.length?X.call(arguments,2):[],"function"==typeof c[b]?c[b].apply(c,a):c[b]},v=function(){var a,b,c,d,e,f,g;for(b=arguments[0],d=2<=arguments.length?X.call(arguments,1):[],f=0,g=d.length;g>f;f++)if(c=d[f])for(a in c)Y.call(c,a)&&(e=c[a],null!=b[a]&&"object"==typeof b[a]&&null!=e&&"object"==typeof e?v(b[a],e):b[a]=e);return b},q=function(a){var b,c,d,e,f;for(c=b=0,e=0,f=a.length;f>e;e++)d=a[e],c+=Math.abs(d),b++;return c/b},x=function(a,b){var c,d,e;if(null==a&&(a="options"),null==b&&(b=!0),e=document.querySelector("[data-pace-"+a+"]")){if(c=e.getAttribute("data-pace-"+a),!b)return c;try{return JSON.parse(c)}catch(f){return d=f,"undefined"!=typeof console&&null!==console?console.error("Error parsing inline pace options",d):void 0}}},g=function(){function a(){}return a.prototype.on=function(a,b,c,d){var e;return null==d&&(d=!1),null==this.bindings&&(this.bindings={}),null==(e=this.bindings)[a]&&(e[a]=[]),this.bindings[a].push({handler:b,ctx:c,once:d})},a.prototype.once=function(a,b,c){return this.on(a,b,c,!0)},a.prototype.off=function(a,b){var c,d,e;if(null!=(null!=(d=this.bindings)?d[a]:void 0)){if(null==b)return delete this.bindings[a];for(c=0,e=[];cQ;Q++)K=U[Q],D[K]===!0&&(D[K]=u[K]);i=function(a){function b(){return V=b.__super__.constructor.apply(this,arguments)}return Z(b,a),b}(Error),b=function(){function a(){this.progress=0}return a.prototype.getElement=function(){var a;if(null==this.el){if(a=document.querySelector(D.target),!a)throw new i;this.el=document.createElement("div"),this.el.className="pace pace-active",document.body.className=document.body.className.replace(/pace-done/g,""),document.body.className+=" pace-running",this.el.innerHTML='\n
',null!=a.firstChild?a.insertBefore(this.el,a.firstChild):a.appendChild(this.el)}return this.el},a.prototype.finish=function(){var a;return a=this.getElement(),a.className=a.className.replace("pace-active",""),a.className+=" pace-inactive",document.body.className=document.body.className.replace("pace-running",""),document.body.className+=" pace-done"},a.prototype.update=function(a){return this.progress=a,this.render()},a.prototype.destroy=function(){try{this.getElement().parentNode.removeChild(this.getElement())}catch(a){i=a}return this.el=void 0},a.prototype.render=function(){var a,b,c,d,e,f,g;if(null==document.querySelector(D.target))return!1;for(a=this.getElement(),d="translate3d("+this.progress+"%, 0, 0)",g=["webkitTransform","msTransform","transform"],e=0,f=g.length;f>e;e++)b=g[e],a.children[0].style[b]=d;return(!this.lastRenderedProgress||this.lastRenderedProgress|0!==this.progress|0)&&(a.children[0].setAttribute("data-progress-text",""+(0|this.progress)+"%"),this.progress>=100?c="99":(c=this.progress<10?"0":"",c+=0|this.progress),a.children[0].setAttribute("data-progress",""+c)),this.lastRenderedProgress=this.progress},a.prototype.done=function(){return this.progress>=100},a}(),h=function(){function a(){this.bindings={}}return a.prototype.trigger=function(a,b){var c,d,e,f,g;if(null!=this.bindings[a]){for(f=this.bindings[a],g=[],d=0,e=f.length;e>d;d++)c=f[d],g.push(c.call(this,b));return g}},a.prototype.on=function(a,b){var c;return null==(c=this.bindings)[a]&&(c[a]=[]),this.bindings[a].push(b)},a}(),P=window.XMLHttpRequest,O=window.XDomainRequest,N=window.WebSocket,w=function(a,b){var c,d,e;e=[];for(d in b.prototype)try{null==a[d]&&"function"!=typeof b[d]?"function"==typeof Object.defineProperty?e.push(Object.defineProperty(a,d,{get:function(){return b.prototype[d]},configurable:!0,enumerable:!0})):e.push(a[d]=b.prototype[d]):e.push(void 0)}catch(f){c=f}return e},A=[],j.ignore=function(){var a,b,c;return b=arguments[0],a=2<=arguments.length?X.call(arguments,1):[],A.unshift("ignore"),c=b.apply(null,a),A.shift(),c},j.track=function(){var a,b,c;return b=arguments[0],a=2<=arguments.length?X.call(arguments,1):[],A.unshift("track"),c=b.apply(null,a),A.shift(),c},J=function(a){var b;if(null==a&&(a="GET"),"track"===A[0])return"force";if(!A.length&&D.ajax){if("socket"===a&&D.ajax.trackWebSockets)return!0;if(b=a.toUpperCase(),$.call(D.ajax.trackMethods,b)>=0)return!0}return!1},k=function(a){function b(){var a,c=this;b.__super__.constructor.apply(this,arguments),a=function(a){var b;return b=a.open,a.open=function(d,e,f){return J(d)&&c.trigger("request",{type:d,url:e,request:a}),b.apply(a,arguments)}},window.XMLHttpRequest=function(b){var c;return c=new P(b),a(c),c};try{w(window.XMLHttpRequest,P)}catch(d){}if(null!=O){window.XDomainRequest=function(){var b;return b=new O,a(b),b};try{w(window.XDomainRequest,O)}catch(d){}}if(null!=N&&D.ajax.trackWebSockets){window.WebSocket=function(a,b){var d;return d=null!=b?new N(a,b):new N(a),J("socket")&&c.trigger("request",{type:"socket",url:a,protocols:b,request:d}),d};try{w(window.WebSocket,N)}catch(d){}}}return Z(b,a),b}(h),R=null,y=function(){return null==R&&(R=new k),R},I=function(a){var b,c,d,e;for(e=D.ajax.ignoreURLs,c=0,d=e.length;d>c;c++)if(b=e[c],"string"==typeof b){if(-1!==a.indexOf(b))return!0}else if(b.test(a))return!0;return!1},y().on("request",function(b){var c,d,e,f,g;return f=b.type,e=b.request,g=b.url,I(g)?void 0:j.running||D.restartOnRequestAfter===!1&&"force"!==J(f)?void 0:(d=arguments,c=D.restartOnRequestAfter||0,"boolean"==typeof c&&(c=0),setTimeout(function(){var b,c,g,h,i,k;if(b="socket"===f?e.readyState<2:0<(h=e.readyState)&&4>h){for(j.restart(),i=j.sources,k=[],c=0,g=i.length;g>c;c++){if(K=i[c],K instanceof a){K.watch.apply(K,d);break}k.push(void 0)}return k}},c))}),a=function(){function a(){var a=this;this.elements=[],y().on("request",function(){return a.watch.apply(a,arguments)})}return a.prototype.watch=function(a){var b,c,d,e;return d=a.type,b=a.request,e=a.url,I(e)?void 0:(c="socket"===d?new n(b):new o(b),this.elements.push(c))},a}(),o=function(){function a(a){var b,c,d,e,f,g,h=this;if(this.progress=0,null!=window.ProgressEvent)for(c=null,a.addEventListener("progress",function(a){return a.lengthComputable?h.progress=100*a.loaded/a.total:h.progress=h.progress+(100-h.progress)/2},!1),g=["load","abort","timeout","error"],d=0,e=g.length;e>d;d++)b=g[d],a.addEventListener(b,function(){return h.progress=100},!1);else f=a.onreadystatechange,a.onreadystatechange=function(){var b;return 0===(b=a.readyState)||4===b?h.progress=100:3===a.readyState&&(h.progress=50),"function"==typeof f?f.apply(null,arguments):void 0}}return a}(),n=function(){function a(a){var b,c,d,e,f=this;for(this.progress=0,e=["error","open"],c=0,d=e.length;d>c;c++)b=e[c],a.addEventListener(b,function(){return f.progress=100},!1)}return a}(),d=function(){function a(a){var b,c,d,f;for(null==a&&(a={}),this.elements=[],null==a.selectors&&(a.selectors=[]),f=a.selectors,c=0,d=f.length;d>c;c++)b=f[c],this.elements.push(new e(b))}return a}(),e=function(){function a(a){this.selector=a,this.progress=0,this.check()}return a.prototype.check=function(){var a=this;return document.querySelector(this.selector)?this.done():setTimeout(function(){return a.check()},D.elements.checkInterval)},a.prototype.done=function(){return this.progress=100},a}(),c=function(){function a(){var a,b,c=this;this.progress=null!=(b=this.states[document.readyState])?b:100,a=document.onreadystatechange,document.onreadystatechange=function(){return null!=c.states[document.readyState]&&(c.progress=c.states[document.readyState]),"function"==typeof a?a.apply(null,arguments):void 0}}return a.prototype.states={loading:0,interactive:50,complete:100},a}(),f=function(){function a(){var a,b,c,d,e,f=this;this.progress=0,a=0,e=[],d=0,c=C(),b=setInterval(function(){var g;return g=C()-c-50,c=C(),e.push(g),e.length>D.eventLag.sampleCount&&e.shift(),a=q(e),++d>=D.eventLag.minSamples&&a=100&&(this.done=!0),b===this.last?this.sinceLastUpdate+=a:(this.sinceLastUpdate&&(this.rate=(b-this.last)/this.sinceLastUpdate),this.catchup=(b-this.progress)/D.catchupTime,this.sinceLastUpdate=0,this.last=b),b>this.progress&&(this.progress+=this.catchup*a),c=1-Math.pow(this.progress/100,D.easeFactor),this.progress+=c*this.rate*a,this.progress=Math.min(this.lastProgress+D.maxProgressPerFrame,this.progress),this.progress=Math.max(0,this.progress),this.progress=Math.min(100,this.progress),this.lastProgress=this.progress,this.progress},a}(),L=null,H=null,r=null,M=null,p=null,s=null,j.running=!1,z=function(){return D.restartOnPushState?j.restart():void 0},null!=window.history.pushState&&(T=window.history.pushState,window.history.pushState=function(){return z(),T.apply(window.history,arguments)}),null!=window.history.replaceState&&(W=window.history.replaceState,window.history.replaceState=function(){return z(),W.apply(window.history,arguments)}),l={ajax:a,elements:d,document:c,eventLag:f},(B=function(){var a,c,d,e,f,g,h,i;for(j.sources=L=[],g=["ajax","elements","document","eventLag"],c=0,e=g.length;e>c;c++)a=g[c],D[a]!==!1&&L.push(new l[a](D[a]));for(i=null!=(h=D.extraSources)?h:[],d=0,f=i.length;f>d;d++)K=i[d],L.push(new K(D));return j.bar=r=new b,H=[],M=new m})(),j.stop=function(){return j.trigger("stop"),j.running=!1,r.destroy(),s=!0,null!=p&&("function"==typeof t&&t(p),p=null),B()},j.restart=function(){return j.trigger("restart"),j.stop(),j.start()},j.go=function(){var a;return j.running=!0,r.render(),a=C(),s=!1,p=G(function(b,c){var d,e,f,g,h,i,k,l,n,o,p,q,t,u,v,w;for(l=100-r.progress,e=p=0,f=!0,i=q=0,u=L.length;u>q;i=++q)for(K=L[i],o=null!=H[i]?H[i]:H[i]=[],h=null!=(w=K.elements)?w:[K],k=t=0,v=h.length;v>t;k=++t)g=h[k],n=null!=o[k]?o[k]:o[k]=new m(g),f&=n.done,n.done||(e++,p+=n.tick(b));return d=p/e,r.update(M.tick(b,d)),r.done()||f||s?(r.update(100),j.trigger("done"),setTimeout(function(){return r.finish(),j.running=!1,j.trigger("hide")},Math.max(D.ghostTime,Math.max(D.minTime-(C()-a),0)))):c()})},j.start=function(a){v(D,a),j.running=!0;try{r.render()}catch(b){i=b}return document.querySelector(".pace")?(j.trigger("start"),j.go()):setTimeout(j.start,50)},"function"==typeof define&&define.amd?define(["pace"],function(){return j}):"object"==typeof exports?module.exports=j:D.startOnPageLoad&&j.start()}).call(this);
\ No newline at end of file
diff --git a/themes/Obsidian/js/tip.min.js b/themes/Obsidian/js/tip.min.js
new file mode 100644
index 00000000..1b95c68e
--- /dev/null
+++ b/themes/Obsidian/js/tip.min.js
@@ -0,0 +1,6 @@
+// tipsy, facebook style tooltips for jquery
+// version 1.0.0a
+// (c) 2008-2010 jason frame [jason@onehackoranother.com]
+// released under the MIT license
+
+(function(c){function b(e,d){return(typeof e=="function")?(e.call(d)):e}function a(e,d){this.$element=c(e);this.options=d;this.enabled=true;this.fixTitle()}a.prototype={show:function(){var g=this.getTitle();if(g&&this.enabled){var f=this.tip();f.find(".tipsy-inner")[this.options.html?"html":"text"](g);f[0].className="tipsy";f.remove().css({top:0,left:0,visibility:"hidden",display:"block"}).prependTo(document.body);var j=c.extend({},this.$element.offset(),{width:this.$element[0].offsetWidth,height:this.$element[0].offsetHeight});var d=f[0].offsetWidth,i=f[0].offsetHeight,h=b(this.options.gravity,this.$element[0]);var e;switch(h.charAt(0)){case"n":e={top:j.top+j.height+this.options.offset,left:j.left+j.width/2-d/2};break;case"s":e={top:j.top-i-this.options.offset,left:j.left+j.width/2-d/2};break;case"e":e={top:j.top+j.height/2-i/2,left:j.left-d-this.options.offset};break;case"w":e={top:j.top+j.height/2-i/2,left:j.left+j.width+this.options.offset};break}if(h.length==2){if(h.charAt(1)=="w"){e.left=j.left+j.width/2-15}else{e.left=j.left+j.width/2-d+15}}f.css(e).addClass("tipsy-"+h);f.find(".tipsy-arrow")[0].className="tipsy-arrow tipsy-arrow-"+h.charAt(0);if(this.options.className){f.addClass(b(this.options.className,this.$element[0]))}if(this.options.fade){f.stop().css({opacity:0,display:"block",visibility:"visible"}).animate({opacity:this.options.opacity})}else{f.css({visibility:"visible",opacity:this.options.opacity})}}},hide:function(){if(this.options.fade){this.tip().stop().fadeOut(function(){c(this).remove()})}else{this.tip().remove()}},fixTitle:function(){var d=this.$element;if(d.attr("title")||typeof(d.attr("original-title"))!="string"){d.attr("original-title",d.attr("title")||"").removeAttr("title")}},getTitle:function(){var f,d=this.$element,e=this.options;this.fixTitle();var f,e=this.options;if(typeof e.title=="string"){f=d.attr(e.title=="title"?"original-title":e.title)}else{if(typeof e.title=="function"){f=e.title.call(d[0])}}f=(""+f).replace(/(^\s*|\s*$)/,"");return f||e.fallback},tip:function(){if(!this.$tip){this.$tip=c('
').html('
')}return this.$tip},validate:function(){if(!this.$element[0].parentNode){this.hide();this.$element=null;this.options=null}},enable:function(){this.enabled=true},disable:function(){this.enabled=false},toggleEnabled:function(){this.enabled=!this.enabled}};c.fn.tipsy=function(h){if(h===true){return this.data("tipsy")}else{if(typeof h=="string"){var j=this.data("tipsy");if(j){j[h]()}return this}}h=c.extend({},c.fn.tipsy.defaults,h);function g(l){var m=c.data(l,"tipsy");if(!m){m=new a(l,c.fn.tipsy.elementOptions(l,h));c.data(l,"tipsy",m)}return m}function k(){var l=g(this);l.hoverState="in";if(h.delayIn==0){l.show()}else{l.fixTitle();setTimeout(function(){if(l.hoverState=="in"){l.show()}},h.delayIn)}}function f(){var l=g(this);l.hoverState="out";if(h.delayOut==0){l.hide()}else{setTimeout(function(){if(l.hoverState=="out"){l.hide()}},h.delayOut)}}if(!h.live){this.each(function(){g(this)})}if(h.trigger!="manual"){var d=h.live?"live":"bind",i=h.trigger=="hover"?"mouseenter":"focus",e=h.trigger=="hover"?"mouseleave":"blur";this[d](i,k)[d](e,f)}return this};c.fn.tipsy.defaults={className:null,delayIn:0,delayOut:0,fade:true,fallback:"",gravity:"n",html:false,live:false,offset:0,opacity:0.8,title:"title",trigger:"hover"};c.fn.tipsy.elementOptions=function(e,d){return c.metadata?c.extend({},d,c(e).metadata()):d};c.fn.tipsy.autoNS=function(){return c(this).offset().top>(c(document).scrollTop()+c(window).height()/2)?"s":"n"};c.fn.tipsy.autoWE=function(){return c(this).offset().left>(c(document).scrollLeft()+c(window).width()/2)?"e":"w"};c.fn.tipsy.autoBounds=function(e,d){return function(){var f={ns:d[0],ew:(d.length>1?d[1]:false)},i=c(document).scrollTop()+e,g=c(document).scrollLeft()+e,h=c(this);if(h.offset().top
+
+
+
+
+
+ %title%
+
+
+
+ %header_code%
+
+
+
+
+
+
+
+
+
+
+
+
+ %meta%
+ %body%
+
+
+
+
diff --git a/themes/Obsidian/modules/TS3Admin/TS3Admin.css b/themes/Obsidian/modules/TS3Admin/TS3Admin.css
new file mode 100644
index 00000000..007624e6
--- /dev/null
+++ b/themes/Obsidian/modules/TS3Admin/TS3Admin.css
@@ -0,0 +1,126 @@
+.clear {
+ clear: both;
+}
+
+.main-content{
+ border:none;
+}
+
+div.main-content a{
+ text-decoration:none;
+}
+
+a, a:link, a:hover, a:active, a:visited {
+ text-decoration:none;
+}
+table,.table0 {
+ font-family: 'Open Sans', sans-serif;
+ margin: 10px 0 15px;
+ text-align: left;
+ border-collapse: collapse;
+ border-spacing: 1px;
+ border: 1px solid #0F1A26 !important;
+}
+
+table tr:nth-child(1) td,.table0 {
+ background-color: #0F1A26 !important;
+ font-size: 10pt;
+ padding: 6px 5px !important;
+}
+#serverview {
+ border: 1px solid #0F1A26 !important;
+}
+input[type="submit"] {
+ outline: none !important;
+}
+tr,.table2 {
+ color: #fff;
+ padding: 6px 4px !important;
+ background-color: #162535 !important;
+}
+
+td {
+ padding: 5px 8px;
+ color: #fff;
+ border-bottom: 1px solid #0F1A26 !important;
+}
+select
+ {
+ background: rgba(29,50,72,0.501) !important;
+ padding: 2px;
+ border: 1px solid rgba(21,37,54,0.501) !important;
+ color: #fff;
+}
+input, textarea, select {
+ font-family: 'Open Sans', sans-serif;
+font-size: 13px;
+}
+.online {
+
+ background-color: #20aa52;
+ display: inline;
+ padding: .2em .6em .3em;
+ font-size: 78%;
+ font-weight: 700;
+ line-height: 2.5;
+ color: #fff !important;
+ text-align: center;
+ white-space: nowrap;
+ vertical-align: baseline;
+ border-radius: .25em;
+ position: relative;
+ top: -2px;
+}
+.offline {
+ background-color: #dd4b39;
+ display: inline;
+ padding: .2em .6em .3em;
+ font-size: 78%;
+ font-weight: 700;
+ line-height: 2.5;
+ color: #fff !important;
+ text-align: center;
+ white-space: nowrap;
+ vertical-align: baseline;
+ border-radius: .25em;
+ position: relative;
+ top: -2px;
+}
+h1, h2, h3, h4 {
+ font-family: 'Open Sans', sans-serif !important;
+}
+input,select {
+ outline: none !important;
+}
+textarea,input[type=file] {
+ border: 1px solid #121c32 !important;
+ background-color: rgba(29,50,72,0.501) !important;
+ padding: 3px 7px;
+ margin: 0px 0px 5px 0px;
+}
+legend {
+ font-family: 'Open Sans', sans-serif !important;
+ font-size: 15px !important;
+ letter-spacing: 1px;
+ padding: 0px 6px 0px 0px !important;
+ margin: -21px 4px 0px 4px !important;
+ border-bottom: 1px solid #575757;
+}
+fieldset {
+ border: 1px solid #575757;
+ margin: 40px 10px 10px 10px;
+ padding: 12px;
+}
+.propHeadline {
+ /*! font-size: 15px !important; */
+ color: #fff !important;
+ border-bottom: none !important;
+ margin: 5px 0px 2px 0px !important;
+ padding: 0px 0px 0px 0px !important;
+ font-family: 'Open Sans', sans-serif !important;
+}
+img[style="visibility:hidden;"] {
+ display: none;
+}img[style="visibility:visible;"] {
+ display: inline-block;
+}
\ No newline at end of file
diff --git a/themes/Obsidian/modules/addonsmanager/addons_manager.css b/themes/Obsidian/modules/addonsmanager/addons_manager.css
new file mode 100644
index 00000000..6c6d20b5
--- /dev/null
+++ b/themes/Obsidian/modules/addonsmanager/addons_manager.css
@@ -0,0 +1,33 @@
+input[name="edit"] {
+background-color: #f1c40f !important;
+border: 2px solid #f1c40f !important;
+}
+input[name="edit"]:hover {
+background-color: #f39c12 !important;
+border: 2px solid #f39c12 !important;
+}
+input[name="edit"]:active,input[name="remove"]:active {
+ border: 2px solid #204d74 !important;
+ background: #204d74 !important;
+}
+
+input[name="remove"] {
+background-color: #e74c3c !important;
+border: 2px solid #e74c3c !important;
+}
+input[name="remove"]:hover {
+background-color: #c0392b !important;
+border: 2px solid #c0392b !important;
+}
+table.center:nth-last-child(2) > tbody > tr > td:nth-child(3) {
+ background-color: #20aa52;
+ display: inline;
+ padding: .2em .6em .3em;
+ font-size: 78%;
+ font-weight: 700;
+ line-height: 3;
+ color: #fff;
+ text-align: center;
+ border-radius: .25em;
+ top: -2px;
+}
\ No newline at end of file
diff --git a/themes/Obsidian/modules/administration/main.css b/themes/Obsidian/modules/administration/main.css
new file mode 100644
index 00000000..bf9b60e5
--- /dev/null
+++ b/themes/Obsidian/modules/administration/main.css
@@ -0,0 +1 @@
+div.administration-buttons a:before{content:"\f29c";transition:all .3s ease-in}div.administration-buttons a[href="?m=addonsmanager&p=addons_manager"]:before{content:"\f055"}div.administration-buttons a[href="?m=extras"]:before{content:"\f06b"}div.administration-buttons a[href="?m=ftp&p=ftp_admin"]:before{content:"\f07b"}div.administration-buttons a[href="?m=user_games"]:before{content:"\f11b"}div.administration-buttons a[href="?m=config_games"]:before{content:"\f0c3"}div.administration-buttons a[href="?m=user_admin&p=show_groups"]:before{content:"\f0c0"}div.administration-buttons a[href="?m=lgsl_with_img_mod&p=lgsl_admin"]:before{content:"\f080"}div.administration-buttons a[href="?m=litefm&p=litefm_settings"]:before{content:"\f085"}div.administration-buttons a[href="?m=modulemanager"]:before{content:"\f12e"}div.administration-buttons a[href="?m=settings"]:before{content:"\f013"}div.administration-buttons a[href="?m=server"]:before{content:"\f17c"}div.administration-buttons a[href="?m=settings&p=themes"]:before{content:"\f009"}div.administration-buttons a[href="?m=update"]:before{content:"\f0ac"}div.administration-buttons a[href="?m=user_admin"]:before{content:"\f234"}div.administration-buttons a[href="?m=administration&p=watch_logger"]:before{content:"\f15c"}div.administration-buttons a[href="?m=mysql&p=mysql_admin"]:before{content:"\f1c0"}div.administration-buttons a[href="?m=administration&p=banlist"]:before{content:"\f05e"}div.administration-buttons a[href="?m=dsi&p=admin_dsi"]:before{content:"\f03e"}div.administration-buttons a[href="?m=simple-billing&p=orders"]:before{content:"\f217"}div.administration-buttons a[href="?m=rcon&p=rcon"]:before{content:"\f069"}div.administration-buttons a[href="?m=simple-billing&p=services"]:before{content:"\f218"}div.administration-buttons a[href="?m=simple-billing&p=shop_settings"]:before{content:"\f07a"}div.administration-buttons a[href="?m=news&p=admin_news"]:before{content:"\f1ea"}div.administration-buttons a[href="?m=cron&p=cron"]:before{content:"\f1da"}div.administration-buttons a[href="?m=fast_download"]:before{content:"\f019"}div.administration-buttons a[href="?m=faq"]::before{content:"\f02d"}div.administration-buttons:hover a{color:#37b799!important}div.administration-buttons:hover a:before{background-color:#37b799;color:#fff;transition:all .3s ease-in}div.administration-buttons a:before{font:normal normal normal 2.5em/1 FontAwesome;display:block;text-align:center;margin-bottom:8px!important;background-color:#fff;color:#37b799;border-radius:90%;width:70px;height:70px;line-height:70px;margin-left:auto;margin-right:auto}div.administration-buttons{padding:20px 20px 10px;transition:all .3s ease-in;-webkit-transition:all .3s ease-in;width:125px;height:100px;text-align:center;display:inline-block;margin:1.5% 2%;background-color:#37b799;border-radius:3px}div.administration-buttons:hover{transition:all 300ms;-webkit-transition:all .5s ease-out;background-color:#fff;border-radius:2px;text-decoration:none;cursor:pointer;-webkit-transform:scale(1.1);-ms-transform:scale(1.1);transform:scale(1.1)}div.administration-buttons a{text-decoration:none;color:#fff!important;font-weight:400!important}button[name=restore]{background-color:#f1c40f!important;border:2px solid #f1c40f!important}button[name=restore]:hover{background-color:#f39c12!important;border:2px solid #f39c12!important}button[name=restore]:active{border:2px solid #204d74!important;background:#204d74!important}
\ No newline at end of file
diff --git a/themes/Obsidian/modules/administration/main.js b/themes/Obsidian/modules/administration/main.js
new file mode 100644
index 00000000..0a844818
--- /dev/null
+++ b/themes/Obsidian/modules/administration/main.js
@@ -0,0 +1,19 @@
+jQuery(function($){
+ $('a.administration-buttons').each(function() {
+ $(this).find("img").remove();
+ $(this).find("br").remove();
+ var button_title = $(this).find("div").html();
+ $(this).find("div").remove();
+ $(this).append(button_title);
+ $(this).wrapAll('');
+ $(this).removeClass("administration-buttons");
+ });
+ var admin_table = ".administration-table:first";
+ $(admin_table).find('td').contents().unwrap();//Removing all Td tags
+ $("td.administration-buttons-hmargin").remove();
+ $(admin_table).find('tr').contents().unwrap();//Removing all Td tags
+ $(admin_table).find('tbody').contents().unwrap();//Removing all Td tags
+ $(admin_table).find('td').remove();//Removing all Td tags
+ $(admin_table).contents().wrapAll('
');
+ $(admin_table).replaceWith($(admin_table).contents());
+});
\ No newline at end of file
diff --git a/themes/Obsidian/modules/administration/watch_logger.css b/themes/Obsidian/modules/administration/watch_logger.css
new file mode 100644
index 00000000..7960be3e
--- /dev/null
+++ b/themes/Obsidian/modules/administration/watch_logger.css
@@ -0,0 +1,11 @@
+.remove_log:before {
+ font: normal normal normal 14px/1 FontAwesome;
+ content: "\f00d";
+ color: #e74c3c;
+ cursor: pointer;
+}
+.remove_log,.remove_log:hover,.remove_log:active {
+ padding: 2px 1px 0px 1px;
+ background-color: transparent !important;
+ border: none !important;
+}
\ No newline at end of file
diff --git a/themes/Obsidian/modules/administration/watch_logger.js b/themes/Obsidian/modules/administration/watch_logger.js
new file mode 100644
index 00000000..d3d869bb
--- /dev/null
+++ b/themes/Obsidian/modules/administration/watch_logger.js
@@ -0,0 +1,3 @@
+$(document).ready(function() {
+$('input[src="modules/administration/images/remove.gif"]').replaceWith('
');
+});
diff --git a/themes/Obsidian/modules/cron/user_cron.css b/themes/Obsidian/modules/cron/user_cron.css
new file mode 100644
index 00000000..fb789f76
--- /dev/null
+++ b/themes/Obsidian/modules/cron/user_cron.css
@@ -0,0 +1,10 @@
+pre.log{
+ padding-top:10px;
+ padding-left:5px;
+ background-color:#43a8c7 !important;
+}
+
+.log{
+ border-color:#379bb9;
+ margin-bottom:15px;
+}
diff --git a/themes/Obsidian/modules/dashboard/dashboard.css b/themes/Obsidian/modules/dashboard/dashboard.css
new file mode 100644
index 00000000..956ec4cb
--- /dev/null
+++ b/themes/Obsidian/modules/dashboard/dashboard.css
@@ -0,0 +1,99 @@
+.main-content {
+ background:transparent;
+ border:none;
+ border-radius:0px;
+ -moz-border-radius:0px;
+ box-shadow: none;
+}
+#column2 #ref.online_servers div{
+ float:left;
+ text-align:left;
+ width:35%;
+ height:15px;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ -o-text-overflow: ellipsis;
+ -moz-binding: url('assets/xml/ellipsis.xml#ellipsis');
+}
+#column2 #ref.online_servers div#gamelink{
+ width:36%;
+ float:right;
+ text-align:right;
+}
+#column2 #ref.online_servers div.name{
+ width:29%;
+ height:18px;
+ white-space:nowrap;
+}
+#column2 #noref.online_servers div#gamelink{
+ float:right;
+ text-align:right;
+ width:40%;
+ height:18px;
+ overflow: hidden;
+}
+#column2 #noref.online_servers div.name{
+ float:left;
+ text-align:left;
+ width:57%;
+ height:18px;
+ overflow: hidden;
+}
+
+.bloc {
+box-shadow: 0 1px 1px rgba(0,0,0,0.1) !important;
+background-color: #152536 !important;
+}
+.progress {
+display: -webkit-box;
+display: -webkit-flex;
+display: -ms-flexbox;
+display: flex;
+overflow: hidden;
+font-size: .75rem;
+line-height: 1rem;
+text-align: center;
+background-color: rgba(28,50,74,0.701) !important;
+border-radius: 2px;
+border: none !important;
+}
+.progress .progress-bar {
+background: #37b799 !important;
+height: 1rem !important;
+color: #fff;
+font-size: .75rem;
+line-height: 1rem;
+text-align: center;
+}
+#refreshed-0 > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > center > b {
+font-weight: 400;
+}
+
+.ui-sortable-handle {
+ cursor: move;
+}
+
+
+/*Responsive*/
+@media(max-width:810px) {
+ .column {
+ width: 100%;
+ margin: 0%;
+ min-height: 0px !important;
+ }
+ .column .dragbox {
+ margin-bottom: 1%;
+ }
+ #column4 {
+width: 100% !important;
+margin-left: 0px !important;
+ }
+ #column4:nth-child(1) {
+margin-top: 8px !important;
+ }
+}
+@media(max-width:600px) {
+ .main-content {
+ padding: 0.1px;
+ }
+}
\ No newline at end of file
diff --git a/themes/Obsidian/modules/dashboard/dashboard.js b/themes/Obsidian/modules/dashboard/dashboard.js
new file mode 100644
index 00000000..0cb9892c
--- /dev/null
+++ b/themes/Obsidian/modules/dashboard/dashboard.js
@@ -0,0 +1 @@
+jQuery(function(a){if(a("#item3")[0]){a("head").append('
');a(".main-content").prepend('
');a(".awesome-sv").before('
Online Servers
');if(a(".callout")[0]){a(".callout").prependTo(".main-content")}a("#item2").hide();a(document).ajaxStop(function(){a(".awesome-sv").html("");var d=a("#item2 div center:last div:last").text();if(d.length>0){var b='
'+d+" ";a("#item2 div center:last div:last").text("")}else{var b=""}var c=a("#item2 div center:last").text().replace("Statistics:","");a(".online_sv_title span").html('
'+c+" "+b);if(a(".online_servers > tbody tr td > div:nth-child(1)")[0]&&(a(".online_servers > tbody tr td > div:nth-child(1)").html().length>0)){a(".online_servers > tbody tr").each(function(){var g=a(this).find("td > div:nth-child(1)");var q=a(g).find("div.name").text();var p=a(g).find("div.name a").attr("href");var o=p.split("-")[3].split("=")[1];var h=p.split("-")[4];var j=p.split("-")[5];var l=p.split("-")[6];var s="?m=gamemanager&p=stop&home_id="+o+"&mod_id="+h+"&ip="+j+"&port="+l;var i="?m=gamemanager&p=restart&home_id="+o+"&mod_id="+h+"&ip="+j+"&port="+l;var f=a(g).find("div:nth-child(2) div").text();var k=f.indexOf("[")+1;var r=f.indexOf("/",k);var n=f.substring(k,r);var k=f.indexOf("/")+1;var r=f.indexOf("]",k);var t=f.substring(k,r);var f=a(g).find("div:nth-child(2) div").text().replace("[","").replace("]","");a(g).find("div:nth-child(2) div").remove();var e=a(g).find("div:nth-child(2)").text();var m=a(g).find("#gamelink").text();if(e.length>1){}else{e="Unknown"}a(".awesome-sv").append('
')})}})}});
\ No newline at end of file
diff --git a/themes/Obsidian/modules/dashboard/server_info.css b/themes/Obsidian/modules/dashboard/server_info.css
new file mode 100644
index 00000000..affb0126
--- /dev/null
+++ b/themes/Obsidian/modules/dashboard/server_info.css
@@ -0,0 +1 @@
+#refreshed-15>div:nth-child(1)>div:nth-child(1)>div:nth-child(2)>center>b{font-weight:300}.bg-green{background-color:#37b799!important;color:#fff!important;border-radius:2px;width:32.7%;display:inline-block;margin:.3%}@media(max-width:1060px){.bg-green{width:49%}}@media(max-width:770px){.bg-green{width:99%}}.info-box-icon{border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px;display:block;float:left;height:80px;width:80px;text-align:center;font-size:45px;line-height:90px;background:rgba(0,0,0,0.2)}.info-box-content{padding:5px 10px;margin-left:90px;padding-left:0}.info-box-text{/*! text-transform: uppercase; */}.progress-description,.info-box-text{display:block;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.info-box-number{display:block;font-weight:400;font-size:15px}.info-box .players,.info-box .players .players-bar{border-radius:0}.info-box .players{background:#fff!important;margin:5px 0 5px 0;height:2px}.info-box .players .players-bar{background:#248e75}.players-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-description{margin:0}.progress-description,.info-box-text{display:block;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:300}.sv_name{float:left;color:#fff!important;font-weight:300!important;width:50%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sv_ip{float:right;max-width:50%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.max_players{float:right}.info-box-icon i{margin-top:15px}.online_sv_title{font-size:30px;font-weight:300;padding-bottom:5px}.stats_sv{font-size:11px;vertical-align:middle;background-color:#20aa52;padding:.2em .6em .3em;font-weight:normal;line-height:1.3;border-radius:4px!important;margin-left:1%;display:inline-block}.currently-online>tbody:nth-child(1) tr td[style="text-align:left;"]{font-weight:bold!important}.currently-online>tbody:nth-child(1) tr td{color:#fff!important;margin:auto;text-align:left!important}.currently-online>tbody:nth-child(1) tr td:before{content:"- "}.currently-online>tbody:nth-child(1) tr td[style="text-align:left;"]:before{content:""!important}.progress-description a:before{font:normal normal normal 14px/1 FontAwesome;margin-right:5px;margin-left:10px}.progress-description a{color:#fff!important;font-weight:300!important}.sv_stop:before{content:"\f04d"}.sv_restart:before{content:"\f01e"}
\ No newline at end of file
diff --git a/themes/Obsidian/modules/extras/extras.css b/themes/Obsidian/modules/extras/extras.css
new file mode 100644
index 00000000..50567fe0
--- /dev/null
+++ b/themes/Obsidian/modules/extras/extras.css
@@ -0,0 +1,67 @@
+.install {
+ color: #3498db !important;
+}
+.remove {
+ color: #e74c3c !important;
+}
+b[style="color:red;"] {
+ color: #bdc3c7 !important;
+}
+.search {
+ color: #e67e22 !important;
+}
+b[style="color:orange;"] {
+ color: #f1c40f !important;
+}
+b[style="color:green;"] {
+ color: #1abc9c !important;
+}
+.uninstall {
+ color: #673AB7 !important;
+}
+
+h2 {
+ text-align: left !important;
+ font-weight: 300 !important;;
+ font-size: 35px;
+ background-color: transparent;
+ margin-left: 0%;
+}
+.main-content {
+ background-color: transparent !important;
+ box-shadow: none !important;
+}
+
+h4 {
+ background: #0F1A26 !important;
+}
+
+.bloc {
+ background-color: #162535 !important;
+ width: 46%;
+ margin: 0% !important;
+}
+div.dragbox:nth-child(3) {
+float: left;
+}
+div.dragbox:nth-child(4) {
+float: right;
+}
+button[name="update"] {
+ margin-top: 20px;
+}
+#updateButton {
+width: 100%;
+float: left;
+text-align: center;
+}
+
+/*Responsive*/
+@media(max-width:1100px) {
+ .bloc {
+ width: 96%;
+ position: relative;
+ float: left !important;
+ margin-bottom: 20px !important;
+ }
+}
\ No newline at end of file
diff --git a/themes/Obsidian/modules/extras/extras.js b/themes/Obsidian/modules/extras/extras.js
new file mode 100644
index 00000000..42914457
--- /dev/null
+++ b/themes/Obsidian/modules/extras/extras.js
@@ -0,0 +1,7 @@
+jQuery(function($){
+ var admin_table = ".main-content";
+ $(admin_table).find('td').contents().unwrap();//Removing all Td tags
+ $(admin_table).find('tr').contents().unwrap();//Removing all Td tags
+ $(admin_table).find('tbody').contents().unwrap();//Removing all Td tags
+ $(admin_table).find('table').contents().unwrap();//Removing all Td tags
+});
\ No newline at end of file
diff --git a/themes/Obsidian/modules/faq/faq.css b/themes/Obsidian/modules/faq/faq.css
new file mode 100644
index 00000000..8ca8750f
--- /dev/null
+++ b/themes/Obsidian/modules/faq/faq.css
@@ -0,0 +1 @@
+#content{border-radius:9px;-moz-border-radius:9px;background:#505050;margin:0 auto;text-align:left}.accordion-toggle{cursor:pointer;background-color:rgba(13,23,35,0.6);border:1px solid #0a121a;font-size:14px!important;padding-right:10px;padding-left:10px;padding-top:10px;padding-bottom:10px;margin-bottom:4px;color:#eee!important}.faqanswer{background-color:#0d1721;font-size:14px;padding-right:10px;padding-left:10px;padding-top:10px;padding-bottom:20px;color:#eee!important}.accordion-content{display:none;margin-bottom:4px}.accordion-content.default{display:block}.category{font-size:15px;color:#eee!important}.maincategory{background-color:rgba(15,26,38,0.501);padding-top:10px;padding-bottom:12px;padding-left:10px;padding-right:10px;margin-top:20px;margin-bottom:15px;font-size:17px;border-radius:3px}.category{background-color:#0b131d;padding-top:5px;padding-bottom:5px;padding-left:10px;padding-right:10px;margin-top:16px;margin-bottom:3px;font-size:17px;border-radius:3px 3px 0 0}li.faqblock{display:inline;margin-right:5px;margin-left:5px}a.faqcategory{padding-top:5px;padding-bottom:5px;padding-left:10px;padding-right:10px;border:1px solid #0f1a26;background-color:#0f1a26;border-radius:3px;color:#ededed!important}img{max-width:99.7%;height:auto;width:auto;/*! margin-top:10px; *//*! margin-bottom:10px; */}img.headerimage{height:15px;width:15px;margin-top:0;margin-bottom:0;padding-right:5px}p{background-color:#f5f5f5;border:1px solid #c2c2c2;padding-top:5px;padding-bottom:5px;padding-left:10px;padding-right:10px;color:#fff;width:60px;cursor:pointer;-moz-border-radius:3px;border-radius:3px;text-transform:uppercase;text-decoration:none!important}.main-content .footer{margin-top:40px;padding:15px;color:#eee!important;background-color:rgba(15,26,38,0.501);height:140px;border-radius:3px}.footerimg{border-radius:3px;padding:10px;color:#eee!important;background-color:rgba(15,26,38,0.501);margin-top:10px}.imagetext{color:#eee}.credittext{padding-top:5px;padding-bottom:5px;padding-left:10px;padding-right:10px;border:1px solid #0f1a26;border-radius:3px;margin-top:10px;background-color:rgba(15,26,38,0.501)}span.hilite1{background:yellow}#accordion{margin-top:40px}h2{/*! background-color:#DDDDDD; */}.page,.main-content{text-align:left!important}blockquote{background:#091018;border-left:10px solid #090f17;margin:0;padding:.5em 10px;quotes:"\201C""\201D""\2018""\2019"}blockquote:before{color:#ccc;content:open-quote;font-size:2em;line-height:.1em;vertical-align:-0.4em}blockquote p{display:inline}blockquote:after{color:#ccc;content:close-quote;font-size:2em;line-height:.1em;vertical-align:-0.4em}i#count{display:block;float:right;width:30px}
\ No newline at end of file
diff --git a/themes/Obsidian/modules/ftp/ftp.css b/themes/Obsidian/modules/ftp/ftp.css
new file mode 100644
index 00000000..c5038b45
--- /dev/null
+++ b/themes/Obsidian/modules/ftp/ftp.css
@@ -0,0 +1,10 @@
+.ftp-login {
+ text-align: center;
+ width: 100%;
+ border: 1px solid rgba(0,0,0,0.301);
+ background-color: rgba(0,0,0,0.301);
+}
+#ftp_iframe {
+border: 1px solid #0F1A26;
+margin-top: 20px;
+}
\ No newline at end of file
diff --git a/themes/Obsidian/modules/ftp/ftp.js b/themes/Obsidian/modules/ftp/ftp.js
new file mode 100644
index 00000000..1c030713
--- /dev/null
+++ b/themes/Obsidian/modules/ftp/ftp.js
@@ -0,0 +1,19 @@
+ $(document).ready(function(){
+ $('iframe').attr('id', 'ftp_iframe');
+ $('iframe').load(function() {
+ $(this).contents().find('table[style="text-align:center;width:100%;border:1px solid black;background-image:url(../../themes/Revolution/images/wrapper-bg.png);"]').addClass("ftp-login").removeAttr("style");
+ if($(this).contents().find('#LoginForm').length > 0) {
+ var ftp_css = '
';
+ } else {
+ var ftp_css = '
';
+ }
+ var style = '
';
+ //var ftp_js = '
';
+ $(this).contents().find("head").append(style + ftp_css);
+ $(this).contents().find('img[src*="images/mime/folder.png"]').attr('src', '../../themes/Obsidian/images/folder.png');
+ $(this).contents().find('img[src*="images/mime/document.png"]').attr('src', '../../themes/Obsidian/images/file.png');
+ $(this).contents().find('img[src*="images/mime/mime.png"]').attr('src', '../../themes/Obsidian/images/mime.png');
+ $(this).contents().find('img[src*="images/mime/exec.png"]').attr('src', '../../themes/Obsidian/images/exec.png');
+ $(this).contents().find('img[src*="images/mime/terminal.png"]').attr('src', '../../themes/Obsidian/images/code.png');
+ });
+ });
\ No newline at end of file
diff --git a/themes/Obsidian/modules/ftp/ftps.css b/themes/Obsidian/modules/ftp/ftps.css
new file mode 100644
index 00000000..83cb5cf2
--- /dev/null
+++ b/themes/Obsidian/modules/ftp/ftps.css
@@ -0,0 +1,87 @@
+#wrapper {
+ border-left: none !important;
+}
+#main {
+ background: #162535;
+}
+span.title {
+ margin: 5px;
+ position: absolute;
+}
+.smallbutton,td[onclick*="'view'"] a,td[onclick*="'edit'"] a {
+ padding: 4px 8px;
+ border-radius: 2px;
+ cursor: pointer;
+ margin: 0 2px;
+ color: #fff !important;
+ background-color: #37b799;
+ border-color: #37b799;
+ border: 2px solid #37b799;
+ font-size: 12px;
+ font-weight: normal !important;
+}
+.smallbutton:hover,td[onclick*="'view'"] a:hover,td[onclick*="'edit'"] a:hover {
+ border: 2px solid #248E75;
+ background: #248E75 !important;
+ color: #eee;
+ border-radius: 2px;
+}
+.smallbutton:active,td[onclick*="'view'"] a:active,td[onclick*="'edit'"] a:active {
+ background-color:#204d74 !important;
+ border-color: #204d74;
+}
+.browse_rows_heading td a {
+ text-decoration: none !important;
+ color: #10c5b8;
+}
+#content {
+ width: auto !important;
+ margin: auto !important;
+}
+.browse_rows_actions > td:nth-child(1) > table:nth-child(1) > tbody:nth-child(1) > tr:nth-child(1) > td:nth-child(2) {
+ font-size: 12px;
+}
+.browse_rows_odd, .browse_rows_even {
+ font-size: 13px;
+}
+#content > div:nth-child(6) > div:nth-child(3) {
+ font-size: 13px!important;
+margin-top: auto !important;
+margin-left: auto !important;
+padding: 20px;
+background: #0F1A26;
+}
+.code span {
+ color: #000;
+ margin-right: 20px;
+}
+table {
+ font-family: 'Open Sans', sans-serif;
+ margin: 10px 0 15px;
+ width: 100%;
+ text-align: left;
+ border-collapse: collapse;
+ border-spacing: 1px;
+ border: 1px solid #0F1A26 !important;
+}
+
+.browse_rows_heading td {
+ background-color: #0F1A26;
+ font-size: 10pt;
+ padding: 6px 5px;
+}
+
+tr {
+ color: #fff;
+ padding: 6px 4px;
+ background-color: #162535 !important;
+}
+
+tr:hover,.browse_rows_actions,.browse_rows_actions tr td{
+ background-color: #111F2D !important;
+}
+td {
+ padding: 5px 8px;
+ color: #fff;
+ border-bottom: 1px solid #0F1A26;
+}
\ No newline at end of file
diff --git a/themes/Obsidian/modules/ftp/main.js b/themes/Obsidian/modules/ftp/main.js
new file mode 100644
index 00000000..a8531193
--- /dev/null
+++ b/themes/Obsidian/modules/ftp/main.js
@@ -0,0 +1,5 @@
+$(document).ready(function() {
+ $('table[style="text-align:center;width:100%;border:1px solid black;background-image:url(../../themes/Revolution/images/wrapper-bg.png);"]').addClass("ftp-login");
+ $("ftp-login").removeAttr("style");
+
+ });
\ No newline at end of file
diff --git a/themes/Obsidian/modules/ftp/skins/blue/css/main.css.php b/themes/Obsidian/modules/ftp/skins/blue/css/main.css.php
new file mode 100644
index 00000000..20b84cd4
--- /dev/null
+++ b/themes/Obsidian/modules/ftp/skins/blue/css/main.css.php
@@ -0,0 +1,400 @@
+
+/* CSS document colors
+#003250
+#5893ac
+#bbd2e0
+#F2F2F5
+#A7A7A7
+#787878
+*/
+
+* {
+ padding: 0;
+ margin: 0;
+}
+
+body {
+ background-color: #162535;
+ font-family: 'Lucida Grande', Verdana, Arial, Sans-Serif;
+ color: #fff;
+ text-align: center;
+}
+
+#container {
+ margin-left: auto;
+ margin-right: auto;
+ margin-top: 10px;
+ margin-bottom: 20px;
+ width: 980px;
+ font-size: 1.2em;
+ text-align: left;
+}
+
+#head {
+ padding-top: 20px;
+ padding-left: 20px;
+ padding-right: 20px;
+ padding-bottom: 20px;
+ height: 62px;
+ background: url(http://hmrworld.tk/panel/modules/ftp/skins/blue/images/img/bg_head.jpg) no-repeat;
+}
+
+#headleft {
+ float:left;
+}
+
+#headright {
+ float:right;
+ width:470px;
+}
+
+#headright h2 {
+ color: #FFF;
+}
+
+#main {
+ background: #F2F2F5;
+ padding: 10px;
+}
+
+#menu {
+ width: 200px;
+ float: left;
+}
+
+.menuhead {
+ background: url(http://hmrworld.tk/panel/modules/ftp/skins/blue/images/img/bg_tabletop.png);
+ height: 18px;
+ width: 200px;
+ color: #FFF;
+ padding-top: 2px;
+ font-weight: bold;
+ text-align: center;
+}
+
+.menucontent {
+ background: #bbd2e0;
+ color: #003250;
+ width: 193px;
+ padding-left: 5px;
+ padding-top: 10px;
+ padding-bottom: 10px;
+ border-bottom: solid 1px #003250;
+ border-left: solid 1px #003250;
+ border-right: solid 1px #003250;
+}
+
+#content {
+ margin-left: 10px;
+ width: 750px;
+ float: right;
+}
+
+#mainleft {
+ float:left;
+ width: 465px;
+}
+
+#mainright {
+ float: right;
+ width: 485px;
+ margin-left: 10px;
+}
+
+#tabelfeaturestop {
+ padding-left: 10px; background-color: #003250; height: 21px; color:#FFF; padding-top:5px;
+}
+
+#tablefeature {
+ background: #bbd2e0;
+ border-left: #003250 1px solid;
+ border-right: #003250 1px solid;
+ border-bottom: #003250 1px solid;
+ padding: 2px;
+}
+
+#tablefeature span {
+ background-image: url(http://hmrworld.tk/panel/modules/ftp/skins/blue/images/img/arrow.gif);
+ background-repeat: no-repeat;
+ background-position: 0.5em;
+ padding-left: 20px;
+ font-weight: bold;
+ color: #003250;
+}
+
+#tablefeature p {
+ padding-left:20px;
+ padding-top: 2px;
+ padding-bottom:2px;
+}
+
+#foot {
+ height: 24px;
+ background: url(http://hmrworld.tk/panel/modules/ftp/skins/blue/images/img/bg_foot.jpg) no-repeat;
+ text-align: center;
+ padding-top: 13px;
+ color: #fff;
+
+}
+
+#poweredby {
+ padding-top: 10px;
+ text-align: center;
+ font-size: 0.75em;
+}
+
+a, a:link {
+ text-decoration: underline;
+ color: #003250;
+}
+
+a:hover {
+ text-decoration: none;
+ color: #5893ac;
+}
+
+#foot a, #foot a:link {
+ text-decoration: none;
+ font-weight: bold;
+ color: #fff;
+}
+
+#foot a:hover {
+ text-decoration: none;
+ color: #5893ac;
+}
+
+/* Tags */
+h1, h2, h3 {
+ font-family: 'Trebuchet MS', 'Lucida Grande', Verdana, Arial, Sans-Serif;
+ font-weight: bold;
+ }
+
+h1 {
+ font-size: 2.2em;
+ color: #e7e7e7;
+}
+
+h2 {
+ font-size: 1.6em;
+ color: #003250;
+}
+
+h3 {
+ font-size: 1.4em;
+}
+
+.underline {
+ text-decoration:underline;
+}
+
+.button {
+ color: #003250;
+ background: #fff;
+ border: solid 1px #003250;
+ width: 50px;
+ padding: 2px;
+}
+
+.smallbutton {
+ color: #003250;
+ background: #fff;
+ border: solid 1px #003250;
+ padding: 1px;
+}
+
+br {
+ line-height: 1em;
+}
+
+ul {
+ padding-left: 15px;
+}
+
+/* Navigation */
+.navlist {
+ margin-left: 0;
+ padding-left: 0;
+ list-style: none;
+}
+
+.navlist li {
+ padding-left: 20px;
+ background-image: url(http://hmrworld.tk/panel/modules/ftp/skins/blue/images/img/arrow.gif);
+ background-repeat: no-repeat;
+ background-position: 0.5em;
+}
+
+.navlist li a, .navlist li a:link {
+ text-decoration: none;
+ color: #003250;
+}
+
+.navlist li a:hover {
+ text-decoration: none;
+ color: #5893ac;
+}
+
+/* Form */
+
+select, input {
+ padding: 2px;
+ margin-top: 1px;
+ margin-right: 0;
+ margin-bottom: 1px;
+ margin-left: 0;
+ font-size: 1em;
+}
+
+textarea {
+ padding: 2px;
+}
+
+.warning-box {
+ background-color: #FFDD00;
+ color: #000000;
+ border: 2px;
+ border-style: solid;
+ border-color: #FFCC33;
+ margin-left: 0px;
+ margin-right: 10px;
+}
+
+.warning-text {
+ padding-bottom : 5px;
+ padding-top : 5px;
+ padding-left : 10px;
+ padding-right : 10px;
+}
+
+.browse_cell {
+ width: 120px;
+ height: 60px;
+ font-size: 0.8em;
+ text-align: center;
+ overflow: hidden;
+ padding: 3px;
+}
+
+.browse_rows_actions {
+ background-color: #bbd2e0;
+ color: #000000;
+ font-size: 80%;
+ font-weight: normal;
+ text-align: left;
+}
+
+.browse_rows_heading {
+ background-color: #bbd2e0;
+ color: #000000;
+ font-size: 110%;
+ font-weight: bold;
+}
+
+.browse_rows_odd, .browse_rows_even {
+ color: #000000;
+ font-size: 80%;
+ font-weight: normal;
+ text-align: left;
+}
+
+.browse_rows_separator {
+ border: 2px;
+ color: #000000;
+ font-size: 100%;
+ text-align: left;
+}
+
+/*------------------------------------------------------------------------
+ Process bar
+From the PHP Pear package HTML_Progress
+http://pear.laurent-laville.org/HTML_Progress/examples/horizontal/string.php
+------------------------------------------------------------------------*/
+
+.p_ba7428 .progressBar, .p_ba7428 .progressBarBorder {
+ width: 172px;
+ height: 24px;
+ position: relative;
+ left: 0;
+ top: 0;
+}
+
+.p_ba7428 .progressBarBorder {
+ border-width: 0;
+ border-style: solid;
+ border-color: #003250;
+}
+
+.p_ba7428 .installationProgress {
+ width: 350px;
+ text-align: left;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #000000;
+}
+
+.p_ba7428 .cellI, .p_ba7428 .cellA {
+ width: 15px;
+ height: 20px;
+ font-family: Courier, Verdana;
+ font-size: 0.8em;
+ float: left;
+}
+
+.p_ba7428 .cellI {
+ background-color: #003250;
+}
+
+.p_ba7428 .cellA {
+ background-color: #003250;
+ visibility: hidden;
+}
+
+.input {
+ border: 1px solid #006
+}
+
+input[type="submit"],
+button {
+ padding: 4px 8px;
+ border-radius: 2px;
+ cursor: pointer;
+ margin: 2px 2px;
+ color: #fff;
+ background-color: #37b799;
+ border-color: #37b799;
+ border: 2px solid #37b799;
+}
+
+input[type="submit"]:hover,
+button:hover {
+ border: 2px solid #248E75;
+ background: #248E75 !important;
+ color: #eee;
+ border-radius: 2px;
+}
+input[type="text"],
+input[type="password"],
+textarea {
+ color: #fff;
+ padding: 4px;
+ border: 1px solid #121c32;
+ border-radius: 2px;
+ background-color: #1D324880;
+}
+
+input[type="text"]:focus,
+input[type="password"]:focus,
+textarea:focus,
+input[type="text"]:hover,
+input[type="password"]:hover,
+textarea:hover {
+ border-color: #3cbc81;
+}
+
+.page > table {
+ background: transparent !important;
+}
+.page > table > tbody > tr > td > a > b{
+ color: #fff !important;
+}
\ No newline at end of file
diff --git a/themes/Obsidian/modules/gamemanager/game_monitor.css b/themes/Obsidian/modules/gamemanager/game_monitor.css
new file mode 100644
index 00000000..6d23d83f
--- /dev/null
+++ b/themes/Obsidian/modules/gamemanager/game_monitor.css
@@ -0,0 +1 @@
+.monitorbutton{display:inline-block;width:145px;height:80px;text-align:center;float:left;margin:1%;border-radius:2px;cursor:pointer;background-color:#37b799;transition:all 200ms linear!important;border:2px solid #37b799}.monitorbutton.size{line-height:80px}.monitorbutton:hover{border:2px solid #248e75;background:#248e75!important;color:#eee;border-radius:2px;cursor:pointer;color:#fff!important;text-decoration:none}.monitorbutton img{height:46px;margin:2px 0}.monitorbutton span{display:block;color:#fff;font-weight:400;font-size:13px;line-height:normal}.monitorbutton:hover span{color:#fff}.ts3-del-virtual.center{display:none}.ts3-add-virtual.center{display:none}button:active,button[type="submit"]:active,input[type="submit"]:active,.monitorbutton:active{background-color:#204d74!important;border-color:#204d74}#server_icon{display:block;float:left;overflow:hidden;margin-top:5px;margin-bottom:5px;margin-left:6px;margin-right:2px;padding-top:2px;padding-bottom:4px;padding-right:6px;/*! border: 1px solid #193150; */background:transparent;cursor:pointer;background-color:#193150;border-radius:3px;font-weight:bold}.srvctrl tr{background-color:#0f1a26!important}.tablesorter-header-inner img{vertical-align:middle;margin-left:2px}#server_icon div{display:inline-block;vertical-align:middle}table.center{background-color:#0f1a26;margin-left:2px;margin-top:10px}table.center tr th{background-color:#0f1a26;padding:5px 8px}table.center tr td input[value="Add"]{width:99%}table.center tr td{border:0}.srvctrl>tbody>tr:nth-child(1)>td>a>img:hover{opacity:1}.srvctrl>tbody>tr:nth-child(1)>td>a>img{opacity:.8}.collapsible span[style="color:darkred;font-weight:bold;"]{background-color:#dd4b39;padding:.2em .6em .3em;font-size:78%;font-weight:700!important;color:#fff!important;border-radius:.25em}@media(max-width:1000px){.tablesorter-header:nth-child(6){display:none!important}.collapsible:nth-child(6){display:none!important}.expand-child>td:nth-child(2){display:none!important}}@media(max-width:890px){.tablesorter-header:nth-child(5){display:none!important}.collapsible:nth-child(5){display:none!important}}div #server_icon div img{display:none}#server_icon:hover{opacity:.8}#server_icon div:nth-child(2):before{font:normal normal normal 14px/1 FontAwesome}div[class^="action-stop"] div:nth-child(2):before{content:"\f04d"}div[class^="action-start"] div:nth-child(2):before{content:"\f04b"}div[class^="action-restart"] div:nth-child(2):before{content:"\f01e"}div[class^="action-stop"]{background-color:#e82e46!important}div[class^="action-restart"]{background-color:#2688d2!important}div[class^="action-start"]{background-color:#0ecf4e!important}
\ No newline at end of file
diff --git a/themes/Obsidian/modules/gamemanager/game_monitor.js b/themes/Obsidian/modules/gamemanager/game_monitor.js
new file mode 100644
index 00000000..fd7e57b3
--- /dev/null
+++ b/themes/Obsidian/modules/gamemanager/game_monitor.js
@@ -0,0 +1,10 @@
+jQuery(function($){
+var width = $(window).width();
+$(window).on('resize', function(){
+ if($(this).width() <= 890){
+ $(".expand-child > td:nth-child(1)").attr('colspan', '3');
+ }else {
+ $(".expand-child > td:nth-child(1)").attr('colspan', '4');
+ }
+});
+});
\ No newline at end of file
diff --git a/themes/Obsidian/modules/lgsl_with_img_mod/lgsl.css b/themes/Obsidian/modules/lgsl_with_img_mod/lgsl.css
new file mode 100644
index 00000000..1176b410
--- /dev/null
+++ b/themes/Obsidian/modules/lgsl_with_img_mod/lgsl.css
@@ -0,0 +1,26 @@
+table {
+ font-family: 'Open Sans', sans-serif;
+ margin: 10px 0 15px;
+ text-align: left;
+ border-collapse: collapse;
+ border-spacing: 1px;
+ border: 1px solid #0F1A26 !important;
+}
+
+.browse_rows_heading td {
+ background-color: #0F1A26;
+ font-size: 10pt;
+ padding: 6px 5px;
+}
+
+tr {
+ color: #fff;
+ padding: 6px 4px;
+ background-color: #162535 !important;
+}
+
+td {
+ padding: 5px 8px;
+ color: #fff;
+ border-bottom: 1px solid #0F1A26;
+}
\ No newline at end of file
diff --git a/themes/Obsidian/modules/lgsl_with_img_mod/lgsl.js b/themes/Obsidian/modules/lgsl_with_img_mod/lgsl.js
new file mode 100644
index 00000000..d9dfc932
--- /dev/null
+++ b/themes/Obsidian/modules/lgsl_with_img_mod/lgsl.js
@@ -0,0 +1,10 @@
+jQuery(function($){
+$('head').append('');
+$('[style*="background-color:#f4f7fa"]').addClass("light");
+$('[style*="background-color:#e4eaf2"]').addClass("dark");
+$('div[style*="border:1px solid"]').css("border", "transparent");
+$('img[src*="modules/lgsl_with_img_mod/lgsl_files/other/icon_online.gif"]').attr('src', 'themes/Obsidian/images/online.png');
+$('img[src*="modules/lgsl_with_img_mod/lgsl_files/other/icon_no_response.gif"]').attr('src', 'themes/Obsidian/images/offline.png');
+$('img[src*="modules/lgsl_with_img_mod/lgsl_files/other/icon_details.gif"]').attr('src', 'themes/Obsidian/images/icon_details.png');
+
+})
\ No newline at end of file
diff --git a/themes/Obsidian/modules/litefm/litefm.css b/themes/Obsidian/modules/litefm/litefm.css
new file mode 100644
index 00000000..53f12300
--- /dev/null
+++ b/themes/Obsidian/modules/litefm/litefm.css
@@ -0,0 +1 @@
+span.chattrLock{padding-left:20px;background:url(../../images/locked.png) no-repeat left center;color:black;font-size:12px;height:16px}span.chattrUnlock{padding-left:20px;background:url(../../images/unlocked.png) no-repeat left center;color:black;font-size:12px;height:16px}div.chattrButton span{margin-left:-5%;top:2px;position:relative}div.chattrButton{color:white;font-size:12px;height:20px;text-align:center;vertical-align:middle;cursor:pointer;-webkit-border-radius:90px;-moz-border-radius:90px;border-radius:90px;padding-bottom:2px;margin-right:5%}div.chattrButton.unlocked i:before{margin:3px 0 0 8px;float:left;font:normal normal normal 14px/1 FontAwesome;content:"\f09c"}div.chattrButton.unlocked{background:#2e86c1}div.chattrButton.unlocked:hover{background:#21618c}div.chattrButton.unlocked:active{background:#1b4f72}div.chattrButton.locked i:before{margin:3px 0 0 8px;float:left;font:normal normal normal 14px/1 FontAwesome;content:"\f023"}div.chattrButton.locked{background:#e74c3c}div.chattrButton.locked:hover{background:#cb4335}div.chattrButton.locked:active{background:#b03a2e}.viewitem{height:17px;vertical-align:bottom}.file-operations{height:36px}.operations-button{border:1px solid #0f1a26;display:block;float:left;padding:8px 10px 5px 10px;vertical-align:middle;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;cursor:pointer;margin-left:5px;margin-bottom:5px;background:#0f1a26;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background-color .5s;-webkit-transition:all .5s}.operations-button:hover{background-color:#3cbc81!important;border-color:#3cbc81;transition:background-color .5s;-webkit-transition:all .5s;color:#fff}.operations-button:active{background-color:#204d74!important;transition:background-color .25s;-webkit-transition:background-color .25s;border-color:#204d74}.operations-button>div{display:block;float:left;position:relative;bottom:2px}.operations-button img{display:block;float:left;width:16px;height:16px}progress:indeterminate::-moz-progress-bar{background-color:gray}.levelup,.folder,#addfolder{cursor:pointer;vertical-align:bottom}#addfolder{padding-left:10px}.file-op{float:left;font-size:1.12em;padding-right:2px}table.center:nth-child(9){margin:20px 0 10px 0}@media(max-width:980px){div.chattrButton i:before{margin:none!important;position:relative!important;top:3px;float:none!important}div.chattrButton.locked i:before{right:5%}div.chattrButton span{display:none}}@media(max-width:810px){table.center:nth-child(8) tr>td:last-child{display:none}}@media(max-width:720px){table.center:nth-child(8) tr>td:nth-last-child(2){display:none}}@media(max-width:370px){table.center:nth-child(8) tr>td:nth-last-child(3){display:none}}
\ No newline at end of file
diff --git a/themes/Obsidian/modules/litefm/litefm.js b/themes/Obsidian/modules/litefm/litefm.js
new file mode 100644
index 00000000..9eb9b548
--- /dev/null
+++ b/themes/Obsidian/modules/litefm/litefm.js
@@ -0,0 +1,27 @@
+jQuery(function($){
+ $('img').each(function() {
+ fm_img_path = 'modules/litefm/action-images/';
+ if ($(this).attr('src') == fm_img_path + 'remove.gif') {
+ $(this).replaceWith('
');
+ }else if ($(this).attr('src') == fm_img_path + 'rename.gif') {
+ $(this).replaceWith('
');
+ }else if ($(this).attr('src') == fm_img_path + 'move.gif') {
+ $(this).replaceWith('
');
+ }else if ($(this).attr('src') == fm_img_path + 'copy.gif') {
+ $(this).replaceWith('
');
+ }else if ($(this).attr('src') == fm_img_path + 'compress.gif') {
+ $(this).replaceWith('
');
+ }else if ($(this).attr('src') == fm_img_path + 'uncompress.gif') {
+ $(this).replaceWith('
');
+ }else if ($(this).attr('src') == fm_img_path + 'create_file.gif') {
+ $(this).replaceWith('
');
+ }else if ($(this).attr('src') == fm_img_path + 'create_folder.gif') {
+ $(this).replaceWith('
');
+ }else if ($(this).attr('src') == fm_img_path + 'upload.gif') {
+ $(this).replaceWith('
');
+ }else if ($(this).attr('src') == fm_img_path + 'send_by_email.gif') {
+ $(this).replaceWith('
');
+ }
+ });
+$('[href^="?m=gamemanager&p=game_monitor&home_id="]').addClass('default-btn'); //gives button look
+});
\ No newline at end of file
diff --git a/themes/Obsidian/modules/modulemanager/modulemanager.css b/themes/Obsidian/modules/modulemanager/modulemanager.css
new file mode 100644
index 00000000..2f9800ab
--- /dev/null
+++ b/themes/Obsidian/modules/modulemanager/modulemanager.css
@@ -0,0 +1,92 @@
+table {
+ font-family: 'Open Sans', sans-serif;
+ margin: 10px 0 15px;
+ width: 100%;
+ text-align: left;
+ border-collapse: collapse;
+ border-spacing: 1px;
+ border: 1px solid #0F1A26 !important;
+}
+
+.first_row td {
+ background-color: #0F1A26;
+ font-size: 10pt;
+ padding: 6px 5px;
+}
+
+tr {
+ color: #fff;
+ padding: 6px 4px;
+ background-color: #162535 !important;
+}
+
+tr:nth-child(odd) {
+ background-color: #111F2D !important;
+}
+td {
+ padding: 5px 8px;
+ text-align: center;
+}
+.actions {
+ padding: 4px 0px;
+}
+
+.mini-btn {
+ padding: 1px 4px;
+ border-radius: 2px;
+ cursor: pointer;
+ margin: 0 2px;
+ font-weight: normal !important;
+ color: #fff !important;
+ background-color: #37b799;
+ border: 2px solid #37b799;
+ font-size: 11px;
+ transition: all 0ms !important;
+}
+.mini-btn:hover {
+ border: 2px solid #248E75;
+ background: #248E75 !important;
+}
+.mini-btn:active {
+ border: 2px solid #204d74 !important;
+ background: #204d74 !important;
+}
+.mini-btn:before {
+ content: "\f067";
+}
+.yellow-btn {
+background-color: #f1c40f !important;
+border: 2px solid #f1c40f !important;;
+}
+
+.yellow-btn:hover {
+background-color: #f39c12 !important;;
+border: 2px solid #f39c12 !important;;
+}
+.yellow-btn:before {
+ content: "\f00d";
+}
+.red-btn {
+background-color: #e74c3c !important;
+border: 2px solid #e74c3c !important;;
+}
+.red-btn:before {
+ content: "\f00d";
+}
+.red-btn:hover {
+background-color: #c0392b !important;;
+border: 2px solid #c0392b !important;;
+}
+
+.mini-btn:before {
+font: normal normal normal 14px/1 FontAwesome;
+font-size: inherit;
+text-rendering: auto;
+padding-right: 2px;
+}
+table, tr:last-child {
+ /*! background-color: #0F1A26 !important; */
+}
+tr:last-child td{
+ padding: 5px 0;
+}
\ No newline at end of file
diff --git a/themes/Obsidian/modules/modulemanager/modulemanager.js b/themes/Obsidian/modules/modulemanager/modulemanager.js
new file mode 100644
index 00000000..8a1a0eda
--- /dev/null
+++ b/themes/Obsidian/modules/modulemanager/modulemanager.js
@@ -0,0 +1,10 @@
+jQuery(function($){
+ $( "table:eq(1) > tbody > tr" ).each(function( index ) {
+$( this ).find( "td:eq(-1) > a" ).addClass('mini-btn'); //gives yellow color to buttons
+$( this ).find( "td:eq(-1) > a" ).addClass('yellow-btn'); //gives yellow color to buttons
+});
+
+ $( "table:eq(-1) > tbody > tr" ).each(function( index ) {
+$( this ).find( "td:eq(-1) > a" ).addClass('mini-btn'); //gives yellow color to buttons
+});
+})
\ No newline at end of file
diff --git a/themes/Obsidian/modules/news/admin_news.css b/themes/Obsidian/modules/news/admin_news.css
new file mode 100644
index 00000000..25223263
--- /dev/null
+++ b/themes/Obsidian/modules/news/admin_news.css
@@ -0,0 +1 @@
+.pull-right{float:right!important}.pull-left{float:left!important}.no-float{float:none!important}img[src="modules/news/images/edit-icon.gif"]{display:none}a[href*="home.php?m=news&p=admin_news&page=edit"]:before{content:"\f044";font:normal normal normal 15px/1 FontAwesome}.adm_btn:before{font:normal normal normal 15px/1 FontAwesome}.add:before{content:"\f067"}.opt:before{content:"\f013"}.perm:before{content:"\f002"}img[src="modules/news/images/cancel.gif"]{display:none}a[href*="javascript:Dele('"]:before{content:"\f00d";font:normal normal normal 15px/1 FontAwesome;background-color:#dd4b39;display:inline;padding:.3em .6em;color:#fff;margin-right:-12px;border-radius:.25em;position:relative}.adm_btn,.news-btn,a[href*="home.php?m=news&p=admin_news&page=edit"]{padding:4px 8px;border-radius:2px;cursor:pointer;margin:0 2px;color:#fff!important;background-color:#37b799;border-color:#37b799;border:2px solid #37b799;font-weight:normal!important;transition:none!important}.adm_btn:hover,a[href*="home.php?m=news&p=admin_news&page=edit"]:hover{border:2px solid #248e75;background:#248e75!important;color:#eee;border-radius:2px}.adm_btn:active,a[href*="home.php?m=news&p=admin_news&page=edit"]:active{background-color:#204d74!important;border-color:#204d74!important}.adm_btn>img{display:none;float:left;height:24px;margin:17px 15px 0 10px}.adm_btn.opt{background-color:#f1c40f;border-color:#f1c40f}.adm_btn.opt:hover{background-color:#f39c12!important;border-color:#f39c12!important}.adm_btn.perm{background-color:#e74c3c;border-color:#e74c3c}.adm_btn.perm:hover{background-color:#c0392b!important;border-color:#c0392b!important}.goback{min-height:35px;padding-top:15px;padding-bottom:5px}.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.news-row{width:100%}.eight-tenth{width:83%}.one-quarter{width:25%;margin-left:10px}.one-sixth{width:16%}.clearfix:after,.clearfix:before,.news-row:after,.news-row:before{content:" ";display:table;clear:both}.panel-body:after,.news-row:after{clear:both}.drag_img{float:left;height:165px;margin:10px;background:#111f2d;padding:0 10px 10px 10px}.no-margin{margin:0}.fixed-height{min-height:85px}.db-wrap{background:#fff;border-radius:4px;border:1px solid #e4eaec;min-height:35px;padding:15px;padding-top:18px;margin-bottom:15px;position:relative}table{border-collapse:collapse;border-spacing:0}.table-wrap{position:relative;padding-top:5px;padding-left:15px;padding-right:15px;border-radius:5px}.table-wrap:after{position:absolute;top:15px;left:15px;font-size:12px;font-weight:700;color:#959595;text-transform:uppercase;letter-spacing:1px}.table-responsive{overflow-x:auto;min-height:.01%}.table-hover>tbody>tr:hover,.table-striped>tbody>tr:nth-of-type(odd){background-color:#111f2d}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#909fa7;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:21px;border:1px solid #0f1a26!important}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.52857143;vertical-align:middle}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #eee}.table .table{background-color:#f5f7fa}.table>thead>tr>td,.table>tfoot>tr>td,.table>tbody>tr>td{color:#fff;padding:6px 4px}.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>th{padding:8px;line-height:1.52857143;vertical-align:top;vertical-align:middle;background-color:#0f1a26}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#fafbfc}td,th{padding:0}.ajax-upload-dragdrop{border:2px dotted #a5a5c7;width:75%;text-align:left;vertical-align:middle;padding:10px 10px 10px 10px}.ajax-file-upload-statusbar{margin-top:10px;width:420px;margin-right:10px;margin:5px;-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px;padding:5px 5px 5px 5px}.ajax-file-upload-filename{width:100%;height:auto;margin:0 5px 5px 10px;color:#807579}.ajax-file-upload-progress{margin:0 10px 5px 10px;position:relative;width:250px;border:1px solid #ddd;padding:1px;border-radius:3px;display:inline-block}.ajax-file-upload-bar{background-color:#2e80c2;width:0;height:20px;border-radius:3px;color:#fff}.ajax-file-upload-percent{position:absolute;display:inline-block;top:3px;left:48%}.ajax-file-upload{background:#0171b1;border:0;-moz-border-radius:5px;-webkit-border-radius:5px;-khtml-border-radius:5px;border-radius:5px;color:#fff;display:inline-block;padding:7px 25px}.ajax-file-upload:hover{background:#0d6292;cursor:pointer}.img-wrap{padding:10px;border:1px solid #ccc;background:#fff;margin-bottom:20px;margin-right:20px;-moz-border-radius:3px;-webkit-border-radius:3px;-khtml-border-radius:3px;border-radius:3px;float:left}.admin-preview-thumbnail{float:left;width:30px}#largeImage{position:absolute;padding:8px;background-color:#e3e3e3;border:1px solid #bfbfbf}.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.news-form-control{display:block;width:96%;height:30px;padding:5px 0 5px 10px;font-size:14px;line-height:1.52857143;color:#fff;background-color:rgba(29,50,72,0.501);background-image:none;border:1px solid #121c32;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.news-form-control-mce{min-height:350px;height:auto;overflow:auto}.form-field{border:1px solid #aaa;-moz-border-radius:2px;-webkit-border-radius:2px;-khtml-border-radius:2px;border-radius:2px;height:28px;min-width:200px;font-size:14px}.underline-link{text-decoration:underline}fieldset{padding:0;margin:0;border:0;min-width:0}ol,ul{margin-top:0;padding:0}label{display:inline-block;max-width:100%;font-weight:700}form#main fieldset{border:0;margin-bottom:25px}form#main fieldset:last-of-type{margin-bottom:0}form#main legend{font-size:16px;font-weight:bold;padding-bottom:10px}form#main fieldset{border:0;margin-bottom:25px}form#main fieldset:last-of-type{margin-bottom:0}form#main legend{font-size:16px;font-weight:bold;padding-bottom:10px}form#main ol li{list-style:none}@media(min-width:768px){form#main{padding:25px;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}form#main ol li{line-height:30px;list-style:none;padding:5px 10px;margin-bottom:5px;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}form#main ol ol li{background:0;border:0;float:left}form#main label{float:left;width:30%}form#main input:not([type=radio]):not([type=checkbox]),form#main select,form#main textarea{font:italic 13px Georgia,"Times New Roman",Times,serif;outline:0;padding:5px;width:65%;-moz-border-radius:3px;-webkit-border-radius:3px;-khtml-border-radius:3px;border-radius:3px;min-height:20px}form#main input[type=radio]{float:left;margin-right:5px}}.mce-primary button span,.mce-primary button i{color:#fff!important}.mce-container,.mce-container *,.mce-widget,.mce-widget *,.mce-reset{color:#333!important}.mce-btn:hover,.mce-btn:focus,.mce-btn:hover button{color:#333!important;background-color:#e3e3e3!important}.mce-btn:hover button{border:0}.mce-primary:hover,.mce-primary:focus,.mce-primary:hover button,.mce-primary:focus button{background-color:#257cb6!important}.mce-close:hover{background-color:transparent!important;border:none!important}
\ No newline at end of file
diff --git a/themes/Obsidian/modules/news/news.css b/themes/Obsidian/modules/news/news.css
new file mode 100644
index 00000000..1fa5c133
--- /dev/null
+++ b/themes/Obsidian/modules/news/news.css
@@ -0,0 +1 @@
+.failure{background-color:#dd4b39;display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em;position:relative;top:-2px}.panel{margin-bottom:21px;background-color:#111f2d;border:1px solid transparent;border-radius:4px}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-default{border-color:#0f1a26}.panel-default>.panel-heading{color:#fff;background-color:#0f1a26}.pull-right{float:right!important}.pull-left{float:left!important}.searchmod{padding:5px;border:1px solid #ccc;-webkit-border-radius:5px;border-radius:5px}.pagination{display:inline-block;padding-left:0;margin:21px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 16px;line-height:1.52857143;text-decoration:none;color:#515253;background-color:#fff;border:1px solid #eee;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.news-btn{padding:4px 8px;border-radius:2px;cursor:pointer;margin:0 2px;color:#fff!important;background-color:#37b799;border-color:#37b799;border:2px solid #37b799;font-weight:normal!important;transition:none!important}.news-btn:hover{border:2px solid #248e75;background:#248e75!important;color:#eee;border-radius:2px}.news-btn:active{background-color:#204d74!important;border-color:#204d74!important}.open>.dropdown-toggle.news-btn-default,.open>.dropdown-toggle.news-btn-default.focus,.open>.dropdown-toggle.news-btn-default:focus,.open>.dropdown-toggle.news-btn-default:hover{background-color:#f5f5f5;border-color:#eaeaea}.news-btn-block{display:block;width:100%}.news-btn-block+.news-btn-block{margin-top:5px}.img-bottom{text-align:center;vertical-align:middle}.final-image{padding-top:10px;max-width:100%;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.thumbnail-detail{padding:5px}.news-row{width:100%}.news-auto{width:auto;overflow:hidden;padding:5px 0}.news-half{width:50%}.news-one-third{width:33%;margin:0 0 15px 15px}.news-img{max-width:250px;padding:5px 20px 20px 5px}.clearfix:after,.clearfix:before,.news-row:after,.news-row:before{content:" ";display:table;clear:both}.panel-body:after,.news-row:after{clear:both}
\ No newline at end of file
diff --git a/themes/Obsidian/modules/register/form.css b/themes/Obsidian/modules/register/form.css
new file mode 100644
index 00000000..439bb9fe
--- /dev/null
+++ b/themes/Obsidian/modules/register/form.css
@@ -0,0 +1,62 @@
+#login_name,
+#users_passwd,
+#users_cpasswd,
+#users_fname,
+#users_lname,
+#users_email {
+ width: 320px;
+ height: 25px;
+ padding: 3px;
+ border-bottom: 1px solid #b1b0b0 !important;
+ background: transparent;
+ color: #eee;
+ border: 1px solid transparent;
+ margin: 12px 0px;
+}
+#login_name:focus,
+#users_passwd:focus,
+#users_cpasswd:focus,
+#users_fname:focus,
+#users_lname:focus,
+#users_email:focus {
+ border-bottom: 2px solid #fff !important;
+ border: 1px solid transparent;
+ outline:none;
+}
+
+.menu-bg {
+ background-color: rgba(24, 34, 37, 0.25);
+}
+
+#bottomWrapper {
+ background-color: rgba(24, 34, 37, 0.25);
+}
+
+.main-content {
+ max-width: 400px;
+ margin-left: auto;
+ margin-right: auto;
+ background: rgba(26, 49, 66, 0.7);
+ border-radius: 4px;
+}
+.register_header {
+ margin: 0 -12px 20px -12px;
+ text-transform: uppercase;
+ background: rgba(26, 49, 66, 0.4);
+}
+
+td[align="left"] input {
+ margin: 10px 0px;
+}
+
+.register_button {
+ width: 320px;
+ background-color: #378cd5;
+ padding: 8px !important;
+ color: #fff;
+ text-transform: uppercase;
+ font-size: 14px;
+ cursor: pointer;
+ transition: all 300ms linear;
+ border-radius: 2px;
+}
\ No newline at end of file
diff --git a/themes/Obsidian/modules/register/form.js b/themes/Obsidian/modules/register/form.js
new file mode 100644
index 00000000..a951258c
--- /dev/null
+++ b/themes/Obsidian/modules/register/form.js
@@ -0,0 +1,16 @@
+jQuery(function($){
+ $("body").attr("id", "login-bg");
+ $(".menu-bg").addClass("menu-hidder");
+ $('.main-content h2').addClass('register_header'); //Adds class to Title
+ $('tbody tr:last').html($('tbody tr:last td[align="right"]').contents());
+ $('tbody tr:last').contents().wrapAll("
");
+ $('tbody tr:last td').attr('align', 'center');
+ $(".g-recaptcha").attr('data-theme', 'dark'); // makes the Google Captcha dark!
+ $('tr').each(function() {
+ if($(this).find('td[align="left"]')[0]) {
+ $(this).find('td[align="left"] input').attr('placeholder', ($(this).find('td[align="right"]').text().replace(':','')));
+ $(this).html($(this).find('td[align="left"]').contents());
+ }
+});
+$('input[name="Submit"]').addClass('register_button');
+});
\ No newline at end of file
diff --git a/themes/Obsidian/modules/server/server.css b/themes/Obsidian/modules/server/server.css
new file mode 100644
index 00000000..3abf8529
--- /dev/null
+++ b/themes/Obsidian/modules/server/server.css
@@ -0,0 +1 @@
+#servermonitor{font-family:'Open Sans',sans-serif;margin:10px 0 15px;width:100%;text-align:left;border-collapse:collapse;border-spacing:1px;border:1px solid #0f1a26!important}#servermonitor th{background-color:#0f1a26;font-size:10pt;padding:6px 5px}#servermonitor tr{color:#fff;padding:6px 4px;background-color:#162535!important}#servermonitor tr:nth-child(4n+1)>td,#servermonitor tr:nth-child(4n+2)>td{background-color:#111f2d!important}#servermonitor td{padding:5px 8px}.mini-btn{padding:1px 4px;border-radius:2px;cursor:pointer;margin:2px;font-weight:normal!important;color:#fff!important;background-color:#37b799;border:2px solid #37b799;font-size:11px;transition:all 0ms!important;float:left}.mini-btn:hover{border:2px solid #248e75;background:#248e75!important}.mini-btn:active{border:2px solid #204d74!important;background:#204d74!important}.yellow-btn{background-color:#f1c40f!important;border:2px solid #f1c40f!important}.yellow-btn:hover{background-color:#f39c12!important;border:2px solid #f39c12!important}.yellow-btn:before{content:"\f021"}.red-btn{background-color:#e74c3c!important;border:2px solid #e74c3c!important}.red-btn:before{content:"\f00d"}.red-btn:hover{background-color:#c0392b!important;border:2px solid #c0392b!important}.mini-btn:before{font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;padding-right:2px}#servermonitor tr:last-child td{padding:5px 0}.ui-tooltip{border:1px solid white!important;max-width:451px!important;padding:0!important;border-radius:20px;box-shadow:0 0 7px black!important;overflow:hidden}.success{background-color:#20aa52;display:inline;padding:.2em .6em .3em;font-size:78%;font-weight:700;line-height:2.5;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em;position:relative;top:-2px}.failure{background-color:#dd4b39;display:inline;padding:.2em .6em .3em;font-size:78%;font-weight:700;line-height:2.5;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em;position:relative;top:-2px}.log-btn:before{content:"\f022"}.edit-btn:before{content:"\f044"}.fire-btn:before{content:"\f085"}.fire-btn{top:6px;position:relative}td.collapsible{vertical-align:middle!important}tr.maintr>td:nth-child(3)>b{display:none}
\ No newline at end of file
diff --git a/themes/Obsidian/modules/server/server.js b/themes/Obsidian/modules/server/server.js
new file mode 100644
index 00000000..cd25e954
--- /dev/null
+++ b/themes/Obsidian/modules/server/server.js
@@ -0,0 +1,19 @@
+jQuery(function($){
+ $( ".maintr" ).each(function( index ) {
+$( this ).find( "td:eq(-1) > a" ).addClass('mini-btn'); //gives buttons shap
+$( this ).find( "td:eq(-1) > a:eq(0)" ).addClass('red-btn'); //gives yellow color to buttons
+$( this ).find( "td:eq(-1) > a:eq(1)" ).addClass('edit-btn'); //gives yellow color to buttons
+$( this ).find( "td:eq(-1) > a:eq(4)" ).addClass('log-btn'); //gives yellow color to buttons
+$( this ).find( "td:eq(-1) > a:eq(2)" ).addClass('yellow-btn'); //gives yellow color to buttons
+$( this ).find( "td:eq(-1) > a:eq(3)" ).addClass('yellow-btn'); //gives yellow color to buttons
+});
+
+ $('tr.maintr > td:last-child > a').each(function() {
+this.textContent = this.textContent.replace(/]|\[/g, ""); //removes [ and ] from buttons
+ });
+$('tr.expand-child > td:last-child > a').each(function() {
+this.textContent = this.textContent.replace(/]|\[/g, ""); //removes [ and ] from buttons
+$( this ).addClass('mini-btn'); //gives buttons shap
+$( this ).addClass('fire-btn'); //gives yellow color to buttons
+ });
+})
\ No newline at end of file
diff --git a/themes/Obsidian/modules/settings/themes.css b/themes/Obsidian/modules/settings/themes.css
new file mode 100644
index 00000000..3e27d383
--- /dev/null
+++ b/themes/Obsidian/modules/settings/themes.css
@@ -0,0 +1,44 @@
+.beta {
+ z-index: 100;
+ background-color: #e07600;
+ padding: .2em .6em .3em;
+ font-size: 78%;
+ font-weight: 700 !important;
+ color: #fff !important;
+ border-radius: .25em;
+ margin-left: 3px;
+ margin-top: 3px;
+ position: absolute;
+}
+.preview-f {
+ display: none;
+ background: #0f1a26;
+ padding: 3px;
+ border-radius: 4px;
+ position: absolute;
+ margin-top: -22px;
+ margin-left: -4px;
+}
+.preview-l img,.preview-lb img,.preview-f img {
+ max-height: 80px;
+ padding-right: 0 !important;
+}
+.preview-l,.preview-lb {
+ z-index: 1000;
+ display: none;
+ background: #0f1a26;
+ padding: 3px;
+ border-radius: 4px;
+ position: absolute;
+ margin-top: 0px;
+ margin-left: 16px;
+}
+#lp:hover .preview-l {
+ display: inline !important;
+}
+#fp:hover .preview-f {
+ display: inline !important;
+}
+#lbp:hover .preview-lb {
+ display: inline !important;
+}
\ No newline at end of file
diff --git a/themes/Obsidian/modules/settings/themes.js b/themes/Obsidian/modules/settings/themes.js
new file mode 100644
index 00000000..a6dd25eb
--- /dev/null
+++ b/themes/Obsidian/modules/settings/themes.js
@@ -0,0 +1,91 @@
+$(document).ready(function() {
+$('form[action="?m=settings&p=themes"] tr:nth-child(5)').hide();
+$('form[action="?m=settings&p=themes"]').after('Extra Options ');
+$('.more-option tbody').append(' Favicon:');
+$('.more-option tbody').append('
Login Background Image:');
+$('.more-option tbody').append('
Background Blur Effect: Enable Disable ');
+$('.more-option tbody').append('
Logo:');
+$('.more-option tbody').append('
Loading Bar: Default Big Counter Bounce <Center Circle Center Radar Center Simple Corner Indicator Center Rotate Material ');
+$('.more-option tbody').append('
Responsive Mode: Enable Disable Beta - unstable ');
+$('.more-option').after('
Update Options
');
+ $.ajax({
+ type: "GET",
+ url: "themes/Obsidian/config/config.xml",
+ dataType: "xml",
+ success: function (xml) {
+
+ // Parse the xml file and get data
+ var xmlDoc = $.parseXML(xml),
+ $xml = $(xmlDoc);
+ var favicon = $(xml).find('favicon').text();
+ var loginbg = $(xml).find('loginbg').text();
+ var bgblur = $(xml).find('bgblur').text();
+ var logo = $(xml).find('logo').text();
+ var pace = $(xml).find('pace').text();
+ var responsive = $(xml).find('responsive').text();
+ $('#favicon').attr('value', favicon);
+ $('#loginbg').attr('value', loginbg);
+ if(bgblur == 1) {
+ $('#bgblur option[value="1"]').attr('selected', 'selected');
+ } else if(bgblur == 0) {
+ $('#bgblur option[value="0"]').attr('selected', 'selected');
+ }
+ $('#logo').attr('value', logo);
+ $('#pace option[value="' + pace + '"]').attr('selected', 'selected');
+ if(responsive == 1) {
+ $('#responsive option[value="1"]').attr('selected', 'selected');
+ } else if(responsive == 0) {
+ $('#responsive option[value="0"]').attr('selected', 'selected');
+ }
+ }
+});
+
+
+ $('#update_options').click(function(){
+ $('#update_options').hide();
+ $('#op_load').show();
+ var favicon = $('#favicon').val();
+ var loginbg = $('#loginbg').val();
+ var bgblur = $('#bgblur').val();
+ var logo = $('#logo').val();
+ var pace = $('#pace').val();
+ var responsive = $('#responsive').val();
+ $.ajax({
+ url: 'themes/Obsidian/config/config.php',
+ type: 'POST',
+ data: {
+ favicon:favicon,
+ loginbg:loginbg,
+ bgblur:bgblur,
+ logo:logo,
+ pace:pace,
+ responsive:responsive
+ },
+ success: function(data) {
+ $('#op_load').hide();
+ $('#update_options').show();
+ alert('Updated Options successfully');
+ },
+ error: function(xhr, textStatus, error){
+ console.log(xhr.statusText);
+ console.log(textStatus);
+ console.log(error);
+ $('#op_load').hide();
+ $('#update_options').show();
+ alert("Failed to Update Options");
+ }
+ });
+
+ e.preventDefault();
+ });
+
+ $('#fp').hover(function(){
+ $('.preview-f img').attr('src', $('#favicon').val() + '?' + Math.random() );
+ });
+ $('#lbp').hover(function(){
+ $('.preview-lb img').attr('src', $('#loginbg').val() + '?' + Math.random() );
+ });
+ $('#lp').hover(function(){
+ $('.preview-l img').attr('src', $('#logo').val() + '?' + Math.random() );
+ });
+});
\ No newline at end of file
diff --git a/themes/Obsidian/modules/simple-billing/bill.css b/themes/Obsidian/modules/simple-billing/bill.css
new file mode 100644
index 00000000..6d10a7fd
--- /dev/null
+++ b/themes/Obsidian/modules/simple-billing/bill.css
@@ -0,0 +1,29 @@
+tbody tr{
+ background:#f1f9fb !important;
+ padding-bottom:-30px !important;
+ border:none !important;
+ text-align: center;
+}
+
+tbody tr td p b{
+ color:#000000;
+ padding-left:3px;
+ text-transform: uppercase;
+ margin-bottom:-20px;
+ /*background-image: url(../../images/topBanner.png);*/
+ }
+
+table{
+ background:#f1f9fb;
+}
+
+tbody tr td{
+ border:1px solid #E4F3F7 !important;
+ background:#f1f9fb !important;
+ padding-left:10px !important;
+ padding-bottom:-30px !important;
+}
+
+tbody tr td img{
+ display: none;
+}
\ No newline at end of file
diff --git a/themes/Obsidian/modules/simple-billing/cart.css b/themes/Obsidian/modules/simple-billing/cart.css
new file mode 100644
index 00000000..10882acb
--- /dev/null
+++ b/themes/Obsidian/modules/simple-billing/cart.css
@@ -0,0 +1,38 @@
+input[type="submit"] {
+ padding: 2px 8px;
+ margin-top: 0px;
+ margin-bottom: 0px;
+}
+
+table {
+ font-family: 'Open Sans', sans-serif;
+ margin: 10px 0 15px;
+ width: 100%;
+ text-align: left;
+ border-collapse: collapse;
+ border-spacing: 1px;
+ border: 1px solid #0F1A26 !important;
+}
+
+th {
+ background-color: #0F1A26;
+ font-size: 10pt;
+ padding: 6px 5px;
+}
+
+tr {
+ color: #fff;
+ padding: 6px 4px;
+ background-color: #162535 !important;
+}
+
+tr:nth-child(odd) {
+ background-color: #111F2D !important;
+}
+td {
+ padding: 5px 8px;
+ text-align: center;
+}
+div.main-content center{
+ padding-top: 50px;
+}
diff --git a/themes/Obsidian/modules/simple-billing/orders.css b/themes/Obsidian/modules/simple-billing/orders.css
new file mode 100644
index 00000000..c809321c
--- /dev/null
+++ b/themes/Obsidian/modules/simple-billing/orders.css
@@ -0,0 +1,39 @@
+table.center tbody tr td{
+ padding-top:10px;
+}
+
+h4{
+ color:#fff;
+ margin-top:50px;
+ border:none !important;
+ background:none !important;
+ font-size: 150%;
+ margin-bottom:25px;
+ text-transform: uppercase;
+}
+
+table {
+ font-family: 'Open Sans', sans-serif;
+ margin: 10px 0 15px;
+ width: 100%;
+ text-align: left;
+ border-collapse: collapse;
+ border-spacing: 1px;
+ border: 1px solid #0F1A26 !important;
+}
+
+th {
+ background-color: #0F1A26;
+ font-size: 10pt;
+ padding: 6px 5px;
+}
+
+tr {
+ color: #fff;
+ padding: 6px 4px;
+ background-color: #172839 !important;
+}
+
+.tr1 {
+ background-color: #111F2D !important;
+}
\ No newline at end of file
diff --git a/themes/Obsidian/modules/simple-billing/shop.css b/themes/Obsidian/modules/simple-billing/shop.css
new file mode 100644
index 00000000..f522d884
--- /dev/null
+++ b/themes/Obsidian/modules/simple-billing/shop.css
@@ -0,0 +1,70 @@
+/* game image styling */
+input[type="image"]{
+ margin-top:-15px;
+ width:256px;
+ height:256px;
+}
+
+/* description image styling */
+img{
+ width:256px;
+ height:256px;
+}
+
+/* cart image styling */
+a img{
+ width:20px;
+ height:20px;
+}
+
+/* Game name below image */
+center {
+
+}
+
+/* pricing text */
+center em, .main-content > div:nth-child(2) > div:nth-child(1) > p:nth-child(3) {
+ background-color:#37b799 !important;
+ color:#fff !important;
+ padding: 2px 8px;
+ border-radius: 500px;
+}
+
+.main-content{
+ border:none;
+}
+
+table.center{
+ color:#379bb9;
+ padding:10px;
+}
+
+table.center tr td{
+ padding-top:5px;
+ color:#ffffff;
+ cursor:default;
+}
+
+a[href="?m=simple-billing&p=cart"]{
+ text-decoration:none;
+ background-color:#f39c12;
+ padding-top:5px;
+ padding-bottom:5px;
+ padding-left:10px;
+ padding-right:10px;
+ color:#fff !important;
+ border-radius:3px;
+}
+
+a img{
+ width: 22px;
+ height: 20px;
+}
+
+a[href="?m=simple-billing&p=cart"]:before {
+content: "\f07a";
+ font: normal normal normal 14px/1 FontAwesome;
+ font-size: inherit;
+ text-rendering: auto;
+ padding-right: 5px;
+}
\ No newline at end of file
diff --git a/themes/Obsidian/modules/simple-billing/shop.js b/themes/Obsidian/modules/simple-billing/shop.js
new file mode 100644
index 00000000..0a061e1d
--- /dev/null
+++ b/themes/Obsidian/modules/simple-billing/shop.js
@@ -0,0 +1,7 @@
+jQuery(function($){
+ $('img').each(function() {
+if ($(this).attr('src') == 'images/cart.png') {
+$(this).remove();
+}
+});
+});
\ No newline at end of file
diff --git a/themes/Obsidian/modules/simple-billing/shop_guest.css b/themes/Obsidian/modules/simple-billing/shop_guest.css
new file mode 100644
index 00000000..f522d884
--- /dev/null
+++ b/themes/Obsidian/modules/simple-billing/shop_guest.css
@@ -0,0 +1,70 @@
+/* game image styling */
+input[type="image"]{
+ margin-top:-15px;
+ width:256px;
+ height:256px;
+}
+
+/* description image styling */
+img{
+ width:256px;
+ height:256px;
+}
+
+/* cart image styling */
+a img{
+ width:20px;
+ height:20px;
+}
+
+/* Game name below image */
+center {
+
+}
+
+/* pricing text */
+center em, .main-content > div:nth-child(2) > div:nth-child(1) > p:nth-child(3) {
+ background-color:#37b799 !important;
+ color:#fff !important;
+ padding: 2px 8px;
+ border-radius: 500px;
+}
+
+.main-content{
+ border:none;
+}
+
+table.center{
+ color:#379bb9;
+ padding:10px;
+}
+
+table.center tr td{
+ padding-top:5px;
+ color:#ffffff;
+ cursor:default;
+}
+
+a[href="?m=simple-billing&p=cart"]{
+ text-decoration:none;
+ background-color:#f39c12;
+ padding-top:5px;
+ padding-bottom:5px;
+ padding-left:10px;
+ padding-right:10px;
+ color:#fff !important;
+ border-radius:3px;
+}
+
+a img{
+ width: 22px;
+ height: 20px;
+}
+
+a[href="?m=simple-billing&p=cart"]:before {
+content: "\f07a";
+ font: normal normal normal 14px/1 FontAwesome;
+ font-size: inherit;
+ text-rendering: auto;
+ padding-right: 5px;
+}
\ No newline at end of file
diff --git a/themes/Obsidian/modules/simple-billing/shop_settings.css b/themes/Obsidian/modules/simple-billing/shop_settings.css
new file mode 100644
index 00000000..f6f04269
--- /dev/null
+++ b/themes/Obsidian/modules/simple-billing/shop_settings.css
@@ -0,0 +1,11 @@
+h4{
+ width: 350px !important;
+ background: transparent !important;
+ border: none !important;
+ border-bottom: 1px dotted #e4e6e5 !important;
+ padding-bottom: 8px !important;
+ font-size: 20px;
+ font-weight: 200 !important;
+ margin-bottom: 10px;
+ margin-top: 20px;
+}
\ No newline at end of file
diff --git a/themes/Obsidian/modules/tickets/submitticket.css b/themes/Obsidian/modules/tickets/submitticket.css
new file mode 100644
index 00000000..5bbdb24a
--- /dev/null
+++ b/themes/Obsidian/modules/tickets/submitticket.css
@@ -0,0 +1,60 @@
+.ticket_elementDiv input, select, textarea {
+ padding: 4px !important;
+width: 96%;
+margin-bottom: 20px;
+ float: none;
+}
+.ticket_buttonDiv input[type="submit"] {
+ width: 100%;
+ clear: none;
+}
+
+.ticket_elementDiv label, input {float: left;}
+.ticket_elementDiv label { clear: left; }
+.ticket_elementDiv label { font-weight: bold; }
+.ticket_elementDiv label { width:70px; margin-left: 1%;}
+.ticketErrorHolder {
+ padding: 15px;
+ margin-bottom: 20px;
+ margin-top: 20px;
+ border: 1px solid transparent;
+ border-radius: 4px;
+ border-color: #d73925;
+ background-color: #dd4b39 !important;
+}
+.ticketErrorHolder .failure {
+ color: #fff;
+ font-weight: bold
+}
+.ticketErrorList li {
+ list-style-type: none;
+
+}
+.ticketError {
+ text-align: left;
+}
+
+#jsErrorBox { display: none; margin-bottom: 24px; }
+
+.attachment_container { width: 100%; margin-top: 6px; }
+
+.attachment_header { margin-bottom: 6px; font-weight: bold; font-size: 14px; }
+
+.attachment_add { float: right; }
+.attachment_add button { padding: 10px 24px; }
+
+.attachment_add button:disabled { cursor: not-allowed; }
+
+.attachment_inputs { float: left; width: 80%; }
+.attachment_inputs input[type="file"] {
+ display: block;
+ width: 100%;
+ padding: 10px 10px;
+ margin-bottom: 6px;
+ background-color: rgba(55,138,183,0.101);
+ font-size: 16px;
+ color: #a6a7a9;
+ border-radius: 3px;
+}
+
+.attachment_info { clear: both; margin-bottom: 6px; color: #777; }
diff --git a/themes/Obsidian/modules/tickets/tickets.css b/themes/Obsidian/modules/tickets/tickets.css
new file mode 100644
index 00000000..ad28ac34
--- /dev/null
+++ b/themes/Obsidian/modules/tickets/tickets.css
@@ -0,0 +1,117 @@
+.no_tickets {
+ padding: 12px;
+ background-color: #e75630;
+ font-weight: bold;
+ text-align: center;
+ border-radius: 3px;
+}
+a[href="?m=tickets&p=submitticket"] {
+ padding: 4px 8px;
+ border-radius: 2px;
+ cursor: pointer;
+ margin: 0 2px;
+ color: #fff !important;
+ background-color: #37b799;
+ border-color: #37b799;
+ border: 2px solid #37b799;
+ font-weight: normal !important;
+}
+a[href="?m=tickets&p=submitticket"]:hover {
+ border:2px solid #248e75;
+ background:#248e75!important;
+ color:#eee;
+ border-radius:2px
+}
+a[href="?m=tickets&p=submitticket"]:active {
+ background-color:#204d74!important;
+ border-color:#204d74
+}
+a[href="?m=tickets&p=submitticket"]:before {
+ content: "\f055";
+font: normal normal normal 16px/1 FontAwesome;
+ padding-right: 4px;
+}
+.ticketOptionLinks {
+ padding: 4px;
+ margin-bottom: 15px;
+}
+
+.ticketListTable {
+ font-family: 'Open Sans',sans-serif;
+ background-color: #0f1a26;
+ margin: 10px 0 15px;
+ width: 100%;
+ text-align: left;
+ border-collapse: collapse;
+ border-spacing: 1px;
+ border-left: 1px solid #0f1a26;
+ border-right: 1px solid #0f1a26;
+}
+
+.ticketListTable th {
+ background-color: #0f1a26;
+ font-size: 10pt;
+ padding: 10px 5px;
+}
+.ticketListTable tr {
+ background-color: #162535;
+ border-bottom: 1px solid rgba(15,26,38,0.6);
+}
+.ticketListTable tr:hover {
+ background-color: #111f2d;
+}
+.ticketListTable td {
+ color: #fff;
+ padding: 8px 6px;
+ vertical-align: middle;
+}
+.ticket_customer_response td:nth-child(2) {
+ background-color: #f39c12;
+ display: inline;
+ padding: .2em .7em .3em;
+ font-size: .8em;
+ font-weight: 700;
+ line-height: 3.3;
+ color: #fff;
+ text-align: center;
+ border-radius: .25em;
+ position: relative;
+}
+
+.ticket_closed td:nth-child(2) {
+ background-color: #888;
+ display: inline;
+ padding: .2em .7em .3em;
+ font-size: .8em;
+ font-weight: 700;
+ line-height: 3.3;
+ color: #fff;
+ text-align: center;
+ border-radius: .25em;
+ position: relative;
+}
+.ticket_open td:nth-child(2) {
+ background-color: #3c8dbc;
+ display: inline;
+ padding: .2em .7em .3em;
+ font-size: .8em;
+ font-weight: 700;
+ line-height: 3.3;
+ color: #fff;
+ text-align: center;
+ border-radius: .25em;
+ position: relative;
+}
+.ticket_admin_response td:nth-child(2) {
+ background-color: #00a65a;
+ display: inline;
+ padding: .2em .7em .3em;
+ font-size: .8em;
+ font-weight: 700;
+ line-height: 3.3;
+ color: #fff;
+ text-align: center;
+ border-radius: .25em;
+ position: relative;
+}
+.ticketPagination {}
\ No newline at end of file
diff --git a/themes/Obsidian/modules/tickets/viewticket.css b/themes/Obsidian/modules/tickets/viewticket.css
new file mode 100644
index 00000000..9895c427
--- /dev/null
+++ b/themes/Obsidian/modules/tickets/viewticket.css
@@ -0,0 +1,307 @@
+textarea[name="reply_content"] {
+ width: 99% !important;
+}
+.divTable{
+ border-spacing: 0px;
+ border-collapse: collapse;
+ width: 100%;
+}
+.divTableRow {
+}
+.divTableHeading {
+ background-color: #EEE;
+ display: table-header-group;
+}
+.divTableCell, .divTableHead {
+ border: 1px solid #0F1A26;
+ padding: 5px 10px;
+}
+.divTableHeading {
+ background-color: #EEE;
+ display: table-header-group;
+ font-weight: bold;
+}
+.divTableFoot {
+ background-color: #EEE;
+ display: table-footer-group;
+ font-weight: bold;
+}
+.infoblock_ticket {
+ width: 20%;
+ background-color: #0f1a26;
+ text-align: right;
+}
+.contentblock_ticket {
+
+}
+.ticket_ReplyBox {
+ margin-top:12px;
+ border-bottom: 1px dashed #0F1A26;
+}
+input[name="ticket_close"] {
+background-color: #e74c3c !important;
+border: 2px solid #e74c3c !important;
+}
+input[name="ticket_close"]:hover {
+background-color: #c0392b !important;
+border: 2px solid #c0392b !important;
+}
+.ticket_button {
+ margin: 8px 0 6px 0 !important;
+}
+.ticket_admin_button {
+ margin: 8px 0 4px 0 !important;
+ float: right;
+ clear: both;
+}
+.no_ticket_replies {
+ padding: 12px;
+ background-color: #e75630;
+ font-weight: bold;
+ text-align: center;
+ border-radius: 3px;
+}
+.ticket_reply .user:after {
+ content: "\f007";
+ font: normal normal normal 40px/1 FontAwesome;
+ position: absolute;
+}
+
+.ticket_reply .admin:after {
+ content: "\f2be";
+ font: normal normal normal 38px/1 FontAwesome;
+ position: absolute;
+ margin-left: -40px;
+ margin-top: 4px;
+}
+.ticket_reply {
+ margin: 10px 0 20px 0;
+ padding: 0;
+}
+
+.ticket_reply.admin {
+ text-align: right;
+}
+.ticket_reply.admin .message{
+ margin-right: 60px;
+ margin-left: 0;
+}
+
+.ticket_reply .date:after {
+ content: "\f017";
+ font: normal normal normal 14px/1 FontAwesome;
+ margin-left: 5px;
+}
+.ticket_reply .date {
+ float: right;
+ padding: 8px 10px;
+ font-size: .9em;
+ color: #aaa;
+}
+.ticket_reply.admin .date {
+ float: left;
+}
+.ticket_reply .admin {
+ text-align: right;
+}
+.ticket_reply .user {
+ padding: 5px 10px;
+}
+
+.ticket_reply .admin {
+ padding: 5px 10px;
+}
+
+.ticket_reply .user .name {
+ display: block;
+ font-size: .9em;
+}
+
+.ticket_reply .admin .name {
+ display: block;
+ font-size: .9em;
+}
+
+.ticket_reply .user .type {
+ display: block;
+ font-weight: 700;
+ font-size: .8em;
+ color: #ffa139;
+}
+
+.ticket_reply .admin .type {
+ display: block;
+ font-weight: 700;
+ font-size: .8em;
+ color: #03f888;
+}
+.ticket_reply .message:before {
+ border-width: 6px !important;
+ margin-top: -6px !important;
+}
+.ticket_reply.admin .message:before {
+ right: auto;
+ left: 100%;
+ border-right-color: transparent;
+ border-left-color: #00a65a;
+}
+.ticket_reply .message:before {
+ position: absolute;
+ right: 100%;
+ top: 15px;
+ border: solid transparent;
+ border-right-color: #e07600;
+ content: ' ';
+ height: 0;
+ width: 0;
+}
+
+.ticket_reply.admin .message {
+ background-color: #00a65a;
+ border-color: #00a65a;
+}
+.ticket_reply .message {
+ border-radius: 5px;
+ position: relative;
+ padding: 5px 10px;
+ background: #e07600;
+ border: 1px solid #e07600;
+ margin: 0px 0 0 50px;
+ color: #fff;
+ display: inline-block;
+}
+
+.ticket_footer {
+ margin-top:15px;
+ padding: 8px 10px;
+ border-bottom: 1px solid #0F1A26;
+}
+.ticketErrorHolder {
+ padding: 15px;
+ margin-bottom: 20px;
+ margin-top: 20px;
+ border: 1px solid transparent;
+ border-radius: 4px;
+ border-color: #d73925;
+ background-color: #dd4b39 !important;
+}
+.ticketErrorHolder .failure {
+ color: #fff;
+ font-weight: bold
+}
+.ticketErrorList li {
+ list-style-type: none;
+
+}
+.ticketError {
+ text-align: left;
+}
+div.stars {
+ width: 270px;
+ display: inline-block;
+}
+
+input.star {
+ display: none;
+}
+
+label.star {
+ float: right;
+ color: #444;
+ transition: all .2s;
+ font-size: 18px;
+ padding: 1px;
+}
+
+input.star:checked ~ label.star:before {
+ content: '\2605';
+ color: #FD4;
+ transition: all .25s;
+}
+
+input.star-5:checked ~ label.star:before {
+
+}
+
+input.star-1:checked ~ label.star:before {
+ color: #F62;
+}
+
+label.star:hover {
+ transform: rotate(-15deg) scale(1.3);
+}
+
+label.star:before {
+ content: '\2605';
+}
+.ticket_closed {
+ padding: 12px;
+ margin: 8px 0;
+ background-color: #96979b;
+ color: #fff;
+ text-align: center;
+ font-weight: bold;
+ border-radius: 3px;
+}
+
+.ticket_ReplyBox.status_ticket_closed {
+ display: none;
+}
+
+.ticket_reply_notice {
+ cursor: pointer;
+ right: 0;
+ text-align: center;
+ background-color: #0073b7;
+ color: #fff;
+ padding: 12px;
+ font-size: 14px;
+ margin: 8px 0;
+ border-radius: 3px;
+ font-weight: bold;
+}
+
+.ticket_reply_notice .left, .ticket_reply_notice .center, .ticket_reply_notice .right {
+ display: inline-block;
+}
+
+.ticket_reply_notice .left {
+ float: left;
+}
+
+.ticket_reply_notice .right {
+ font-weight: bold;
+ font-size: 25px;
+ float: right;
+ height: 0;
+ margin-top: -7px;
+}
+
+.clear {
+ clear: both;
+}
+
+#jsErrorBox { display: none; margin-bottom: 24px; }
+
+.attachment_container { width: 100%; margin-top: 6px; }
+
+.attachment_header { margin-bottom: 6px; font-weight: bold; font-size: 14px; }
+
+.attachment_add { float: right; }
+.attachment_add button { padding: 10px 24px; }
+
+.attachment_add button:disabled { cursor: not-allowed; }
+
+.attachment_inputs { float: left; width: 80%; }
+.attachment_inputs input[type="file"] {
+ display: block;
+ width: 100%;
+ padding: 10px 10px;
+ margin-bottom: 6px;
+ background-color: rgba(55,138,183,0.101);
+ font-size: 16px;
+ color: #a6a7a9;
+ border-radius: 3px;
+}
+
+.attachment_info { clear: both; margin-bottom: 6px; color: #777; }
diff --git a/themes/Obsidian/modules/tickets/viewticket.js b/themes/Obsidian/modules/tickets/viewticket.js
new file mode 100644
index 00000000..e0c11463
--- /dev/null
+++ b/themes/Obsidian/modules/tickets/viewticket.js
@@ -0,0 +1,24 @@
+jQuery(function($){
+$('.divTable').each(function() {
+ $('.divTableCell.infoblock_ticket').each(function(){
+ $(this).replaceWith('
'+$(this).html()+' ');
+ });
+ $('.divTableCell.contentblock_ticket').each(function(){
+ $(this).replaceWith('
'+$(this).html()+' ');
+ });
+ $('.divTableRow').each(function(){
+ $(this).replaceWith('
'+$(this).html()+' ');
+ });
+ $('.divTableBody').each(function(){
+ $(this).replaceWith('
'+$(this).html()+' ');
+ });
+ $('.divTable').each(function(){
+ $(this).replaceWith('
');
+ });
+});
+
+$('.message').each(function() {
+ $(this).contents().wrapAll("
");
+ $(this).contents().unwrap();
+});
+});
\ No newline at end of file
diff --git a/themes/Obsidian/modules/update/update.css b/themes/Obsidian/modules/update/update.css
new file mode 100644
index 00000000..74bcba9a
--- /dev/null
+++ b/themes/Obsidian/modules/update/update.css
@@ -0,0 +1,30 @@
+.success {
+ background-color: #20aa52;
+ display: inline;
+ padding: .2em .6em .3em;
+ font-size: 78%;
+ font-weight: 700;
+ line-height: 2.5;
+ color: #fff;
+ text-align: center;
+ white-space: nowrap;
+ vertical-align: baseline;
+ border-radius: .25em;
+ position: relative;
+ top: -2px;
+}
+.failure {
+background-color: #dd4b39;
+display: inline;
+padding: .2em .6em .3em;
+font-size: 78%;
+font-weight: 700;
+line-height: 2.5;
+color: #fff;
+text-align: center;
+white-space: nowrap;
+vertical-align: baseline;
+border-radius: .25em;
+position: relative;
+top: -2px;
+}
\ No newline at end of file
diff --git a/themes/Obsidian/modules/update/updating.css b/themes/Obsidian/modules/update/updating.css
new file mode 100644
index 00000000..ea125ef2
--- /dev/null
+++ b/themes/Obsidian/modules/update/updating.css
@@ -0,0 +1,40 @@
+h4{
+ background-color:transparent;
+ text-transform:uppercase;
+ text-align:left;
+ margin:0;
+ font-size: 22px;
+ font-weight: 300;
+}
+.success {
+ background-color: #20aa52;
+ display: inline;
+ padding: .2em .6em .3em;
+ font-size: 78%;
+ font-weight: 700;
+ line-height: 2.5;
+ color: #fff;
+ text-align: center;
+ white-space: nowrap;
+ vertical-align: baseline;
+ border-radius: .25em;
+ position: relative;
+ top: -2px;
+ margin-right: 100%;
+}
+.failure {
+background-color: #dd4b39;
+display: inline;
+padding: .2em .6em .3em;
+font-size: 78%;
+font-weight: 700;
+line-height: 2.5;
+color: #fff;
+text-align: center;
+white-space: nowrap;
+vertical-align: baseline;
+border-radius: .25em;
+position: relative;
+top: -2px;
+margin-right: 100%;
+}
\ No newline at end of file
diff --git a/themes/Obsidian/modules/user_admin/show_groups.css b/themes/Obsidian/modules/user_admin/show_groups.css
new file mode 100644
index 00000000..b9e43369
--- /dev/null
+++ b/themes/Obsidian/modules/user_admin/show_groups.css
@@ -0,0 +1,67 @@
+table:nth-child(3) {
+ font-family: 'Open Sans', sans-serif;
+ margin: 10px 0 15px;
+ width: 100%;
+ text-align: left;
+ border-collapse: collapse;
+ border-spacing: 1px;
+ border: 1px solid #0F1A26 !important;
+}
+table tbody tr.tr0 td {
+ background-color: #0F1A26;
+ font-size: 10pt;
+ padding: 6px 5px;
+}
+table:nth-child(3) tbody tr {
+ color: #fff;
+ padding: 6px 4px;
+ background-color: #162535 !important;
+}
+table:nth-child(3) tbody tr:nth-child(odd) {
+ background-color: #111F2D !important;
+}
+table:nth-child(3) tbody tr td {
+ padding: 5px 8px;
+ text-align: center;
+}
+.mini-btn {
+ padding: 1px 4px;
+ border-radius: 2px;
+ cursor: pointer;
+ margin: 0 2px;
+ font-weight: normal !important;
+ color: #fff !important;
+ background-color: #37b799;
+ border: 2px solid #37b799;
+ font-size: 11px;
+ transition: all 0ms !important;
+}
+.mini-btn:hover {
+ border: 2px solid #248E75;
+ background: #248E75 !important;
+}
+.mini-btn:active {
+ border: 2px solid #204d74 !important;
+ background: #204d74 !important;
+}
+.mini-btn:before {
+ content: "\f067";
+}
+.red-btn {
+background-color: #e74c3c !important;
+border: 2px solid #e74c3c !important;;
+}
+.red-btn:before {
+ content: "\f00d";
+}
+.red-btn:hover {
+background-color: #c0392b !important;;
+border: 2px solid #c0392b !important;;
+}
+
+.mini-btn:before {
+font: normal normal normal 14px/1 FontAwesome;
+font-size: inherit;
+text-rendering: auto;
+padding-right: 2px;
+}
\ No newline at end of file
diff --git a/themes/Obsidian/modules/user_admin/show_groups.js b/themes/Obsidian/modules/user_admin/show_groups.js
new file mode 100644
index 00000000..99c16a33
--- /dev/null
+++ b/themes/Obsidian/modules/user_admin/show_groups.js
@@ -0,0 +1,11 @@
+jQuery(function($){
+ $( "table.center:nth-child(3) > tbody > tr > td:nth-child(1)" ).each(function( index ) {
+$( this ).find( "a" ).addClass('mini-btn'); //gives button look
+$( this ).find( "br" ).remove();
+$( this ).find( "a:eq(1)" ).addClass('red-btn'); //gives red color to buttons
+});
+
+ $('.mini-btn').each(function() {
+ this.textContent = this.textContent.replace(/]|\[/g, ""); //removes [ and ] from buttons
+ });
+})
\ No newline at end of file
diff --git a/themes/Obsidian/modules/user_admin/user_admin.css b/themes/Obsidian/modules/user_admin/user_admin.css
new file mode 100644
index 00000000..4b6ed7db
--- /dev/null
+++ b/themes/Obsidian/modules/user_admin/user_admin.css
@@ -0,0 +1,84 @@
+table {
+ font-family: 'Open Sans', sans-serif;
+ margin: 10px 0 15px;
+ width: 100%;
+ text-align: left;
+ border-collapse: collapse;
+ border-spacing: 1px;
+ border: 1px solid #0F1A26 !important;
+}
+
+th {
+ background-color: #0F1A26;
+ font-size: 10pt;
+ padding: 6px 5px;
+}
+
+tr {
+ color: #fff;
+ padding: 6px 4px;
+ background-color: #162535 !important;
+}
+
+.tr1 {
+ background-color: #111F2D !important;
+}
+
+.actions {
+ padding: 4px 0px;
+}
+
+.mini-btn {
+ padding: 1px 4px;
+ border-radius: 2px;
+ cursor: pointer;
+ margin: 2px;
+ font-weight: normal !important;
+ color: #fff !important;
+ background-color: #37b799;
+ border: 2px solid #37b799;
+ font-size: 11px;
+ transition: all 0ms !important;
+ float: left;
+}
+.mini-btn:hover {
+ border: 2px solid #248E75;
+ background: #248E75 !important;
+}
+.mini-btn:active {
+ border: 2px solid #204d74 !important;
+ background: #204d74 !important;
+}
+.mini-btn:before {
+ content: "\f044";
+}
+.yellow-btn {
+background-color: #f1c40f !important;
+border: 2px solid #f1c40f !important;
+}
+
+.yellow-btn:hover {
+background-color: #f39c12 !important;
+border: 2px solid #f39c12 !important;
+}
+.yellow-btn:before {
+ content: "\f00c";
+}
+.red-btn {
+background-color: #e74c3c !important;
+border: 2px solid #e74c3c !important;
+}
+.red-btn:before {
+ content: "\f00d";
+}
+.red-btn:hover {
+background-color: #c0392b !important;
+border: 2px solid #c0392b !important;
+}
+
+.mini-btn:before {
+font: normal normal normal 14px/1 FontAwesome;
+font-size: inherit;
+text-rendering: auto;
+padding-right: 2px;
+}
\ No newline at end of file
diff --git a/themes/Obsidian/modules/user_admin/user_admin.js b/themes/Obsidian/modules/user_admin/user_admin.js
new file mode 100644
index 00000000..64835f23
--- /dev/null
+++ b/themes/Obsidian/modules/user_admin/user_admin.js
@@ -0,0 +1,19 @@
+
+jQuery(function($){
+ $('.actions > a:nth-child(1)').each(function() {
+ $(this).addClass('yellow-btn'); //gives yellow color to buttons
+ });
+
+ $( ".actions" ).each(function( index ) {
+$( this ).find( "a:eq(1)" ).addClass('red-btn'); //gives red color to buttons
+});
+
+ $('.actions > a').each(function() {
+ $(this).addClass('mini-btn'); //gives links a mini button style
+ this.textContent = this.textContent.replace(/]|\[/g, ""); //removes [ and ] from buttons
+ });
+
+ $('.actions > br').each(function() {
+ $(this).remove();
+ });
+})
\ No newline at end of file
diff --git a/themes/Obsidian/modules/user_games/assign.css b/themes/Obsidian/modules/user_games/assign.css
new file mode 100644
index 00000000..bd2568e3
--- /dev/null
+++ b/themes/Obsidian/modules/user_games/assign.css
@@ -0,0 +1,50 @@
+table {
+ font-family: 'Open Sans', sans-serif;
+ margin: 10px 0 15px;
+ width: 100%;
+ text-align: left;
+ border-collapse: collapse;
+ border-spacing: 1px;
+ border: 1px solid #0F1A26 !important;
+}
+
+th {
+ background-color: #0F1A26;
+ font-size: 10pt;
+ padding: 6px 5px;
+}
+
+tr {
+ color: #fff;
+ padding: 6px 4px;
+ background-color: #162535 !important;
+}
+
+.tr1 {
+ background-color: #111F2D !important;
+}
+
+.actions {
+ padding: 4px 0px;
+}
+
+input[type="submit"] {
+ padding: 1px 4px;
+ border-radius: 2px;
+ cursor: pointer;
+ margin: 2px;
+ font-weight: normal !important;
+ color: #fff !important;
+ background-color: #37b799;
+ border: 2px solid #37b799;
+ font-size: 11px;
+ transition: all 0ms !important;
+}
+input[type="submit"]:hover {
+ border: 2px solid #248E75;
+ background: #248E75 !important;
+}
+input[type="submit"]:active {
+ border: 2px solid #204d74 !important;
+ background: #204d74 !important;
+}
\ No newline at end of file
diff --git a/themes/Obsidian/modules/user_games/edit.css b/themes/Obsidian/modules/user_games/edit.css
new file mode 100644
index 00000000..de4ca803
--- /dev/null
+++ b/themes/Obsidian/modules/user_games/edit.css
@@ -0,0 +1 @@
+select[style^="background: rgb(189, 242, 162)"],input[style^="background: rgb(189, 242, 162)"]{background:rgba(32,170,82,0.7)!important}select[style^="background: rgb(254, 156, 177)"],input[style^="background: rgb(254, 156, 177)"]{background:rgba(221,75,57,0.7)!important}.failure{background-color:#dd4b39;display:inline;padding:.2em .6em .3em;font-size:78%;font-weight:700;line-height:2.5;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em;position:relative;top:-2px}#mods table{font-family:'Open Sans',sans-serif;margin:10px 0 15px;text-align:left;border-collapse:collapse;border-spacing:1px;border:1px solid #0f1a26!important}#mods tr:nth-child(1) td{background-color:#0f1a26;font-size:10pt;padding:6px 5px}#mods tr{color:#fff;padding:6px 4px;background-color:#162535!important}#mods td{padding:5px 8px;color:#fff;border-bottom:1px solid #0f1a26}#mods tr td br{display:none}.mini-btn,a[href*="submit=delete_mod"],a[href*="install_cmds"]{padding:1px 4px;border-radius:2px;cursor:pointer;margin:2px;font-weight:normal!important;color:#fff!important;background-color:#37b799;border:2px solid #37b799;font-size:11px;transition:all 0ms!important}.mini-btn:hover,a[href*="install_cmds"]:hover{border:2px solid #248e75;background:#248e75!important}.mini-btn:active,a[href*="submit=delete_mod"]:active,a[href*="install_cmds"]:active{border:2px solid #204d74!important;background:#204d74!important}.red-btn,a[href*="submit=delete_mod"]{background-color:#e74c3c!important;border:2px solid #e74c3c!important}.red-btn:before{font:normal normal normal 14px/1 FontAwesome;content:"\f00d"}.red-btn:hover,a[href*="submit=delete_mod"]:hover{background-color:#c0392b!important;border:2px solid #c0392b!important}
\ No newline at end of file
diff --git a/themes/Obsidian/modules/user_games/edit.js b/themes/Obsidian/modules/user_games/edit.js
new file mode 100644
index 00000000..17a6350f
--- /dev/null
+++ b/themes/Obsidian/modules/user_games/edit.js
@@ -0,0 +1,9 @@
+
+jQuery(function($){
+
+$( "a[href*='delete_ip']" ).each(function( index ) {
+ $(this).addClass('mini-btn'); //gives links a mini button style
+$( this ).addClass('red-btn'); //gives red color to buttons
+this.textContent = this.textContent.replace(/]|\[/g, ""); //removes [ and ] from buttons
+});
+})
diff --git a/themes/Obsidian/modules/user_games/user_games.css b/themes/Obsidian/modules/user_games/user_games.css
new file mode 100644
index 00000000..f24f92ad
--- /dev/null
+++ b/themes/Obsidian/modules/user_games/user_games.css
@@ -0,0 +1 @@
+.main-content>table:nth-child(2),.main-content>table:nth-child(2) tr{background-color:transparent!important;border-color:transparent!important}table{font-family:'Open Sans',sans-serif;margin:10px 0 15px;width:100%;text-align:left;border-collapse:collapse;border-spacing:1px;border:1px solid #0f1a26!important}th{background-color:#0f1a26;font-size:10pt;padding:6px 5px}tr{color:#fff;padding:6px 4px;background-color:#162535!important}.tr1{background-color:#111f2d!important}.actions{padding:4px 0}.mini-btn,a[href="?m=user_games&p=add"],.size,.total{padding:1px 4px;border-radius:2px;cursor:pointer;margin:2px;font-weight:normal!important;color:#fff!important;background-color:#37b799;border:2px solid #37b799;font-size:11px;transition:all 0ms!important;float:left}.mini-btn:hover,a[href="?m=user_games&p=add"]:hover,.size:hover,.total:hover{border:2px solid #248e75;background:#248e75!important}.mini-btn:active,a[href="?m=user_games&p=add"]:active,.size:active,.total:active{border:2px solid #204d74!important;background:#204d74!important}.mini-btn:before{content:"\f24d"}.yellow-btn{background-color:#f1c40f!important;border:2px solid #f1c40f!important}.yellow-btn:hover{background-color:#f39c12!important;border:2px solid #f39c12!important}.yellow-btn:before{content:"\f044"}.red-btn{background-color:#e74c3c!important;border:2px solid #e74c3c!important}.red-btn:before{content:"\f00d"}.red-btn:hover{background-color:#c0392b!important;border:2px solid #c0392b!important}.mini-btn:before{font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;padding-right:2px}table,tr:last-child{background-color:#0f1a26!important}tr:last-child td{padding:8px 0}
\ No newline at end of file
diff --git a/themes/Obsidian/modules/user_games/user_games.js b/themes/Obsidian/modules/user_games/user_games.js
new file mode 100644
index 00000000..4ed1756f
--- /dev/null
+++ b/themes/Obsidian/modules/user_games/user_games.js
@@ -0,0 +1,18 @@
+
+jQuery(function($){
+ $('tr > td:last-child > a:nth-child(1)').each(function() {
+ $(this).addClass('red-btn'); //gives yellow color to buttons
+ });
+
+ $( "tr > td:last-child" ).each(function( index ) {
+$( this ).find( "a:eq(1)" ).addClass('yellow-btn'); //gives red color to buttons
+});
+
+ $('tr > td > a').each(function() {
+ $(this).addClass('mini-btn'); //gives links a mini button style
+ this.textContent = this.textContent.replace(/]|\[/g, ""); //removes [ and ] from buttons
+ });
+ $('tr > td > div').each(function() {
+ this.textContent = this.textContent.replace(/]|\[/g, ""); //removes [ and ] from buttons
+ });
+})
\ No newline at end of file
diff --git a/themes/Obsidian/top.html b/themes/Obsidian/top.html
new file mode 100644
index 00000000..75df961b
--- /dev/null
+++ b/themes/Obsidian/top.html
@@ -0,0 +1,108 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+MM/DD/YYYY
+
+
+
+
+
+DD/MM/YYYY
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/themes/Obsidian/topbody.html b/themes/Obsidian/topbody.html
new file mode 100644
index 00000000..5f568380
--- /dev/null
+++ b/themes/Obsidian/topbody.html
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/themes/Obsidian/upload/get.php b/themes/Obsidian/upload/get.php
new file mode 100644
index 00000000..db01273b
--- /dev/null
+++ b/themes/Obsidian/upload/get.php
@@ -0,0 +1,19 @@
+
\ No newline at end of file
diff --git a/themes/Obsidian/upload/remove.php b/themes/Obsidian/upload/remove.php
new file mode 100644
index 00000000..cc6723ae
--- /dev/null
+++ b/themes/Obsidian/upload/remove.php
@@ -0,0 +1,14 @@
+
\ No newline at end of file
diff --git a/themes/Obsidian/upload/upload.php b/themes/Obsidian/upload/upload.php
new file mode 100644
index 00000000..28c4917f
--- /dev/null
+++ b/themes/Obsidian/upload/upload.php
@@ -0,0 +1,45 @@
+ ($max_image_size*8192)) {
+ echo '
';
+ } else {
+ //echo "test";
+ $tmp = $_FILES['image']['tmp_name'];
+
+ // get uploaded file's extension
+ $ext = strtolower(pathinfo($_FILES['image']['name'], PATHINFO_EXTENSION));
+
+ // can upload same image using rand function
+ $final_image = $_SESSION['user_id'].".".$ext;
+
+ // check's valid format
+ if(in_array($ext, $valid_extensions))
+ {
+ $path = $path.strtolower($final_image);
+
+ if(move_uploaded_file($tmp,$path))
+ {
+ echo "
";
+ }
+ }
+ else
+ {
+ echo '
';
+ }
+ }
+}
+
+?>