From 41420b2b01b6cb4756a60d2bece088b42936b9b7 Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 24 Mar 2013 16:07:55 +0100 Subject: [PATCH 01/26] initial themes branch commit --- htdocs/application/controllers/main.php | 3 ++ htdocs/application/core/MY_Loader.php | 47 ++++++++++++++++++ .../themes/classic/css}/codemirror.css | 0 .../themes/classic/css}/diff.css | 0 .../themes/classic/css}/embed.css | 0 .../themes/classic/css}/fonts.css | 0 .../themes/classic/css}/iphone.css | 0 .../themes/classic/css}/main.css | 0 .../themes/classic/css}/print.css | 0 .../themes/classic/css}/raw.css | 0 .../themes/classic/css}/reset.css | 0 .../themes/classic}/images/bg-x.png | Bin .../themes/classic}/images/button.png | Bin htdocs/application/themes/classic/theme.php | 1 + .../{ => themes/classic}/views/about.php | 0 .../{ => themes/classic}/views/api_help.php | 0 .../classic}/views/auth/login_form.php | 0 .../classic}/views/defaults/footer.php | 0 .../views/defaults/footer_message.php | 0 .../classic}/views/defaults/header.php | 0 .../classic}/views/defaults/paste_form.php | 0 .../classic}/views/defaults/stats.php | 0 .../{ => themes/classic}/views/home.php | 0 .../{ => themes/classic}/views/index.html | 0 .../classic}/views/iphone/footer.php | 0 .../classic}/views/iphone/header.php | 0 .../classic}/views/iphone/recent.php | 0 .../classic}/views/iphone/view.php | 0 .../{ => themes/classic}/views/list.php | 0 .../classic}/views/list_blocked_ips.php | 0 .../{ => themes/classic}/views/list_ips.php | 0 .../classic}/views/spam_detail.php | 0 .../{ => themes/classic}/views/trends.php | 0 .../{ => themes/classic}/views/view/api.php | 0 .../classic}/views/view/captcha.php | 0 .../classic}/views/view/download.php | 0 .../{ => themes/classic}/views/view/embed.php | 0 .../{ => themes/classic}/views/view/raw.php | 0 .../{ => themes/classic}/views/view/rss.php | 0 .../{ => themes/classic}/views/view/view.php | 0 .../classic}/views/view/view_footer.php | 0 htdocs/static/images/apple-touch-icon.psd | Bin 174160 -> 0 bytes 42 files changed, 51 insertions(+) create mode 100644 htdocs/application/core/MY_Loader.php rename htdocs/{static/styles => application/themes/classic/css}/codemirror.css (100%) rename htdocs/{static/styles => application/themes/classic/css}/diff.css (100%) rename htdocs/{static/styles => application/themes/classic/css}/embed.css (100%) rename htdocs/{static/styles => application/themes/classic/css}/fonts.css (100%) rename htdocs/{static/styles => application/themes/classic/css}/iphone.css (100%) rename htdocs/{static/styles => application/themes/classic/css}/main.css (100%) rename htdocs/{static/styles => application/themes/classic/css}/print.css (100%) rename htdocs/{static/styles => application/themes/classic/css}/raw.css (100%) rename htdocs/{static/styles => application/themes/classic/css}/reset.css (100%) rename htdocs/{static => application/themes/classic}/images/bg-x.png (100%) rename htdocs/{static => application/themes/classic}/images/button.png (100%) create mode 100644 htdocs/application/themes/classic/theme.php rename htdocs/application/{ => themes/classic}/views/about.php (100%) rename htdocs/application/{ => themes/classic}/views/api_help.php (100%) rename htdocs/application/{ => themes/classic}/views/auth/login_form.php (100%) rename htdocs/application/{ => themes/classic}/views/defaults/footer.php (100%) rename htdocs/application/{ => themes/classic}/views/defaults/footer_message.php (100%) rename htdocs/application/{ => themes/classic}/views/defaults/header.php (100%) rename htdocs/application/{ => themes/classic}/views/defaults/paste_form.php (100%) rename htdocs/application/{ => themes/classic}/views/defaults/stats.php (100%) rename htdocs/application/{ => themes/classic}/views/home.php (100%) rename htdocs/application/{ => themes/classic}/views/index.html (100%) rename htdocs/application/{ => themes/classic}/views/iphone/footer.php (100%) rename htdocs/application/{ => themes/classic}/views/iphone/header.php (100%) rename htdocs/application/{ => themes/classic}/views/iphone/recent.php (100%) rename htdocs/application/{ => themes/classic}/views/iphone/view.php (100%) rename htdocs/application/{ => themes/classic}/views/list.php (100%) rename htdocs/application/{ => themes/classic}/views/list_blocked_ips.php (100%) rename htdocs/application/{ => themes/classic}/views/list_ips.php (100%) rename htdocs/application/{ => themes/classic}/views/spam_detail.php (100%) rename htdocs/application/{ => themes/classic}/views/trends.php (100%) rename htdocs/application/{ => themes/classic}/views/view/api.php (100%) rename htdocs/application/{ => themes/classic}/views/view/captcha.php (100%) rename htdocs/application/{ => themes/classic}/views/view/download.php (100%) rename htdocs/application/{ => themes/classic}/views/view/embed.php (100%) rename htdocs/application/{ => themes/classic}/views/view/raw.php (100%) rename htdocs/application/{ => themes/classic}/views/view/rss.php (100%) rename htdocs/application/{ => themes/classic}/views/view/view.php (100%) rename htdocs/application/{ => themes/classic}/views/view/view_footer.php (100%) delete mode 100644 htdocs/static/images/apple-touch-icon.psd diff --git a/htdocs/application/controllers/main.php b/htdocs/application/controllers/main.php index ae81df7..7897d15 100755 --- a/htdocs/application/controllers/main.php +++ b/htdocs/application/controllers/main.php @@ -239,6 +239,9 @@ class Main extends CI_Controller $this->dbforge->add_key('hits_updated'); $this->dbforge->add_column('pastes', $fields); } + + //load theme + $this->load->theme('classic'); } function _form_prep($lang = false, $title = '', $paste = '', $reply = false) diff --git a/htdocs/application/core/MY_Loader.php b/htdocs/application/core/MY_Loader.php new file mode 100644 index 0000000..7d4a9f8 --- /dev/null +++ b/htdocs/application/core/MY_Loader.php @@ -0,0 +1,47 @@ +template = $template; + $this->data = $this->_ci_object_to_array($data); + $this->return = $return; + } + + function view($view, $vars = array() , $return = FALSE) + { + log_message('debug', 'Using view "themes/' . $this->template . '/views/' . $view . '.php"'); + return $this->_ci_load(array( + '_ci_view' => '../themes/' . $this->template . '/views/' . $view . '.php', + '_ci_vars' => $this->_ci_object_to_array($vars) , + '_ci_return' => $return + )); + } +} diff --git a/htdocs/static/styles/codemirror.css b/htdocs/application/themes/classic/css/codemirror.css similarity index 100% rename from htdocs/static/styles/codemirror.css rename to htdocs/application/themes/classic/css/codemirror.css diff --git a/htdocs/static/styles/diff.css b/htdocs/application/themes/classic/css/diff.css similarity index 100% rename from htdocs/static/styles/diff.css rename to htdocs/application/themes/classic/css/diff.css diff --git a/htdocs/static/styles/embed.css b/htdocs/application/themes/classic/css/embed.css similarity index 100% rename from htdocs/static/styles/embed.css rename to htdocs/application/themes/classic/css/embed.css diff --git a/htdocs/static/styles/fonts.css b/htdocs/application/themes/classic/css/fonts.css similarity index 100% rename from htdocs/static/styles/fonts.css rename to htdocs/application/themes/classic/css/fonts.css diff --git a/htdocs/static/styles/iphone.css b/htdocs/application/themes/classic/css/iphone.css similarity index 100% rename from htdocs/static/styles/iphone.css rename to htdocs/application/themes/classic/css/iphone.css diff --git a/htdocs/static/styles/main.css b/htdocs/application/themes/classic/css/main.css similarity index 100% rename from htdocs/static/styles/main.css rename to htdocs/application/themes/classic/css/main.css diff --git a/htdocs/static/styles/print.css b/htdocs/application/themes/classic/css/print.css similarity index 100% rename from htdocs/static/styles/print.css rename to htdocs/application/themes/classic/css/print.css diff --git a/htdocs/static/styles/raw.css b/htdocs/application/themes/classic/css/raw.css similarity index 100% rename from htdocs/static/styles/raw.css rename to htdocs/application/themes/classic/css/raw.css diff --git a/htdocs/static/styles/reset.css b/htdocs/application/themes/classic/css/reset.css similarity index 100% rename from htdocs/static/styles/reset.css rename to htdocs/application/themes/classic/css/reset.css diff --git a/htdocs/static/images/bg-x.png b/htdocs/application/themes/classic/images/bg-x.png similarity index 100% rename from htdocs/static/images/bg-x.png rename to htdocs/application/themes/classic/images/bg-x.png diff --git a/htdocs/static/images/button.png b/htdocs/application/themes/classic/images/button.png similarity index 100% rename from htdocs/static/images/button.png rename to htdocs/application/themes/classic/images/button.png diff --git a/htdocs/application/themes/classic/theme.php b/htdocs/application/themes/classic/theme.php new file mode 100644 index 0000000..011f7dd --- /dev/null +++ b/htdocs/application/themes/classic/theme.php @@ -0,0 +1 @@ +zm^HN`)6gZme{|m&Su<*^HMB#ool#>l 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≀7l96Q(|{T3|c#JzRk7?E+-`C$gd&brWib)mWH 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 Date: Sun, 24 Mar 2013 16:26:29 +0100 Subject: [PATCH 02/26] simplification --- htdocs/application/config/stikked.php | 17 ++++++++++--- htdocs/application/controllers/main.php | 3 --- htdocs/application/core/MY_Loader.php | 27 +++++++-------------- htdocs/application/themes/classic/theme.php | 1 - 4 files changed, 22 insertions(+), 26 deletions(-) delete mode 100644 htdocs/application/themes/classic/theme.php diff --git a/htdocs/application/config/stikked.php b/htdocs/application/config/stikked.php index 78d46e8..61933eb 100755 --- a/htdocs/application/config/stikked.php +++ b/htdocs/application/config/stikked.php @@ -2,7 +2,7 @@ /** * Site Name - * + * * The name of your site * */ @@ -10,7 +10,7 @@ $config['site_name'] = 'Stikked'; /** * Database connection - * + * * Credentials for your database * The database structure will be created automatically * @@ -21,8 +21,17 @@ $config['db_username'] = 'stikked'; $config['db_password'] = 'stikked'; /** - * Combine JS & CSS files - * + * Theme + * + * Which theme to use + * Folder name in htdocs/application/themes/ + * +*/ +$config['theme'] = 'classic'; + +/** + * Combine JS & CSS files (recommended) + * * htdocs/static/asset/ folder must be writeable * */ diff --git a/htdocs/application/controllers/main.php b/htdocs/application/controllers/main.php index 7897d15..ae81df7 100755 --- a/htdocs/application/controllers/main.php +++ b/htdocs/application/controllers/main.php @@ -239,9 +239,6 @@ class Main extends CI_Controller $this->dbforge->add_key('hits_updated'); $this->dbforge->add_column('pastes', $fields); } - - //load theme - $this->load->theme('classic'); } function _form_prep($lang = false, $title = '', $paste = '', $reply = false) diff --git a/htdocs/application/core/MY_Loader.php b/htdocs/application/core/MY_Loader.php index 7d4a9f8..11d47fe 100644 --- a/htdocs/application/core/MY_Loader.php +++ b/htdocs/application/core/MY_Loader.php @@ -3,7 +3,6 @@ * Class and Function List: * Function list: * - __construct() - * - theme() * - view() * Classes list: * - MY_Loader extends CI_Loader @@ -13,9 +12,6 @@ if (!defined('BASEPATH')) exit('No direct script access allowed'); class MY_Loader extends CI_Loader { - var $template = ''; - var $data = array(); - var $return = FALSE; function __construct() { @@ -23,23 +19,18 @@ class MY_Loader extends CI_Loader log_message('debug', 'MY_Loader Class Initialized'); } - function theme($template = '', $data = array() , $return = FALSE) - { - - if ($template == '') - { - return FALSE; - } - $this->template = $template; - $this->data = $this->_ci_object_to_array($data); - $this->return = $return; - } - function view($view, $vars = array() , $return = FALSE) { - log_message('debug', 'Using view "themes/' . $this->template . '/views/' . $view . '.php"'); + + //theme name + $theme = config_item('theme'); + + //inform (todo: fallback, error if not found) + log_message('debug', 'Using view "themes/' . $theme . '/views/' . $view . '.php"'); + + //return return $this->_ci_load(array( - '_ci_view' => '../themes/' . $this->template . '/views/' . $view . '.php', + '_ci_view' => '../themes/' . $theme . '/views/' . $view . '.php', '_ci_vars' => $this->_ci_object_to_array($vars) , '_ci_return' => $return )); diff --git a/htdocs/application/themes/classic/theme.php b/htdocs/application/themes/classic/theme.php deleted file mode 100644 index 011f7dd..0000000 --- a/htdocs/application/themes/classic/theme.php +++ /dev/null @@ -1 +0,0 @@ - Date: Sun, 24 Mar 2013 16:28:54 +0100 Subject: [PATCH 03/26] simplification --- htdocs/application/core/MY_Loader.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/htdocs/application/core/MY_Loader.php b/htdocs/application/core/MY_Loader.php index 11d47fe..93db6d1 100644 --- a/htdocs/application/core/MY_Loader.php +++ b/htdocs/application/core/MY_Loader.php @@ -25,12 +25,15 @@ class MY_Loader extends CI_Loader //theme name $theme = config_item('theme'); + //view path + $view_path = 'themes/' . $theme . '/views/' . $view . '.php'; + //inform (todo: fallback, error if not found) - log_message('debug', 'Using view "themes/' . $theme . '/views/' . $view . '.php"'); + log_message('debug', 'Using view "' . $view_path . '"'); //return return $this->_ci_load(array( - '_ci_view' => '../themes/' . $theme . '/views/' . $view . '.php', + '_ci_view' => '../' . $view_path, '_ci_vars' => $this->_ci_object_to_array($vars) , '_ci_return' => $return )); From 6c8870960f3042e9adc4da179f6946fa044ec623 Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 24 Mar 2013 17:06:11 +0100 Subject: [PATCH 04/26] default theme is used as fallback --- htdocs/application/config/stikked.php | 2 +- htdocs/application/core/MY_Loader.php | 8 ++++++-- .../themes/{classic => default}/css/codemirror.css | 0 .../themes/{classic => default}/css/diff.css | 0 .../themes/{classic => default}/css/embed.css | 0 .../themes/{classic => default}/css/fonts.css | 0 .../themes/{classic => default}/css/iphone.css | 0 .../themes/{classic => default}/css/main.css | 0 .../themes/{classic => default}/css/print.css | 0 .../themes/{classic => default}/css/raw.css | 0 .../themes/{classic => default}/css/reset.css | 0 .../themes/{classic => default}/images/bg-x.png | Bin .../themes/{classic => default}/images/button.png | Bin .../themes/{classic => default}/views/about.php | 0 .../themes/{classic => default}/views/api_help.php | 0 .../{classic => default}/views/auth/login_form.php | 0 .../{classic => default}/views/defaults/footer.php | 0 .../views/defaults/footer_message.php | 0 .../{classic => default}/views/defaults/header.php | 0 .../views/defaults/paste_form.php | 0 .../{classic => default}/views/defaults/stats.php | 0 .../themes/{classic => default}/views/home.php | 0 .../themes/{classic => default}/views/index.html | 0 .../{classic => default}/views/iphone/footer.php | 0 .../{classic => default}/views/iphone/header.php | 0 .../{classic => default}/views/iphone/recent.php | 0 .../{classic => default}/views/iphone/view.php | 0 .../themes/{classic => default}/views/list.php | 0 .../{classic => default}/views/list_blocked_ips.php | 0 .../themes/{classic => default}/views/list_ips.php | 0 .../{classic => default}/views/spam_detail.php | 0 .../themes/{classic => default}/views/trends.php | 0 .../themes/{classic => default}/views/view/api.php | 0 .../{classic => default}/views/view/captcha.php | 0 .../{classic => default}/views/view/download.php | 0 .../{classic => default}/views/view/embed.php | 0 .../themes/{classic => default}/views/view/raw.php | 0 .../themes/{classic => default}/views/view/rss.php | 0 .../themes/{classic => default}/views/view/view.php | 0 .../{classic => default}/views/view/view_footer.php | 0 40 files changed, 7 insertions(+), 3 deletions(-) rename htdocs/application/themes/{classic => default}/css/codemirror.css (100%) rename htdocs/application/themes/{classic => default}/css/diff.css (100%) rename htdocs/application/themes/{classic => default}/css/embed.css (100%) rename htdocs/application/themes/{classic => default}/css/fonts.css (100%) rename htdocs/application/themes/{classic => default}/css/iphone.css (100%) rename htdocs/application/themes/{classic => default}/css/main.css (100%) rename htdocs/application/themes/{classic => default}/css/print.css (100%) rename htdocs/application/themes/{classic => default}/css/raw.css (100%) rename htdocs/application/themes/{classic => default}/css/reset.css (100%) rename htdocs/application/themes/{classic => default}/images/bg-x.png (100%) rename htdocs/application/themes/{classic => default}/images/button.png (100%) rename htdocs/application/themes/{classic => default}/views/about.php (100%) rename htdocs/application/themes/{classic => default}/views/api_help.php (100%) rename htdocs/application/themes/{classic => default}/views/auth/login_form.php (100%) rename htdocs/application/themes/{classic => default}/views/defaults/footer.php (100%) rename htdocs/application/themes/{classic => default}/views/defaults/footer_message.php (100%) rename htdocs/application/themes/{classic => default}/views/defaults/header.php (100%) rename htdocs/application/themes/{classic => default}/views/defaults/paste_form.php (100%) rename htdocs/application/themes/{classic => default}/views/defaults/stats.php (100%) rename htdocs/application/themes/{classic => default}/views/home.php (100%) rename htdocs/application/themes/{classic => default}/views/index.html (100%) rename htdocs/application/themes/{classic => default}/views/iphone/footer.php (100%) rename htdocs/application/themes/{classic => default}/views/iphone/header.php (100%) rename htdocs/application/themes/{classic => default}/views/iphone/recent.php (100%) rename htdocs/application/themes/{classic => default}/views/iphone/view.php (100%) rename htdocs/application/themes/{classic => default}/views/list.php (100%) rename htdocs/application/themes/{classic => default}/views/list_blocked_ips.php (100%) rename htdocs/application/themes/{classic => default}/views/list_ips.php (100%) rename htdocs/application/themes/{classic => default}/views/spam_detail.php (100%) rename htdocs/application/themes/{classic => default}/views/trends.php (100%) rename htdocs/application/themes/{classic => default}/views/view/api.php (100%) rename htdocs/application/themes/{classic => default}/views/view/captcha.php (100%) rename htdocs/application/themes/{classic => default}/views/view/download.php (100%) rename htdocs/application/themes/{classic => default}/views/view/embed.php (100%) rename htdocs/application/themes/{classic => default}/views/view/raw.php (100%) rename htdocs/application/themes/{classic => default}/views/view/rss.php (100%) rename htdocs/application/themes/{classic => default}/views/view/view.php (100%) rename htdocs/application/themes/{classic => default}/views/view/view_footer.php (100%) diff --git a/htdocs/application/config/stikked.php b/htdocs/application/config/stikked.php index 61933eb..91a7544 100755 --- a/htdocs/application/config/stikked.php +++ b/htdocs/application/config/stikked.php @@ -27,7 +27,7 @@ $config['db_password'] = 'stikked'; * Folder name in htdocs/application/themes/ * */ -$config['theme'] = 'classic'; +$config['theme'] = 'default'; /** * Combine JS & CSS files (recommended) diff --git a/htdocs/application/core/MY_Loader.php b/htdocs/application/core/MY_Loader.php index 93db6d1..7ad411a 100644 --- a/htdocs/application/core/MY_Loader.php +++ b/htdocs/application/core/MY_Loader.php @@ -28,8 +28,12 @@ class MY_Loader extends CI_Loader //view path $view_path = 'themes/' . $theme . '/views/' . $view . '.php'; - //inform (todo: fallback, error if not found) - log_message('debug', 'Using view "' . $view_path . '"'); + //fallback to default view if view in theme not found + + if (!file_exists('application/' . $view_path)) + { + $view_path = 'themes/default/views/' . $view . '.php'; + } //return return $this->_ci_load(array( diff --git a/htdocs/application/themes/classic/css/codemirror.css b/htdocs/application/themes/default/css/codemirror.css similarity index 100% rename from htdocs/application/themes/classic/css/codemirror.css rename to htdocs/application/themes/default/css/codemirror.css diff --git a/htdocs/application/themes/classic/css/diff.css b/htdocs/application/themes/default/css/diff.css similarity index 100% rename from htdocs/application/themes/classic/css/diff.css rename to htdocs/application/themes/default/css/diff.css diff --git a/htdocs/application/themes/classic/css/embed.css b/htdocs/application/themes/default/css/embed.css similarity index 100% rename from htdocs/application/themes/classic/css/embed.css rename to htdocs/application/themes/default/css/embed.css diff --git a/htdocs/application/themes/classic/css/fonts.css b/htdocs/application/themes/default/css/fonts.css similarity index 100% rename from htdocs/application/themes/classic/css/fonts.css rename to htdocs/application/themes/default/css/fonts.css diff --git a/htdocs/application/themes/classic/css/iphone.css b/htdocs/application/themes/default/css/iphone.css similarity index 100% rename from htdocs/application/themes/classic/css/iphone.css rename to htdocs/application/themes/default/css/iphone.css diff --git a/htdocs/application/themes/classic/css/main.css b/htdocs/application/themes/default/css/main.css similarity index 100% rename from htdocs/application/themes/classic/css/main.css rename to htdocs/application/themes/default/css/main.css diff --git a/htdocs/application/themes/classic/css/print.css b/htdocs/application/themes/default/css/print.css similarity index 100% rename from htdocs/application/themes/classic/css/print.css rename to htdocs/application/themes/default/css/print.css diff --git a/htdocs/application/themes/classic/css/raw.css b/htdocs/application/themes/default/css/raw.css similarity index 100% rename from htdocs/application/themes/classic/css/raw.css rename to htdocs/application/themes/default/css/raw.css diff --git a/htdocs/application/themes/classic/css/reset.css b/htdocs/application/themes/default/css/reset.css similarity index 100% rename from htdocs/application/themes/classic/css/reset.css rename to htdocs/application/themes/default/css/reset.css diff --git a/htdocs/application/themes/classic/images/bg-x.png b/htdocs/application/themes/default/images/bg-x.png similarity index 100% rename from htdocs/application/themes/classic/images/bg-x.png rename to htdocs/application/themes/default/images/bg-x.png diff --git a/htdocs/application/themes/classic/images/button.png b/htdocs/application/themes/default/images/button.png similarity index 100% rename from htdocs/application/themes/classic/images/button.png rename to htdocs/application/themes/default/images/button.png diff --git a/htdocs/application/themes/classic/views/about.php b/htdocs/application/themes/default/views/about.php similarity index 100% rename from htdocs/application/themes/classic/views/about.php rename to htdocs/application/themes/default/views/about.php diff --git a/htdocs/application/themes/classic/views/api_help.php b/htdocs/application/themes/default/views/api_help.php similarity index 100% rename from htdocs/application/themes/classic/views/api_help.php rename to htdocs/application/themes/default/views/api_help.php diff --git a/htdocs/application/themes/classic/views/auth/login_form.php b/htdocs/application/themes/default/views/auth/login_form.php similarity index 100% rename from htdocs/application/themes/classic/views/auth/login_form.php rename to htdocs/application/themes/default/views/auth/login_form.php diff --git a/htdocs/application/themes/classic/views/defaults/footer.php b/htdocs/application/themes/default/views/defaults/footer.php similarity index 100% rename from htdocs/application/themes/classic/views/defaults/footer.php rename to htdocs/application/themes/default/views/defaults/footer.php diff --git a/htdocs/application/themes/classic/views/defaults/footer_message.php b/htdocs/application/themes/default/views/defaults/footer_message.php similarity index 100% rename from htdocs/application/themes/classic/views/defaults/footer_message.php rename to htdocs/application/themes/default/views/defaults/footer_message.php diff --git a/htdocs/application/themes/classic/views/defaults/header.php b/htdocs/application/themes/default/views/defaults/header.php similarity index 100% rename from htdocs/application/themes/classic/views/defaults/header.php rename to htdocs/application/themes/default/views/defaults/header.php diff --git a/htdocs/application/themes/classic/views/defaults/paste_form.php b/htdocs/application/themes/default/views/defaults/paste_form.php similarity index 100% rename from htdocs/application/themes/classic/views/defaults/paste_form.php rename to htdocs/application/themes/default/views/defaults/paste_form.php diff --git a/htdocs/application/themes/classic/views/defaults/stats.php b/htdocs/application/themes/default/views/defaults/stats.php similarity index 100% rename from htdocs/application/themes/classic/views/defaults/stats.php rename to htdocs/application/themes/default/views/defaults/stats.php diff --git a/htdocs/application/themes/classic/views/home.php b/htdocs/application/themes/default/views/home.php similarity index 100% rename from htdocs/application/themes/classic/views/home.php rename to htdocs/application/themes/default/views/home.php diff --git a/htdocs/application/themes/classic/views/index.html b/htdocs/application/themes/default/views/index.html similarity index 100% rename from htdocs/application/themes/classic/views/index.html rename to htdocs/application/themes/default/views/index.html diff --git a/htdocs/application/themes/classic/views/iphone/footer.php b/htdocs/application/themes/default/views/iphone/footer.php similarity index 100% rename from htdocs/application/themes/classic/views/iphone/footer.php rename to htdocs/application/themes/default/views/iphone/footer.php diff --git a/htdocs/application/themes/classic/views/iphone/header.php b/htdocs/application/themes/default/views/iphone/header.php similarity index 100% rename from htdocs/application/themes/classic/views/iphone/header.php rename to htdocs/application/themes/default/views/iphone/header.php diff --git a/htdocs/application/themes/classic/views/iphone/recent.php b/htdocs/application/themes/default/views/iphone/recent.php similarity index 100% rename from htdocs/application/themes/classic/views/iphone/recent.php rename to htdocs/application/themes/default/views/iphone/recent.php diff --git a/htdocs/application/themes/classic/views/iphone/view.php b/htdocs/application/themes/default/views/iphone/view.php similarity index 100% rename from htdocs/application/themes/classic/views/iphone/view.php rename to htdocs/application/themes/default/views/iphone/view.php diff --git a/htdocs/application/themes/classic/views/list.php b/htdocs/application/themes/default/views/list.php similarity index 100% rename from htdocs/application/themes/classic/views/list.php rename to htdocs/application/themes/default/views/list.php diff --git a/htdocs/application/themes/classic/views/list_blocked_ips.php b/htdocs/application/themes/default/views/list_blocked_ips.php similarity index 100% rename from htdocs/application/themes/classic/views/list_blocked_ips.php rename to htdocs/application/themes/default/views/list_blocked_ips.php diff --git a/htdocs/application/themes/classic/views/list_ips.php b/htdocs/application/themes/default/views/list_ips.php similarity index 100% rename from htdocs/application/themes/classic/views/list_ips.php rename to htdocs/application/themes/default/views/list_ips.php diff --git a/htdocs/application/themes/classic/views/spam_detail.php b/htdocs/application/themes/default/views/spam_detail.php similarity index 100% rename from htdocs/application/themes/classic/views/spam_detail.php rename to htdocs/application/themes/default/views/spam_detail.php diff --git a/htdocs/application/themes/classic/views/trends.php b/htdocs/application/themes/default/views/trends.php similarity index 100% rename from htdocs/application/themes/classic/views/trends.php rename to htdocs/application/themes/default/views/trends.php diff --git a/htdocs/application/themes/classic/views/view/api.php b/htdocs/application/themes/default/views/view/api.php similarity index 100% rename from htdocs/application/themes/classic/views/view/api.php rename to htdocs/application/themes/default/views/view/api.php diff --git a/htdocs/application/themes/classic/views/view/captcha.php b/htdocs/application/themes/default/views/view/captcha.php similarity index 100% rename from htdocs/application/themes/classic/views/view/captcha.php rename to htdocs/application/themes/default/views/view/captcha.php diff --git a/htdocs/application/themes/classic/views/view/download.php b/htdocs/application/themes/default/views/view/download.php similarity index 100% rename from htdocs/application/themes/classic/views/view/download.php rename to htdocs/application/themes/default/views/view/download.php diff --git a/htdocs/application/themes/classic/views/view/embed.php b/htdocs/application/themes/default/views/view/embed.php similarity index 100% rename from htdocs/application/themes/classic/views/view/embed.php rename to htdocs/application/themes/default/views/view/embed.php diff --git a/htdocs/application/themes/classic/views/view/raw.php b/htdocs/application/themes/default/views/view/raw.php similarity index 100% rename from htdocs/application/themes/classic/views/view/raw.php rename to htdocs/application/themes/default/views/view/raw.php diff --git a/htdocs/application/themes/classic/views/view/rss.php b/htdocs/application/themes/default/views/view/rss.php similarity index 100% rename from htdocs/application/themes/classic/views/view/rss.php rename to htdocs/application/themes/default/views/view/rss.php diff --git a/htdocs/application/themes/classic/views/view/view.php b/htdocs/application/themes/default/views/view/view.php similarity index 100% rename from htdocs/application/themes/classic/views/view/view.php rename to htdocs/application/themes/default/views/view/view.php diff --git a/htdocs/application/themes/classic/views/view/view_footer.php b/htdocs/application/themes/default/views/view/view_footer.php similarity index 100% rename from htdocs/application/themes/classic/views/view/view_footer.php rename to htdocs/application/themes/default/views/view/view_footer.php From 4bb529679151502e3c466f24b98dcbb6cc989da2 Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 24 Mar 2013 18:04:43 +0100 Subject: [PATCH 05/26] themes now with css + fallback. + two themes by Gabriel Wanzek. Todo: place themes-folder outside application-dir. todo: fallback for css-carabiner. --- AUTHORS.md | 1 + htdocs/application/.htaccess | 1 - htdocs/application/config/routes.php | 2 + .../application/controllers/theme_assets.php | 40 ++ .../themes/default/views/defaults/header.php | 3 +- .../themes/default/views/view/view_footer.php | 2 +- .../application/themes/gabdark/css/main.css | 525 +++++++++++++++++ .../application/themes/gabdark3/css/main.css | 557 ++++++++++++++++++ 8 files changed, 1128 insertions(+), 3 deletions(-) delete mode 100644 htdocs/application/.htaccess create mode 100755 htdocs/application/controllers/theme_assets.php create mode 100644 htdocs/application/themes/gabdark/css/main.css create mode 100644 htdocs/application/themes/gabdark3/css/main.css diff --git a/AUTHORS.md b/AUTHORS.md index a10a34c..a0b03ad 100644 --- a/AUTHORS.md +++ b/AUTHORS.md @@ -6,3 +6,4 @@ * Alexander https://github.com/sanek (Adding JSON-API) * abma https://github.com/abma (.htaccess improvement) * Chris https://github.com/ch0wnag3 (favicon URL improvement) +* Gabriel Wanzek https://github.com/GabrielWanzek (gabdark & gabdark3 themes) diff --git a/htdocs/application/.htaccess b/htdocs/application/.htaccess deleted file mode 100644 index 14249c5..0000000 --- a/htdocs/application/.htaccess +++ /dev/null @@ -1 +0,0 @@ -Deny from all \ No newline at end of file diff --git a/htdocs/application/config/routes.php b/htdocs/application/config/routes.php index 755c3d6..46c678a 100644 --- a/htdocs/application/config/routes.php +++ b/htdocs/application/config/routes.php @@ -64,5 +64,7 @@ $route['iphone/view/:any'] = 'iphone/view'; $route['404_override'] = 'main/error_404'; +$route['application/themes/:any'] = 'theme_assets/css'; + /* End of file routes.php */ /* Location: ./application/config/routes.php */ diff --git a/htdocs/application/controllers/theme_assets.php b/htdocs/application/controllers/theme_assets.php new file mode 100755 index 0000000..fce89d1 --- /dev/null +++ b/htdocs/application/controllers/theme_assets.php @@ -0,0 +1,40 @@ +uri->segment(5); + $css_file = str_replace('.css', '', $css_file); + + //file path + $file_path = 'application/themes/' . $theme . '/css/' . $css_file . '.css'; + + //fallback to default css if view in theme not found + + if (!file_exists($file_path)) + { + $file_path = 'application/themes/default/css/' . $css_file . '.css'; + } + + //get and send + $contents = file_get_contents($file_path); + header('Content-type: text/css'); + echo $contents; + } +} diff --git a/htdocs/application/themes/default/views/defaults/header.php b/htdocs/application/themes/default/views/defaults/header.php index 19f7456..a89bc1c 100755 --- a/htdocs/application/themes/default/views/defaults/header.php +++ b/htdocs/application/themes/default/views/defaults/header.php @@ -7,6 +7,7 @@ if(isset($title)) $page_title .= $title . ' - '; } $page_title .= $this->config->item('site_name'); +$theme = $this->config->item('theme'); ?> @@ -18,7 +19,7 @@ $page_title .= $this->config->item('site_name'); //Carabiner $this->carabiner->config(array( 'script_dir' => 'static/js/', - 'style_dir' => 'static/styles/', + 'style_dir' => 'application/themes/' . $theme . '/css/', 'cache_dir' => 'static/asset/', 'base_uri' => base_url(), 'combine' => true, diff --git a/htdocs/application/themes/default/views/view/view_footer.php b/htdocs/application/themes/default/views/view/view_footer.php index 5064784..d518b38 100755 --- a/htdocs/application/themes/default/views/view/view_footer.php +++ b/htdocs/application/themes/default/views/view/view_footer.php @@ -1,4 +1,4 @@ - load->view('defaults/footer_message.php'); ?> + load->view('defaults/footer_message'); ?> Date: Sun, 24 Mar 2013 19:38:49 +0100 Subject: [PATCH 06/26] themes folder outside app dir. images handled by themes-asset controller. --- htdocs/application/.htaccess | 1 + htdocs/application/config/routes.php | 3 +- .../application/controllers/theme_assets.php | 33 ++++++++++++++---- htdocs/application/core/MY_Loader.php | 4 +-- .../themes/default/css/codemirror.css | 0 .../themes/default/css/diff.css | 0 .../themes/default/css/embed.css | 0 .../themes/default/css/fonts.css | 0 .../themes/default/css/iphone.css | 0 .../themes/default/css/main.css | 0 .../themes/default/css/print.css | 0 .../themes/default/css/raw.css | 0 .../themes/default/css/reset.css | 0 .../themes/default/images/bg-x.png | Bin .../themes/default/images/button.png | Bin .../themes/default/views/about.php | 0 .../themes/default/views/api_help.php | 0 .../themes/default/views/auth/login_form.php | 0 .../themes/default/views/defaults/footer.php | 0 .../default/views/defaults/footer_message.php | 0 .../themes/default/views/defaults/header.php | 2 +- .../default/views/defaults/paste_form.php | 0 .../themes/default/views/defaults/stats.php | 0 .../themes/default/views/home.php | 0 .../themes/default/views/index.html | 0 .../themes/default/views/iphone/footer.php | 0 .../themes/default/views/iphone/header.php | 0 .../themes/default/views/iphone/recent.php | 0 .../themes/default/views/iphone/view.php | 0 .../themes/default/views/list.php | 0 .../themes/default/views/list_blocked_ips.php | 0 .../themes/default/views/list_ips.php | 0 .../themes/default/views/spam_detail.php | 0 .../themes/default/views/trends.php | 0 .../themes/default/views/view/api.php | 0 .../themes/default/views/view/captcha.php | 0 .../themes/default/views/view/download.php | 0 .../themes/default/views/view/embed.php | 0 .../themes/default/views/view/raw.php | 0 .../themes/default/views/view/rss.php | 0 .../themes/default/views/view/view.php | 0 .../themes/default/views/view/view_footer.php | 0 .../themes/gabdark/css/main.css | 0 .../themes/gabdark3/css/main.css | 0 44 files changed, 32 insertions(+), 11 deletions(-) create mode 100644 htdocs/application/.htaccess rename htdocs/{application => }/themes/default/css/codemirror.css (100%) rename htdocs/{application => }/themes/default/css/diff.css (100%) rename htdocs/{application => }/themes/default/css/embed.css (100%) rename htdocs/{application => }/themes/default/css/fonts.css (100%) rename htdocs/{application => }/themes/default/css/iphone.css (100%) rename htdocs/{application => }/themes/default/css/main.css (100%) rename htdocs/{application => }/themes/default/css/print.css (100%) rename htdocs/{application => }/themes/default/css/raw.css (100%) rename htdocs/{application => }/themes/default/css/reset.css (100%) rename htdocs/{application => }/themes/default/images/bg-x.png (100%) rename htdocs/{application => }/themes/default/images/button.png (100%) rename htdocs/{application => }/themes/default/views/about.php (100%) rename htdocs/{application => }/themes/default/views/api_help.php (100%) rename htdocs/{application => }/themes/default/views/auth/login_form.php (100%) rename htdocs/{application => }/themes/default/views/defaults/footer.php (100%) rename htdocs/{application => }/themes/default/views/defaults/footer_message.php (100%) rename htdocs/{application => }/themes/default/views/defaults/header.php (97%) rename htdocs/{application => }/themes/default/views/defaults/paste_form.php (100%) rename htdocs/{application => }/themes/default/views/defaults/stats.php (100%) rename htdocs/{application => }/themes/default/views/home.php (100%) rename htdocs/{application => }/themes/default/views/index.html (100%) rename htdocs/{application => }/themes/default/views/iphone/footer.php (100%) rename htdocs/{application => }/themes/default/views/iphone/header.php (100%) rename htdocs/{application => }/themes/default/views/iphone/recent.php (100%) rename htdocs/{application => }/themes/default/views/iphone/view.php (100%) rename htdocs/{application => }/themes/default/views/list.php (100%) rename htdocs/{application => }/themes/default/views/list_blocked_ips.php (100%) rename htdocs/{application => }/themes/default/views/list_ips.php (100%) rename htdocs/{application => }/themes/default/views/spam_detail.php (100%) rename htdocs/{application => }/themes/default/views/trends.php (100%) rename htdocs/{application => }/themes/default/views/view/api.php (100%) rename htdocs/{application => }/themes/default/views/view/captcha.php (100%) rename htdocs/{application => }/themes/default/views/view/download.php (100%) rename htdocs/{application => }/themes/default/views/view/embed.php (100%) rename htdocs/{application => }/themes/default/views/view/raw.php (100%) rename htdocs/{application => }/themes/default/views/view/rss.php (100%) rename htdocs/{application => }/themes/default/views/view/view.php (100%) rename htdocs/{application => }/themes/default/views/view/view_footer.php (100%) rename htdocs/{application => }/themes/gabdark/css/main.css (100%) rename htdocs/{application => }/themes/gabdark3/css/main.css (100%) diff --git a/htdocs/application/.htaccess b/htdocs/application/.htaccess new file mode 100644 index 0000000..3a42882 --- /dev/null +++ b/htdocs/application/.htaccess @@ -0,0 +1 @@ +Deny from all diff --git a/htdocs/application/config/routes.php b/htdocs/application/config/routes.php index 46c678a..f6ba8d7 100644 --- a/htdocs/application/config/routes.php +++ b/htdocs/application/config/routes.php @@ -64,7 +64,8 @@ $route['iphone/view/:any'] = 'iphone/view'; $route['404_override'] = 'main/error_404'; -$route['application/themes/:any'] = 'theme_assets/css'; +$route['themes/:any/css/:any'] = 'theme_assets/css'; +$route['themes/:any/images/:any'] = 'theme_assets/images'; /* End of file routes.php */ /* Location: ./application/config/routes.php */ diff --git a/htdocs/application/controllers/theme_assets.php b/htdocs/application/controllers/theme_assets.php index fce89d1..5cd496e 100755 --- a/htdocs/application/controllers/theme_assets.php +++ b/htdocs/application/controllers/theme_assets.php @@ -4,6 +4,7 @@ * Function list: * - __construct() * - css() + * - images() * Classes list: * - Theme_assets extends CI_Controller */ @@ -19,22 +20,40 @@ class Theme_assets extends CI_Controller function css() { $theme = config_item('theme'); - $css_file = $this->uri->segment(5); - $css_file = str_replace('.css', '', $css_file); + $css_file = $this->uri->segment(4); //file path - $file_path = 'application/themes/' . $theme . '/css/' . $css_file . '.css'; + $file_path = 'themes/' . $theme . '/css/' . $css_file; //fallback to default css if view in theme not found if (!file_exists($file_path)) { - $file_path = 'application/themes/default/css/' . $css_file . '.css'; + $file_path = 'themes/default/css/' . $css_file; } - //get and send - $contents = file_get_contents($file_path); + //send header('Content-type: text/css'); - echo $contents; + readfile($file_path); + } + + function images() + { + $theme = config_item('theme'); + $image_file = $this->uri->segment(4); + + //file path + $file_path = 'themes/' . $theme . '/images/' . $image_file; + + //fallback to default css if view in theme not found + + if (!file_exists($file_path)) + { + $file_path = 'themes/default/images/' . $image_file; + } + + //send + header('Content-type: ' . mime_content_type($file_path)); + readfile($file_path); } } diff --git a/htdocs/application/core/MY_Loader.php b/htdocs/application/core/MY_Loader.php index 7ad411a..cdfbc4b 100644 --- a/htdocs/application/core/MY_Loader.php +++ b/htdocs/application/core/MY_Loader.php @@ -30,14 +30,14 @@ class MY_Loader extends CI_Loader //fallback to default view if view in theme not found - if (!file_exists('application/' . $view_path)) + if (!file_exists($view_path)) { $view_path = 'themes/default/views/' . $view . '.php'; } //return return $this->_ci_load(array( - '_ci_view' => '../' . $view_path, + '_ci_view' => '../../' . $view_path, '_ci_vars' => $this->_ci_object_to_array($vars) , '_ci_return' => $return )); diff --git a/htdocs/application/themes/default/css/codemirror.css b/htdocs/themes/default/css/codemirror.css similarity index 100% rename from htdocs/application/themes/default/css/codemirror.css rename to htdocs/themes/default/css/codemirror.css diff --git a/htdocs/application/themes/default/css/diff.css b/htdocs/themes/default/css/diff.css similarity index 100% rename from htdocs/application/themes/default/css/diff.css rename to htdocs/themes/default/css/diff.css diff --git a/htdocs/application/themes/default/css/embed.css b/htdocs/themes/default/css/embed.css similarity index 100% rename from htdocs/application/themes/default/css/embed.css rename to htdocs/themes/default/css/embed.css diff --git a/htdocs/application/themes/default/css/fonts.css b/htdocs/themes/default/css/fonts.css similarity index 100% rename from htdocs/application/themes/default/css/fonts.css rename to htdocs/themes/default/css/fonts.css diff --git a/htdocs/application/themes/default/css/iphone.css b/htdocs/themes/default/css/iphone.css similarity index 100% rename from htdocs/application/themes/default/css/iphone.css rename to htdocs/themes/default/css/iphone.css diff --git a/htdocs/application/themes/default/css/main.css b/htdocs/themes/default/css/main.css similarity index 100% rename from htdocs/application/themes/default/css/main.css rename to htdocs/themes/default/css/main.css diff --git a/htdocs/application/themes/default/css/print.css b/htdocs/themes/default/css/print.css similarity index 100% rename from htdocs/application/themes/default/css/print.css rename to htdocs/themes/default/css/print.css diff --git a/htdocs/application/themes/default/css/raw.css b/htdocs/themes/default/css/raw.css similarity index 100% rename from htdocs/application/themes/default/css/raw.css rename to htdocs/themes/default/css/raw.css diff --git a/htdocs/application/themes/default/css/reset.css b/htdocs/themes/default/css/reset.css similarity index 100% rename from htdocs/application/themes/default/css/reset.css rename to htdocs/themes/default/css/reset.css diff --git a/htdocs/application/themes/default/images/bg-x.png b/htdocs/themes/default/images/bg-x.png similarity index 100% rename from htdocs/application/themes/default/images/bg-x.png rename to htdocs/themes/default/images/bg-x.png diff --git a/htdocs/application/themes/default/images/button.png b/htdocs/themes/default/images/button.png similarity index 100% rename from htdocs/application/themes/default/images/button.png rename to htdocs/themes/default/images/button.png diff --git a/htdocs/application/themes/default/views/about.php b/htdocs/themes/default/views/about.php similarity index 100% rename from htdocs/application/themes/default/views/about.php rename to htdocs/themes/default/views/about.php diff --git a/htdocs/application/themes/default/views/api_help.php b/htdocs/themes/default/views/api_help.php similarity index 100% rename from htdocs/application/themes/default/views/api_help.php rename to htdocs/themes/default/views/api_help.php diff --git a/htdocs/application/themes/default/views/auth/login_form.php b/htdocs/themes/default/views/auth/login_form.php similarity index 100% rename from htdocs/application/themes/default/views/auth/login_form.php rename to htdocs/themes/default/views/auth/login_form.php diff --git a/htdocs/application/themes/default/views/defaults/footer.php b/htdocs/themes/default/views/defaults/footer.php similarity index 100% rename from htdocs/application/themes/default/views/defaults/footer.php rename to htdocs/themes/default/views/defaults/footer.php diff --git a/htdocs/application/themes/default/views/defaults/footer_message.php b/htdocs/themes/default/views/defaults/footer_message.php similarity index 100% rename from htdocs/application/themes/default/views/defaults/footer_message.php rename to htdocs/themes/default/views/defaults/footer_message.php diff --git a/htdocs/application/themes/default/views/defaults/header.php b/htdocs/themes/default/views/defaults/header.php similarity index 97% rename from htdocs/application/themes/default/views/defaults/header.php rename to htdocs/themes/default/views/defaults/header.php index a89bc1c..b44104c 100755 --- a/htdocs/application/themes/default/views/defaults/header.php +++ b/htdocs/themes/default/views/defaults/header.php @@ -19,7 +19,7 @@ $theme = $this->config->item('theme'); //Carabiner $this->carabiner->config(array( 'script_dir' => 'static/js/', - 'style_dir' => 'application/themes/' . $theme . '/css/', + 'style_dir' => 'themes/' . $theme . '/css/', 'cache_dir' => 'static/asset/', 'base_uri' => base_url(), 'combine' => true, diff --git a/htdocs/application/themes/default/views/defaults/paste_form.php b/htdocs/themes/default/views/defaults/paste_form.php similarity index 100% rename from htdocs/application/themes/default/views/defaults/paste_form.php rename to htdocs/themes/default/views/defaults/paste_form.php diff --git a/htdocs/application/themes/default/views/defaults/stats.php b/htdocs/themes/default/views/defaults/stats.php similarity index 100% rename from htdocs/application/themes/default/views/defaults/stats.php rename to htdocs/themes/default/views/defaults/stats.php diff --git a/htdocs/application/themes/default/views/home.php b/htdocs/themes/default/views/home.php similarity index 100% rename from htdocs/application/themes/default/views/home.php rename to htdocs/themes/default/views/home.php diff --git a/htdocs/application/themes/default/views/index.html b/htdocs/themes/default/views/index.html similarity index 100% rename from htdocs/application/themes/default/views/index.html rename to htdocs/themes/default/views/index.html diff --git a/htdocs/application/themes/default/views/iphone/footer.php b/htdocs/themes/default/views/iphone/footer.php similarity index 100% rename from htdocs/application/themes/default/views/iphone/footer.php rename to htdocs/themes/default/views/iphone/footer.php diff --git a/htdocs/application/themes/default/views/iphone/header.php b/htdocs/themes/default/views/iphone/header.php similarity index 100% rename from htdocs/application/themes/default/views/iphone/header.php rename to htdocs/themes/default/views/iphone/header.php diff --git a/htdocs/application/themes/default/views/iphone/recent.php b/htdocs/themes/default/views/iphone/recent.php similarity index 100% rename from htdocs/application/themes/default/views/iphone/recent.php rename to htdocs/themes/default/views/iphone/recent.php diff --git a/htdocs/application/themes/default/views/iphone/view.php b/htdocs/themes/default/views/iphone/view.php similarity index 100% rename from htdocs/application/themes/default/views/iphone/view.php rename to htdocs/themes/default/views/iphone/view.php diff --git a/htdocs/application/themes/default/views/list.php b/htdocs/themes/default/views/list.php similarity index 100% rename from htdocs/application/themes/default/views/list.php rename to htdocs/themes/default/views/list.php diff --git a/htdocs/application/themes/default/views/list_blocked_ips.php b/htdocs/themes/default/views/list_blocked_ips.php similarity index 100% rename from htdocs/application/themes/default/views/list_blocked_ips.php rename to htdocs/themes/default/views/list_blocked_ips.php diff --git a/htdocs/application/themes/default/views/list_ips.php b/htdocs/themes/default/views/list_ips.php similarity index 100% rename from htdocs/application/themes/default/views/list_ips.php rename to htdocs/themes/default/views/list_ips.php diff --git a/htdocs/application/themes/default/views/spam_detail.php b/htdocs/themes/default/views/spam_detail.php similarity index 100% rename from htdocs/application/themes/default/views/spam_detail.php rename to htdocs/themes/default/views/spam_detail.php diff --git a/htdocs/application/themes/default/views/trends.php b/htdocs/themes/default/views/trends.php similarity index 100% rename from htdocs/application/themes/default/views/trends.php rename to htdocs/themes/default/views/trends.php diff --git a/htdocs/application/themes/default/views/view/api.php b/htdocs/themes/default/views/view/api.php similarity index 100% rename from htdocs/application/themes/default/views/view/api.php rename to htdocs/themes/default/views/view/api.php diff --git a/htdocs/application/themes/default/views/view/captcha.php b/htdocs/themes/default/views/view/captcha.php similarity index 100% rename from htdocs/application/themes/default/views/view/captcha.php rename to htdocs/themes/default/views/view/captcha.php diff --git a/htdocs/application/themes/default/views/view/download.php b/htdocs/themes/default/views/view/download.php similarity index 100% rename from htdocs/application/themes/default/views/view/download.php rename to htdocs/themes/default/views/view/download.php diff --git a/htdocs/application/themes/default/views/view/embed.php b/htdocs/themes/default/views/view/embed.php similarity index 100% rename from htdocs/application/themes/default/views/view/embed.php rename to htdocs/themes/default/views/view/embed.php diff --git a/htdocs/application/themes/default/views/view/raw.php b/htdocs/themes/default/views/view/raw.php similarity index 100% rename from htdocs/application/themes/default/views/view/raw.php rename to htdocs/themes/default/views/view/raw.php diff --git a/htdocs/application/themes/default/views/view/rss.php b/htdocs/themes/default/views/view/rss.php similarity index 100% rename from htdocs/application/themes/default/views/view/rss.php rename to htdocs/themes/default/views/view/rss.php diff --git a/htdocs/application/themes/default/views/view/view.php b/htdocs/themes/default/views/view/view.php similarity index 100% rename from htdocs/application/themes/default/views/view/view.php rename to htdocs/themes/default/views/view/view.php diff --git a/htdocs/application/themes/default/views/view/view_footer.php b/htdocs/themes/default/views/view/view_footer.php similarity index 100% rename from htdocs/application/themes/default/views/view/view_footer.php rename to htdocs/themes/default/views/view/view_footer.php diff --git a/htdocs/application/themes/gabdark/css/main.css b/htdocs/themes/gabdark/css/main.css similarity index 100% rename from htdocs/application/themes/gabdark/css/main.css rename to htdocs/themes/gabdark/css/main.css diff --git a/htdocs/application/themes/gabdark3/css/main.css b/htdocs/themes/gabdark3/css/main.css similarity index 100% rename from htdocs/application/themes/gabdark3/css/main.css rename to htdocs/themes/gabdark3/css/main.css From 705c94ffdf29f6bf5bd36f6c0fd3eeef752ac62a Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 24 Mar 2013 21:07:54 +0100 Subject: [PATCH 07/26] css-fallback for minified css --- htdocs/application/libraries/carabiner.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/htdocs/application/libraries/carabiner.php b/htdocs/application/libraries/carabiner.php index a33bdcc..f8037cf 100644 --- a/htdocs/application/libraries/carabiner.php +++ b/htdocs/application/libraries/carabiner.php @@ -896,6 +896,12 @@ class Carabiner { $path = ($flag == 'css') ? $this->style_path : $this->script_path; $ref = ( $this->isURL($file_ref) ) ? $file_ref : realpath($path.$file_ref); + //hack for stikked themes + if(!file_exists($ref)){ + $path = ($flag == 'css') ? 'themes/default/css/' : $this->script_path; + $ref = ( $this->isURL($file_ref) ) ? $file_ref : realpath($path.$file_ref); + } + switch($flag){ case 'js': From 398f0e6d27d38ab7f119a622a9e9eaeb2fc05c83 Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 24 Mar 2013 21:43:10 +0100 Subject: [PATCH 08/26] Bootstrap theme. OMG it's awesome! Thanks Luc! --- AUTHORS.md | 1 + README.md | 1 + .../bootstrap/css/bootstrap-responsive.css | 815 +++ .../css/bootstrap-responsive.min.css | 9 + htdocs/themes/bootstrap/css/bootstrap.css | 4983 +++++++++++++++++ htdocs/themes/bootstrap/css/bootstrap.min.css | 9 + htdocs/themes/bootstrap/css/codemirror.css | 211 + htdocs/themes/bootstrap/css/embed.css | 25 + htdocs/themes/bootstrap/css/iphone.css | 130 + htdocs/themes/bootstrap/css/raw.css | 24 + htdocs/themes/bootstrap/css/style.css | 68 + .../bootstrap/images/apple-touch-icon.psd | Bin 0 -> 174160 bytes htdocs/themes/bootstrap/images/bg-x.png | Bin 0 -> 207 bytes htdocs/themes/bootstrap/images/button.png | Bin 0 -> 282 bytes .../images/glyphicons-halflings-white.png | Bin 0 -> 8777 bytes .../bootstrap/images/glyphicons-halflings.png | Bin 0 -> 13826 bytes htdocs/themes/bootstrap/images/sort_asc.png | Bin 0 -> 1118 bytes .../bootstrap/images/sort_asc_disabled.png | Bin 0 -> 1050 bytes htdocs/themes/bootstrap/images/sort_both.png | Bin 0 -> 1136 bytes htdocs/themes/bootstrap/images/sort_desc.png | Bin 0 -> 1127 bytes .../bootstrap/images/sort_desc_disabled.png | Bin 0 -> 1045 bytes htdocs/themes/bootstrap/views/about.php | 8 + htdocs/themes/bootstrap/views/api_help.php | 64 + .../bootstrap/views/defaults/footer.php | 27 + .../views/defaults/footer_message.php | 3 + .../bootstrap/views/defaults/header.php | 77 + .../bootstrap/views/defaults/paste_form.php | 131 + .../themes/bootstrap/views/defaults/stats.php | 1 + htdocs/themes/bootstrap/views/home.php | 5 + htdocs/themes/bootstrap/views/index.html | 15 + .../themes/bootstrap/views/iphone/footer.php | 4 + .../themes/bootstrap/views/iphone/header.php | 23 + .../themes/bootstrap/views/iphone/recent.php | 28 + htdocs/themes/bootstrap/views/iphone/view.php | 11 + htdocs/themes/bootstrap/views/list.php | 41 + htdocs/themes/bootstrap/views/view/api.php | 3 + .../themes/bootstrap/views/view/captcha.php | 3 + .../themes/bootstrap/views/view/download.php | 5 + htdocs/themes/bootstrap/views/view/embed.php | 62 + htdocs/themes/bootstrap/views/view/raw.php | 3 + htdocs/themes/bootstrap/views/view/rss.php | 28 + htdocs/themes/bootstrap/views/view/view.php | 88 + .../bootstrap/views/view/view_footer.php | 26 + 43 files changed, 6932 insertions(+) create mode 100644 htdocs/themes/bootstrap/css/bootstrap-responsive.css create mode 100644 htdocs/themes/bootstrap/css/bootstrap-responsive.min.css create mode 100644 htdocs/themes/bootstrap/css/bootstrap.css create mode 100644 htdocs/themes/bootstrap/css/bootstrap.min.css create mode 100644 htdocs/themes/bootstrap/css/codemirror.css create mode 100644 htdocs/themes/bootstrap/css/embed.css create mode 100644 htdocs/themes/bootstrap/css/iphone.css create mode 100644 htdocs/themes/bootstrap/css/raw.css create mode 100644 htdocs/themes/bootstrap/css/style.css create mode 100644 htdocs/themes/bootstrap/images/apple-touch-icon.psd create mode 100644 htdocs/themes/bootstrap/images/bg-x.png create mode 100644 htdocs/themes/bootstrap/images/button.png create mode 100644 htdocs/themes/bootstrap/images/glyphicons-halflings-white.png create mode 100644 htdocs/themes/bootstrap/images/glyphicons-halflings.png create mode 100644 htdocs/themes/bootstrap/images/sort_asc.png create mode 100644 htdocs/themes/bootstrap/images/sort_asc_disabled.png create mode 100644 htdocs/themes/bootstrap/images/sort_both.png create mode 100644 htdocs/themes/bootstrap/images/sort_desc.png create mode 100644 htdocs/themes/bootstrap/images/sort_desc_disabled.png create mode 100644 htdocs/themes/bootstrap/views/about.php create mode 100644 htdocs/themes/bootstrap/views/api_help.php create mode 100644 htdocs/themes/bootstrap/views/defaults/footer.php create mode 100644 htdocs/themes/bootstrap/views/defaults/footer_message.php create mode 100644 htdocs/themes/bootstrap/views/defaults/header.php create mode 100644 htdocs/themes/bootstrap/views/defaults/paste_form.php create mode 100644 htdocs/themes/bootstrap/views/defaults/stats.php create mode 100644 htdocs/themes/bootstrap/views/home.php create mode 100644 htdocs/themes/bootstrap/views/index.html create mode 100644 htdocs/themes/bootstrap/views/iphone/footer.php create mode 100644 htdocs/themes/bootstrap/views/iphone/header.php create mode 100644 htdocs/themes/bootstrap/views/iphone/recent.php create mode 100644 htdocs/themes/bootstrap/views/iphone/view.php create mode 100644 htdocs/themes/bootstrap/views/list.php create mode 100644 htdocs/themes/bootstrap/views/view/api.php create mode 100644 htdocs/themes/bootstrap/views/view/captcha.php create mode 100644 htdocs/themes/bootstrap/views/view/download.php create mode 100644 htdocs/themes/bootstrap/views/view/embed.php create mode 100644 htdocs/themes/bootstrap/views/view/raw.php create mode 100644 htdocs/themes/bootstrap/views/view/rss.php create mode 100644 htdocs/themes/bootstrap/views/view/view.php create mode 100644 htdocs/themes/bootstrap/views/view/view_footer.php diff --git a/AUTHORS.md b/AUTHORS.md index a0b03ad..37f9464 100644 --- a/AUTHORS.md +++ b/AUTHORS.md @@ -7,3 +7,4 @@ * abma https://github.com/abma (.htaccess improvement) * Chris https://github.com/ch0wnag3 (favicon URL improvement) * Gabriel Wanzek https://github.com/GabrielWanzek (gabdark & gabdark3 themes) +* Luc https://github.com/ltribolet (Bootstrap theme) diff --git a/README.md b/README.md index 35ed950..d559554 100644 --- a/README.md +++ b/README.md @@ -38,6 +38,7 @@ Changelog ### Version 0.8.5: Todo. Planned: Refactoring of pastes model, unit tests, diff-view, easier spamadmin, documentation, and more +* Themes! TODO: Make JS also part of the theme. Fix Bootstrap theme (but it's awesome!) ### Version 0.8.4: diff --git a/htdocs/themes/bootstrap/css/bootstrap-responsive.css b/htdocs/themes/bootstrap/css/bootstrap-responsive.css new file mode 100644 index 0000000..06e55c0 --- /dev/null +++ b/htdocs/themes/bootstrap/css/bootstrap-responsive.css @@ -0,0 +1,815 @@ +/*! + * Bootstrap Responsive v2.0.4 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */ + +.clearfix { + *zoom: 1; +} + +.clearfix:before, +.clearfix:after { + display: table; + content: ""; +} + +.clearfix:after { + clear: both; +} + +.hide-text { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} + +.input-block-level { + display: block; + width: 100%; + min-height: 28px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; +} + +.hidden { + display: none; + visibility: hidden; +} + +.visible-phone { + display: none !important; +} + +.visible-tablet { + display: none !important; +} + +.hidden-desktop { + display: none !important; +} + +@media (max-width: 767px) { + .visible-phone { + display: inherit !important; + } + .hidden-phone { + display: none !important; + } + .hidden-desktop { + display: inherit !important; + } + .visible-desktop { + display: none !important; + } +} + +@media (min-width: 768px) and (max-width: 979px) { + .visible-tablet { + display: inherit !important; + } + .hidden-tablet { + display: none !important; + } + .hidden-desktop { + display: inherit !important; + } + .visible-desktop { + display: none !important ; + } +} + +@media (max-width: 480px) { + .nav-collapse { + -webkit-transform: translate3d(0, 0, 0); + } + .page-header h1 small { + display: block; + line-height: 18px; + } + input[type="checkbox"], + input[type="radio"] { + border: 1px solid #ccc; + } + .form-horizontal .control-group > label { + float: none; + width: auto; + padding-top: 0; + text-align: left; + } + .form-horizontal .controls { + margin-left: 0; + } + .form-horizontal .control-list { + padding-top: 0; + } + .form-horizontal .form-actions { + padding-right: 10px; + padding-left: 10px; + } + .modal { + position: absolute; + top: 10px; + right: 10px; + left: 10px; + width: auto; + margin: 0; + } + .modal.fade.in { + top: auto; + } + .modal-header .close { + padding: 10px; + margin: -10px; + } + .carousel-caption { + position: static; + } +} + +@media (max-width: 767px) { + body { + padding-right: 20px; + padding-left: 20px; + } + .navbar-fixed-top, + .navbar-fixed-bottom { + margin-right: -20px; + margin-left: -20px; + } + .container-fluid { + padding: 0; + } + .dl-horizontal dt { + float: none; + width: auto; + clear: none; + text-align: left; + } + .dl-horizontal dd { + margin-left: 0; + } + .container { + width: auto; + } + .row-fluid { + width: 100%; + } + .row, + .thumbnails { + margin-left: 0; + } + [class*="span"], + .row-fluid [class*="span"] { + display: block; + float: none; + width: auto; + margin-left: 0; + } + .input-large, + .input-xlarge, + .input-xxlarge, + input[class*="span"], + select[class*="span"], + textarea[class*="span"], + .uneditable-input { + display: block; + width: 100%; + min-height: 28px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + } + .input-prepend input, + .input-append input, + .input-prepend input[class*="span"], + .input-append input[class*="span"] { + display: inline-block; + width: auto; + } +} + +@media (min-width: 768px) and (max-width: 979px) { + .row { + margin-left: -20px; + *zoom: 1; + } + .row:before, + .row:after { + display: table; + content: ""; + } + .row:after { + clear: both; + } + [class*="span"] { + float: left; + margin-left: 20px; + } + .container, + .navbar-fixed-top .container, + .navbar-fixed-bottom .container { + width: 724px; + } + .span12 { + width: 724px; + } + .span11 { + width: 662px; + } + .span10 { + width: 600px; + } + .span9 { + width: 538px; + } + .span8 { + width: 476px; + } + .span7 { + width: 414px; + } + .span6 { + width: 352px; + } + .span5 { + width: 290px; + } + .span4 { + width: 228px; + } + .span3 { + width: 166px; + } + .span2 { + width: 104px; + } + .span1 { + width: 42px; + } + .offset12 { + margin-left: 764px; + } + .offset11 { + margin-left: 702px; + } + .offset10 { + margin-left: 640px; + } + .offset9 { + margin-left: 578px; + } + .offset8 { + margin-left: 516px; + } + .offset7 { + margin-left: 454px; + } + .offset6 { + margin-left: 392px; + } + .offset5 { + margin-left: 330px; + } + .offset4 { + margin-left: 268px; + } + .offset3 { + margin-left: 206px; + } + .offset2 { + margin-left: 144px; + } + .offset1 { + margin-left: 82px; + } + .row-fluid { + width: 100%; + *zoom: 1; + } + .row-fluid:before, + .row-fluid:after { + display: table; + content: ""; + } + .row-fluid:after { + clear: both; + } + .row-fluid [class*="span"] { + display: block; + float: left; + width: 100%; + min-height: 28px; + margin-left: 2.762430939%; + *margin-left: 2.709239449638298%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + } + .row-fluid [class*="span"]:first-child { + margin-left: 0; + } + .row-fluid .span12 { + width: 99.999999993%; + *width: 99.9468085036383%; + } + .row-fluid .span11 { + width: 91.436464082%; + *width: 91.38327259263829%; + } + .row-fluid .span10 { + width: 82.87292817100001%; + *width: 82.8197366816383%; + } + .row-fluid .span9 { + width: 74.30939226%; + *width: 74.25620077063829%; + } + .row-fluid .span8 { + width: 65.74585634900001%; + *width: 65.6926648596383%; + } + .row-fluid .span7 { + width: 57.182320438000005%; + *width: 57.129128948638304%; + } + .row-fluid .span6 { + width: 48.618784527%; + *width: 48.5655930376383%; + } + .row-fluid .span5 { + width: 40.055248616%; + *width: 40.0020571266383%; + } + .row-fluid .span4 { + width: 31.491712705%; + *width: 31.4385212156383%; + } + .row-fluid .span3 { + width: 22.928176794%; + *width: 22.874985304638297%; + } + .row-fluid .span2 { + width: 14.364640883%; + *width: 14.311449393638298%; + } + .row-fluid .span1 { + width: 5.801104972%; + *width: 5.747913482638298%; + } + input, + textarea, + .uneditable-input { + margin-left: 0; + } + input.span12, + textarea.span12, + .uneditable-input.span12 { + width: 714px; + } + input.span11, + textarea.span11, + .uneditable-input.span11 { + width: 652px; + } + input.span10, + textarea.span10, + .uneditable-input.span10 { + width: 590px; + } + input.span9, + textarea.span9, + .uneditable-input.span9 { + width: 528px; + } + input.span8, + textarea.span8, + .uneditable-input.span8 { + width: 466px; + } + input.span7, + textarea.span7, + .uneditable-input.span7 { + width: 404px; + } + input.span6, + textarea.span6, + .uneditable-input.span6 { + width: 342px; + } + input.span5, + textarea.span5, + .uneditable-input.span5 { + width: 280px; + } + input.span4, + textarea.span4, + .uneditable-input.span4 { + width: 218px; + } + input.span3, + textarea.span3, + .uneditable-input.span3 { + width: 156px; + } + input.span2, + textarea.span2, + .uneditable-input.span2 { + width: 94px; + } + input.span1, + textarea.span1, + .uneditable-input.span1 { + width: 32px; + } +} + +@media (min-width: 1200px) { + .row { + margin-left: -30px; + *zoom: 1; + } + .row:before, + .row:after { + display: table; + content: ""; + } + .row:after { + clear: both; + } + [class*="span"] { + float: left; + margin-left: 30px; + } + .container, + .navbar-fixed-top .container, + .navbar-fixed-bottom .container { + width: 1170px; + } + .span12 { + width: 1170px; + } + .span11 { + width: 1070px; + } + .span10 { + width: 970px; + } + .span9 { + width: 870px; + } + .span8 { + width: 770px; + } + .span7 { + width: 670px; + } + .span6 { + width: 570px; + } + .span5 { + width: 470px; + } + .span4 { + width: 370px; + } + .span3 { + width: 270px; + } + .span2 { + width: 170px; + } + .span1 { + width: 70px; + } + .offset12 { + margin-left: 1230px; + } + .offset11 { + margin-left: 1130px; + } + .offset10 { + margin-left: 1030px; + } + .offset9 { + margin-left: 930px; + } + .offset8 { + margin-left: 830px; + } + .offset7 { + margin-left: 730px; + } + .offset6 { + margin-left: 630px; + } + .offset5 { + margin-left: 530px; + } + .offset4 { + margin-left: 430px; + } + .offset3 { + margin-left: 330px; + } + .offset2 { + margin-left: 230px; + } + .offset1 { + margin-left: 130px; + } + .row-fluid { + width: 100%; + *zoom: 1; + } + .row-fluid:before, + .row-fluid:after { + display: table; + content: ""; + } + .row-fluid:after { + clear: both; + } + .row-fluid [class*="span"] { + display: block; + float: left; + width: 100%; + min-height: 28px; + margin-left: 2.564102564%; + *margin-left: 2.510911074638298%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + } + .row-fluid [class*="span"]:first-child { + margin-left: 0; + } + .row-fluid .span12 { + width: 100%; + *width: 99.94680851063829%; + } + .row-fluid .span11 { + width: 91.45299145300001%; + *width: 91.3997999636383%; + } + .row-fluid .span10 { + width: 82.905982906%; + *width: 82.8527914166383%; + } + .row-fluid .span9 { + width: 74.358974359%; + *width: 74.30578286963829%; + } + .row-fluid .span8 { + width: 65.81196581200001%; + *width: 65.7587743226383%; + } + .row-fluid .span7 { + width: 57.264957265%; + *width: 57.2117657756383%; + } + .row-fluid .span6 { + width: 48.717948718%; + *width: 48.6647572286383%; + } + .row-fluid .span5 { + width: 40.170940171000005%; + *width: 40.117748681638304%; + } + .row-fluid .span4 { + width: 31.623931624%; + *width: 31.5707401346383%; + } + .row-fluid .span3 { + width: 23.076923077%; + *width: 23.0237315876383%; + } + .row-fluid .span2 { + width: 14.529914530000001%; + *width: 14.4767230406383%; + } + .row-fluid .span1 { + width: 5.982905983%; + *width: 5.929714493638298%; + } + input, + textarea, + .uneditable-input { + margin-left: 0; + } + input.span12, + textarea.span12, + .uneditable-input.span12 { + width: 1160px; + } + input.span11, + textarea.span11, + .uneditable-input.span11 { + width: 1060px; + } + input.span10, + textarea.span10, + .uneditable-input.span10 { + width: 960px; + } + input.span9, + textarea.span9, + .uneditable-input.span9 { + width: 860px; + } + input.span8, + textarea.span8, + .uneditable-input.span8 { + width: 760px; + } + input.span7, + textarea.span7, + .uneditable-input.span7 { + width: 660px; + } + input.span6, + textarea.span6, + .uneditable-input.span6 { + width: 560px; + } + input.span5, + textarea.span5, + .uneditable-input.span5 { + width: 460px; + } + input.span4, + textarea.span4, + .uneditable-input.span4 { + width: 360px; + } + input.span3, + textarea.span3, + .uneditable-input.span3 { + width: 260px; + } + input.span2, + textarea.span2, + .uneditable-input.span2 { + width: 160px; + } + input.span1, + textarea.span1, + .uneditable-input.span1 { + width: 60px; + } + .thumbnails { + margin-left: -30px; + } + .thumbnails > li { + margin-left: 30px; + } + .row-fluid .thumbnails { + margin-left: 0; + } +} + +@media (max-width: 979px) { + body { + padding-top: 0; + } + .navbar-fixed-top, + .navbar-fixed-bottom { + position: static; + } + .navbar-fixed-top { + margin-bottom: 18px; + } + .navbar-fixed-bottom { + margin-top: 18px; + } + .navbar-fixed-top .navbar-inner, + .navbar-fixed-bottom .navbar-inner { + padding: 5px; + } + .navbar .container { + width: auto; + padding: 0; + } + .navbar .brand { + padding-right: 10px; + padding-left: 10px; + margin: 0 0 0 -5px; + } + .nav-collapse { + clear: both; + } + .nav-collapse .nav { + float: none; + margin: 0 0 9px; + } + .nav-collapse .nav > li { + float: none; + } + .nav-collapse .nav > li > a { + margin-bottom: 2px; + } + .nav-collapse .nav > .divider-vertical { + display: none; + } + .nav-collapse .nav .nav-header { + color: #999999; + text-shadow: none; + } + .nav-collapse .nav > li > a, + .nav-collapse .dropdown-menu a { + padding: 6px 15px; + font-weight: bold; + color: #999999; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + } + .nav-collapse .btn { + padding: 4px 10px 4px; + font-weight: normal; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + } + .nav-collapse .dropdown-menu li + li a { + margin-bottom: 2px; + } + .nav-collapse .nav > li > a:hover, + .nav-collapse .dropdown-menu a:hover { + background-color: #222222; + } + .nav-collapse.in .btn-group { + padding: 0; + margin-top: 5px; + } + .nav-collapse .dropdown-menu { + position: static; + top: auto; + left: auto; + display: block; + float: none; + max-width: none; + padding: 0; + margin: 0 15px; + background-color: transparent; + border: none; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + } + .nav-collapse .dropdown-menu:before, + .nav-collapse .dropdown-menu:after { + display: none; + } + .nav-collapse .dropdown-menu .divider { + display: none; + } + .nav-collapse .navbar-form, + .nav-collapse .navbar-search { + float: none; + padding: 9px 15px; + margin: 9px 0; + border-top: 1px solid #222222; + border-bottom: 1px solid #222222; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + } + .navbar .nav-collapse .nav.pull-right { + float: none; + margin-left: 0; + } + .nav-collapse, + .nav-collapse.collapse { + height: 0; + overflow: hidden; + } + .navbar .btn-navbar { + display: block; + } + .navbar-static .navbar-inner { + padding-right: 10px; + padding-left: 10px; + } +} + +@media (min-width: 980px) { + .nav-collapse.collapse { + height: auto !important; + overflow: visible !important; + } +} diff --git a/htdocs/themes/bootstrap/css/bootstrap-responsive.min.css b/htdocs/themes/bootstrap/css/bootstrap-responsive.min.css new file mode 100644 index 0000000..1f55036 --- /dev/null +++ b/htdocs/themes/bootstrap/css/bootstrap-responsive.min.css @@ -0,0 +1,9 @@ +/*! + * Bootstrap Responsive v2.0.4 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:28px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.hidden{display:none;visibility:hidden}.visible-phone{display:none!important}.visible-tablet{display:none!important}.hidden-desktop{display:none!important}@media(max-width:767px){.visible-phone{display:inherit!important}.hidden-phone{display:none!important}.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}}@media(min-width:768px) and (max-width:979px){.visible-tablet{display:inherit!important}.hidden-tablet{display:none!important}.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}}@media(max-width:480px){.nav-collapse{-webkit-transform:translate3d(0,0,0)}.page-header h1 small{display:block;line-height:18px}input[type="checkbox"],input[type="radio"]{border:1px solid #ccc}.form-horizontal .control-group>label{float:none;width:auto;padding-top:0;text-align:left}.form-horizontal .controls{margin-left:0}.form-horizontal .control-list{padding-top:0}.form-horizontal .form-actions{padding-right:10px;padding-left:10px}.modal{position:absolute;top:10px;right:10px;left:10px;width:auto;margin:0}.modal.fade.in{top:auto}.modal-header .close{padding:10px;margin:-10px}.carousel-caption{position:static}}@media(max-width:767px){body{padding-right:20px;padding-left:20px}.navbar-fixed-top,.navbar-fixed-bottom{margin-right:-20px;margin-left:-20px}.container-fluid{padding:0}.dl-horizontal dt{float:none;width:auto;clear:none;text-align:left}.dl-horizontal dd{margin-left:0}.container{width:auto}.row-fluid{width:100%}.row,.thumbnails{margin-left:0}[class*="span"],.row-fluid [class*="span"]{display:block;float:none;width:auto;margin-left:0}.input-large,.input-xlarge,.input-xxlarge,input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:28px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.input-prepend input,.input-append input,.input-prepend input[class*="span"],.input-append input[class*="span"]{display:inline-block;width:auto}}@media(min-width:768px) and (max-width:979px){.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;content:""}.row:after{clear:both}[class*="span"]{float:left;margin-left:20px}.container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px}.span12{width:724px}.span11{width:662px}.span10{width:600px}.span9{width:538px}.span8{width:476px}.span7{width:414px}.span6{width:352px}.span5{width:290px}.span4{width:228px}.span3{width:166px}.span2{width:104px}.span1{width:42px}.offset12{margin-left:764px}.offset11{margin-left:702px}.offset10{margin-left:640px}.offset9{margin-left:578px}.offset8{margin-left:516px}.offset7{margin-left:454px}.offset6{margin-left:392px}.offset5{margin-left:330px}.offset4{margin-left:268px}.offset3{margin-left:206px}.offset2{margin-left:144px}.offset1{margin-left:82px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:28px;margin-left:2.762430939%;*margin-left:2.709239449638298%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .span12{width:99.999999993%;*width:99.9468085036383%}.row-fluid .span11{width:91.436464082%;*width:91.38327259263829%}.row-fluid .span10{width:82.87292817100001%;*width:82.8197366816383%}.row-fluid .span9{width:74.30939226%;*width:74.25620077063829%}.row-fluid .span8{width:65.74585634900001%;*width:65.6926648596383%}.row-fluid .span7{width:57.182320438000005%;*width:57.129128948638304%}.row-fluid .span6{width:48.618784527%;*width:48.5655930376383%}.row-fluid .span5{width:40.055248616%;*width:40.0020571266383%}.row-fluid .span4{width:31.491712705%;*width:31.4385212156383%}.row-fluid .span3{width:22.928176794%;*width:22.874985304638297%}.row-fluid .span2{width:14.364640883%;*width:14.311449393638298%}.row-fluid .span1{width:5.801104972%;*width:5.747913482638298%}input,textarea,.uneditable-input{margin-left:0}input.span12,textarea.span12,.uneditable-input.span12{width:714px}input.span11,textarea.span11,.uneditable-input.span11{width:652px}input.span10,textarea.span10,.uneditable-input.span10{width:590px}input.span9,textarea.span9,.uneditable-input.span9{width:528px}input.span8,textarea.span8,.uneditable-input.span8{width:466px}input.span7,textarea.span7,.uneditable-input.span7{width:404px}input.span6,textarea.span6,.uneditable-input.span6{width:342px}input.span5,textarea.span5,.uneditable-input.span5{width:280px}input.span4,textarea.span4,.uneditable-input.span4{width:218px}input.span3,textarea.span3,.uneditable-input.span3{width:156px}input.span2,textarea.span2,.uneditable-input.span2{width:94px}input.span1,textarea.span1,.uneditable-input.span1{width:32px}}@media(min-width:1200px){.row{margin-left:-30px;*zoom:1}.row:before,.row:after{display:table;content:""}.row:after{clear:both}[class*="span"]{float:left;margin-left:30px}.container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px}.span12{width:1170px}.span11{width:1070px}.span10{width:970px}.span9{width:870px}.span8{width:770px}.span7{width:670px}.span6{width:570px}.span5{width:470px}.span4{width:370px}.span3{width:270px}.span2{width:170px}.span1{width:70px}.offset12{margin-left:1230px}.offset11{margin-left:1130px}.offset10{margin-left:1030px}.offset9{margin-left:930px}.offset8{margin-left:830px}.offset7{margin-left:730px}.offset6{margin-left:630px}.offset5{margin-left:530px}.offset4{margin-left:430px}.offset3{margin-left:330px}.offset2{margin-left:230px}.offset1{margin-left:130px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:28px;margin-left:2.564102564%;*margin-left:2.510911074638298%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.45299145300001%;*width:91.3997999636383%}.row-fluid .span10{width:82.905982906%;*width:82.8527914166383%}.row-fluid .span9{width:74.358974359%;*width:74.30578286963829%}.row-fluid .span8{width:65.81196581200001%;*width:65.7587743226383%}.row-fluid .span7{width:57.264957265%;*width:57.2117657756383%}.row-fluid .span6{width:48.717948718%;*width:48.6647572286383%}.row-fluid .span5{width:40.170940171000005%;*width:40.117748681638304%}.row-fluid .span4{width:31.623931624%;*width:31.5707401346383%}.row-fluid .span3{width:23.076923077%;*width:23.0237315876383%}.row-fluid .span2{width:14.529914530000001%;*width:14.4767230406383%}.row-fluid .span1{width:5.982905983%;*width:5.929714493638298%}input,textarea,.uneditable-input{margin-left:0}input.span12,textarea.span12,.uneditable-input.span12{width:1160px}input.span11,textarea.span11,.uneditable-input.span11{width:1060px}input.span10,textarea.span10,.uneditable-input.span10{width:960px}input.span9,textarea.span9,.uneditable-input.span9{width:860px}input.span8,textarea.span8,.uneditable-input.span8{width:760px}input.span7,textarea.span7,.uneditable-input.span7{width:660px}input.span6,textarea.span6,.uneditable-input.span6{width:560px}input.span5,textarea.span5,.uneditable-input.span5{width:460px}input.span4,textarea.span4,.uneditable-input.span4{width:360px}input.span3,textarea.span3,.uneditable-input.span3{width:260px}input.span2,textarea.span2,.uneditable-input.span2{width:160px}input.span1,textarea.span1,.uneditable-input.span1{width:60px}.thumbnails{margin-left:-30px}.thumbnails>li{margin-left:30px}.row-fluid .thumbnails{margin-left:0}}@media(max-width:979px){body{padding-top:0}.navbar-fixed-top,.navbar-fixed-bottom{position:static}.navbar-fixed-top{margin-bottom:18px}.navbar-fixed-bottom{margin-top:18px}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding:5px}.navbar .container{width:auto;padding:0}.navbar .brand{padding-right:10px;padding-left:10px;margin:0 0 0 -5px}.nav-collapse{clear:both}.nav-collapse .nav{float:none;margin:0 0 9px}.nav-collapse .nav>li{float:none}.nav-collapse .nav>li>a{margin-bottom:2px}.nav-collapse .nav>.divider-vertical{display:none}.nav-collapse .nav .nav-header{color:#999;text-shadow:none}.nav-collapse .nav>li>a,.nav-collapse .dropdown-menu a{padding:6px 15px;font-weight:bold;color:#999;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.nav-collapse .btn{padding:4px 10px 4px;font-weight:normal;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.nav-collapse .dropdown-menu li+li a{margin-bottom:2px}.nav-collapse .nav>li>a:hover,.nav-collapse .dropdown-menu a:hover{background-color:#222}.nav-collapse.in .btn-group{padding:0;margin-top:5px}.nav-collapse .dropdown-menu{position:static;top:auto;left:auto;display:block;float:none;max-width:none;padding:0;margin:0 15px;background-color:transparent;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.nav-collapse .dropdown-menu:before,.nav-collapse .dropdown-menu:after{display:none}.nav-collapse .dropdown-menu .divider{display:none}.nav-collapse .navbar-form,.nav-collapse .navbar-search{float:none;padding:9px 15px;margin:9px 0;border-top:1px solid #222;border-bottom:1px solid #222;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1)}.navbar .nav-collapse .nav.pull-right{float:none;margin-left:0}.nav-collapse,.nav-collapse.collapse{height:0;overflow:hidden}.navbar .btn-navbar{display:block}.navbar-static .navbar-inner{padding-right:10px;padding-left:10px}}@media(min-width:980px){.nav-collapse.collapse{height:auto!important;overflow:visible!important}} diff --git a/htdocs/themes/bootstrap/css/bootstrap.css b/htdocs/themes/bootstrap/css/bootstrap.css new file mode 100644 index 0000000..bb40c85 --- /dev/null +++ b/htdocs/themes/bootstrap/css/bootstrap.css @@ -0,0 +1,4983 @@ +/*! + * Bootstrap v2.0.4 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */ + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +nav, +section { + display: block; +} + +audio, +canvas, +video { + display: inline-block; + *display: inline; + *zoom: 1; +} + +audio:not([controls]) { + display: none; +} + +html { + font-size: 100%; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} + +a:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +a:hover, +a:active { + outline: 0; +} + +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +img { + max-width: 100%; + vertical-align: middle; + border: 0; + -ms-interpolation-mode: bicubic; +} + +#map_canvas img { + max-width: none; +} + +button, +input, +select, +textarea { + margin: 0; + font-size: 100%; + vertical-align: middle; +} + +button, +input { + *overflow: visible; + line-height: normal; +} + +button::-moz-focus-inner, +input::-moz-focus-inner { + padding: 0; + border: 0; +} + +button, +input[type="button"], +input[type="reset"], +input[type="submit"] { + cursor: pointer; + -webkit-appearance: button; +} + +input[type="search"] { + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; + -webkit-appearance: textfield; +} + +input[type="search"]::-webkit-search-decoration, +input[type="search"]::-webkit-search-cancel-button { + -webkit-appearance: none; +} + +textarea { + overflow: auto; + vertical-align: top; +} + +.clearfix { + *zoom: 1; +} + +.clearfix:before, +.clearfix:after { + display: table; + content: ""; +} + +.clearfix:after { + clear: both; +} + +.hide-text { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} + +.input-block-level { + display: block; + width: 100%; + min-height: 28px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; +} + +body { + margin: 0; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 13px; + line-height: 18px; + color: #333333; + background-color: #ffffff; +} + +a { + color: #0088cc; + text-decoration: none; +} + +a:hover { + color: #005580; + text-decoration: underline; +} + +.row { + margin-left: -20px; + *zoom: 1; +} + +.row:before, +.row:after { + display: table; + content: ""; +} + +.row:after { + clear: both; +} + +[class*="span"] { + float: left; + margin-left: 20px; +} + +.container, +.navbar-fixed-top .container, +.navbar-fixed-bottom .container { + width: 940px; +} + +.span12 { + width: 940px; +} + +.span11 { + width: 860px; +} + +.span10 { + width: 780px; +} + +.span9 { + width: 700px; +} + +.span8 { + width: 620px; +} + +.span7 { + width: 540px; +} + +.span6 { + width: 460px; +} + +.span5 { + width: 380px; +} + +.span4 { + width: 300px; +} + +.span3 { + width: 220px; +} + +.span2 { + width: 140px; +} + +.span1 { + width: 60px; +} + +.offset12 { + margin-left: 980px; +} + +.offset11 { + margin-left: 900px; +} + +.offset10 { + margin-left: 820px; +} + +.offset9 { + margin-left: 740px; +} + +.offset8 { + margin-left: 660px; +} + +.offset7 { + margin-left: 580px; +} + +.offset6 { + margin-left: 500px; +} + +.offset5 { + margin-left: 420px; +} + +.offset4 { + margin-left: 340px; +} + +.offset3 { + margin-left: 260px; +} + +.offset2 { + margin-left: 180px; +} + +.offset1 { + margin-left: 100px; +} + +.row-fluid { + width: 100%; + *zoom: 1; +} + +.row-fluid:before, +.row-fluid:after { + display: table; + content: ""; +} + +.row-fluid:after { + clear: both; +} + +.row-fluid [class*="span"] { + display: block; + float: left; + width: 100%; + min-height: 28px; + margin-left: 2.127659574%; + *margin-left: 2.0744680846382977%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; +} + +.row-fluid [class*="span"]:first-child { + margin-left: 0; +} + +.row-fluid .span12 { + width: 99.99999998999999%; + *width: 99.94680850063828%; +} + +.row-fluid .span11 { + width: 91.489361693%; + *width: 91.4361702036383%; +} + +.row-fluid .span10 { + width: 82.97872339599999%; + *width: 82.92553190663828%; +} + +.row-fluid .span9 { + width: 74.468085099%; + *width: 74.4148936096383%; +} + +.row-fluid .span8 { + width: 65.95744680199999%; + *width: 65.90425531263828%; +} + +.row-fluid .span7 { + width: 57.446808505%; + *width: 57.3936170156383%; +} + +.row-fluid .span6 { + width: 48.93617020799999%; + *width: 48.88297871863829%; +} + +.row-fluid .span5 { + width: 40.425531911%; + *width: 40.3723404216383%; +} + +.row-fluid .span4 { + width: 31.914893614%; + *width: 31.8617021246383%; +} + +.row-fluid .span3 { + width: 23.404255317%; + *width: 23.3510638276383%; +} + +.row-fluid .span2 { + width: 14.89361702%; + *width: 14.8404255306383%; +} + +.row-fluid .span1 { + width: 6.382978723%; + *width: 6.329787233638298%; +} + +.container { + margin-right: auto; + margin-left: auto; + *zoom: 1; +} + +.container:before, +.container:after { + display: table; + content: ""; +} + +.container:after { + clear: both; +} + +.container-fluid { + padding-right: 20px; + padding-left: 20px; + *zoom: 1; +} + +.container-fluid:before, +.container-fluid:after { + display: table; + content: ""; +} + +.container-fluid:after { + clear: both; +} + +p { + margin: 0 0 9px; +} + +p small { + font-size: 11px; + color: #999999; +} + +.lead { + margin-bottom: 18px; + font-size: 20px; + font-weight: 200; + line-height: 27px; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + font-family: inherit; + font-weight: bold; + color: inherit; + text-rendering: optimizelegibility; +} + +h1 small, +h2 small, +h3 small, +h4 small, +h5 small, +h6 small { + font-weight: normal; + color: #999999; +} + +h1 { + font-size: 30px; + line-height: 36px; +} + +h1 small { + font-size: 18px; +} + +h2 { + font-size: 24px; + line-height: 36px; +} + +h2 small { + font-size: 18px; +} + +h3 { + font-size: 18px; + line-height: 27px; +} + +h3 small { + font-size: 14px; +} + +h4, +h5, +h6 { + line-height: 18px; +} + +h4 { + font-size: 14px; +} + +h4 small { + font-size: 12px; +} + +h5 { + font-size: 12px; +} + +h6 { + font-size: 11px; + color: #999999; + text-transform: uppercase; +} + +.page-header { + padding-bottom: 17px; + margin: 18px 0; + border-bottom: 1px solid #eeeeee; +} + +.page-header h1 { + line-height: 1; +} + +ul, +ol { + padding: 0; + margin: 0 0 9px 25px; +} + +ul ul, +ul ol, +ol ol, +ol ul { + margin-bottom: 0; +} + +ul { + list-style: disc; +} + +ol { + list-style: decimal; +} + +li { + line-height: 18px; +} + +ul.unstyled, +ol.unstyled { + margin-left: 0; + list-style: none; +} + +dl { + margin-bottom: 18px; +} + +dt, +dd { + line-height: 18px; +} + +dt { + font-weight: bold; + line-height: 17px; +} + +dd { + margin-left: 9px; +} + +.dl-horizontal dt { + float: left; + width: 120px; + overflow: hidden; + clear: left; + text-align: right; + text-overflow: ellipsis; + white-space: nowrap; +} + +.dl-horizontal dd { + margin-left: 130px; +} + +hr { + margin: 18px 0; + border: 0; + border-top: 1px solid #eeeeee; + border-bottom: 1px solid #ffffff; +} + +strong { + font-weight: bold; +} + +em { + font-style: italic; +} + +.muted { + color: #999999; +} + +abbr[title] { + cursor: help; + border-bottom: 1px dotted #999999; +} + +abbr.initialism { + font-size: 90%; + text-transform: uppercase; +} + +blockquote { + padding: 0 0 0 15px; + margin: 0 0 18px; + border-left: 5px solid #eeeeee; +} + +blockquote p { + margin-bottom: 0; + font-size: 16px; + font-weight: 300; + line-height: 22.5px; +} + +blockquote small { + display: block; + line-height: 18px; + color: #999999; +} + +blockquote small:before { + content: '\2014 \00A0'; +} + +blockquote.pull-right { + float: right; + padding-right: 15px; + padding-left: 0; + border-right: 5px solid #eeeeee; + border-left: 0; +} + +blockquote.pull-right p, +blockquote.pull-right small { + text-align: right; +} + +q:before, +q:after, +blockquote:before, +blockquote:after { + content: ""; +} + +address { + display: block; + margin-bottom: 18px; + font-style: normal; + line-height: 18px; +} + +small { + font-size: 100%; +} + +cite { + font-style: normal; +} + +code, +pre { + padding: 0 3px 2px; + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; + font-size: 12px; + color: #333333; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +code { + padding: 2px 4px; + color: #d14; + background-color: #f7f7f9; + border: 1px solid #e1e1e8; +} + +pre { + display: block; + padding: 8.5px; + margin: 0 0 9px; + font-size: 12.025px; + line-height: 18px; + word-break: break-all; + word-wrap: break-word; + white-space: pre; + white-space: pre-wrap; + background-color: #f5f5f5; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.15); + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +pre.prettyprint { + margin-bottom: 18px; +} + +pre code { + padding: 0; + color: inherit; + background-color: transparent; + border: 0; +} + +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} + +form { + margin: 0 0 18px; +} + +fieldset { + padding: 0; + margin: 0; + border: 0; +} + +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: 27px; + font-size: 19.5px; + line-height: 36px; + color: #333333; + border: 0; + border-bottom: 1px solid #e5e5e5; +} + +legend small { + font-size: 13.5px; + color: #999999; +} + +label, +input, +button, +select, +textarea { + font-size: 13px; + font-weight: normal; + line-height: 18px; +} + +input, +button, +select, +textarea { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; +} + +label { + display: block; + margin-bottom: 5px; +} + +select, +textarea, +input[type="text"], +input[type="password"], +input[type="datetime"], +input[type="datetime-local"], +input[type="date"], +input[type="month"], +input[type="time"], +input[type="week"], +input[type="number"], +input[type="email"], +input[type="url"], +input[type="search"], +input[type="tel"], +input[type="color"], +.uneditable-input { + display: inline-block; + height: 18px; + padding: 4px; + margin-bottom: 9px; + font-size: 13px; + line-height: 18px; + color: #555555; +} + +input, +textarea { + width: 210px; +} + +textarea { + height: auto; +} + +textarea, +input[type="text"], +input[type="password"], +input[type="datetime"], +input[type="datetime-local"], +input[type="date"], +input[type="month"], +input[type="time"], +input[type="week"], +input[type="number"], +input[type="email"], +input[type="url"], +input[type="search"], +input[type="tel"], +input[type="color"], +.uneditable-input { + background-color: #ffffff; + border: 1px solid #cccccc; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -webkit-transition: border linear 0.2s, box-shadow linear 0.2s; + -moz-transition: border linear 0.2s, box-shadow linear 0.2s; + -ms-transition: border linear 0.2s, box-shadow linear 0.2s; + -o-transition: border linear 0.2s, box-shadow linear 0.2s; + transition: border linear 0.2s, box-shadow linear 0.2s; +} + +textarea:focus, +input[type="text"]:focus, +input[type="password"]:focus, +input[type="datetime"]:focus, +input[type="datetime-local"]:focus, +input[type="date"]:focus, +input[type="month"]:focus, +input[type="time"]:focus, +input[type="week"]:focus, +input[type="number"]:focus, +input[type="email"]:focus, +input[type="url"]:focus, +input[type="search"]:focus, +input[type="tel"]:focus, +input[type="color"]:focus, +.uneditable-input:focus { + border-color: rgba(82, 168, 236, 0.8); + outline: 0; + outline: thin dotted \9; + /* IE6-9 */ + + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); +} + +input[type="radio"], +input[type="checkbox"] { + margin: 3px 0; + *margin-top: 0; + /* IE7 */ + + line-height: normal; + cursor: pointer; +} + +input[type="submit"], +input[type="reset"], +input[type="button"], +input[type="radio"], +input[type="checkbox"] { + width: auto; +} + +.uneditable-textarea { + width: auto; + height: auto; +} + +select, +input[type="file"] { + height: 28px; + /* In IE7, the height of the select element cannot be changed by height, only font-size */ + + *margin-top: 4px; + /* For IE7, add top margin to align select with labels */ + + line-height: 28px; +} + +select { + width: 220px; + border: 1px solid #bbb; +} + +select[multiple], +select[size] { + height: auto; +} + +select:focus, +input[type="file"]:focus, +input[type="radio"]:focus, +input[type="checkbox"]:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +.radio, +.checkbox { + min-height: 18px; + padding-left: 18px; +} + +.radio input[type="radio"], +.checkbox input[type="checkbox"] { + float: left; + margin-left: -18px; +} + +.controls > .radio:first-child, +.controls > .checkbox:first-child { + padding-top: 5px; +} + +.radio.inline, +.checkbox.inline { + display: inline-block; + padding-top: 5px; + margin-bottom: 0; + vertical-align: middle; +} + +.radio.inline + .radio.inline, +.checkbox.inline + .checkbox.inline { + margin-left: 10px; +} + +.input-mini { + width: 60px; +} + +.input-small { + width: 90px; +} + +.input-medium { + width: 150px; +} + +.input-large { + width: 210px; +} + +.input-xlarge { + width: 270px; +} + +.input-xxlarge { + width: 530px; +} + +input[class*="span"], +select[class*="span"], +textarea[class*="span"], +.uneditable-input[class*="span"], +.row-fluid input[class*="span"], +.row-fluid select[class*="span"], +.row-fluid textarea[class*="span"], +.row-fluid .uneditable-input[class*="span"] { + float: none; + margin-left: 0; +} + +.input-append input[class*="span"], +.input-append .uneditable-input[class*="span"], +.input-prepend input[class*="span"], +.input-prepend .uneditable-input[class*="span"], +.row-fluid .input-prepend [class*="span"], +.row-fluid .input-append [class*="span"] { + display: inline-block; +} + +input, +textarea, +.uneditable-input { + margin-left: 0; +} + +input.span12, +textarea.span12, +.uneditable-input.span12 { + width: 930px; +} + +input.span11, +textarea.span11, +.uneditable-input.span11 { + width: 850px; +} + +input.span10, +textarea.span10, +.uneditable-input.span10 { + width: 770px; +} + +input.span9, +textarea.span9, +.uneditable-input.span9 { + width: 690px; +} + +input.span8, +textarea.span8, +.uneditable-input.span8 { + width: 610px; +} + +input.span7, +textarea.span7, +.uneditable-input.span7 { + width: 530px; +} + +input.span6, +textarea.span6, +.uneditable-input.span6 { + width: 450px; +} + +input.span5, +textarea.span5, +.uneditable-input.span5 { + width: 370px; +} + +input.span4, +textarea.span4, +.uneditable-input.span4 { + width: 290px; +} + +input.span3, +textarea.span3, +.uneditable-input.span3 { + width: 210px; +} + +input.span2, +textarea.span2, +.uneditable-input.span2 { + width: 130px; +} + +input.span1, +textarea.span1, +.uneditable-input.span1 { + width: 50px; +} + +input[disabled], +select[disabled], +textarea[disabled], +input[readonly], +select[readonly], +textarea[readonly] { + cursor: not-allowed; + background-color: #eeeeee; + border-color: #ddd; +} + +input[type="radio"][disabled], +input[type="checkbox"][disabled], +input[type="radio"][readonly], +input[type="checkbox"][readonly] { + background-color: transparent; +} + +.control-group.warning > label, +.control-group.warning .help-block, +.control-group.warning .help-inline { + color: #c09853; +} + +.control-group.warning .checkbox, +.control-group.warning .radio, +.control-group.warning input, +.control-group.warning select, +.control-group.warning textarea { + color: #c09853; + border-color: #c09853; +} + +.control-group.warning .checkbox:focus, +.control-group.warning .radio:focus, +.control-group.warning input:focus, +.control-group.warning select:focus, +.control-group.warning textarea:focus { + border-color: #a47e3c; + -webkit-box-shadow: 0 0 6px #dbc59e; + -moz-box-shadow: 0 0 6px #dbc59e; + box-shadow: 0 0 6px #dbc59e; +} + +.control-group.warning .input-prepend .add-on, +.control-group.warning .input-append .add-on { + color: #c09853; + background-color: #fcf8e3; + border-color: #c09853; +} + +.control-group.error > label, +.control-group.error .help-block, +.control-group.error .help-inline { + color: #b94a48; +} + +.control-group.error .checkbox, +.control-group.error .radio, +.control-group.error input, +.control-group.error select, +.control-group.error textarea { + color: #b94a48; + border-color: #b94a48; +} + +.control-group.error .checkbox:focus, +.control-group.error .radio:focus, +.control-group.error input:focus, +.control-group.error select:focus, +.control-group.error textarea:focus { + border-color: #953b39; + -webkit-box-shadow: 0 0 6px #d59392; + -moz-box-shadow: 0 0 6px #d59392; + box-shadow: 0 0 6px #d59392; +} + +.control-group.error .input-prepend .add-on, +.control-group.error .input-append .add-on { + color: #b94a48; + background-color: #f2dede; + border-color: #b94a48; +} + +.control-group.success > label, +.control-group.success .help-block, +.control-group.success .help-inline { + color: #468847; +} + +.control-group.success .checkbox, +.control-group.success .radio, +.control-group.success input, +.control-group.success select, +.control-group.success textarea { + color: #468847; + border-color: #468847; +} + +.control-group.success .checkbox:focus, +.control-group.success .radio:focus, +.control-group.success input:focus, +.control-group.success select:focus, +.control-group.success textarea:focus { + border-color: #356635; + -webkit-box-shadow: 0 0 6px #7aba7b; + -moz-box-shadow: 0 0 6px #7aba7b; + box-shadow: 0 0 6px #7aba7b; +} + +.control-group.success .input-prepend .add-on, +.control-group.success .input-append .add-on { + color: #468847; + background-color: #dff0d8; + border-color: #468847; +} + +input:focus:required:invalid, +textarea:focus:required:invalid, +select:focus:required:invalid { + color: #b94a48; + border-color: #ee5f5b; +} + +input:focus:required:invalid:focus, +textarea:focus:required:invalid:focus, +select:focus:required:invalid:focus { + border-color: #e9322d; + -webkit-box-shadow: 0 0 6px #f8b9b7; + -moz-box-shadow: 0 0 6px #f8b9b7; + box-shadow: 0 0 6px #f8b9b7; +} + +.form-actions { + padding: 17px 20px 18px; + margin-top: 18px; + margin-bottom: 18px; + background-color: #f5f5f5; + border-top: 1px solid #e5e5e5; + *zoom: 1; +} + +.form-actions:before, +.form-actions:after { + display: table; + content: ""; +} + +.form-actions:after { + clear: both; +} + +.uneditable-input { + overflow: hidden; + white-space: nowrap; + cursor: not-allowed; + background-color: #ffffff; + border-color: #eee; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); +} + +:-moz-placeholder { + color: #999999; +} + +:-ms-input-placeholder { + color: #999999; +} + +::-webkit-input-placeholder { + color: #999999; +} + +.help-block, +.help-inline { + color: #555555; +} + +.help-block { + display: block; + margin-bottom: 9px; +} + +.help-inline { + display: inline-block; + *display: inline; + padding-left: 5px; + vertical-align: middle; + *zoom: 1; +} + +.input-prepend, +.input-append { + margin-bottom: 5px; +} + +.input-prepend input, +.input-append input, +.input-prepend select, +.input-append select, +.input-prepend .uneditable-input, +.input-append .uneditable-input { + position: relative; + margin-bottom: 0; + *margin-left: 0; + vertical-align: middle; + -webkit-border-radius: 0 3px 3px 0; + -moz-border-radius: 0 3px 3px 0; + border-radius: 0 3px 3px 0; +} + +.input-prepend input:focus, +.input-append input:focus, +.input-prepend select:focus, +.input-append select:focus, +.input-prepend .uneditable-input:focus, +.input-append .uneditable-input:focus { + z-index: 2; +} + +.input-prepend .uneditable-input, +.input-append .uneditable-input { + border-left-color: #ccc; +} + +.input-prepend .add-on, +.input-append .add-on { + display: inline-block; + width: auto; + height: 18px; + min-width: 16px; + padding: 4px 5px; + font-weight: normal; + line-height: 18px; + text-align: center; + text-shadow: 0 1px 0 #ffffff; + vertical-align: middle; + background-color: #eeeeee; + border: 1px solid #ccc; +} + +.input-prepend .add-on, +.input-append .add-on, +.input-prepend .btn, +.input-append .btn { + margin-left: -1px; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.input-prepend .active, +.input-append .active { + background-color: #a9dba9; + border-color: #46a546; +} + +.input-prepend .add-on, +.input-prepend .btn { + margin-right: -1px; +} + +.input-prepend .add-on:first-child, +.input-prepend .btn:first-child { + -webkit-border-radius: 3px 0 0 3px; + -moz-border-radius: 3px 0 0 3px; + border-radius: 3px 0 0 3px; +} + +.input-append input, +.input-append select, +.input-append .uneditable-input { + -webkit-border-radius: 3px 0 0 3px; + -moz-border-radius: 3px 0 0 3px; + border-radius: 3px 0 0 3px; +} + +.input-append .uneditable-input { + border-right-color: #ccc; + border-left-color: #eee; +} + +.input-append .add-on:last-child, +.input-append .btn:last-child { + -webkit-border-radius: 0 3px 3px 0; + -moz-border-radius: 0 3px 3px 0; + border-radius: 0 3px 3px 0; +} + +.input-prepend.input-append input, +.input-prepend.input-append select, +.input-prepend.input-append .uneditable-input { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.input-prepend.input-append .add-on:first-child, +.input-prepend.input-append .btn:first-child { + margin-right: -1px; + -webkit-border-radius: 3px 0 0 3px; + -moz-border-radius: 3px 0 0 3px; + border-radius: 3px 0 0 3px; +} + +.input-prepend.input-append .add-on:last-child, +.input-prepend.input-append .btn:last-child { + margin-left: -1px; + -webkit-border-radius: 0 3px 3px 0; + -moz-border-radius: 0 3px 3px 0; + border-radius: 0 3px 3px 0; +} + +.search-query { + padding-right: 14px; + padding-right: 4px \9; + padding-left: 14px; + padding-left: 4px \9; + /* IE7-8 doesn't have border-radius, so don't indent the padding */ + + margin-bottom: 0; + -webkit-border-radius: 14px; + -moz-border-radius: 14px; + border-radius: 14px; +} + +.form-search input, +.form-inline input, +.form-horizontal input, +.form-search textarea, +.form-inline textarea, +.form-horizontal textarea, +.form-search select, +.form-inline select, +.form-horizontal select, +.form-search .help-inline, +.form-inline .help-inline, +.form-horizontal .help-inline, +.form-search .uneditable-input, +.form-inline .uneditable-input, +.form-horizontal .uneditable-input, +.form-search .input-prepend, +.form-inline .input-prepend, +.form-horizontal .input-prepend, +.form-search .input-append, +.form-inline .input-append, +.form-horizontal .input-append { + display: inline-block; + *display: inline; + margin-bottom: 0; + *zoom: 1; +} + +.form-search .hide, +.form-inline .hide, +.form-horizontal .hide { + display: none; +} + +.form-search label, +.form-inline label { + display: inline-block; +} + +.form-search .input-append, +.form-inline .input-append, +.form-search .input-prepend, +.form-inline .input-prepend { + margin-bottom: 0; +} + +.form-search .radio, +.form-search .checkbox, +.form-inline .radio, +.form-inline .checkbox { + padding-left: 0; + margin-bottom: 0; + vertical-align: middle; +} + +.form-search .radio input[type="radio"], +.form-search .checkbox input[type="checkbox"], +.form-inline .radio input[type="radio"], +.form-inline .checkbox input[type="checkbox"] { + float: left; + margin-right: 3px; + margin-left: 0; +} + +.control-group { + margin-bottom: 9px; +} + +legend + .control-group { + margin-top: 18px; + -webkit-margin-top-collapse: separate; +} + +.form-horizontal .control-group { + margin-bottom: 18px; + *zoom: 1; +} + +.form-horizontal .control-group:before, +.form-horizontal .control-group:after { + display: table; + content: ""; +} + +.form-horizontal .control-group:after { + clear: both; +} + +.form-horizontal .control-label { + float: left; + width: 140px; + padding-top: 5px; + text-align: right; +} + +.form-horizontal .controls { + *display: inline-block; + *padding-left: 20px; + margin-left: 160px; + *margin-left: 0; +} + +.form-horizontal .controls:first-child { + *padding-left: 160px; +} + +.form-horizontal .help-block { + margin-top: 9px; + margin-bottom: 0; +} + +.form-horizontal .form-actions { + padding-left: 160px; +} + +table { + max-width: 100%; + background-color: transparent; + border-collapse: collapse; + border-spacing: 0; +} + +.table { + width: 100%; + margin-bottom: 18px; +} + +.table th, +.table td { + padding: 8px; + line-height: 18px; + text-align: left; + vertical-align: top; + border-top: 1px solid #dddddd; +} + +.table th { + font-weight: bold; +} + +.table thead th { + vertical-align: bottom; +} + +.table caption + thead tr:first-child th, +.table caption + thead tr:first-child td, +.table colgroup + thead tr:first-child th, +.table colgroup + thead tr:first-child td, +.table thead:first-child tr:first-child th, +.table thead:first-child tr:first-child td { + border-top: 0; +} + +.table tbody + tbody { + border-top: 2px solid #dddddd; +} + +.table-condensed th, +.table-condensed td { + padding: 4px 5px; +} + +.table-bordered { + border: 1px solid #dddddd; + border-collapse: separate; + *border-collapse: collapsed; + border-left: 0; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.table-bordered th, +.table-bordered td { + border-left: 1px solid #dddddd; +} + +.table-bordered caption + thead tr:first-child th, +.table-bordered caption + tbody tr:first-child th, +.table-bordered caption + tbody tr:first-child td, +.table-bordered colgroup + thead tr:first-child th, +.table-bordered colgroup + tbody tr:first-child th, +.table-bordered colgroup + tbody tr:first-child td, +.table-bordered thead:first-child tr:first-child th, +.table-bordered tbody:first-child tr:first-child th, +.table-bordered tbody:first-child tr:first-child td { + border-top: 0; +} + +.table-bordered thead:first-child tr:first-child th:first-child, +.table-bordered tbody:first-child tr:first-child td:first-child { + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-topleft: 4px; +} + +.table-bordered thead:first-child tr:first-child th:last-child, +.table-bordered tbody:first-child tr:first-child td:last-child { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -moz-border-radius-topright: 4px; +} + +.table-bordered thead:last-child tr:last-child th:first-child, +.table-bordered tbody:last-child tr:last-child td:first-child { + -webkit-border-radius: 0 0 0 4px; + -moz-border-radius: 0 0 0 4px; + border-radius: 0 0 0 4px; + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; +} + +.table-bordered thead:last-child tr:last-child th:last-child, +.table-bordered tbody:last-child tr:last-child td:last-child { + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; + -moz-border-radius-bottomright: 4px; +} + +.table-striped tbody tr:nth-child(odd) td, +.table-striped tbody tr:nth-child(odd) th { + background-color: #f9f9f9; +} + +.table tbody tr:hover td, +.table tbody tr:hover th { + background-color: #f5f5f5; +} + +table .span1 { + float: none; + width: 44px; + margin-left: 0; +} + +table .span2 { + float: none; + width: 124px; + margin-left: 0; +} + +table .span3 { + float: none; + width: 204px; + margin-left: 0; +} + +table .span4 { + float: none; + width: 284px; + margin-left: 0; +} + +table .span5 { + float: none; + width: 364px; + margin-left: 0; +} + +table .span6 { + float: none; + width: 444px; + margin-left: 0; +} + +table .span7 { + float: none; + width: 524px; + margin-left: 0; +} + +table .span8 { + float: none; + width: 604px; + margin-left: 0; +} + +table .span9 { + float: none; + width: 684px; + margin-left: 0; +} + +table .span10 { + float: none; + width: 764px; + margin-left: 0; +} + +table .span11 { + float: none; + width: 844px; + margin-left: 0; +} + +table .span12 { + float: none; + width: 924px; + margin-left: 0; +} + +table .span13 { + float: none; + width: 1004px; + margin-left: 0; +} + +table .span14 { + float: none; + width: 1084px; + margin-left: 0; +} + +table .span15 { + float: none; + width: 1164px; + margin-left: 0; +} + +table .span16 { + float: none; + width: 1244px; + margin-left: 0; +} + +table .span17 { + float: none; + width: 1324px; + margin-left: 0; +} + +table .span18 { + float: none; + width: 1404px; + margin-left: 0; +} + +table .span19 { + float: none; + width: 1484px; + margin-left: 0; +} + +table .span20 { + float: none; + width: 1564px; + margin-left: 0; +} + +table .span21 { + float: none; + width: 1644px; + margin-left: 0; +} + +table .span22 { + float: none; + width: 1724px; + margin-left: 0; +} + +table .span23 { + float: none; + width: 1804px; + margin-left: 0; +} + +table .span24 { + float: none; + width: 1884px; + margin-left: 0; +} + +[class^="icon-"], +[class*=" icon-"] { + display: inline-block; + width: 14px; + height: 14px; + *margin-right: .3em; + line-height: 14px; + vertical-align: text-top; + background-image: url("../img/glyphicons-halflings.png"); + background-position: 14px 14px; + background-repeat: no-repeat; +} + +[class^="icon-"]:last-child, +[class*=" icon-"]:last-child { + *margin-left: 0; +} + +.icon-white { + background-image: url("../img/glyphicons-halflings-white.png"); +} + +.icon-glass { + background-position: 0 0; +} + +.icon-music { + background-position: -24px 0; +} + +.icon-search { + background-position: -48px 0; +} + +.icon-envelope { + background-position: -72px 0; +} + +.icon-heart { + background-position: -96px 0; +} + +.icon-star { + background-position: -120px 0; +} + +.icon-star-empty { + background-position: -144px 0; +} + +.icon-user { + background-position: -168px 0; +} + +.icon-film { + background-position: -192px 0; +} + +.icon-th-large { + background-position: -216px 0; +} + +.icon-th { + background-position: -240px 0; +} + +.icon-th-list { + background-position: -264px 0; +} + +.icon-ok { + background-position: -288px 0; +} + +.icon-remove { + background-position: -312px 0; +} + +.icon-zoom-in { + background-position: -336px 0; +} + +.icon-zoom-out { + background-position: -360px 0; +} + +.icon-off { + background-position: -384px 0; +} + +.icon-signal { + background-position: -408px 0; +} + +.icon-cog { + background-position: -432px 0; +} + +.icon-trash { + background-position: -456px 0; +} + +.icon-home { + background-position: 0 -24px; +} + +.icon-file { + background-position: -24px -24px; +} + +.icon-time { + background-position: -48px -24px; +} + +.icon-road { + background-position: -72px -24px; +} + +.icon-download-alt { + background-position: -96px -24px; +} + +.icon-download { + background-position: -120px -24px; +} + +.icon-upload { + background-position: -144px -24px; +} + +.icon-inbox { + background-position: -168px -24px; +} + +.icon-play-circle { + background-position: -192px -24px; +} + +.icon-repeat { + background-position: -216px -24px; +} + +.icon-refresh { + background-position: -240px -24px; +} + +.icon-list-alt { + background-position: -264px -24px; +} + +.icon-lock { + background-position: -287px -24px; +} + +.icon-flag { + background-position: -312px -24px; +} + +.icon-headphones { + background-position: -336px -24px; +} + +.icon-volume-off { + background-position: -360px -24px; +} + +.icon-volume-down { + background-position: -384px -24px; +} + +.icon-volume-up { + background-position: -408px -24px; +} + +.icon-qrcode { + background-position: -432px -24px; +} + +.icon-barcode { + background-position: -456px -24px; +} + +.icon-tag { + background-position: 0 -48px; +} + +.icon-tags { + background-position: -25px -48px; +} + +.icon-book { + background-position: -48px -48px; +} + +.icon-bookmark { + background-position: -72px -48px; +} + +.icon-print { + background-position: -96px -48px; +} + +.icon-camera { + background-position: -120px -48px; +} + +.icon-font { + background-position: -144px -48px; +} + +.icon-bold { + background-position: -167px -48px; +} + +.icon-italic { + background-position: -192px -48px; +} + +.icon-text-height { + background-position: -216px -48px; +} + +.icon-text-width { + background-position: -240px -48px; +} + +.icon-align-left { + background-position: -264px -48px; +} + +.icon-align-center { + background-position: -288px -48px; +} + +.icon-align-right { + background-position: -312px -48px; +} + +.icon-align-justify { + background-position: -336px -48px; +} + +.icon-list { + background-position: -360px -48px; +} + +.icon-indent-left { + background-position: -384px -48px; +} + +.icon-indent-right { + background-position: -408px -48px; +} + +.icon-facetime-video { + background-position: -432px -48px; +} + +.icon-picture { + background-position: -456px -48px; +} + +.icon-pencil { + background-position: 0 -72px; +} + +.icon-map-marker { + background-position: -24px -72px; +} + +.icon-adjust { + background-position: -48px -72px; +} + +.icon-tint { + background-position: -72px -72px; +} + +.icon-edit { + background-position: -96px -72px; +} + +.icon-share { + background-position: -120px -72px; +} + +.icon-check { + background-position: -144px -72px; +} + +.icon-move { + background-position: -168px -72px; +} + +.icon-step-backward { + background-position: -192px -72px; +} + +.icon-fast-backward { + background-position: -216px -72px; +} + +.icon-backward { + background-position: -240px -72px; +} + +.icon-play { + background-position: -264px -72px; +} + +.icon-pause { + background-position: -288px -72px; +} + +.icon-stop { + background-position: -312px -72px; +} + +.icon-forward { + background-position: -336px -72px; +} + +.icon-fast-forward { + background-position: -360px -72px; +} + +.icon-step-forward { + background-position: -384px -72px; +} + +.icon-eject { + background-position: -408px -72px; +} + +.icon-chevron-left { + background-position: -432px -72px; +} + +.icon-chevron-right { + background-position: -456px -72px; +} + +.icon-plus-sign { + background-position: 0 -96px; +} + +.icon-minus-sign { + background-position: -24px -96px; +} + +.icon-remove-sign { + background-position: -48px -96px; +} + +.icon-ok-sign { + background-position: -72px -96px; +} + +.icon-question-sign { + background-position: -96px -96px; +} + +.icon-info-sign { + background-position: -120px -96px; +} + +.icon-screenshot { + background-position: -144px -96px; +} + +.icon-remove-circle { + background-position: -168px -96px; +} + +.icon-ok-circle { + background-position: -192px -96px; +} + +.icon-ban-circle { + background-position: -216px -96px; +} + +.icon-arrow-left { + background-position: -240px -96px; +} + +.icon-arrow-right { + background-position: -264px -96px; +} + +.icon-arrow-up { + background-position: -289px -96px; +} + +.icon-arrow-down { + background-position: -312px -96px; +} + +.icon-share-alt { + background-position: -336px -96px; +} + +.icon-resize-full { + background-position: -360px -96px; +} + +.icon-resize-small { + background-position: -384px -96px; +} + +.icon-plus { + background-position: -408px -96px; +} + +.icon-minus { + background-position: -433px -96px; +} + +.icon-asterisk { + background-position: -456px -96px; +} + +.icon-exclamation-sign { + background-position: 0 -120px; +} + +.icon-gift { + background-position: -24px -120px; +} + +.icon-leaf { + background-position: -48px -120px; +} + +.icon-fire { + background-position: -72px -120px; +} + +.icon-eye-open { + background-position: -96px -120px; +} + +.icon-eye-close { + background-position: -120px -120px; +} + +.icon-warning-sign { + background-position: -144px -120px; +} + +.icon-plane { + background-position: -168px -120px; +} + +.icon-calendar { + background-position: -192px -120px; +} + +.icon-random { + background-position: -216px -120px; +} + +.icon-comment { + background-position: -240px -120px; +} + +.icon-magnet { + background-position: -264px -120px; +} + +.icon-chevron-up { + background-position: -288px -120px; +} + +.icon-chevron-down { + background-position: -313px -119px; +} + +.icon-retweet { + background-position: -336px -120px; +} + +.icon-shopping-cart { + background-position: -360px -120px; +} + +.icon-folder-close { + background-position: -384px -120px; +} + +.icon-folder-open { + background-position: -408px -120px; +} + +.icon-resize-vertical { + background-position: -432px -119px; +} + +.icon-resize-horizontal { + background-position: -456px -118px; +} + +.icon-hdd { + background-position: 0 -144px; +} + +.icon-bullhorn { + background-position: -24px -144px; +} + +.icon-bell { + background-position: -48px -144px; +} + +.icon-certificate { + background-position: -72px -144px; +} + +.icon-thumbs-up { + background-position: -96px -144px; +} + +.icon-thumbs-down { + background-position: -120px -144px; +} + +.icon-hand-right { + background-position: -144px -144px; +} + +.icon-hand-left { + background-position: -168px -144px; +} + +.icon-hand-up { + background-position: -192px -144px; +} + +.icon-hand-down { + background-position: -216px -144px; +} + +.icon-circle-arrow-right { + background-position: -240px -144px; +} + +.icon-circle-arrow-left { + background-position: -264px -144px; +} + +.icon-circle-arrow-up { + background-position: -288px -144px; +} + +.icon-circle-arrow-down { + background-position: -312px -144px; +} + +.icon-globe { + background-position: -336px -144px; +} + +.icon-wrench { + background-position: -360px -144px; +} + +.icon-tasks { + background-position: -384px -144px; +} + +.icon-filter { + background-position: -408px -144px; +} + +.icon-briefcase { + background-position: -432px -144px; +} + +.icon-fullscreen { + background-position: -456px -144px; +} + +.dropup, +.dropdown { + position: relative; +} + +.dropdown-toggle { + *margin-bottom: -3px; +} + +.dropdown-toggle:active, +.open .dropdown-toggle { + outline: 0; +} + +.caret { + display: inline-block; + width: 0; + height: 0; + vertical-align: top; + border-top: 4px solid #000000; + border-right: 4px solid transparent; + border-left: 4px solid transparent; + content: ""; + opacity: 0.3; + filter: alpha(opacity=30); +} + +.dropdown .caret { + margin-top: 8px; + margin-left: 2px; +} + +.dropdown:hover .caret, +.open .caret { + opacity: 1; + filter: alpha(opacity=100); +} + +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 160px; + padding: 4px 0; + margin: 1px 0 0; + list-style: none; + background-color: #ffffff; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + *border-right-width: 2px; + *border-bottom-width: 2px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -webkit-background-clip: padding-box; + -moz-background-clip: padding; + background-clip: padding-box; +} + +.dropdown-menu.pull-right { + right: 0; + left: auto; +} + +.dropdown-menu .divider { + *width: 100%; + height: 1px; + margin: 8px 1px; + *margin: -5px 0 5px; + overflow: hidden; + background-color: #e5e5e5; + border-bottom: 1px solid #ffffff; +} + +.dropdown-menu a { + display: block; + padding: 3px 15px; + clear: both; + font-weight: normal; + line-height: 18px; + color: #333333; + white-space: nowrap; +} + +.dropdown-menu li > a:hover, +.dropdown-menu .active > a, +.dropdown-menu .active > a:hover { + color: #ffffff; + text-decoration: none; + background-color: #0088cc; +} + +.open { + *z-index: 1000; +} + +.open > .dropdown-menu { + display: block; +} + +.pull-right > .dropdown-menu { + right: 0; + left: auto; +} + +.dropup .caret, +.navbar-fixed-bottom .dropdown .caret { + border-top: 0; + border-bottom: 4px solid #000000; + content: "\2191"; +} + +.dropup .dropdown-menu, +.navbar-fixed-bottom .dropdown .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 1px; +} + +.typeahead { + margin-top: 2px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + background-color: #f5f5f5; + border: 1px solid #eee; + border: 1px solid rgba(0, 0, 0, 0.05); + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); +} + +.well blockquote { + border-color: #ddd; + border-color: rgba(0, 0, 0, 0.15); +} + +.well-large { + padding: 24px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +.well-small { + padding: 9px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +.fade { + opacity: 0; + -webkit-transition: opacity 0.15s linear; + -moz-transition: opacity 0.15s linear; + -ms-transition: opacity 0.15s linear; + -o-transition: opacity 0.15s linear; + transition: opacity 0.15s linear; +} + +.fade.in { + opacity: 1; +} + +.collapse { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition: height 0.35s ease; + -moz-transition: height 0.35s ease; + -ms-transition: height 0.35s ease; + -o-transition: height 0.35s ease; + transition: height 0.35s ease; +} + +.collapse.in { + height: auto; +} + +.close { + float: right; + font-size: 20px; + font-weight: bold; + line-height: 18px; + color: #000000; + text-shadow: 0 1px 0 #ffffff; + opacity: 0.2; + filter: alpha(opacity=20); +} + +.close:hover { + color: #000000; + text-decoration: none; + cursor: pointer; + opacity: 0.4; + filter: alpha(opacity=40); +} + +button.close { + padding: 0; + cursor: pointer; + background: transparent; + border: 0; + -webkit-appearance: none; +} + +.btn { + display: inline-block; + *display: inline; + padding: 4px 10px 4px; + margin-bottom: 0; + *margin-left: .3em; + font-size: 13px; + line-height: 18px; + *line-height: 20px; + color: #333333; + text-align: center; + text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); + vertical-align: middle; + cursor: pointer; + background-color: #f5f5f5; + *background-color: #e6e6e6; + background-image: -ms-linear-gradient(top, #ffffff, #e6e6e6); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6)); + background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6); + background-image: -o-linear-gradient(top, #ffffff, #e6e6e6); + background-image: linear-gradient(top, #ffffff, #e6e6e6); + background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6); + background-repeat: repeat-x; + border: 1px solid #cccccc; + *border: 0; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + border-color: #e6e6e6 #e6e6e6 #bfbfbf; + border-bottom-color: #b3b3b3; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0); + filter: progid:dximagetransform.microsoft.gradient(enabled=false); + *zoom: 1; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.btn:hover, +.btn:active, +.btn.active, +.btn.disabled, +.btn[disabled] { + background-color: #e6e6e6; + *background-color: #d9d9d9; +} + +.btn:active, +.btn.active { + background-color: #cccccc \9; +} + +.btn:first-child { + *margin-left: 0; +} + +.btn:hover { + color: #333333; + text-decoration: none; + background-color: #e6e6e6; + *background-color: #d9d9d9; + /* Buttons in IE7 don't get borders, so darken on hover */ + + background-position: 0 -15px; + -webkit-transition: background-position 0.1s linear; + -moz-transition: background-position 0.1s linear; + -ms-transition: background-position 0.1s linear; + -o-transition: background-position 0.1s linear; + transition: background-position 0.1s linear; +} + +.btn:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +.btn.active, +.btn:active { + background-color: #e6e6e6; + background-color: #d9d9d9 \9; + background-image: none; + outline: 0; + -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.btn.disabled, +.btn[disabled] { + cursor: default; + background-color: #e6e6e6; + background-image: none; + opacity: 0.65; + filter: alpha(opacity=65); + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +.btn-large { + padding: 9px 14px; + font-size: 15px; + line-height: normal; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} + +.btn-large [class^="icon-"] { + margin-top: 1px; +} + +.btn-small { + padding: 5px 9px; + font-size: 11px; + line-height: 16px; +} + +.btn-small [class^="icon-"] { + margin-top: -1px; +} + +.btn-mini { + padding: 2px 6px; + font-size: 11px; + line-height: 14px; +} + +.btn-primary, +.btn-primary:hover, +.btn-warning, +.btn-warning:hover, +.btn-danger, +.btn-danger:hover, +.btn-success, +.btn-success:hover, +.btn-info, +.btn-info:hover, +.btn-inverse, +.btn-inverse:hover { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); +} + +.btn-primary.active, +.btn-warning.active, +.btn-danger.active, +.btn-success.active, +.btn-info.active, +.btn-inverse.active { + color: rgba(255, 255, 255, 0.75); +} + +.btn { + border-color: #ccc; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); +} + +.btn-primary { + background-color: #0074cc; + *background-color: #0055cc; + background-image: -ms-linear-gradient(top, #0088cc, #0055cc); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0055cc)); + background-image: -webkit-linear-gradient(top, #0088cc, #0055cc); + background-image: -o-linear-gradient(top, #0088cc, #0055cc); + background-image: -moz-linear-gradient(top, #0088cc, #0055cc); + background-image: linear-gradient(top, #0088cc, #0055cc); + background-repeat: repeat-x; + border-color: #0055cc #0055cc #003580; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#0088cc', endColorstr='#0055cc', GradientType=0); + filter: progid:dximagetransform.microsoft.gradient(enabled=false); +} + +.btn-primary:hover, +.btn-primary:active, +.btn-primary.active, +.btn-primary.disabled, +.btn-primary[disabled] { + background-color: #0055cc; + *background-color: #004ab3; +} + +.btn-primary:active, +.btn-primary.active { + background-color: #004099 \9; +} + +.btn-warning { + background-color: #faa732; + *background-color: #f89406; + background-image: -ms-linear-gradient(top, #fbb450, #f89406); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406)); + background-image: -webkit-linear-gradient(top, #fbb450, #f89406); + background-image: -o-linear-gradient(top, #fbb450, #f89406); + background-image: -moz-linear-gradient(top, #fbb450, #f89406); + background-image: linear-gradient(top, #fbb450, #f89406); + background-repeat: repeat-x; + border-color: #f89406 #f89406 #ad6704; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0); + filter: progid:dximagetransform.microsoft.gradient(enabled=false); +} + +.btn-warning:hover, +.btn-warning:active, +.btn-warning.active, +.btn-warning.disabled, +.btn-warning[disabled] { + background-color: #f89406; + *background-color: #df8505; +} + +.btn-warning:active, +.btn-warning.active { + background-color: #c67605 \9; +} + +.btn-danger { + background-color: #da4f49; + *background-color: #bd362f; + background-image: -ms-linear-gradient(top, #ee5f5b, #bd362f); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f)); + background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f); + background-image: -o-linear-gradient(top, #ee5f5b, #bd362f); + background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f); + background-image: linear-gradient(top, #ee5f5b, #bd362f); + background-repeat: repeat-x; + border-color: #bd362f #bd362f #802420; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#bd362f', GradientType=0); + filter: progid:dximagetransform.microsoft.gradient(enabled=false); +} + +.btn-danger:hover, +.btn-danger:active, +.btn-danger.active, +.btn-danger.disabled, +.btn-danger[disabled] { + background-color: #bd362f; + *background-color: #a9302a; +} + +.btn-danger:active, +.btn-danger.active { + background-color: #942a25 \9; +} + +.btn-success { + background-color: #5bb75b; + *background-color: #51a351; + background-image: -ms-linear-gradient(top, #62c462, #51a351); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351)); + background-image: -webkit-linear-gradient(top, #62c462, #51a351); + background-image: -o-linear-gradient(top, #62c462, #51a351); + background-image: -moz-linear-gradient(top, #62c462, #51a351); + background-image: linear-gradient(top, #62c462, #51a351); + background-repeat: repeat-x; + border-color: #51a351 #51a351 #387038; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#62c462', endColorstr='#51a351', GradientType=0); + filter: progid:dximagetransform.microsoft.gradient(enabled=false); +} + +.btn-success:hover, +.btn-success:active, +.btn-success.active, +.btn-success.disabled, +.btn-success[disabled] { + background-color: #51a351; + *background-color: #499249; +} + +.btn-success:active, +.btn-success.active { + background-color: #408140 \9; +} + +.btn-info { + background-color: #49afcd; + *background-color: #2f96b4; + background-image: -ms-linear-gradient(top, #5bc0de, #2f96b4); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4)); + background-image: -webkit-linear-gradient(top, #5bc0de, #2f96b4); + background-image: -o-linear-gradient(top, #5bc0de, #2f96b4); + background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4); + background-image: linear-gradient(top, #5bc0de, #2f96b4); + background-repeat: repeat-x; + border-color: #2f96b4 #2f96b4 #1f6377; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#5bc0de', endColorstr='#2f96b4', GradientType=0); + filter: progid:dximagetransform.microsoft.gradient(enabled=false); +} + +.btn-info:hover, +.btn-info:active, +.btn-info.active, +.btn-info.disabled, +.btn-info[disabled] { + background-color: #2f96b4; + *background-color: #2a85a0; +} + +.btn-info:active, +.btn-info.active { + background-color: #24748c \9; +} + +.btn-inverse { + background-color: #414141; + *background-color: #222222; + background-image: -ms-linear-gradient(top, #555555, #222222); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#555555), to(#222222)); + background-image: -webkit-linear-gradient(top, #555555, #222222); + background-image: -o-linear-gradient(top, #555555, #222222); + background-image: -moz-linear-gradient(top, #555555, #222222); + background-image: linear-gradient(top, #555555, #222222); + background-repeat: repeat-x; + border-color: #222222 #222222 #000000; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#555555', endColorstr='#222222', GradientType=0); + filter: progid:dximagetransform.microsoft.gradient(enabled=false); +} + +.btn-inverse:hover, +.btn-inverse:active, +.btn-inverse.active, +.btn-inverse.disabled, +.btn-inverse[disabled] { + background-color: #222222; + *background-color: #151515; +} + +.btn-inverse:active, +.btn-inverse.active { + background-color: #080808 \9; +} + +button.btn, +input[type="submit"].btn { + *padding-top: 2px; + *padding-bottom: 2px; +} + +button.btn::-moz-focus-inner, +input[type="submit"].btn::-moz-focus-inner { + padding: 0; + border: 0; +} + +button.btn.btn-large, +input[type="submit"].btn.btn-large { + *padding-top: 7px; + *padding-bottom: 7px; +} + +button.btn.btn-small, +input[type="submit"].btn.btn-small { + *padding-top: 3px; + *padding-bottom: 3px; +} + +button.btn.btn-mini, +input[type="submit"].btn.btn-mini { + *padding-top: 1px; + *padding-bottom: 1px; +} + +.btn-group { + position: relative; + *margin-left: .3em; + *zoom: 1; +} + +.btn-group:before, +.btn-group:after { + display: table; + content: ""; +} + +.btn-group:after { + clear: both; +} + +.btn-group:first-child { + *margin-left: 0; +} + +.btn-group + .btn-group { + margin-left: 5px; +} + +.btn-toolbar { + margin-top: 9px; + margin-bottom: 9px; +} + +.btn-toolbar .btn-group { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + + *zoom: 1; +} + +.btn-group > .btn { + position: relative; + float: left; + margin-left: -1px; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.btn-group > .btn:first-child { + margin-left: 0; + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-topleft: 4px; +} + +.btn-group > .btn:last-child, +.btn-group > .dropdown-toggle { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; + -moz-border-radius-topright: 4px; + -moz-border-radius-bottomright: 4px; +} + +.btn-group > .btn.large:first-child { + margin-left: 0; + -webkit-border-bottom-left-radius: 6px; + border-bottom-left-radius: 6px; + -webkit-border-top-left-radius: 6px; + border-top-left-radius: 6px; + -moz-border-radius-bottomleft: 6px; + -moz-border-radius-topleft: 6px; +} + +.btn-group > .btn.large:last-child, +.btn-group > .large.dropdown-toggle { + -webkit-border-top-right-radius: 6px; + border-top-right-radius: 6px; + -webkit-border-bottom-right-radius: 6px; + border-bottom-right-radius: 6px; + -moz-border-radius-topright: 6px; + -moz-border-radius-bottomright: 6px; +} + +.btn-group > .btn:hover, +.btn-group > .btn:focus, +.btn-group > .btn:active, +.btn-group > .btn.active { + z-index: 2; +} + +.btn-group .dropdown-toggle:active, +.btn-group.open .dropdown-toggle { + outline: 0; +} + +.btn-group > .dropdown-toggle { + *padding-top: 4px; + padding-right: 8px; + *padding-bottom: 4px; + padding-left: 8px; + -webkit-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.btn-group > .btn-mini.dropdown-toggle { + padding-right: 5px; + padding-left: 5px; +} + +.btn-group > .btn-small.dropdown-toggle { + *padding-top: 4px; + *padding-bottom: 4px; +} + +.btn-group > .btn-large.dropdown-toggle { + padding-right: 12px; + padding-left: 12px; +} + +.btn-group.open .dropdown-toggle { + background-image: none; + -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.btn-group.open .btn.dropdown-toggle { + background-color: #e6e6e6; +} + +.btn-group.open .btn-primary.dropdown-toggle { + background-color: #0055cc; +} + +.btn-group.open .btn-warning.dropdown-toggle { + background-color: #f89406; +} + +.btn-group.open .btn-danger.dropdown-toggle { + background-color: #bd362f; +} + +.btn-group.open .btn-success.dropdown-toggle { + background-color: #51a351; +} + +.btn-group.open .btn-info.dropdown-toggle { + background-color: #2f96b4; +} + +.btn-group.open .btn-inverse.dropdown-toggle { + background-color: #222222; +} + +.btn .caret { + margin-top: 7px; + margin-left: 0; +} + +.btn:hover .caret, +.open.btn-group .caret { + opacity: 1; + filter: alpha(opacity=100); +} + +.btn-mini .caret { + margin-top: 5px; +} + +.btn-small .caret { + margin-top: 6px; +} + +.btn-large .caret { + margin-top: 6px; + border-top-width: 5px; + border-right-width: 5px; + border-left-width: 5px; +} + +.dropup .btn-large .caret { + border-top: 0; + border-bottom: 5px solid #000000; +} + +.btn-primary .caret, +.btn-warning .caret, +.btn-danger .caret, +.btn-info .caret, +.btn-success .caret, +.btn-inverse .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; + opacity: 0.75; + filter: alpha(opacity=75); +} + +.alert { + padding: 8px 35px 8px 14px; + margin-bottom: 18px; + color: #c09853; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); + background-color: #fcf8e3; + border: 1px solid #fbeed5; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.alert-heading { + color: inherit; +} + +.alert .close { + position: relative; + top: -2px; + right: -21px; + line-height: 18px; +} + +.alert-success { + color: #468847; + background-color: #dff0d8; + border-color: #d6e9c6; +} + +.alert-danger, +.alert-error { + color: #b94a48; + background-color: #f2dede; + border-color: #eed3d7; +} + +.alert-info { + color: #3a87ad; + background-color: #d9edf7; + border-color: #bce8f1; +} + +.alert-block { + padding-top: 14px; + padding-bottom: 14px; +} + +.alert-block > p, +.alert-block > ul { + margin-bottom: 0; +} + +.alert-block p + p { + margin-top: 5px; +} + +.nav { + margin-bottom: 18px; + margin-left: 0; + list-style: none; +} + +.nav > li > a { + display: block; +} + +.nav > li > a:hover { + text-decoration: none; + background-color: #eeeeee; +} + +.nav > .pull-right { + float: right; +} + +.nav .nav-header { + display: block; + padding: 3px 15px; + font-size: 11px; + font-weight: bold; + line-height: 18px; + color: #999999; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); + text-transform: uppercase; +} + +.nav li + .nav-header { + margin-top: 9px; +} + +.nav-list { + padding-right: 15px; + padding-left: 15px; + margin-bottom: 0; +} + +.nav-list > li > a, +.nav-list .nav-header { + margin-right: -15px; + margin-left: -15px; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); +} + +.nav-list > li > a { + padding: 3px 15px; +} + +.nav-list > .active > a, +.nav-list > .active > a:hover { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2); + background-color: #0088cc; +} + +.nav-list [class^="icon-"] { + margin-right: 2px; +} + +.nav-list .divider { + *width: 100%; + height: 1px; + margin: 8px 1px; + *margin: -5px 0 5px; + overflow: hidden; + background-color: #e5e5e5; + border-bottom: 1px solid #ffffff; +} + +.nav-tabs, +.nav-pills { + *zoom: 1; +} + +.nav-tabs:before, +.nav-pills:before, +.nav-tabs:after, +.nav-pills:after { + display: table; + content: ""; +} + +.nav-tabs:after, +.nav-pills:after { + clear: both; +} + +.nav-tabs > li, +.nav-pills > li { + float: left; +} + +.nav-tabs > li > a, +.nav-pills > li > a { + padding-right: 12px; + padding-left: 12px; + margin-right: 2px; + line-height: 14px; +} + +.nav-tabs { + border-bottom: 1px solid #ddd; +} + +.nav-tabs > li { + margin-bottom: -1px; +} + +.nav-tabs > li > a { + padding-top: 8px; + padding-bottom: 8px; + line-height: 18px; + border: 1px solid transparent; + -webkit-border-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; +} + +.nav-tabs > li > a:hover { + border-color: #eeeeee #eeeeee #dddddd; +} + +.nav-tabs > .active > a, +.nav-tabs > .active > a:hover { + color: #555555; + cursor: default; + background-color: #ffffff; + border: 1px solid #ddd; + border-bottom-color: transparent; +} + +.nav-pills > li > a { + padding-top: 8px; + padding-bottom: 8px; + margin-top: 2px; + margin-bottom: 2px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} + +.nav-pills > .active > a, +.nav-pills > .active > a:hover { + color: #ffffff; + background-color: #0088cc; +} + +.nav-stacked > li { + float: none; +} + +.nav-stacked > li > a { + margin-right: 0; +} + +.nav-tabs.nav-stacked { + border-bottom: 0; +} + +.nav-tabs.nav-stacked > li > a { + border: 1px solid #ddd; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.nav-tabs.nav-stacked > li:first-child > a { + -webkit-border-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; +} + +.nav-tabs.nav-stacked > li:last-child > a { + -webkit-border-radius: 0 0 4px 4px; + -moz-border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px; +} + +.nav-tabs.nav-stacked > li > a:hover { + z-index: 2; + border-color: #ddd; +} + +.nav-pills.nav-stacked > li > a { + margin-bottom: 3px; +} + +.nav-pills.nav-stacked > li:last-child > a { + margin-bottom: 1px; +} + +.nav-tabs .dropdown-menu { + -webkit-border-radius: 0 0 5px 5px; + -moz-border-radius: 0 0 5px 5px; + border-radius: 0 0 5px 5px; +} + +.nav-pills .dropdown-menu { + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.nav-tabs .dropdown-toggle .caret, +.nav-pills .dropdown-toggle .caret { + margin-top: 6px; + border-top-color: #0088cc; + border-bottom-color: #0088cc; +} + +.nav-tabs .dropdown-toggle:hover .caret, +.nav-pills .dropdown-toggle:hover .caret { + border-top-color: #005580; + border-bottom-color: #005580; +} + +.nav-tabs .active .dropdown-toggle .caret, +.nav-pills .active .dropdown-toggle .caret { + border-top-color: #333333; + border-bottom-color: #333333; +} + +.nav > .dropdown.active > a:hover { + color: #000000; + cursor: pointer; +} + +.nav-tabs .open .dropdown-toggle, +.nav-pills .open .dropdown-toggle, +.nav > li.dropdown.open.active > a:hover { + color: #ffffff; + background-color: #999999; + border-color: #999999; +} + +.nav li.dropdown.open .caret, +.nav li.dropdown.open.active .caret, +.nav li.dropdown.open a:hover .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; + opacity: 1; + filter: alpha(opacity=100); +} + +.tabs-stacked .open > a:hover { + border-color: #999999; +} + +.tabbable { + *zoom: 1; +} + +.tabbable:before, +.tabbable:after { + display: table; + content: ""; +} + +.tabbable:after { + clear: both; +} + +.tab-content { + overflow: auto; +} + +.tabs-below > .nav-tabs, +.tabs-right > .nav-tabs, +.tabs-left > .nav-tabs { + border-bottom: 0; +} + +.tab-content > .tab-pane, +.pill-content > .pill-pane { + display: none; +} + +.tab-content > .active, +.pill-content > .active { + display: block; +} + +.tabs-below > .nav-tabs { + border-top: 1px solid #ddd; +} + +.tabs-below > .nav-tabs > li { + margin-top: -1px; + margin-bottom: 0; +} + +.tabs-below > .nav-tabs > li > a { + -webkit-border-radius: 0 0 4px 4px; + -moz-border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px; +} + +.tabs-below > .nav-tabs > li > a:hover { + border-top-color: #ddd; + border-bottom-color: transparent; +} + +.tabs-below > .nav-tabs > .active > a, +.tabs-below > .nav-tabs > .active > a:hover { + border-color: transparent #ddd #ddd #ddd; +} + +.tabs-left > .nav-tabs > li, +.tabs-right > .nav-tabs > li { + float: none; +} + +.tabs-left > .nav-tabs > li > a, +.tabs-right > .nav-tabs > li > a { + min-width: 74px; + margin-right: 0; + margin-bottom: 3px; +} + +.tabs-left > .nav-tabs { + float: left; + margin-right: 19px; + border-right: 1px solid #ddd; +} + +.tabs-left > .nav-tabs > li > a { + margin-right: -1px; + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} + +.tabs-left > .nav-tabs > li > a:hover { + border-color: #eeeeee #dddddd #eeeeee #eeeeee; +} + +.tabs-left > .nav-tabs .active > a, +.tabs-left > .nav-tabs .active > a:hover { + border-color: #ddd transparent #ddd #ddd; + *border-right-color: #ffffff; +} + +.tabs-right > .nav-tabs { + float: right; + margin-left: 19px; + border-left: 1px solid #ddd; +} + +.tabs-right > .nav-tabs > li > a { + margin-left: -1px; + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} + +.tabs-right > .nav-tabs > li > a:hover { + border-color: #eeeeee #eeeeee #eeeeee #dddddd; +} + +.tabs-right > .nav-tabs .active > a, +.tabs-right > .nav-tabs .active > a:hover { + border-color: #ddd #ddd #ddd transparent; + *border-left-color: #ffffff; +} + +.navbar { + *position: relative; + *z-index: 2; + margin-bottom: 18px; + overflow: visible; +} + +.navbar-inner { + min-height: 40px; + padding-right: 20px; + padding-left: 20px; + background-color: #2c2c2c; + background-image: -moz-linear-gradient(top, #333333, #222222); + background-image: -ms-linear-gradient(top, #333333, #222222); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#222222)); + background-image: -webkit-linear-gradient(top, #333333, #222222); + background-image: -o-linear-gradient(top, #333333, #222222); + background-image: linear-gradient(top, #333333, #222222); + background-repeat: repeat-x; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0); + -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1); + -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1); +} + +.navbar .container { + width: auto; +} + +.nav-collapse.collapse { + height: auto; +} + +.navbar { + color: #999999; +} + +.navbar .brand:hover { + text-decoration: none; +} + +.navbar .brand { + display: block; + float: left; + padding: 8px 20px 12px; + margin-left: -20px; + font-size: 20px; + font-weight: 200; + line-height: 1; + color: #999999; +} + +.navbar .navbar-text { + margin-bottom: 0; + line-height: 40px; +} + +.navbar .navbar-link { + color: #999999; +} + +.navbar .navbar-link:hover { + color: #ffffff; +} + +.navbar .btn, +.navbar .btn-group { + margin-top: 5px; +} + +.navbar .btn-group .btn { + margin: 0; +} + +.navbar-form { + margin-bottom: 0; + *zoom: 1; +} + +.navbar-form:before, +.navbar-form:after { + display: table; + content: ""; +} + +.navbar-form:after { + clear: both; +} + +.navbar-form input, +.navbar-form select, +.navbar-form .radio, +.navbar-form .checkbox { + margin-top: 5px; +} + +.navbar-form input, +.navbar-form select { + display: inline-block; + margin-bottom: 0; +} + +.navbar-form input[type="image"], +.navbar-form input[type="checkbox"], +.navbar-form input[type="radio"] { + margin-top: 3px; +} + +.navbar-form .input-append, +.navbar-form .input-prepend { + margin-top: 6px; + white-space: nowrap; +} + +.navbar-form .input-append input, +.navbar-form .input-prepend input { + margin-top: 0; +} + +.navbar-search { + position: relative; + float: left; + margin-top: 6px; + margin-bottom: 0; +} + +.navbar-search .search-query { + padding: 4px 9px; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 13px; + font-weight: normal; + line-height: 1; + color: #ffffff; + background-color: #626262; + border: 1px solid #151515; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); + -webkit-transition: none; + -moz-transition: none; + -ms-transition: none; + -o-transition: none; + transition: none; +} + +.navbar-search .search-query:-moz-placeholder { + color: #cccccc; +} + +.navbar-search .search-query:-ms-input-placeholder { + color: #cccccc; +} + +.navbar-search .search-query::-webkit-input-placeholder { + color: #cccccc; +} + +.navbar-search .search-query:focus, +.navbar-search .search-query.focused { + padding: 5px 10px; + color: #333333; + text-shadow: 0 1px 0 #ffffff; + background-color: #ffffff; + border: 0; + outline: 0; + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); + box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); +} + +.navbar-fixed-top, +.navbar-fixed-bottom { + position: fixed; + right: 0; + left: 0; + z-index: 1030; + margin-bottom: 0; +} + +.navbar-fixed-top .navbar-inner, +.navbar-fixed-bottom .navbar-inner { + padding-right: 0; + padding-left: 0; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.navbar-fixed-top .container, +.navbar-fixed-bottom .container { + width: 940px; +} + +.navbar-fixed-top { + top: 0; +} + +.navbar-fixed-bottom { + bottom: 0; +} + +.navbar .nav { + position: relative; + left: 0; + display: block; + float: left; + margin: 0 10px 0 0; +} + +.navbar .nav.pull-right { + float: right; +} + +.navbar .nav > li { + display: block; + float: left; +} + +.navbar .nav > li > a { + float: none; + padding: 9px 10px 11px; + line-height: 19px; + color: #999999; + text-decoration: none; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); +} + +.navbar .btn { + display: inline-block; + padding: 4px 10px 4px; + margin: 5px 5px 6px; + line-height: 18px; +} + +.navbar .btn-group { + padding: 5px 5px 6px; + margin: 0; +} + +.navbar .nav > li > a:hover { + color: #ffffff; + text-decoration: none; + background-color: transparent; +} + +.navbar .nav .active > a, +.navbar .nav .active > a:hover { + color: #ffffff; + text-decoration: none; + background-color: #222222; +} + +.navbar .divider-vertical { + width: 1px; + height: 40px; + margin: 0 9px; + overflow: hidden; + background-color: #222222; + border-right: 1px solid #333333; +} + +.navbar .nav.pull-right { + margin-right: 0; + margin-left: 10px; +} + +.navbar .btn-navbar { + display: none; + float: right; + padding: 7px 10px; + margin-right: 5px; + margin-left: 5px; + background-color: #2c2c2c; + *background-color: #222222; + background-image: -ms-linear-gradient(top, #333333, #222222); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#222222)); + background-image: -webkit-linear-gradient(top, #333333, #222222); + background-image: -o-linear-gradient(top, #333333, #222222); + background-image: linear-gradient(top, #333333, #222222); + background-image: -moz-linear-gradient(top, #333333, #222222); + background-repeat: repeat-x; + border-color: #222222 #222222 #000000; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0); + filter: progid:dximagetransform.microsoft.gradient(enabled=false); + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); +} + +.navbar .btn-navbar:hover, +.navbar .btn-navbar:active, +.navbar .btn-navbar.active, +.navbar .btn-navbar.disabled, +.navbar .btn-navbar[disabled] { + background-color: #222222; + *background-color: #151515; +} + +.navbar .btn-navbar:active, +.navbar .btn-navbar.active { + background-color: #080808 \9; +} + +.navbar .btn-navbar .icon-bar { + display: block; + width: 18px; + height: 2px; + background-color: #f5f5f5; + -webkit-border-radius: 1px; + -moz-border-radius: 1px; + border-radius: 1px; + -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); + -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); + box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); +} + +.btn-navbar .icon-bar + .icon-bar { + margin-top: 3px; +} + +.navbar .dropdown-menu:before { + position: absolute; + top: -7px; + left: 9px; + display: inline-block; + border-right: 7px solid transparent; + border-bottom: 7px solid #ccc; + border-left: 7px solid transparent; + border-bottom-color: rgba(0, 0, 0, 0.2); + content: ''; +} + +.navbar .dropdown-menu:after { + position: absolute; + top: -6px; + left: 10px; + display: inline-block; + border-right: 6px solid transparent; + border-bottom: 6px solid #ffffff; + border-left: 6px solid transparent; + content: ''; +} + +.navbar-fixed-bottom .dropdown-menu:before { + top: auto; + bottom: -7px; + border-top: 7px solid #ccc; + border-bottom: 0; + border-top-color: rgba(0, 0, 0, 0.2); +} + +.navbar-fixed-bottom .dropdown-menu:after { + top: auto; + bottom: -6px; + border-top: 6px solid #ffffff; + border-bottom: 0; +} + +.navbar .nav li.dropdown .dropdown-toggle .caret, +.navbar .nav li.dropdown.open .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} + +.navbar .nav li.dropdown.active .caret { + opacity: 1; + filter: alpha(opacity=100); +} + +.navbar .nav li.dropdown.open > .dropdown-toggle, +.navbar .nav li.dropdown.active > .dropdown-toggle, +.navbar .nav li.dropdown.open.active > .dropdown-toggle { + background-color: transparent; +} + +.navbar .nav li.dropdown.active > .dropdown-toggle:hover { + color: #ffffff; +} + +.navbar .pull-right .dropdown-menu, +.navbar .dropdown-menu.pull-right { + right: 0; + left: auto; +} + +.navbar .pull-right .dropdown-menu:before, +.navbar .dropdown-menu.pull-right:before { + right: 12px; + left: auto; +} + +.navbar .pull-right .dropdown-menu:after, +.navbar .dropdown-menu.pull-right:after { + right: 13px; + left: auto; +} + +.breadcrumb { + padding: 7px 14px; + margin: 0 0 18px; + list-style: none; + background-color: #fbfbfb; + background-image: -moz-linear-gradient(top, #ffffff, #f5f5f5); + background-image: -ms-linear-gradient(top, #ffffff, #f5f5f5); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f5f5f5)); + background-image: -webkit-linear-gradient(top, #ffffff, #f5f5f5); + background-image: -o-linear-gradient(top, #ffffff, #f5f5f5); + background-image: linear-gradient(top, #ffffff, #f5f5f5); + background-repeat: repeat-x; + border: 1px solid #ddd; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ffffff', endColorstr='#f5f5f5', GradientType=0); + -webkit-box-shadow: inset 0 1px 0 #ffffff; + -moz-box-shadow: inset 0 1px 0 #ffffff; + box-shadow: inset 0 1px 0 #ffffff; +} + +.breadcrumb li { + display: inline-block; + *display: inline; + text-shadow: 0 1px 0 #ffffff; + *zoom: 1; +} + +.breadcrumb .divider { + padding: 0 5px; + color: #999999; +} + +.breadcrumb .active a { + color: #333333; +} + +.pagination { + height: 36px; + margin: 18px 0; +} + +.pagination ul { + display: inline-block; + *display: inline; + margin-bottom: 0; + margin-left: 0; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + *zoom: 1; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.pagination li { + display: inline; +} + +.pagination a { + float: left; + padding: 0 14px; + line-height: 34px; + text-decoration: none; + border: 1px solid #ddd; + border-left-width: 0; +} + +.pagination a:hover, +.pagination .active a { + background-color: #f5f5f5; +} + +.pagination .active a { + color: #999999; + cursor: default; +} + +.pagination .disabled span, +.pagination .disabled a, +.pagination .disabled a:hover { + color: #999999; + cursor: default; + background-color: transparent; +} + +.pagination li:first-child a { + border-left-width: 1px; + -webkit-border-radius: 3px 0 0 3px; + -moz-border-radius: 3px 0 0 3px; + border-radius: 3px 0 0 3px; +} + +.pagination li:last-child a { + -webkit-border-radius: 0 3px 3px 0; + -moz-border-radius: 0 3px 3px 0; + border-radius: 0 3px 3px 0; +} + +.pagination-centered { + text-align: center; +} + +.pagination-right { + text-align: right; +} + +.pager { + margin-bottom: 18px; + margin-left: 0; + text-align: center; + list-style: none; + *zoom: 1; +} + +.pager:before, +.pager:after { + display: table; + content: ""; +} + +.pager:after { + clear: both; +} + +.pager li { + display: inline; +} + +.pager a { + display: inline-block; + padding: 5px 14px; + background-color: #fff; + border: 1px solid #ddd; + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px; +} + +.pager a:hover { + text-decoration: none; + background-color: #f5f5f5; +} + +.pager .next a { + float: right; +} + +.pager .previous a { + float: left; +} + +.pager .disabled a, +.pager .disabled a:hover { + color: #999999; + cursor: default; + background-color: #fff; +} + +.modal-open .dropdown-menu { + z-index: 2050; +} + +.modal-open .dropdown.open { + *z-index: 2050; +} + +.modal-open .popover { + z-index: 2060; +} + +.modal-open .tooltip { + z-index: 2070; +} + +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + background-color: #000000; +} + +.modal-backdrop.fade { + opacity: 0; +} + +.modal-backdrop, +.modal-backdrop.fade.in { + opacity: 0.8; + filter: alpha(opacity=80); +} + +.modal { + position: fixed; + top: 50%; + left: 50%; + z-index: 1050; + width: 560px; + margin: -250px 0 0 -280px; + overflow: auto; + background-color: #ffffff; + border: 1px solid #999; + border: 1px solid rgba(0, 0, 0, 0.3); + *border: 1px solid #999; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + -webkit-background-clip: padding-box; + -moz-background-clip: padding-box; + background-clip: padding-box; +} + +.modal.fade { + top: -25%; + -webkit-transition: opacity 0.3s linear, top 0.3s ease-out; + -moz-transition: opacity 0.3s linear, top 0.3s ease-out; + -ms-transition: opacity 0.3s linear, top 0.3s ease-out; + -o-transition: opacity 0.3s linear, top 0.3s ease-out; + transition: opacity 0.3s linear, top 0.3s ease-out; +} + +.modal.fade.in { + top: 50%; +} + +.modal-header { + padding: 9px 15px; + border-bottom: 1px solid #eee; +} + +.modal-header .close { + margin-top: 2px; +} + +.modal-body { + max-height: 400px; + padding: 15px; + overflow-y: auto; +} + +.modal-form { + margin-bottom: 0; +} + +.modal-footer { + padding: 14px 15px 15px; + margin-bottom: 0; + text-align: right; + background-color: #f5f5f5; + border-top: 1px solid #ddd; + -webkit-border-radius: 0 0 6px 6px; + -moz-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px; + *zoom: 1; + -webkit-box-shadow: inset 0 1px 0 #ffffff; + -moz-box-shadow: inset 0 1px 0 #ffffff; + box-shadow: inset 0 1px 0 #ffffff; +} + +.modal-footer:before, +.modal-footer:after { + display: table; + content: ""; +} + +.modal-footer:after { + clear: both; +} + +.modal-footer .btn + .btn { + margin-bottom: 0; + margin-left: 5px; +} + +.modal-footer .btn-group .btn + .btn { + margin-left: -1px; +} + +.tooltip { + position: absolute; + z-index: 1020; + display: block; + padding: 5px; + font-size: 11px; + opacity: 0; + filter: alpha(opacity=0); + visibility: visible; +} + +.tooltip.in { + opacity: 0.8; + filter: alpha(opacity=80); +} + +.tooltip.top { + margin-top: -2px; +} + +.tooltip.right { + margin-left: 2px; +} + +.tooltip.bottom { + margin-top: 2px; +} + +.tooltip.left { + margin-left: -2px; +} + +.tooltip.top .tooltip-arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-top: 5px solid #000000; + border-right: 5px solid transparent; + border-left: 5px solid transparent; +} + +.tooltip.left .tooltip-arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; + border-left: 5px solid #000000; +} + +.tooltip.bottom .tooltip-arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-right: 5px solid transparent; + border-bottom: 5px solid #000000; + border-left: 5px solid transparent; +} + +.tooltip.right .tooltip-arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-top: 5px solid transparent; + border-right: 5px solid #000000; + border-bottom: 5px solid transparent; +} + +.tooltip-inner { + max-width: 200px; + padding: 3px 8px; + color: #ffffff; + text-align: center; + text-decoration: none; + background-color: #000000; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; +} + +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1010; + display: none; + padding: 5px; +} + +.popover.top { + margin-top: -5px; +} + +.popover.right { + margin-left: 5px; +} + +.popover.bottom { + margin-top: 5px; +} + +.popover.left { + margin-left: -5px; +} + +.popover.top .arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-top: 5px solid #000000; + border-right: 5px solid transparent; + border-left: 5px solid transparent; +} + +.popover.right .arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-top: 5px solid transparent; + border-right: 5px solid #000000; + border-bottom: 5px solid transparent; +} + +.popover.bottom .arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-right: 5px solid transparent; + border-bottom: 5px solid #000000; + border-left: 5px solid transparent; +} + +.popover.left .arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; + border-left: 5px solid #000000; +} + +.popover .arrow { + position: absolute; + width: 0; + height: 0; +} + +.popover-inner { + width: 280px; + padding: 3px; + overflow: hidden; + background: #000000; + background: rgba(0, 0, 0, 0.8); + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); +} + +.popover-title { + padding: 9px 15px; + line-height: 1; + background-color: #f5f5f5; + border-bottom: 1px solid #eee; + -webkit-border-radius: 3px 3px 0 0; + -moz-border-radius: 3px 3px 0 0; + border-radius: 3px 3px 0 0; +} + +.popover-content { + padding: 14px; + background-color: #ffffff; + -webkit-border-radius: 0 0 3px 3px; + -moz-border-radius: 0 0 3px 3px; + border-radius: 0 0 3px 3px; + -webkit-background-clip: padding-box; + -moz-background-clip: padding-box; + background-clip: padding-box; +} + +.popover-content p, +.popover-content ul, +.popover-content ol { + margin-bottom: 0; +} + +.thumbnails { + margin-left: -20px; + list-style: none; + *zoom: 1; +} + +.thumbnails:before, +.thumbnails:after { + display: table; + content: ""; +} + +.thumbnails:after { + clear: both; +} + +.row-fluid .thumbnails { + margin-left: 0; +} + +.thumbnails > li { + float: left; + margin-bottom: 18px; + margin-left: 20px; +} + +.thumbnail { + display: block; + padding: 4px; + line-height: 1; + border: 1px solid #ddd; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075); +} + +a.thumbnail:hover { + border-color: #0088cc; + -webkit-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); + -moz-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); + box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); +} + +.thumbnail > img { + display: block; + max-width: 100%; + margin-right: auto; + margin-left: auto; +} + +.thumbnail .caption { + padding: 9px; +} + +.label, +.badge { + font-size: 10.998px; + font-weight: bold; + line-height: 14px; + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + white-space: nowrap; + vertical-align: baseline; + background-color: #999999; +} + +.label { + padding: 1px 4px 2px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +.badge { + padding: 1px 9px 2px; + -webkit-border-radius: 9px; + -moz-border-radius: 9px; + border-radius: 9px; +} + +a.label:hover, +a.badge:hover { + color: #ffffff; + text-decoration: none; + cursor: pointer; +} + +.label-important, +.badge-important { + background-color: #b94a48; +} + +.label-important[href], +.badge-important[href] { + background-color: #953b39; +} + +.label-warning, +.badge-warning { + background-color: #f89406; +} + +.label-warning[href], +.badge-warning[href] { + background-color: #c67605; +} + +.label-success, +.badge-success { + background-color: #468847; +} + +.label-success[href], +.badge-success[href] { + background-color: #356635; +} + +.label-info, +.badge-info { + background-color: #3a87ad; +} + +.label-info[href], +.badge-info[href] { + background-color: #2d6987; +} + +.label-inverse, +.badge-inverse { + background-color: #333333; +} + +.label-inverse[href], +.badge-inverse[href] { + background-color: #1a1a1a; +} + +@-webkit-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +@-moz-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +@-ms-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +@-o-keyframes progress-bar-stripes { + from { + background-position: 0 0; + } + to { + background-position: 40px 0; + } +} + +@keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +.progress { + height: 18px; + margin-bottom: 18px; + overflow: hidden; + background-color: #f7f7f7; + background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: -ms-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9)); + background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: linear-gradient(top, #f5f5f5, #f9f9f9); + background-repeat: repeat-x; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#f5f5f5', endColorstr='#f9f9f9', GradientType=0); + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); +} + +.progress .bar { + width: 0; + height: 18px; + font-size: 12px; + color: #ffffff; + text-align: center; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #0e90d2; + background-image: -moz-linear-gradient(top, #149bdf, #0480be); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be)); + background-image: -webkit-linear-gradient(top, #149bdf, #0480be); + background-image: -o-linear-gradient(top, #149bdf, #0480be); + background-image: linear-gradient(top, #149bdf, #0480be); + background-image: -ms-linear-gradient(top, #149bdf, #0480be); + background-repeat: repeat-x; + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#149bdf', endColorstr='#0480be', GradientType=0); + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + -webkit-transition: width 0.6s ease; + -moz-transition: width 0.6s ease; + -ms-transition: width 0.6s ease; + -o-transition: width 0.6s ease; + transition: width 0.6s ease; +} + +.progress-striped .bar { + background-color: #149bdf; + background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + -webkit-background-size: 40px 40px; + -moz-background-size: 40px 40px; + -o-background-size: 40px 40px; + background-size: 40px 40px; +} + +.progress.active .bar { + -webkit-animation: progress-bar-stripes 2s linear infinite; + -moz-animation: progress-bar-stripes 2s linear infinite; + -ms-animation: progress-bar-stripes 2s linear infinite; + -o-animation: progress-bar-stripes 2s linear infinite; + animation: progress-bar-stripes 2s linear infinite; +} + +.progress-danger .bar { + background-color: #dd514c; + background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -ms-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35)); + background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -o-linear-gradient(top, #ee5f5b, #c43c35); + background-image: linear-gradient(top, #ee5f5b, #c43c35); + background-repeat: repeat-x; + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0); +} + +.progress-danger.progress-striped .bar { + background-color: #ee5f5b; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.progress-success .bar { + background-color: #5eb95e; + background-image: -moz-linear-gradient(top, #62c462, #57a957); + background-image: -ms-linear-gradient(top, #62c462, #57a957); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957)); + background-image: -webkit-linear-gradient(top, #62c462, #57a957); + background-image: -o-linear-gradient(top, #62c462, #57a957); + background-image: linear-gradient(top, #62c462, #57a957); + background-repeat: repeat-x; + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0); +} + +.progress-success.progress-striped .bar { + background-color: #62c462; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.progress-info .bar { + background-color: #4bb1cf; + background-image: -moz-linear-gradient(top, #5bc0de, #339bb9); + background-image: -ms-linear-gradient(top, #5bc0de, #339bb9); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9)); + background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9); + background-image: -o-linear-gradient(top, #5bc0de, #339bb9); + background-image: linear-gradient(top, #5bc0de, #339bb9); + background-repeat: repeat-x; + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#5bc0de', endColorstr='#339bb9', GradientType=0); +} + +.progress-info.progress-striped .bar { + background-color: #5bc0de; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.progress-warning .bar { + background-color: #faa732; + background-image: -moz-linear-gradient(top, #fbb450, #f89406); + background-image: -ms-linear-gradient(top, #fbb450, #f89406); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406)); + background-image: -webkit-linear-gradient(top, #fbb450, #f89406); + background-image: -o-linear-gradient(top, #fbb450, #f89406); + background-image: linear-gradient(top, #fbb450, #f89406); + background-repeat: repeat-x; + filter: progid:dximagetransform.microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0); +} + +.progress-warning.progress-striped .bar { + background-color: #fbb450; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.accordion { + margin-bottom: 18px; +} + +.accordion-group { + margin-bottom: 2px; + border: 1px solid #e5e5e5; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.accordion-heading { + border-bottom: 0; +} + +.accordion-heading .accordion-toggle { + display: block; + padding: 8px 15px; +} + +.accordion-toggle { + cursor: pointer; +} + +.accordion-inner { + padding: 9px 15px; + border-top: 1px solid #e5e5e5; +} + +.carousel { + position: relative; + margin-bottom: 18px; + line-height: 1; +} + +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden; +} + +.carousel .item { + position: relative; + display: none; + -webkit-transition: 0.6s ease-in-out left; + -moz-transition: 0.6s ease-in-out left; + -ms-transition: 0.6s ease-in-out left; + -o-transition: 0.6s ease-in-out left; + transition: 0.6s ease-in-out left; +} + +.carousel .item > img { + display: block; + line-height: 1; +} + +.carousel .active, +.carousel .next, +.carousel .prev { + display: block; +} + +.carousel .active { + left: 0; +} + +.carousel .next, +.carousel .prev { + position: absolute; + top: 0; + width: 100%; +} + +.carousel .next { + left: 100%; +} + +.carousel .prev { + left: -100%; +} + +.carousel .next.left, +.carousel .prev.right { + left: 0; +} + +.carousel .active.left { + left: -100%; +} + +.carousel .active.right { + left: 100%; +} + +.carousel-control { + position: absolute; + top: 40%; + left: 15px; + width: 40px; + height: 40px; + margin-top: -20px; + font-size: 60px; + font-weight: 100; + line-height: 30px; + color: #ffffff; + text-align: center; + background: #222222; + border: 3px solid #ffffff; + -webkit-border-radius: 23px; + -moz-border-radius: 23px; + border-radius: 23px; + opacity: 0.5; + filter: alpha(opacity=50); +} + +.carousel-control.right { + right: 15px; + left: auto; +} + +.carousel-control:hover { + color: #ffffff; + text-decoration: none; + opacity: 0.9; + filter: alpha(opacity=90); +} + +.carousel-caption { + position: absolute; + right: 0; + bottom: 0; + left: 0; + padding: 10px 15px 5px; + background: #333333; + background: rgba(0, 0, 0, 0.75); +} + +.carousel-caption h4, +.carousel-caption p { + color: #ffffff; +} + +.hero-unit { + padding: 60px; + margin-bottom: 30px; + background-color: #eeeeee; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +.hero-unit h1 { + margin-bottom: 0; + font-size: 60px; + line-height: 1; + letter-spacing: -1px; + color: inherit; +} + +.hero-unit p { + font-size: 18px; + font-weight: 200; + line-height: 27px; + color: inherit; +} + +.pull-right { + float: right; +} + +.pull-left { + float: left; +} + +.hide { + display: none; +} + +.show { + display: block; +} + +.invisible { + visibility: hidden; +} diff --git a/htdocs/themes/bootstrap/css/bootstrap.min.css b/htdocs/themes/bootstrap/css/bootstrap.min.css new file mode 100644 index 0000000..b74b454 --- /dev/null +++ b/htdocs/themes/bootstrap/css/bootstrap.min.css @@ -0,0 +1,9 @@ +/*! + * Bootstrap v2.0.4 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}a:hover,a:active{outline:0}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{max-width:100%;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic}#map_canvas img{max-width:none}button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle}button,input{*overflow:visible;line-height:normal}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}button,input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button}input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none}textarea{overflow:auto;vertical-align:top}.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:28px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;line-height:18px;color:#333;background-color:#fff}a{color:#08c;text-decoration:none}a:hover{color:#005580;text-decoration:underline}.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;content:""}.row:after{clear:both}[class*="span"]{float:left;margin-left:20px}.container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.span12{width:940px}.span11{width:860px}.span10{width:780px}.span9{width:700px}.span8{width:620px}.span7{width:540px}.span6{width:460px}.span5{width:380px}.span4{width:300px}.span3{width:220px}.span2{width:140px}.span1{width:60px}.offset12{margin-left:980px}.offset11{margin-left:900px}.offset10{margin-left:820px}.offset9{margin-left:740px}.offset8{margin-left:660px}.offset7{margin-left:580px}.offset6{margin-left:500px}.offset5{margin-left:420px}.offset4{margin-left:340px}.offset3{margin-left:260px}.offset2{margin-left:180px}.offset1{margin-left:100px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:28px;margin-left:2.127659574%;*margin-left:2.0744680846382977%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .span12{width:99.99999998999999%;*width:99.94680850063828%}.row-fluid .span11{width:91.489361693%;*width:91.4361702036383%}.row-fluid .span10{width:82.97872339599999%;*width:82.92553190663828%}.row-fluid .span9{width:74.468085099%;*width:74.4148936096383%}.row-fluid .span8{width:65.95744680199999%;*width:65.90425531263828%}.row-fluid .span7{width:57.446808505%;*width:57.3936170156383%}.row-fluid .span6{width:48.93617020799999%;*width:48.88297871863829%}.row-fluid .span5{width:40.425531911%;*width:40.3723404216383%}.row-fluid .span4{width:31.914893614%;*width:31.8617021246383%}.row-fluid .span3{width:23.404255317%;*width:23.3510638276383%}.row-fluid .span2{width:14.89361702%;*width:14.8404255306383%}.row-fluid .span1{width:6.382978723%;*width:6.329787233638298%}.container{margin-right:auto;margin-left:auto;*zoom:1}.container:before,.container:after{display:table;content:""}.container:after{clear:both}.container-fluid{padding-right:20px;padding-left:20px;*zoom:1}.container-fluid:before,.container-fluid:after{display:table;content:""}.container-fluid:after{clear:both}p{margin:0 0 9px}p small{font-size:11px;color:#999}.lead{margin-bottom:18px;font-size:20px;font-weight:200;line-height:27px}h1,h2,h3,h4,h5,h6{margin:0;font-family:inherit;font-weight:bold;color:inherit;text-rendering:optimizelegibility}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;color:#999}h1{font-size:30px;line-height:36px}h1 small{font-size:18px}h2{font-size:24px;line-height:36px}h2 small{font-size:18px}h3{font-size:18px;line-height:27px}h3 small{font-size:14px}h4,h5,h6{line-height:18px}h4{font-size:14px}h4 small{font-size:12px}h5{font-size:12px}h6{font-size:11px;color:#999;text-transform:uppercase}.page-header{padding-bottom:17px;margin:18px 0;border-bottom:1px solid #eee}.page-header h1{line-height:1}ul,ol{padding:0;margin:0 0 9px 25px}ul ul,ul ol,ol ol,ol ul{margin-bottom:0}ul{list-style:disc}ol{list-style:decimal}li{line-height:18px}ul.unstyled,ol.unstyled{margin-left:0;list-style:none}dl{margin-bottom:18px}dt,dd{line-height:18px}dt{font-weight:bold;line-height:17px}dd{margin-left:9px}.dl-horizontal dt{float:left;width:120px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:130px}hr{margin:18px 0;border:0;border-top:1px solid #eee;border-bottom:1px solid #fff}strong{font-weight:bold}em{font-style:italic}.muted{color:#999}abbr[title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:0 0 0 15px;margin:0 0 18px;border-left:5px solid #eee}blockquote p{margin-bottom:0;font-size:16px;font-weight:300;line-height:22.5px}blockquote small{display:block;line-height:18px;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:18px;font-style:normal;line-height:18px}small{font-size:100%}cite{font-style:normal}code,pre{padding:0 3px 2px;font-family:Menlo,Monaco,Consolas,"Courier New",monospace;font-size:12px;color:#333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}code{padding:2px 4px;color:#d14;background-color:#f7f7f9;border:1px solid #e1e1e8}pre{display:block;padding:8.5px;margin:0 0 9px;font-size:12.025px;line-height:18px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}pre.prettyprint{margin-bottom:18px}pre code{padding:0;color:inherit;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}form{margin:0 0 18px}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:27px;font-size:19.5px;line-height:36px;color:#333;border:0;border-bottom:1px solid #e5e5e5}legend small{font-size:13.5px;color:#999}label,input,button,select,textarea{font-size:13px;font-weight:normal;line-height:18px}input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}label{display:block;margin-bottom:5px}select,textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{display:inline-block;height:18px;padding:4px;margin-bottom:9px;font-size:13px;line-height:18px;color:#555}input,textarea{width:210px}textarea{height:auto}textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{background-color:#fff;border:1px solid #ccc;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-ms-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{border-color:rgba(82,168,236,0.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6)}input[type="radio"],input[type="checkbox"]{margin:3px 0;*margin-top:0;line-height:normal;cursor:pointer}input[type="submit"],input[type="reset"],input[type="button"],input[type="radio"],input[type="checkbox"]{width:auto}.uneditable-textarea{width:auto;height:auto}select,input[type="file"]{height:28px;*margin-top:4px;line-height:28px}select{width:220px;border:1px solid #bbb}select[multiple],select[size]{height:auto}select:focus,input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.radio,.checkbox{min-height:18px;padding-left:18px}.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-18px}.controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px}.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle}.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px}.input-mini{width:60px}.input-small{width:90px}.input-medium{width:150px}.input-large{width:210px}.input-xlarge{width:270px}.input-xxlarge{width:530px}input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"]{float:none;margin-left:0}.input-append input[class*="span"],.input-append .uneditable-input[class*="span"],.input-prepend input[class*="span"],.input-prepend .uneditable-input[class*="span"],.row-fluid .input-prepend [class*="span"],.row-fluid .input-append [class*="span"]{display:inline-block}input,textarea,.uneditable-input{margin-left:0}input.span12,textarea.span12,.uneditable-input.span12{width:930px}input.span11,textarea.span11,.uneditable-input.span11{width:850px}input.span10,textarea.span10,.uneditable-input.span10{width:770px}input.span9,textarea.span9,.uneditable-input.span9{width:690px}input.span8,textarea.span8,.uneditable-input.span8{width:610px}input.span7,textarea.span7,.uneditable-input.span7{width:530px}input.span6,textarea.span6,.uneditable-input.span6{width:450px}input.span5,textarea.span5,.uneditable-input.span5{width:370px}input.span4,textarea.span4,.uneditable-input.span4{width:290px}input.span3,textarea.span3,.uneditable-input.span3{width:210px}input.span2,textarea.span2,.uneditable-input.span2{width:130px}input.span1,textarea.span1,.uneditable-input.span1{width:50px}input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#eee;border-color:#ddd}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"][readonly],input[type="checkbox"][readonly]{background-color:transparent}.control-group.warning>label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853}.control-group.warning .checkbox,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853;border-color:#c09853}.control-group.warning .checkbox:focus,.control-group.warning .radio:focus,.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:0 0 6px #dbc59e;-moz-box-shadow:0 0 6px #dbc59e;box-shadow:0 0 6px #dbc59e}.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853}.control-group.error>label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48}.control-group.error .checkbox,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48;border-color:#b94a48}.control-group.error .checkbox:focus,.control-group.error .radio:focus,.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:0 0 6px #d59392;-moz-box-shadow:0 0 6px #d59392;box-shadow:0 0 6px #d59392}.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48}.control-group.success>label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847}.control-group.success .checkbox,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847;border-color:#468847}.control-group.success .checkbox:focus,.control-group.success .radio:focus,.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:0 0 6px #7aba7b;-moz-box-shadow:0 0 6px #7aba7b;box-shadow:0 0 6px #7aba7b}.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847}input:focus:required:invalid,textarea:focus:required:invalid,select:focus:required:invalid{color:#b94a48;border-color:#ee5f5b}input:focus:required:invalid:focus,textarea:focus:required:invalid:focus,select:focus:required:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7}.form-actions{padding:17px 20px 18px;margin-top:18px;margin-bottom:18px;background-color:#f5f5f5;border-top:1px solid #e5e5e5;*zoom:1}.form-actions:before,.form-actions:after{display:table;content:""}.form-actions:after{clear:both}.uneditable-input{overflow:hidden;white-space:nowrap;cursor:not-allowed;background-color:#fff;border-color:#eee;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);box-shadow:inset 0 1px 2px rgba(0,0,0,0.025)}:-moz-placeholder{color:#999}:-ms-input-placeholder{color:#999}::-webkit-input-placeholder{color:#999}.help-block,.help-inline{color:#555}.help-block{display:block;margin-bottom:9px}.help-inline{display:inline-block;*display:inline;padding-left:5px;vertical-align:middle;*zoom:1}.input-prepend,.input-append{margin-bottom:5px}.input-prepend input,.input-append input,.input-prepend select,.input-append select,.input-prepend .uneditable-input,.input-append .uneditable-input{position:relative;margin-bottom:0;*margin-left:0;vertical-align:middle;-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.input-prepend input:focus,.input-append input:focus,.input-prepend select:focus,.input-append select:focus,.input-prepend .uneditable-input:focus,.input-append .uneditable-input:focus{z-index:2}.input-prepend .uneditable-input,.input-append .uneditable-input{border-left-color:#ccc}.input-prepend .add-on,.input-append .add-on{display:inline-block;width:auto;height:18px;min-width:16px;padding:4px 5px;font-weight:normal;line-height:18px;text-align:center;text-shadow:0 1px 0 #fff;vertical-align:middle;background-color:#eee;border:1px solid #ccc}.input-prepend .add-on,.input-append .add-on,.input-prepend .btn,.input-append .btn{margin-left:-1px;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-prepend .active,.input-append .active{background-color:#a9dba9;border-color:#46a546}.input-prepend .add-on,.input-prepend .btn{margin-right:-1px}.input-prepend .add-on:first-child,.input-prepend .btn:first-child{-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.input-append input,.input-append select,.input-append .uneditable-input{-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.input-append .uneditable-input{border-right-color:#ccc;border-left-color:#eee}.input-append .add-on:last-child,.input-append .btn:last-child{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.input-prepend.input-append input,.input-prepend.input-append select,.input-prepend.input-append .uneditable-input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;-webkit-border-radius:14px;-moz-border-radius:14px;border-radius:14px}.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append{display:inline-block;*display:inline;margin-bottom:0;*zoom:1}.form-search .hide,.form-inline .hide,.form-horizontal .hide{display:none}.form-search label,.form-inline label{display:inline-block}.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{margin-bottom:0}.form-search .radio,.form-search .checkbox,.form-inline .radio,.form-inline .checkbox{padding-left:0;margin-bottom:0;vertical-align:middle}.form-search .radio input[type="radio"],.form-search .checkbox input[type="checkbox"],.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:left;margin-right:3px;margin-left:0}.control-group{margin-bottom:9px}legend+.control-group{margin-top:18px;-webkit-margin-top-collapse:separate}.form-horizontal .control-group{margin-bottom:18px;*zoom:1}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;content:""}.form-horizontal .control-group:after{clear:both}.form-horizontal .control-label{float:left;width:140px;padding-top:5px;text-align:right}.form-horizontal .controls{*display:inline-block;*padding-left:20px;margin-left:160px;*margin-left:0}.form-horizontal .controls:first-child{*padding-left:160px}.form-horizontal .help-block{margin-top:9px;margin-bottom:0}.form-horizontal .form-actions{padding-left:160px}table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0}.table{width:100%;margin-bottom:18px}.table th,.table td{padding:8px;line-height:18px;text-align:left;vertical-align:top;border-top:1px solid #ddd}.table th{font-weight:bold}.table thead th{vertical-align:bottom}.table caption+thead tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0}.table tbody+tbody{border-top:2px solid #ddd}.table-condensed th,.table-condensed td{padding:4px 5px}.table-bordered{border:1px solid #ddd;border-collapse:separate;*border-collapse:collapsed;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.table-bordered th,.table-bordered td{border-left:1px solid #ddd}.table-bordered caption+thead tr:first-child th,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+tbody tr:first-child td,.table-bordered colgroup+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0}.table-bordered thead:first-child tr:first-child th:first-child,.table-bordered tbody:first-child tr:first-child td:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered thead:first-child tr:first-child th:last-child,.table-bordered tbody:first-child tr:first-child td:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-bordered thead:last-child tr:last-child th:first-child,.table-bordered tbody:last-child tr:last-child td:first-child{-webkit-border-radius:0 0 0 4px;-moz-border-radius:0 0 0 4px;border-radius:0 0 0 4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px}.table-bordered thead:last-child tr:last-child th:last-child,.table-bordered tbody:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px}.table-striped tbody tr:nth-child(odd) td,.table-striped tbody tr:nth-child(odd) th{background-color:#f9f9f9}.table tbody tr:hover td,.table tbody tr:hover th{background-color:#f5f5f5}table .span1{float:none;width:44px;margin-left:0}table .span2{float:none;width:124px;margin-left:0}table .span3{float:none;width:204px;margin-left:0}table .span4{float:none;width:284px;margin-left:0}table .span5{float:none;width:364px;margin-left:0}table .span6{float:none;width:444px;margin-left:0}table .span7{float:none;width:524px;margin-left:0}table .span8{float:none;width:604px;margin-left:0}table .span9{float:none;width:684px;margin-left:0}table .span10{float:none;width:764px;margin-left:0}table .span11{float:none;width:844px;margin-left:0}table .span12{float:none;width:924px;margin-left:0}table .span13{float:none;width:1004px;margin-left:0}table .span14{float:none;width:1084px;margin-left:0}table .span15{float:none;width:1164px;margin-left:0}table .span16{float:none;width:1244px;margin-left:0}table .span17{float:none;width:1324px;margin-left:0}table .span18{float:none;width:1404px;margin-left:0}table .span19{float:none;width:1484px;margin-left:0}table .span20{float:none;width:1564px;margin-left:0}table .span21{float:none;width:1644px;margin-left:0}table .span22{float:none;width:1724px;margin-left:0}table .span23{float:none;width:1804px;margin-left:0}table .span24{float:none;width:1884px;margin-left:0}[class^="icon-"],[class*=" icon-"]{display:inline-block;width:14px;height:14px;*margin-right:.3em;line-height:14px;vertical-align:text-top;background-image:url("../img/glyphicons-halflings.png");background-position:14px 14px;background-repeat:no-repeat}[class^="icon-"]:last-child,[class*=" icon-"]:last-child{*margin-left:0}.icon-white{background-image:url("../img/glyphicons-halflings-white.png")}.icon-glass{background-position:0 0}.icon-music{background-position:-24px 0}.icon-search{background-position:-48px 0}.icon-envelope{background-position:-72px 0}.icon-heart{background-position:-96px 0}.icon-star{background-position:-120px 0}.icon-star-empty{background-position:-144px 0}.icon-user{background-position:-168px 0}.icon-film{background-position:-192px 0}.icon-th-large{background-position:-216px 0}.icon-th{background-position:-240px 0}.icon-th-list{background-position:-264px 0}.icon-ok{background-position:-288px 0}.icon-remove{background-position:-312px 0}.icon-zoom-in{background-position:-336px 0}.icon-zoom-out{background-position:-360px 0}.icon-off{background-position:-384px 0}.icon-signal{background-position:-408px 0}.icon-cog{background-position:-432px 0}.icon-trash{background-position:-456px 0}.icon-home{background-position:0 -24px}.icon-file{background-position:-24px -24px}.icon-time{background-position:-48px -24px}.icon-road{background-position:-72px -24px}.icon-download-alt{background-position:-96px -24px}.icon-download{background-position:-120px -24px}.icon-upload{background-position:-144px -24px}.icon-inbox{background-position:-168px -24px}.icon-play-circle{background-position:-192px -24px}.icon-repeat{background-position:-216px -24px}.icon-refresh{background-position:-240px -24px}.icon-list-alt{background-position:-264px -24px}.icon-lock{background-position:-287px -24px}.icon-flag{background-position:-312px -24px}.icon-headphones{background-position:-336px -24px}.icon-volume-off{background-position:-360px -24px}.icon-volume-down{background-position:-384px -24px}.icon-volume-up{background-position:-408px -24px}.icon-qrcode{background-position:-432px -24px}.icon-barcode{background-position:-456px -24px}.icon-tag{background-position:0 -48px}.icon-tags{background-position:-25px -48px}.icon-book{background-position:-48px -48px}.icon-bookmark{background-position:-72px -48px}.icon-print{background-position:-96px -48px}.icon-camera{background-position:-120px -48px}.icon-font{background-position:-144px -48px}.icon-bold{background-position:-167px -48px}.icon-italic{background-position:-192px -48px}.icon-text-height{background-position:-216px -48px}.icon-text-width{background-position:-240px -48px}.icon-align-left{background-position:-264px -48px}.icon-align-center{background-position:-288px -48px}.icon-align-right{background-position:-312px -48px}.icon-align-justify{background-position:-336px -48px}.icon-list{background-position:-360px -48px}.icon-indent-left{background-position:-384px -48px}.icon-indent-right{background-position:-408px -48px}.icon-facetime-video{background-position:-432px -48px}.icon-picture{background-position:-456px -48px}.icon-pencil{background-position:0 -72px}.icon-map-marker{background-position:-24px -72px}.icon-adjust{background-position:-48px -72px}.icon-tint{background-position:-72px -72px}.icon-edit{background-position:-96px -72px}.icon-share{background-position:-120px -72px}.icon-check{background-position:-144px -72px}.icon-move{background-position:-168px -72px}.icon-step-backward{background-position:-192px -72px}.icon-fast-backward{background-position:-216px -72px}.icon-backward{background-position:-240px -72px}.icon-play{background-position:-264px -72px}.icon-pause{background-position:-288px -72px}.icon-stop{background-position:-312px -72px}.icon-forward{background-position:-336px -72px}.icon-fast-forward{background-position:-360px -72px}.icon-step-forward{background-position:-384px -72px}.icon-eject{background-position:-408px -72px}.icon-chevron-left{background-position:-432px -72px}.icon-chevron-right{background-position:-456px -72px}.icon-plus-sign{background-position:0 -96px}.icon-minus-sign{background-position:-24px -96px}.icon-remove-sign{background-position:-48px -96px}.icon-ok-sign{background-position:-72px -96px}.icon-question-sign{background-position:-96px -96px}.icon-info-sign{background-position:-120px -96px}.icon-screenshot{background-position:-144px -96px}.icon-remove-circle{background-position:-168px -96px}.icon-ok-circle{background-position:-192px -96px}.icon-ban-circle{background-position:-216px -96px}.icon-arrow-left{background-position:-240px -96px}.icon-arrow-right{background-position:-264px -96px}.icon-arrow-up{background-position:-289px -96px}.icon-arrow-down{background-position:-312px -96px}.icon-share-alt{background-position:-336px -96px}.icon-resize-full{background-position:-360px -96px}.icon-resize-small{background-position:-384px -96px}.icon-plus{background-position:-408px -96px}.icon-minus{background-position:-433px -96px}.icon-asterisk{background-position:-456px -96px}.icon-exclamation-sign{background-position:0 -120px}.icon-gift{background-position:-24px -120px}.icon-leaf{background-position:-48px -120px}.icon-fire{background-position:-72px -120px}.icon-eye-open{background-position:-96px -120px}.icon-eye-close{background-position:-120px -120px}.icon-warning-sign{background-position:-144px -120px}.icon-plane{background-position:-168px -120px}.icon-calendar{background-position:-192px -120px}.icon-random{background-position:-216px -120px}.icon-comment{background-position:-240px -120px}.icon-magnet{background-position:-264px -120px}.icon-chevron-up{background-position:-288px -120px}.icon-chevron-down{background-position:-313px -119px}.icon-retweet{background-position:-336px -120px}.icon-shopping-cart{background-position:-360px -120px}.icon-folder-close{background-position:-384px -120px}.icon-folder-open{background-position:-408px -120px}.icon-resize-vertical{background-position:-432px -119px}.icon-resize-horizontal{background-position:-456px -118px}.icon-hdd{background-position:0 -144px}.icon-bullhorn{background-position:-24px -144px}.icon-bell{background-position:-48px -144px}.icon-certificate{background-position:-72px -144px}.icon-thumbs-up{background-position:-96px -144px}.icon-thumbs-down{background-position:-120px -144px}.icon-hand-right{background-position:-144px -144px}.icon-hand-left{background-position:-168px -144px}.icon-hand-up{background-position:-192px -144px}.icon-hand-down{background-position:-216px -144px}.icon-circle-arrow-right{background-position:-240px -144px}.icon-circle-arrow-left{background-position:-264px -144px}.icon-circle-arrow-up{background-position:-288px -144px}.icon-circle-arrow-down{background-position:-312px -144px}.icon-globe{background-position:-336px -144px}.icon-wrench{background-position:-360px -144px}.icon-tasks{background-position:-384px -144px}.icon-filter{background-position:-408px -144px}.icon-briefcase{background-position:-432px -144px}.icon-fullscreen{background-position:-456px -144px}.dropup,.dropdown{position:relative}.dropdown-toggle{*margin-bottom:-3px}.dropdown-toggle:active,.open .dropdown-toggle{outline:0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;content:"";opacity:.3;filter:alpha(opacity=30)}.dropdown .caret{margin-top:8px;margin-left:2px}.dropdown:hover .caret,.open .caret{opacity:1;filter:alpha(opacity=100)}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:4px 0;margin:1px 0 0;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{*width:100%;height:1px;margin:8px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.dropdown-menu a{display:block;padding:3px 15px;clear:both;font-weight:normal;line-height:18px;color:#333;white-space:nowrap}.dropdown-menu li>a:hover,.dropdown-menu .active>a,.dropdown-menu .active>a:hover{color:#fff;text-decoration:none;background-color:#08c}.open{*z-index:1000}.open>.dropdown-menu{display:block}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000;content:"\2191"}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.typeahead{margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #eee;border:1px solid rgba(0,0,0,0.05);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.fade{opacity:0;-webkit-transition:opacity .15s linear;-moz-transition:opacity .15s linear;-ms-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;-moz-transition:height .35s ease;-ms-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.collapse.in{height:auto}.close{float:right;font-size:20px;font-weight:bold;line-height:18px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.btn{display:inline-block;*display:inline;padding:4px 10px 4px;margin-bottom:0;*margin-left:.3em;font-size:13px;line-height:18px;*line-height:20px;color:#333;text-align:center;text-shadow:0 1px 1px rgba(255,255,255,0.75);vertical-align:middle;cursor:pointer;background-color:#f5f5f5;*background-color:#e6e6e6;background-image:-ms-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(top,#fff,#e6e6e6);background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-repeat:repeat-x;border:1px solid #ccc;*border:0;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ffffff',endColorstr='#e6e6e6',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false);*zoom:1;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn:hover,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{background-color:#e6e6e6;*background-color:#d9d9d9}.btn:active,.btn.active{background-color:#ccc \9}.btn:first-child{*margin-left:0}.btn:hover{color:#333;text-decoration:none;background-color:#e6e6e6;*background-color:#d9d9d9;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-ms-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.active,.btn:active{background-color:#e6e6e6;background-color:#d9d9d9 \9;background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn.disabled,.btn[disabled]{cursor:default;background-color:#e6e6e6;background-image:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-large{padding:9px 14px;font-size:15px;line-height:normal;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.btn-large [class^="icon-"]{margin-top:1px}.btn-small{padding:5px 9px;font-size:11px;line-height:16px}.btn-small [class^="icon-"]{margin-top:-1px}.btn-mini{padding:2px 6px;font-size:11px;line-height:14px}.btn-primary,.btn-primary:hover,.btn-warning,.btn-warning:hover,.btn-danger,.btn-danger:hover,.btn-success,.btn-success:hover,.btn-info,.btn-info:hover,.btn-inverse,.btn-inverse:hover{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255,255,255,0.75)}.btn{border-color:#ccc;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25)}.btn-primary{background-color:#0074cc;*background-color:#05c;background-image:-ms-linear-gradient(top,#08c,#05c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#05c));background-image:-webkit-linear-gradient(top,#08c,#05c);background-image:-o-linear-gradient(top,#08c,#05c);background-image:-moz-linear-gradient(top,#08c,#05c);background-image:linear-gradient(top,#08c,#05c);background-repeat:repeat-x;border-color:#05c #05c #003580;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#0088cc',endColorstr='#0055cc',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.btn-primary:hover,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{background-color:#05c;*background-color:#004ab3}.btn-primary:active,.btn-primary.active{background-color:#004099 \9}.btn-warning{background-color:#faa732;*background-color:#f89406;background-image:-ms-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(top,#fbb450,#f89406);background-repeat:repeat-x;border-color:#f89406 #f89406 #ad6704;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#fbb450',endColorstr='#f89406',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.btn-warning:hover,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{background-color:#f89406;*background-color:#df8505}.btn-warning:active,.btn-warning.active{background-color:#c67605 \9}.btn-danger{background-color:#da4f49;*background-color:#bd362f;background-image:-ms-linear-gradient(top,#ee5f5b,#bd362f);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#bd362f));background-image:-webkit-linear-gradient(top,#ee5f5b,#bd362f);background-image:-o-linear-gradient(top,#ee5f5b,#bd362f);background-image:-moz-linear-gradient(top,#ee5f5b,#bd362f);background-image:linear-gradient(top,#ee5f5b,#bd362f);background-repeat:repeat-x;border-color:#bd362f #bd362f #802420;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ee5f5b',endColorstr='#bd362f',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.btn-danger:hover,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{background-color:#bd362f;*background-color:#a9302a}.btn-danger:active,.btn-danger.active{background-color:#942a25 \9}.btn-success{background-color:#5bb75b;*background-color:#51a351;background-image:-ms-linear-gradient(top,#62c462,#51a351);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#51a351));background-image:-webkit-linear-gradient(top,#62c462,#51a351);background-image:-o-linear-gradient(top,#62c462,#51a351);background-image:-moz-linear-gradient(top,#62c462,#51a351);background-image:linear-gradient(top,#62c462,#51a351);background-repeat:repeat-x;border-color:#51a351 #51a351 #387038;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#62c462',endColorstr='#51a351',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.btn-success:hover,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{background-color:#51a351;*background-color:#499249}.btn-success:active,.btn-success.active{background-color:#408140 \9}.btn-info{background-color:#49afcd;*background-color:#2f96b4;background-image:-ms-linear-gradient(top,#5bc0de,#2f96b4);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#2f96b4));background-image:-webkit-linear-gradient(top,#5bc0de,#2f96b4);background-image:-o-linear-gradient(top,#5bc0de,#2f96b4);background-image:-moz-linear-gradient(top,#5bc0de,#2f96b4);background-image:linear-gradient(top,#5bc0de,#2f96b4);background-repeat:repeat-x;border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#5bc0de',endColorstr='#2f96b4',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.btn-info:hover,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{background-color:#2f96b4;*background-color:#2a85a0}.btn-info:active,.btn-info.active{background-color:#24748c \9}.btn-inverse{background-color:#414141;*background-color:#222;background-image:-ms-linear-gradient(top,#555,#222);background-image:-webkit-gradient(linear,0 0,0 100%,from(#555),to(#222));background-image:-webkit-linear-gradient(top,#555,#222);background-image:-o-linear-gradient(top,#555,#222);background-image:-moz-linear-gradient(top,#555,#222);background-image:linear-gradient(top,#555,#222);background-repeat:repeat-x;border-color:#222 #222 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#555555',endColorstr='#222222',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false)}.btn-inverse:hover,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{background-color:#222;*background-color:#151515}.btn-inverse:active,.btn-inverse.active{background-color:#080808 \9}button.btn,input[type="submit"].btn{*padding-top:2px;*padding-bottom:2px}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0}button.btn.btn-large,input[type="submit"].btn.btn-large{*padding-top:7px;*padding-bottom:7px}button.btn.btn-small,input[type="submit"].btn.btn-small{*padding-top:3px;*padding-bottom:3px}button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding-bottom:1px}.btn-group{position:relative;*margin-left:.3em;*zoom:1}.btn-group:before,.btn-group:after{display:table;content:""}.btn-group:after{clear:both}.btn-group:first-child{*margin-left:0}.btn-group+.btn-group{margin-left:5px}.btn-toolbar{margin-top:9px;margin-bottom:9px}.btn-toolbar .btn-group{display:inline-block;*display:inline;*zoom:1}.btn-group>.btn{position:relative;float:left;margin-left:-1px;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group>.btn:first-child{margin-left:0;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.btn-group>.btn:last-child,.btn-group>.dropdown-toggle{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.btn-group>.btn.large:first-child{margin-left:0;-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active{z-index:2}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.dropdown-toggle{*padding-top:4px;padding-right:8px;*padding-bottom:4px;padding-left:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn-group>.btn-mini.dropdown-toggle{padding-right:5px;padding-left:5px}.btn-group>.btn-small.dropdown-toggle{*padding-top:4px;*padding-bottom:4px}.btn-group>.btn-large.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn-group.open .btn.dropdown-toggle{background-color:#e6e6e6}.btn-group.open .btn-primary.dropdown-toggle{background-color:#05c}.btn-group.open .btn-warning.dropdown-toggle{background-color:#f89406}.btn-group.open .btn-danger.dropdown-toggle{background-color:#bd362f}.btn-group.open .btn-success.dropdown-toggle{background-color:#51a351}.btn-group.open .btn-info.dropdown-toggle{background-color:#2f96b4}.btn-group.open .btn-inverse.dropdown-toggle{background-color:#222}.btn .caret{margin-top:7px;margin-left:0}.btn:hover .caret,.open.btn-group .caret{opacity:1;filter:alpha(opacity=100)}.btn-mini .caret{margin-top:5px}.btn-small .caret{margin-top:6px}.btn-large .caret{margin-top:6px;border-top-width:5px;border-right-width:5px;border-left-width:5px}.dropup .btn-large .caret{border-top:0;border-bottom:5px solid #000}.btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret{border-top-color:#fff;border-bottom-color:#fff;opacity:.75;filter:alpha(opacity=75)}.alert{padding:8px 35px 8px 14px;margin-bottom:18px;color:#c09853;text-shadow:0 1px 0 rgba(255,255,255,0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.alert-heading{color:inherit}.alert .close{position:relative;top:-2px;right:-21px;line-height:18px}.alert-success{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.alert-danger,.alert-error{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.alert-info{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.alert-block{padding-top:14px;padding-bottom:14px}.alert-block>p,.alert-block>ul{margin-bottom:0}.alert-block p+p{margin-top:5px}.nav{margin-bottom:18px;margin-left:0;list-style:none}.nav>li>a{display:block}.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>.pull-right{float:right}.nav .nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:bold;line-height:18px;color:#999;text-shadow:0 1px 0 rgba(255,255,255,0.5);text-transform:uppercase}.nav li+.nav-header{margin-top:9px}.nav-list{padding-right:15px;padding-left:15px;margin-bottom:0}.nav-list>li>a,.nav-list .nav-header{margin-right:-15px;margin-left:-15px;text-shadow:0 1px 0 rgba(255,255,255,0.5)}.nav-list>li>a{padding:3px 15px}.nav-list>.active>a,.nav-list>.active>a:hover{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.2);background-color:#08c}.nav-list [class^="icon-"]{margin-right:2px}.nav-list .divider{*width:100%;height:1px;margin:8px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.nav-tabs,.nav-pills{*zoom:1}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;content:""}.nav-tabs:after,.nav-pills:after{clear:both}.nav-tabs>li,.nav-pills>li{float:left}.nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{margin-bottom:-1px}.nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:18px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>.active>a,.nav-tabs>.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.nav-pills>.active>a,.nav-pills>.active>a:hover{color:#fff;background-color:#08c}.nav-stacked>li{float:none}.nav-stacked>li>a{margin-right:0}.nav-tabs.nav-stacked{border-bottom:0}.nav-tabs.nav-stacked>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.nav-tabs.nav-stacked>li:first-child>a{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.nav-tabs.nav-stacked>li:last-child>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.nav-tabs.nav-stacked>li>a:hover{z-index:2;border-color:#ddd}.nav-pills.nav-stacked>li>a{margin-bottom:3px}.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px}.nav-tabs .dropdown-menu{-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px}.nav-pills .dropdown-menu{-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.nav-tabs .dropdown-toggle .caret,.nav-pills .dropdown-toggle .caret{margin-top:6px;border-top-color:#08c;border-bottom-color:#08c}.nav-tabs .dropdown-toggle:hover .caret,.nav-pills .dropdown-toggle:hover .caret{border-top-color:#005580;border-bottom-color:#005580}.nav-tabs .active .dropdown-toggle .caret,.nav-pills .active .dropdown-toggle .caret{border-top-color:#333;border-bottom-color:#333}.nav>.dropdown.active>a:hover{color:#000;cursor:pointer}.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>li.dropdown.open.active>a:hover{color:#fff;background-color:#999;border-color:#999}.nav li.dropdown.open .caret,.nav li.dropdown.open.active .caret,.nav li.dropdown.open a:hover .caret{border-top-color:#fff;border-bottom-color:#fff;opacity:1;filter:alpha(opacity=100)}.tabs-stacked .open>a:hover{border-color:#999}.tabbable{*zoom:1}.tabbable:before,.tabbable:after{display:table;content:""}.tabbable:after{clear:both}.tab-content{overflow:auto}.tabs-below>.nav-tabs,.tabs-right>.nav-tabs,.tabs-left>.nav-tabs{border-bottom:0}.tab-content>.tab-pane,.pill-content>.pill-pane{display:none}.tab-content>.active,.pill-content>.active{display:block}.tabs-below>.nav-tabs{border-top:1px solid #ddd}.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0}.tabs-below>.nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.tabs-below>.nav-tabs>li>a:hover{border-top-color:#ddd;border-bottom-color:transparent}.tabs-below>.nav-tabs>.active>a,.tabs-below>.nav-tabs>.active>a:hover{border-color:transparent #ddd #ddd #ddd}.tabs-left>.nav-tabs>li,.tabs-right>.nav-tabs>li{float:none}.tabs-left>.nav-tabs>li>a,.tabs-right>.nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px}.tabs-left>.nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd}.tabs-left>.nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.tabs-left>.nav-tabs>li>a:hover{border-color:#eee #ddd #eee #eee}.tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:hover{border-color:#ddd transparent #ddd #ddd;*border-right-color:#fff}.tabs-right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd}.tabs-right>.nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.tabs-right>.nav-tabs>li>a:hover{border-color:#eee #eee #eee #ddd}.tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:hover{border-color:#ddd #ddd #ddd transparent;*border-left-color:#fff}.navbar{*position:relative;*z-index:2;margin-bottom:18px;overflow:visible}.navbar-inner{min-height:40px;padding-right:20px;padding-left:20px;background-color:#2c2c2c;background-image:-moz-linear-gradient(top,#333,#222);background-image:-ms-linear-gradient(top,#333,#222);background-image:-webkit-gradient(linear,0 0,0 100%,from(#333),to(#222));background-image:-webkit-linear-gradient(top,#333,#222);background-image:-o-linear-gradient(top,#333,#222);background-image:linear-gradient(top,#333,#222);background-repeat:repeat-x;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#333333',endColorstr='#222222',GradientType=0);-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.25),inset 0 -1px 0 rgba(0,0,0,0.1);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.25),inset 0 -1px 0 rgba(0,0,0,0.1);box-shadow:0 1px 3px rgba(0,0,0,0.25),inset 0 -1px 0 rgba(0,0,0,0.1)}.navbar .container{width:auto}.nav-collapse.collapse{height:auto}.navbar{color:#999}.navbar .brand:hover{text-decoration:none}.navbar .brand{display:block;float:left;padding:8px 20px 12px;margin-left:-20px;font-size:20px;font-weight:200;line-height:1;color:#999}.navbar .navbar-text{margin-bottom:0;line-height:40px}.navbar .navbar-link{color:#999}.navbar .navbar-link:hover{color:#fff}.navbar .btn,.navbar .btn-group{margin-top:5px}.navbar .btn-group .btn{margin:0}.navbar-form{margin-bottom:0;*zoom:1}.navbar-form:before,.navbar-form:after{display:table;content:""}.navbar-form:after{clear:both}.navbar-form input,.navbar-form select,.navbar-form .radio,.navbar-form .checkbox{margin-top:5px}.navbar-form input,.navbar-form select{display:inline-block;margin-bottom:0}.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px}.navbar-form .input-append,.navbar-form .input-prepend{margin-top:6px;white-space:nowrap}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0}.navbar-search{position:relative;float:left;margin-top:6px;margin-bottom:0}.navbar-search .search-query{padding:4px 9px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1;color:#fff;background-color:#626262;border:1px solid #151515;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-webkit-transition:none;-moz-transition:none;-ms-transition:none;-o-transition:none;transition:none}.navbar-search .search-query:-moz-placeholder{color:#ccc}.navbar-search .search-query:-ms-input-placeholder{color:#ccc}.navbar-search .search-query::-webkit-input-placeholder{color:#ccc}.navbar-search .search-query:focus,.navbar-search .search-query.focused{padding:5px 10px;color:#333;text-shadow:0 1px 0 #fff;background-color:#fff;border:0;outline:0;-webkit-box-shadow:0 0 3px rgba(0,0,0,0.15);-moz-box-shadow:0 0 3px rgba(0,0,0,0.15);box-shadow:0 0 3px rgba(0,0,0,0.15)}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding-right:0;padding-left:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.navbar-fixed-top{top:0}.navbar-fixed-bottom{bottom:0}.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0}.navbar .nav.pull-right{float:right}.navbar .nav>li{display:block;float:left}.navbar .nav>li>a{float:none;padding:9px 10px 11px;line-height:19px;color:#999;text-decoration:none;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.navbar .btn{display:inline-block;padding:4px 10px 4px;margin:5px 5px 6px;line-height:18px}.navbar .btn-group{padding:5px 5px 6px;margin:0}.navbar .nav>li>a:hover{color:#fff;text-decoration:none;background-color:transparent}.navbar .nav .active>a,.navbar .nav .active>a:hover{color:#fff;text-decoration:none;background-color:#222}.navbar .divider-vertical{width:1px;height:40px;margin:0 9px;overflow:hidden;background-color:#222;border-right:1px solid #333}.navbar .nav.pull-right{margin-right:0;margin-left:10px}.navbar .btn-navbar{display:none;float:right;padding:7px 10px;margin-right:5px;margin-left:5px;background-color:#2c2c2c;*background-color:#222;background-image:-ms-linear-gradient(top,#333,#222);background-image:-webkit-gradient(linear,0 0,0 100%,from(#333),to(#222));background-image:-webkit-linear-gradient(top,#333,#222);background-image:-o-linear-gradient(top,#333,#222);background-image:linear-gradient(top,#333,#222);background-image:-moz-linear-gradient(top,#333,#222);background-repeat:repeat-x;border-color:#222 #222 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:dximagetransform.microsoft.gradient(startColorstr='#333333',endColorstr='#222222',GradientType=0);filter:progid:dximagetransform.microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075)}.navbar .btn-navbar:hover,.navbar .btn-navbar:active,.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar[disabled]{background-color:#222;*background-color:#151515}.navbar .btn-navbar:active,.navbar .btn-navbar.active{background-color:#080808 \9}.navbar .btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.25);-moz-box-shadow:0 1px 0 rgba(0,0,0,0.25);box-shadow:0 1px 0 rgba(0,0,0,0.25)}.btn-navbar .icon-bar+.icon-bar{margin-top:3px}.navbar .dropdown-menu:before{position:absolute;top:-7px;left:9px;display:inline-block;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-left:7px solid transparent;border-bottom-color:rgba(0,0,0,0.2);content:''}.navbar .dropdown-menu:after{position:absolute;top:-6px;left:10px;display:inline-block;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent;content:''}.navbar-fixed-bottom .dropdown-menu:before{top:auto;bottom:-7px;border-top:7px solid #ccc;border-bottom:0;border-top-color:rgba(0,0,0,0.2)}.navbar-fixed-bottom .dropdown-menu:after{top:auto;bottom:-6px;border-top:6px solid #fff;border-bottom:0}.navbar .nav li.dropdown .dropdown-toggle .caret,.navbar .nav li.dropdown.open .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar .nav li.dropdown.active .caret{opacity:1;filter:alpha(opacity=100)}.navbar .nav li.dropdown.open>.dropdown-toggle,.navbar .nav li.dropdown.active>.dropdown-toggle,.navbar .nav li.dropdown.open.active>.dropdown-toggle{background-color:transparent}.navbar .nav li.dropdown.active>.dropdown-toggle:hover{color:#fff}.navbar .pull-right .dropdown-menu,.navbar .dropdown-menu.pull-right{right:0;left:auto}.navbar .pull-right .dropdown-menu:before,.navbar .dropdown-menu.pull-right:before{right:12px;left:auto}.navbar .pull-right .dropdown-menu:after,.navbar .dropdown-menu.pull-right:after{right:13px;left:auto}.breadcrumb{padding:7px 14px;margin:0 0 18px;list-style:none;background-color:#fbfbfb;background-image:-moz-linear-gradient(top,#fff,#f5f5f5);background-image:-ms-linear-gradient(top,#fff,#f5f5f5);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#f5f5f5));background-image:-webkit-linear-gradient(top,#fff,#f5f5f5);background-image:-o-linear-gradient(top,#fff,#f5f5f5);background-image:linear-gradient(top,#fff,#f5f5f5);background-repeat:repeat-x;border:1px solid #ddd;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ffffff',endColorstr='#f5f5f5',GradientType=0);-webkit-box-shadow:inset 0 1px 0 #fff;-moz-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.breadcrumb li{display:inline-block;*display:inline;text-shadow:0 1px 0 #fff;*zoom:1}.breadcrumb .divider{padding:0 5px;color:#999}.breadcrumb .active a{color:#333}.pagination{height:36px;margin:18px 0}.pagination ul{display:inline-block;*display:inline;margin-bottom:0;margin-left:0;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;*zoom:1;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05)}.pagination li{display:inline}.pagination a{float:left;padding:0 14px;line-height:34px;text-decoration:none;border:1px solid #ddd;border-left-width:0}.pagination a:hover,.pagination .active a{background-color:#f5f5f5}.pagination .active a{color:#999;cursor:default}.pagination .disabled span,.pagination .disabled a,.pagination .disabled a:hover{color:#999;cursor:default;background-color:transparent}.pagination li:first-child a{border-left-width:1px;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.pagination li:last-child a{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.pagination-centered{text-align:center}.pagination-right{text-align:right}.pager{margin-bottom:18px;margin-left:0;text-align:center;list-style:none;*zoom:1}.pager:before,.pager:after{display:table;content:""}.pager:after{clear:both}.pager li{display:inline}.pager a{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.pager a:hover{text-decoration:none;background-color:#f5f5f5}.pager .next a{float:right}.pager .previous a{float:left}.pager .disabled a,.pager .disabled a:hover{color:#999;cursor:default;background-color:#fff}.modal-open .dropdown-menu{z-index:2050}.modal-open .dropdown.open{*z-index:2050}.modal-open .popover{z-index:2060}.modal-open .tooltip{z-index:2070}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop,.modal-backdrop.fade.in{opacity:.8;filter:alpha(opacity=80)}.modal{position:fixed;top:50%;left:50%;z-index:1050;width:560px;margin:-250px 0 0 -280px;overflow:auto;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0,0,0,0.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,0.3);box-shadow:0 3px 7px rgba(0,0,0,0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}.modal.fade{top:-25%;-webkit-transition:opacity .3s linear,top .3s ease-out;-moz-transition:opacity .3s linear,top .3s ease-out;-ms-transition:opacity .3s linear,top .3s ease-out;-o-transition:opacity .3s linear,top .3s ease-out;transition:opacity .3s linear,top .3s ease-out}.modal.fade.in{top:50%}.modal-header{padding:9px 15px;border-bottom:1px solid #eee}.modal-header .close{margin-top:2px}.modal-body{max-height:400px;padding:15px;overflow-y:auto}.modal-form{margin-bottom:0}.modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;*zoom:1;-webkit-box-shadow:inset 0 1px 0 #fff;-moz-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.modal-footer:before,.modal-footer:after{display:table;content:""}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.tooltip{position:absolute;z-index:1020;display:block;padding:5px;font-size:11px;opacity:0;filter:alpha(opacity=0);visibility:visible}.tooltip.in{opacity:.8;filter:alpha(opacity=80)}.tooltip.top{margin-top:-2px}.tooltip.right{margin-left:2px}.tooltip.bottom{margin-top:2px}.tooltip.left{margin-left:-2px}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top:5px solid #000;border-right:5px solid transparent;border-left:5px solid transparent}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:5px solid #000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-right:5px solid transparent;border-bottom:5px solid #000;border-left:5px solid transparent}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-top:5px solid transparent;border-right:5px solid #000;border-bottom:5px solid transparent}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;padding:5px}.popover.top{margin-top:-5px}.popover.right{margin-left:5px}.popover.bottom{margin-top:5px}.popover.left{margin-left:-5px}.popover.top .arrow{bottom:0;left:50%;margin-left:-5px;border-top:5px solid #000;border-right:5px solid transparent;border-left:5px solid transparent}.popover.right .arrow{top:50%;left:0;margin-top:-5px;border-top:5px solid transparent;border-right:5px solid #000;border-bottom:5px solid transparent}.popover.bottom .arrow{top:0;left:50%;margin-left:-5px;border-right:5px solid transparent;border-bottom:5px solid #000;border-left:5px solid transparent}.popover.left .arrow{top:50%;right:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:5px solid #000}.popover .arrow{position:absolute;width:0;height:0}.popover-inner{width:280px;padding:3px;overflow:hidden;background:#000;background:rgba(0,0,0,0.8);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0,0,0,0.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,0.3);box-shadow:0 3px 7px rgba(0,0,0,0.3)}.popover-title{padding:9px 15px;line-height:1;background-color:#f5f5f5;border-bottom:1px solid #eee;-webkit-border-radius:3px 3px 0 0;-moz-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0}.popover-content{padding:14px;background-color:#fff;-webkit-border-radius:0 0 3px 3px;-moz-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px;-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}.popover-content p,.popover-content ul,.popover-content ol{margin-bottom:0}.thumbnails{margin-left:-20px;list-style:none;*zoom:1}.thumbnails:before,.thumbnails:after{display:table;content:""}.thumbnails:after{clear:both}.row-fluid .thumbnails{margin-left:0}.thumbnails>li{float:left;margin-bottom:18px;margin-left:20px}.thumbnail{display:block;padding:4px;line-height:1;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:0 1px 1px rgba(0,0,0,0.075);box-shadow:0 1px 1px rgba(0,0,0,0.075)}a.thumbnail:hover{border-color:#08c;-webkit-box-shadow:0 1px 4px rgba(0,105,214,0.25);-moz-box-shadow:0 1px 4px rgba(0,105,214,0.25);box-shadow:0 1px 4px rgba(0,105,214,0.25)}.thumbnail>img{display:block;max-width:100%;margin-right:auto;margin-left:auto}.thumbnail .caption{padding:9px}.label,.badge{font-size:10.998px;font-weight:bold;line-height:14px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);white-space:nowrap;vertical-align:baseline;background-color:#999}.label{padding:1px 4px 2px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.badge{padding:1px 9px 2px;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px}a.label:hover,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.label-important,.badge-important{background-color:#b94a48}.label-important[href],.badge-important[href]{background-color:#953b39}.label-warning,.badge-warning{background-color:#f89406}.label-warning[href],.badge-warning[href]{background-color:#c67605}.label-success,.badge-success{background-color:#468847}.label-success[href],.badge-success[href]{background-color:#356635}.label-info,.badge-info{background-color:#3a87ad}.label-info[href],.badge-info[href]{background-color:#2d6987}.label-inverse,.badge-inverse{background-color:#333}.label-inverse[href],.badge-inverse[href]{background-color:#1a1a1a}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-ms-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:18px;margin-bottom:18px;overflow:hidden;background-color:#f7f7f7;background-image:-moz-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-ms-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f5f5f5),to(#f9f9f9));background-image:-webkit-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-o-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:linear-gradient(top,#f5f5f5,#f9f9f9);background-repeat:repeat-x;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#f5f5f5',endColorstr='#f9f9f9',GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress .bar{width:0;height:18px;font-size:12px;color:#fff;text-align:center;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top,#149bdf,#0480be);background-image:-webkit-gradient(linear,0 0,0 100%,from(#149bdf),to(#0480be));background-image:-webkit-linear-gradient(top,#149bdf,#0480be);background-image:-o-linear-gradient(top,#149bdf,#0480be);background-image:linear-gradient(top,#149bdf,#0480be);background-image:-ms-linear-gradient(top,#149bdf,#0480be);background-repeat:repeat-x;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#149bdf',endColorstr='#0480be',GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width .6s ease;-moz-transition:width .6s ease;-ms-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-striped .bar{background-color:#149bdf;background-image:-o-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-webkit-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-ms-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px}.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-danger .bar{background-color:#dd514c;background-image:-moz-linear-gradient(top,#ee5f5b,#c43c35);background-image:-ms-linear-gradient(top,#ee5f5b,#c43c35);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#c43c35));background-image:-webkit-linear-gradient(top,#ee5f5b,#c43c35);background-image:-o-linear-gradient(top,#ee5f5b,#c43c35);background-image:linear-gradient(top,#ee5f5b,#c43c35);background-repeat:repeat-x;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ee5f5b',endColorstr='#c43c35',GradientType=0)}.progress-danger.progress-striped .bar{background-color:#ee5f5b;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-ms-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-success .bar{background-color:#5eb95e;background-image:-moz-linear-gradient(top,#62c462,#57a957);background-image:-ms-linear-gradient(top,#62c462,#57a957);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#57a957));background-image:-webkit-linear-gradient(top,#62c462,#57a957);background-image:-o-linear-gradient(top,#62c462,#57a957);background-image:linear-gradient(top,#62c462,#57a957);background-repeat:repeat-x;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#62c462',endColorstr='#57a957',GradientType=0)}.progress-success.progress-striped .bar{background-color:#62c462;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-ms-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-info .bar{background-color:#4bb1cf;background-image:-moz-linear-gradient(top,#5bc0de,#339bb9);background-image:-ms-linear-gradient(top,#5bc0de,#339bb9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#339bb9));background-image:-webkit-linear-gradient(top,#5bc0de,#339bb9);background-image:-o-linear-gradient(top,#5bc0de,#339bb9);background-image:linear-gradient(top,#5bc0de,#339bb9);background-repeat:repeat-x;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#5bc0de',endColorstr='#339bb9',GradientType=0)}.progress-info.progress-striped .bar{background-color:#5bc0de;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-ms-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-warning .bar{background-color:#faa732;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-ms-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(top,#fbb450,#f89406);background-repeat:repeat-x;filter:progid:dximagetransform.microsoft.gradient(startColorstr='#fbb450',endColorstr='#f89406',GradientType=0)}.progress-warning.progress-striped .bar{background-color:#fbb450;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-ms-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.accordion{margin-bottom:18px}.accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.accordion-heading{border-bottom:0}.accordion-heading .accordion-toggle{display:block;padding:8px 15px}.accordion-toggle{cursor:pointer}.accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5}.carousel{position:relative;margin-bottom:18px;line-height:1}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel .item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-moz-transition:.6s ease-in-out left;-ms-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel .item>img{display:block;line-height:1}.carousel .active,.carousel .next,.carousel .prev{display:block}.carousel .active{left:0}.carousel .next,.carousel .prev{position:absolute;top:0;width:100%}.carousel .next{left:100%}.carousel .prev{left:-100%}.carousel .next.left,.carousel .prev.right{left:0}.carousel .active.left{left:-100%}.carousel .active.right{left:100%}.carousel-control{position:absolute;top:40%;left:15px;width:40px;height:40px;margin-top:-20px;font-size:60px;font-weight:100;line-height:30px;color:#fff;text-align:center;background:#222;border:3px solid #fff;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:.5;filter:alpha(opacity=50)}.carousel-control.right{right:15px;left:auto}.carousel-control:hover{color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-caption{position:absolute;right:0;bottom:0;left:0;padding:10px 15px 5px;background:#333;background:rgba(0,0,0,0.75)}.carousel-caption h4,.carousel-caption p{color:#fff}.hero-unit{padding:60px;margin-bottom:30px;background-color:#eee;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;letter-spacing:-1px;color:inherit}.hero-unit p{font-size:18px;font-weight:200;line-height:27px;color:inherit}.pull-right{float:right}.pull-left{float:left}.hide{display:none}.show{display:block}.invisible{visibility:hidden} diff --git a/htdocs/themes/bootstrap/css/codemirror.css b/htdocs/themes/bootstrap/css/codemirror.css new file mode 100644 index 0000000..01c6dd3 --- /dev/null +++ b/htdocs/themes/bootstrap/css/codemirror.css @@ -0,0 +1,211 @@ +.CodeMirror { + line-height: 1em; + font-family: monospace; + margin: 10px 0px; + /* Necessary so the scrollbar can be absolutely positioned within the wrapper on Lion. */ + position: relative; + /* This prevents unwanted scrollbars from showing up on the body and wrapper in IE. */ + overflow: hidden; + background-color: white; + border: 1px solid #CCC; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -webkit-transition: border linear 0.2s, box-shadow linear 0.2s; + -moz-transition: border linear 0.2s, box-shadow linear 0.2s; + -ms-transition: border linear 0.2s, box-shadow linear 0.2s; + -o-transition: border linear 0.2s, box-shadow linear 0.2s; + transition: border linear 0.2s, box-shadow linear 0.2s; +} + +.CodeMirror-scroll { + overflow-x: auto; + overflow-y: hidden; + height: 300px; + /* This is needed to prevent an IE[67] bug where the scrolled content + is visible outside of the scrolling box. */ + position: relative; + outline: none; +} + +/* Vertical scrollbar */ +.CodeMirror-scrollbar { + float: right; + overflow-x: hidden; + overflow-y: scroll; + + /* This corrects for the 1px gap introduced to the left of the scrollbar + by the rule for .CodeMirror-scrollbar-inner. */ + margin-left: -1px; +} +.CodeMirror-scrollbar-inner { + /* This needs to have a nonzero width in order for the scrollbar to appear + in Firefox and IE9. */ + width: 1px; +} +.CodeMirror-scrollbar.cm-sb-overlap { + /* Ensure that the scrollbar appears in Lion, and that it overlaps the content + rather than sitting to the right of it. */ + position: absolute; + z-index: 1; + float: none; + right: 0; + min-width: 12px; +} +.CodeMirror-scrollbar.cm-sb-nonoverlap { + min-width: 12px; +} +.CodeMirror-scrollbar.cm-sb-ie7 { + min-width: 18px; +} + +.CodeMirror-gutter { + position: absolute; left: 0; top: 0; + z-index: 10; + background-color: #F7F7F9; + border-right: 1px solid #eee; + min-width: 2em; + height: 100%; + -webkit-border-top-left-radius: 3px; + -webkit-border-bottom-left-radius: 3px; + -moz-border-radius-topleft: 3px; + -moz-border-radius-bottomleft: 3px; + border-top-left-radius: 3px; + border-bottom-left-radius: 3px; + -webkit-box-shadow: inset 1px 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 1px 0 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 1px 0 1px 1px rgba(0, 0, 0, 0.075); +} +blockquote.CodeMirror { + background-color: #F7F7F9; + border-right: 1px solid #eee; + min-width: 2em; + height: 100%; + -webkit-border-top-left-radius: 3px; + -webkit-border-bottom-left-radius: 3px; + -moz-border-radius-topleft: 3px; + -moz-border-radius-bottomleft: 3px; + border-top-left-radius: 3px; + border-bottom-left-radius: 3px; + -webkit-box-shadow: inset 1px 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 1px 0 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 1px 0 1px 1px rgba(0, 0, 0, 0.075); +} +blockquote.CodeMirror ol { + z-index: 10; + border: none; + background-color: #fff; + margin-bottom: 0; +} +.CodeMirror-gutter-text { + color: #aaa; + text-align: right; + padding: .4em .2em .4em .4em; + white-space: pre !important; +} +.CodeMirror-lines { + padding: .4em; + white-space: pre; + cursor: text; +} +.CodeMirror-lines * { + /* Necessary for throw-scrolling to decelerate properly on Safari. */ + pointer-events: none; +} + +.CodeMirror pre { + -moz-border-radius: 0; + -webkit-border-radius: 0; + -o-border-radius: 0; + border-radius: 0; + border-width: 0; margin: 0; padding: 0; background: transparent; + font-family: inherit; + font-size: inherit; + padding: 0; margin: 0; + white-space: pre; + word-wrap: normal; + line-height: inherit; + color: inherit; +} + +.CodeMirror-wrap pre { + word-wrap: break-word; + white-space: pre-wrap; + word-break: normal; +} +.CodeMirror-wrap .CodeMirror-scroll { + overflow-x: hidden; +} + +.CodeMirror textarea { + outline: none !important; +} + +.CodeMirror pre.CodeMirror-cursor { + z-index: 10; + position: absolute; + visibility: hidden; + border-left: 1px solid black; + border-right: none; + width: 0; +} +.cm-keymap-fat-cursor pre.CodeMirror-cursor { + width: auto; + border: 0; + background: transparent; + background: rgba(0, 200, 0, .4); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#6600c800, endColorstr=#4c00c800); +} +/* Kludge to turn off filter in ie9+, which also accepts rgba */ +.cm-keymap-fat-cursor pre.CodeMirror-cursor:not(#nonsense_id) { + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} +.CodeMirror pre.CodeMirror-cursor.CodeMirror-overwrite {} +.CodeMirror-focused pre.CodeMirror-cursor { + visibility: visible; +} + +div.CodeMirror-selected { background: #d9d9d9; } +.CodeMirror-focused div.CodeMirror-selected { background: #d7d4f0; } + +.CodeMirror-searching { + background: #ffa; + background: rgba(255, 255, 0, .4); +} + +/* Default theme */ + +.cm-s-default span.cm-keyword {color: #708;} +.cm-s-default span.cm-atom {color: #219;} +.cm-s-default span.cm-number {color: #164;} +.cm-s-default span.cm-def {color: #00f;} +.cm-s-default span.cm-variable {color: black;} +.cm-s-default span.cm-variable-2 {color: #05a;} +.cm-s-default span.cm-variable-3 {color: #085;} +.cm-s-default span.cm-property {color: black;} +.cm-s-default span.cm-operator {color: black;} +.cm-s-default span.cm-comment {color: #a50;} +.cm-s-default span.cm-string {color: #a11;} +.cm-s-default span.cm-string-2 {color: #f50;} +.cm-s-default span.cm-meta {color: #555;} +.cm-s-default span.cm-error {color: #f00;} +.cm-s-default span.cm-qualifier {color: #555;} +.cm-s-default span.cm-builtin {color: #30a;} +.cm-s-default span.cm-bracket {color: #cc7;} +.cm-s-default span.cm-tag {color: #170;} +.cm-s-default span.cm-attribute {color: #00c;} +.cm-s-default span.cm-header {color: blue;} +.cm-s-default span.cm-quote {color: #090;} +.cm-s-default span.cm-hr {color: #999;} +.cm-s-default span.cm-link {color: #00c;} + +span.cm-header, span.cm-strong {font-weight: bold;} +span.cm-em {font-style: italic;} +span.cm-emstrong {font-style: italic; font-weight: bold;} +span.cm-link {text-decoration: underline;} + +div.CodeMirror span.CodeMirror-matchingbracket {color: #0f0;} +div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;} diff --git a/htdocs/themes/bootstrap/css/embed.css b/htdocs/themes/bootstrap/css/embed.css new file mode 100644 index 0000000..d248b7d --- /dev/null +++ b/htdocs/themes/bootstrap/css/embed.css @@ -0,0 +1,25 @@ + +body { +} + +.paste { + margin: 0 auto; + width: auto; +} + +.paste .text_formatted { + width: 100%; + margin: 0; + border: 0; +} + +.paste p { + clear: both; + background: #ccc; + padding: 3px 6px; +} + +.paste .right { + float: right; +} + diff --git a/htdocs/themes/bootstrap/css/iphone.css b/htdocs/themes/bootstrap/css/iphone.css new file mode 100644 index 0000000..336b0c7 --- /dev/null +++ b/htdocs/themes/bootstrap/css/iphone.css @@ -0,0 +1,130 @@ +/* + iphone.css + stikked + + Created by Ben McRedmond on 2008-03-19. + Copyright 2008 Stikked. Some rights reserved. +*/ + +* { + margin: 0; +} + +body { + font-family: "Helvetica"; + font-size: 20px; + font-weight: bold; +} + +.container { + padding: 5px; +} + +.pagetitle { + font-size: 25px; +} + +/* Header */ + +.header { + background-color: #74972A; + border-bottom: 2px solid #607C21; + color: #fff; + height: 40px; +} + +.logo{ + float: left; + font-size: 25px; +} + +.toolbar { + margin-top: 3px; + color: #aaa; + float: right; + font-weight: normal; +} + +.toolbar ul li{ + display: inline; + padding-left: 15px; +} + +.toolbar ul li.active{ + color: #fff; +} + +.toolbar ul li a { + color: inherit; + text-decoration: none; +} + +/* List */ +tr { + height: 30px; +} + +.recent { + list-style: none; + padding: 0; +} + +.recent a { + color: inherit; + text-decoration: none; +} + +.recent li { + padding: 5px; + border-bottom: 1px solid #eee; +} + +.recent li span.author { + font-weight: normal; +} + +.pages { + margin-top: 10px; + font-size: 25px; + font-weight: normal; + margin-right: 5px; + text-align: right; +} + +.pages .current { + font-weight: bold;; +} + +/* Create */ +.data { + border: 0; +} + +textarea { + width: 90%; + margin-left: 6px; +} + +.submit { + margin-left: 2px; + margin-bottom: 5px; +} + +/* View */ +.info { + margin-left: 2px; +} + +.meta{ + font-weight: normal; + font-size: 15px; + margin-bottom: 5px; + color: #333; +} + +.text_formatted { + font-size: 10px; + border-top: 1px solid #aaa; + padding-top: 5px; + overflow: auto; +} \ No newline at end of file diff --git a/htdocs/themes/bootstrap/css/raw.css b/htdocs/themes/bootstrap/css/raw.css new file mode 100644 index 0000000..7488f1d --- /dev/null +++ b/htdocs/themes/bootstrap/css/raw.css @@ -0,0 +1,24 @@ +/* + raw.css + Stikked + + Created by Ben McRedmond on 2008-03-20. + Copyright 2008 Stikked. Some rights reserved. +*/ + +body { + font-family: "Lucida Grande", "Lucida Sans", "Lucida Sans Unicode", Verdana, "Helvetica Neue", Helvetica, sans-serif; + font-size: 14px; +} + +#container { + width: 95%; + margin: 20px auto; +} + +pre { + background-color: #eee; + padding: 5px; + font-family: monospace; + overflow: auto; +} \ No newline at end of file diff --git a/htdocs/themes/bootstrap/css/style.css b/htdocs/themes/bootstrap/css/style.css new file mode 100644 index 0000000..8216b2c --- /dev/null +++ b/htdocs/themes/bootstrap/css/style.css @@ -0,0 +1,68 @@ +@media (min-width: 980px) { + body { + position: relative; + padding-top: 40px; + } +} + +.hidden { + display: none; +} + + +/* Footer +-------------------------------------------------- */ +.footer { + margin-top: 35px; + padding: 15px 0 10px; + border-top: 1px solid #e5e5e5; +} +.footer p { + margin-bottom: 0; + color: #555; +} + +section { + margin-bottom: 25px; +} + +/* Table Sorter +---------------------------------------------------*/ +div.dataTables_length label { + float: left; + text-align: left; +} + +div.dataTables_filter label { + float: right; +} + +div.dataTables_info { + padding-top: 8px; +} + +div.dataTables_paginate { + float: right; + margin: 0; +} + +table { + margin-bottom: 6px !important; + clear: both; +} + +table.table thead .sorting, +table.table thead .sorting_asc, +table.table thead .sorting_desc, +table.table thead .sorting_asc_disabled, +table.table thead .sorting_desc_disabled { + cursor: pointer; + *cursor: hand; +} + +table.table thead .sorting { background: url('../img/sort_both.png') no-repeat center right; } +table.table thead .sorting_asc { background: url('../img/sort_asc.png') no-repeat center right; } +table.table thead .sorting_desc { background: url('../img/sort_desc.png') no-repeat center right; } + +table.table thead .sorting_asc_disabled { background: url('../img/sort_asc_disabled.png') no-repeat center right; } +table.table thead .sorting_desc_disabled { background: url('../img/sort_desc_disabled.png') no-repeat center right; } \ No newline at end of file diff --git a/htdocs/themes/bootstrap/images/apple-touch-icon.psd b/htdocs/themes/bootstrap/images/apple-touch-icon.psd new file mode 100644 index 0000000000000000000000000000000000000000..44c6bd4f2852490244c1cff1f19e1cb1b4a206bf GIT binary patch literal 174160 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≀7l96Q(|{T3|c#JzRk7?E+-`C$gd&brWib)mWH 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 literal 0 HcmV?d00001 diff --git a/htdocs/themes/bootstrap/images/button.png b/htdocs/themes/bootstrap/images/button.png new file mode 100644 index 0000000000000000000000000000000000000000..45d8f5eba1c73f7e4cad50823bce9bc2d52cd06e GIT binary patch literal 282 zcmeAS@N?(olHy`uVBq!ia0vp^wLmP#!2~4xn%dfclw^r(L`iUdT1k0gQ7VIDN`6wR zf@f}GdTLN=VoGJ<$y6JlqCK82jv*Dd-rREJYEh7AOKkntd7(4LqcV>Byhw-af>}+9 zIoBTVubSVxqxNUPQoHlPp-voJyhkKnuddtWf7xa3wP%%erSiuoY8XvR{aN zua&#|9$RE6`dB|-p|C#rP04cWsPg;Y=W@N7`|iQq#PohT=qI0YMEl=-J^vYg3<@!DO+WW!FTXS!} ddhOo8$e=nizus$CbrR4Y44$rjF6*2UngBr|d7%IR literal 0 HcmV?d00001 diff --git a/htdocs/themes/bootstrap/images/glyphicons-halflings-white.png b/htdocs/themes/bootstrap/images/glyphicons-halflings-white.png new file mode 100644 index 0000000000000000000000000000000000000000..3bf6484a29d8da269f9bc874b25493a45fae3bae GIT binary patch literal 8777 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 B7G?kd literal 0 HcmV?d00001 diff --git a/htdocs/themes/bootstrap/images/glyphicons-halflings.png b/htdocs/themes/bootstrap/images/glyphicons-halflings.png new file mode 100644 index 0000000000000000000000000000000000000000..79bc568c21395d5a5ceab62fadb04457094b2ac7 GIT binary patch literal 13826 zcma)jby!@B+o%-915yyF0YFyB4?Ne(CRg z-#O<#&wb84`D17H-t*49Gi$BAvS#fBDJx22pcA4aAt7PN%1EdpAw8RXk~3bSJRMO{ zLOPzl2q2PL5H+wV#M#IJgd}PLHU^Q&+8CLER6#~2F82K(0VJg7mlo<;5G{o-d_b@b zi_u>l7MP9Q6B-FgKp19c1hfJ{$c#Z|7Pf*EM~$r%WELiZ6q=k0YzlVbAae^DR|k-q ztD-v4)e6XKLLn?fCII7mGGGIO7?HtjtZg0nV1g9?*yVeY|6XRLAp1uJVkJoNAEdMt zl*z=w4j?j47B*%e8y7nn*Jl>?&uqM(d6~#Qv9YtUvVUS_<7Q@Os%DRy=VF;OnbPZB&l+~Sg=;$olKxc@r)Yv8{FpRTZ&JYl7zK5_7had2=;im|h^ zOS1E@^NNabNpOiuiHY)jW|#UmR@T-LVq^;h{dM{mYw=&$PyZv9Puu}y1OYp!gTdDS z?kdXWUuEt5GU<9?B8*-aqzJHUs!SW&!V4sCD=ZRit}=F za#FB9kud@CK`bEFpnvsHQESM*Bx{Smy@b!&$kyyB9n2;mQzNJ~ghI&7+QrV?0tmKs zG<38vvbHufF>%IThd>Rse#s3_OPbdF5nnAWt zL)hVIta5&^8bd;2&ytl8Rfo+Tcz~_-Bx?#ZE2<3oUBe})+zpAGX&=O$_aCJBN!CBt zv~LUxtg{dH^uI`jCU#YZa*6x&AyIg@k@bxImc$%rVne48BslqY$+TLFj(v37h7yfx z$^jmG#g_Rs?ETA?`?LMJ^OpUDIY(RQdGlgR?XG$OKf8PyqRZyid2g!3%@a^C1igpD z2NKzV@|1wiF}EtKQRH|$CJJ9)q3e}#g7m#Zl(d`W;iCBregW~kz}j^J z#1PLChA^$dal^V@@cK(w}dv%n2!w4^wV*y35J)-xE{$fXwc@pa}RzJm5M)#tr)iJZA7 zBA<^jjwJWvLx1>RPDIS^k*z$pgpiQZ-O2S}m#&N|A4@|nID3F1~ z+{<)-J1C8b8ezW2FI#gotv2}C#wQERQ(Bd4_} zR$QREVi8_9nE3}6@Vks1@*cVLJrSLt#`lb0$M?!xg%%C;C!jFg2$sX)U0bprNA043 zt1cd;7oNIanP3?<(O0mgAc`)87;35OB;`nL3-yw7Fq`<#Hqz;v+Mj? z%y|w07f93V#m`17f@xa3g&Kss@<20hE22A#Ba2fDjWQe?u<#pkgd4DKg$db>BIa`q zqEeb}1&O#H`nWg^GT=P^c&c$+@UcRMn~k-y&+aN^ic}0j)s9vGd$m}}SL4iw!tr4e z74SRhmFujYvTL$e!;=bil=GRdGp3UA1~R?@@XL?>oK21E-g3xj0Gu;SC|l|8wmd~d zG@8i53Tu3s9ldBp@%(!A6E=rZOl&LAvv1Nkj=ysQ(9(~g-8X6}A>#Y#1a(KQ1TAh( z`*b|k%zN|vOG$C7_4PTiy8Lhr&rZ~I!*iV zG+W%bI&HR#n{T~n|CLrV#?k5#Et)n4f;XdM7~@Er-K9uS8vPNM>uZUibWxth=wqXp zt{0wO*|bZs%9J3Y;Tj4)?d>OBZ>YUb@tFh)1KiKdOeB10_CBOTMml4P#hsP|NnH`$ zn8C$aG#8|gqT#i}vYTeH^aF(r1JFKcz$K3~!6}2FX0@^RHCL+33v-FhYXz#e!VN4~ z3pAY$kL`HvPAaz%ZKvX4N680T6G=`cF|!UT=iU?gUR}#z>rLnIjH4UiW&X!Z2Ih$B z#MDHe_%!Yd4!bTFMGeNcO(+vEfWe=Y&#$#Dh_vk`s>hf<^Bj2jofdTiH?Cvh55o&b zE2N(49<70oDa2DrZnfjbhn{Jl;CT6QCOL517jsNXxh ztk>S%Nl!1kKE!_Y1E%82zuk(#fmi4VMZZ|C9XG#t=_a%pE(?AS@K%j{n=lj?kEKY< zW|3b0>CWE2bkN^RapDK@3*dIhwI~%Mb87ZxnF|-bX;tNwFf}3s_Ti{S8}(TUA=c4( zY2Z!UZS&H=Pk;r%irg?jcz?{s!|V*#QA4{2Fzp37$r+}Z-K{*#DE7B^Inz!%Q9nU} zU%!E(b~61SJ_R5KSY88G!*+2Crm?Vp1DUFviD)lB1c&Atk+dP7K7{oK1?N#HTx(Jx zis^|e#sUW_TPZE3IGu1R+xV`&BV&1NNkrD4j;(NEKdkpSdz8YLZ}ya474taW7yY@8 zsA-+N{3&saE60RSnI802s?NYn0KiULv+`y9hNB!6%B_qCFHMhVOa;O!ge!LzPKbk( zbOnDN{s12ui~i)C55qt9+S4F%_rqna@M}~Kvh3z-^-K67%2T=8H8g<_=LYj#`6IF< z&#}t=5w#4@^{y}B4J8rm?|c7nu!l2bJZ`U-W4@aT)V{Bm!c%#8HewtNPwZ4>dYBdQ z$`?MJMLJt7`j`p7Y7C@WWmQu(B(vQ&FMa>ZZpX>;(|`+m?2Yl|fhX43DejM5BMl`? zr(v=9l4R8Y3}+Abj6x1X^T?$#`1;s>I24lFFFn~&HRgQK%%Ey(mn=20z;U>um1z~Q zJG*-wAw;tG!?{U#JnA5M5rX*u%NF+}y;0xPbTQppWv;^8{aGUxG$gD!0YAlLo;KuE zkFzemm@vHoQYYv<_b|t(esPHC%z-nLF5Q9^?&hl?0?g0d9hVSdDc=X~B?dQzaRfp; z+2*{_ss{}_cv+!%k7WX20;r5{GER*rd{={D1l}-^Se~*W+_M}?z+w9HX;SR@AB6by zI0}UM&nJY!1O!_&a8xRuf`=Drhp4bwFD4GN;7|wXEpdq}@{E+u#{VT}-UEwtWPkxKl^Wa8Qi?#AQLxY4w+?_Y4 zd1glMwHFc0bglfOS-7V_h zjsOP>)fG0TPo!`fIkeDn-b_WlxJH)NqQqX{Cjt1+PPI$%JFTSWT#$Mj_6O?PY#fK3 zMy2&j?Y~|hc!Xla$G$#xZ0%AyTx!yYt=5!)nk&0@J-$=t?&(X;8%~rQYD<{9lr1z zs@8X~WZq3R1+cmT>`KWeE&^_UF>|q&Ay^}*sN63yo7B9nz}D!eQt$6m26sKn>O$P zmvsnQ7b9nJQ46`zs$s*Wtto!ux2}?)U%;Z5%hb7!$w!&8C`>TRG+*DdD0JLss5Xff zBThm&kGp*Qxmrsc3GjV@6TVB6)l|r!wyRJP)U%eM@Of-k4FDYmUY)1+7EUyRGbs_` zleaIf78kfz<{vx`Ls^b4Ogd8_rSR#I2AH%NK)|Vfh#}z~2k0bJcEvc$3He?p;bGVK zyam;#Nl5X&J8j^k<~QS18sq4NPR$kE>m%=`^Ki#+ieKpZYF?TTM#Jv80{<7eYn$&q2aN=p)lq6fG9}Dv2}g_RSVx*Iv-0C}kEWsUw>e$24l?hUH3zqG z2Sa%=_ql^t*`t3yW7`PZ(-yol6mNfiUV1c7e)%BgzOh%HQQd^uq9gC3O*vPSi&V!$ zuJ-gy-6_@)r?@+~#wK_V|QHgllM9B^dZanlnPLZqhL-@Wql1PDLO_j>7Nz?o z+_&sbFV42Gr7019rPl3IUH2}h2Wl+=p46k?>x70Pnt9Gn_CduyDht`=S4b}9&F^387k|mAZg2^t9(aD+I+W{ z#iMaSJ%Slg$*$}d;|(Q|7`BKm3z9) zh-*c!-WX<4{kD>(FE8TvP+#HUL}QrAKt*0vVL7!~ovM)?Ur`?N{))Ew;yk>PkfjG- z*)^I$qo~mV?U!~Gwi(1*M)0+vT9Jy~`kGC^1<}kh2R4PgR^?53j%>|Ns{2kn=ewGn zvPvguwaHo(xrDKI-r{x~q$onf~4u$MK|{q*`g)sDyNO(})q!R?7xZH;c=m6iWiHEU8Q0KT-e zKaAgECVApd!3(FjK2!e|a^g^-5f7L7jB^GFCrwQ_*B`o?=jeoDN_*x+cXrv8gf$36NQ*!QC!Kwg5~wLak^RyUvu(CifB7CA>(1lu6}+@1^DvB!>VYXX?9Ys*9wd&0abG}7TGJ`WsH;FX_s&}n4v(1m|Q)++R8J>#?XO`$8g+3q` zwN~X&6{@){!8Q1(2!in4P8(_gYuOhhFGZ;=C-6kTb%~vBQQ*b-=z*J+>E;6ujm;wX zvb?kY(oC=+ca4)i4a#h@{dTzWSLS3ag^66Gpkn{ke!AC9A{1jMRP%OcQ)<<@nxJH} zZIr?|jBinPoiR)snBOcecjcb@Wuh3my1iVRzl-u;gB}~Rjhub`?Cfu)nPL3L+b$kL zO32z2XK-0_shy`%ZT9<2V<1qI5Rel|E7W{`Hg#M|m&O0`Ua-&p;v}tapS>wTE*On` z756q!EO*AN?oxlV&@ybUeVWd1q~Tg`kpqG}F@V;VsN#&)R^`V00X5}(4*PmNqShEg zQih?Ga1nmgvx@-!Wngeg;A+L{F-(i zf_X7=?WU?j|23>ePpP8OODXHU69Lw_MmSudzHtic8)MWn1BPdI_Ae4ykPB0u9il*G zJ?$Q@);~I`)dd=AQuaxcTe2HSse|E|ii5U_*5>3~bz~#PL%91W(Nyd|=|ZA6*w`c7 z$R1sRD@XhF^&4gJ#exDQRqq3%$Y|oPc!wXV-=n37^UJ=Olj%RP#gEAol|$!AAbjxW zXq&hxEZQyPL4JOa6I*343W#)9&u%!GDhw_3B>yJ7)O`Ae76GRZenb(|eWOMZU_spF zuD{--T)B0<*4E?|ri0F<=p!twyj!hH;HlUN0Htt?hj8zO#!~F83W|K9Lvq z3{RaoPbjaDFu@z{^qW3cjj7kS$GR|;9I%R~LZ@6(ENvrteZFbkkow-9p%qZBx>J+M zq8}TEyApxpU@n((iw0bRrJvc6Cd$y8wbf4?-w4%S5$Slysc^DTKW~+Y`!?zI;_DZL zV9KO0`~P=A@%O2`KlPzF{xwsO>z5=mqo0Z23o-D!NekrdbEa^%TfV56v|FDM?4cKX z@rrk@JJ?1_5irzO66hc^C*{*Ke&o=Ijw!R*ZAgtQC0ezeL17SocQu_m!6VUsNTcVG zpwRaCZCIJ=OR~@li`X(c8LO9k&wjr&0Gd_GRou<{3Hu`Css}PU72iy4PZtFd(l9VK zR)fk*&dPTy&yMX{o8@~bPnX0_Q@UX-RN+o|sC$;fpA|xTEugMj7@)yJ{4@bO3x^+O zH0OTqp82(iEah+>0QWS z$@9x&MNFG_ayE3OJxi@l$%9i2{OAD1go7t5}Sv8p*L*?_XV-Inr zpe~mOfBekpsM*iZA4B0U-_aDDuQGQ>$du+c-pHfXyBaLv@T`?*-je(+>E!q1bXa1q z14-*PWvM+oFg(z{YlRS2em5Pw1U1&De`{t$Pg={frAk6|^cDRB$0e*ut zvJ=N0<2rG{&|2ECVoU=~V0R9rfUWk0Z${R3(A&#kkMCPoz`s?k7N+_8!1v32J*zyO zR9Lv8#NK_E; zsf^8eBN5l`rT5}^m`=Z(Oaw_(G`KLa6xX%V@W0keWi;An4+N4QThS_k{n&Vyk{0!?N_d)(8r)?>J|F`-ZusfRTzNO)+h%L=-)$92e&Ck?1oAE(~~ z$-n~o0g*n;RB*mqiaAn=Wlm0w2D6Yu&4fY#;MU1bvU(~NK6m1FUoPk+w;|b?nzGkO z_PUIl=pfDRhrLvm<;sb9>BFB~Sc4oJ;hS&xb#O~;Q7(2b8< zQ9Hg8isf_ddK#6OY$>r#Kxz@D+gtkY>hy|#o8Z-=^bH`o)WbuhhdK98@PHbw2Zt=7 zV$-oYeC$U<;|pnaU4187;%~hxdnq*JOnEGam?8hex6Iy=ZlWGzZv-4 zoJ{KX4x(J5=P>qor+5;Qvhp3GFBpXJ9fO3crB!vqua&Y$iFJdsGsQL15;##Wtx)a! zYY)JHGBW`d%x6ZI`{f6_r^+OdBbZk{<-B0y4iS|--^SLDWVMu&VT?M2Z|8*E=pfeq z);Kt;$?dDKuIJvdZG|d_=QWvbk?X!+UMjWng_S4uk_M}7f`V03>h!f-=Qxpm9ReU7 za!V9@Dytw&Y;Dn_tG@+O7`;DiSse1^ilx|o^~@+CRqBxKgXtuFTdkV9s}V3?Sy6{S z*XctI(Eyb3h^4g}R#0C=Al$1x3GX$~3fA}}eX>>DF+LFj4zJ()a-xd1d6P?W{`m*D z*x%43iLpP6D8xOj1Z<^h)%1C*{`|uBM zAKe~zJa>JT4Tqn|wxn>-+P9_i;yHBP@*ap6jMJgu7>d2GIq{>J`g;o%tKlmpM-RrSw{_pAKK; zSq)!`7M=VE#*z4?xSugikUTPD}y7GXhB{U`6@}s8z0d@C`F9EQ3#s|A3?{zk{KOin$?&5UgsTdnL zO1i!hQhbL?LiIIX*RA*iV$~) zB>zWXKyBeJC4}W_3SGU)PQseJzO;g~99>U&xx8@V2Qp$StzgO_?GxT!9UmQV2vt-^ zkab;==s?$tI#Akh4J+G|pAPYZQ5vA(8|@a9T2-p=)uPN{@6f@tmW11S)1s z!h%|zyG6Dc);F%IdWaK*t#r*khD51^8Ay)ixzUtt=#AX2VmjE zOFg-|2AdD>SmMSf?bo9uRB)zYaT{m9I%7Vs)$dLGX>bj<#I2?S8OUQRh(mJrJhADZ zT_^gL-3m0*JIokIbOUyiA83%98nW2{Wp2BW5akVi?klylc_3UwSpIlPTwb zEIG-t+EJ;a3(OZ-sGt+R_j^Z;x|qvjBr|7-{wn4kOG&^GRt$u`kMx zzV;Zy-UA7<xMJg(rd2`sKuS9&FoYuUoug>t*^~eJTjg>pWcBUABu-7%@{xM zICt)A_$aq9KQ1!{${`~7GXd+8ZDmu`rjx$oiC@GP<}zwn_dR8&M)WQdC&iw3E)YGG z>3e7ZNZUGzmYhW2?kKOPphuHB2q3zn7e!n3V8t*?@hpE5fc7snCI0l&iE)SiOs(W%=b1^y8b;aHjB&KaO|McF*t%v`zlW*&h5@1@_C^ zu@=`+#rV2TS56EeCh=>uP<-lPc^}fc208qOOb9~TKo;7L zA~1!rYZOt)&{UFvJI5a$VIW+Rn=eIQsZ^sU)8hNGK};PpknpE84hIhht07)(ER+4_ zxLhMx$;116i@tQodN*XTcFS{`!fPjk0n} z1udu3=k`@uaQK?j)YF!Z2n=fc zY`~>$*#BZX+mGk=DFM0Z|L3%DK(H(w+__!4UF`kf9Jf(YzE zR+p>6%a^g;g${|zdmK6-Gj(({7pl{TV*3&Z!Tg4cKvV0j;*Hb(Z#qmw#wdm`wZ8ts zjIUMJ`h#Vh4=S1zDw~a^H)q+6{ z#Hz!oYPE7ZFi~~AG7n#q$;s}pANs@VyV5vhU2&d`=@Es*pQh}pgHHCW`KB+GEa9ck zW`9DlW`Wvi6+8Jp#bM-ebD50CjykM&Y5Nb{=n_#L!>gatGhc`j`D$a>B*m5@1=_tY z1!7V55YfU?hSlU@@flw?^BFXCnLzGQ5nOAvVvjQP>otW|mQj7Pc1evAEdaVt_O7si zLf)Opv3>@Ky-^Y?)9yR;H}8pcbX&{bu?-8JE^rhUOvU2ko_d9PU&9pXO^>cRZ#zZo zCkq39jb4}nCKp>1oQXcr)#BC}eH;uS!al|lo`b0S;{)B1C!B9NGJ7sRRf8u~;@IH-gDB{~GwmgyVn+go-vI%&pi z&YpjGP!eesJV1P}>w0bDVqj#o(Td$rcY=Dy(vmsW4Lu7vblFZ1AkwFt&8yEeH+$MF z-`f?Kpo$}2=fdkh7scLN3X|LFczR*OC>3vQN$>T`HJ{7Et7(nPTo6piDNA7Mqp=3RT0d>DNW?+-b;wgbWc@xKrOgn@*hcG0Bl300~zM z1cqJaF;{x*c%r%A4-dBquj5*G&bu!gKwoO_nS;LQT^1W`?RvhSP_8$3==>+aY-PTt z>bq-vSj!54>+X4cy9uFc7n4e89$B@NcVD5A-ZJOxHgc`}0Xekmrnv zFXt>J(de%xG=HqM%#sdc`1MGQF^WDoQiWxMaI(4dHmX&4!LlBo`(Of>F#wiHG2!fZ zvB{2Q#2#f}GF24rrVMQV1q+OtDek8cd8z74b#rGk91~90FBtkjwVnDn53id&|26Z`rO1<>1bMNki zIionO>*HS1J4(aUYgwsF#kSB3LoKM6=_L4awnOEIti-PdFWHKvSHkYopzzkmO{#f! zBCp*D{8xF0vlect8R3v&sfl^TuDXSf&P%wC74{#9?N5X!pC24A7h4?)2V-9N|c{C;w5wl|z8<2X0es$`*M5j(oF{0r&32 z`U~-Q8qfbA;nM54%Pd-|nK@0LdSA=5KyqV*g)A>?W!gQiNj|kKfej`z+TWeH!`Hpg z4x)z(>^8nLqTC<9RW5iJvCjWHv7}1afGXDDjvlcDu^s2txL;E`C?VN3k?3wy4?Rg4 znmrvze0;v4z1-miFC~klv>fjZbDDi1Sb3^nk~4(v>AQ0kEgcS!BT@@JFn156+M2%+9d~_aj?sf*d7G$H=KZ+;~_5OXv~HkLZB`D1C0=ySHh6%$1n_d9W{Z z&m>oGu#UW7!b=#@N;S*cUt1_&zh6G6Pp&1MS&qW^nP8>f9Vydi7A|Q=nJs1UqHe~% zo8!0@d07eTQ)zRgq2lRbPX=U9X)}<}K~;F^6$@(xJg{M=ogF(BJK$Va())Mp;3$9P zb1zLrct_$*_$9%}3(n0%gfU}7>#&k71PXy}!LO#cR3p!xc`NR8zFQw{A$DKq6Oeuw z;ZC#iv;VMss-vmXR&ElJ5dxInx1l|}uEaG5i80LcV~4TkD%!RUD@5+~l+kiSOpS0( zJ-iwpm}JCR@Sy?BW$_tvO%K-fQUFm-UCi;NK$-MsQoWnQXO+(qUd!{zFS!JepUfxD zmmoFLB>{OkHam{gP2#GXZaq&=xio1Kop4j#`v}Qz6U1D0dc!ks4ikn{Y6ti#ZeqYgF+ z0jQIIQUvnReW)_53Z+>u>)Lw((~vxa6AFrr%d}nI!o7{spwl@ir`qH9j7o=6JXYD| zsp>X-yI}#VHc1S{c}{E|acAh>zF%*}R`4 zM+xtI9F&>Xs(IJooneFYo;l{cU*-2DT~2TUm;QwTC9RXwFSwqHS82mcZmDj8xVn(+ zhjg5e>~E9?3K-*RvJ)uCq0UIdRl~D85$B^#Nph2%)6FN1>6!u6+%oE;F=J5B=`W{` zL<6;Qu8Pq|0+tS%yP10nmIgUV^r%Hyjyo|#W0hIVR`qiw@r)O7`K*l4Ma$$u=XQc$ z^#q3KLI6#VtuIxX4b;#_lx#bieZGmNS8?8jxHeTsE52O+t4ih5iw}=p7@DZs*!jev z{i#&SO#GsN^zjC{G<~Nu|2>~?q2Z@)UnNDB&2?wHQCn?p9v7YpNRPW1 zWM9#550th&<~(gv_Sok5g3e8tnTzkV2|gxe#kE{nUT{aP8n5=}qg4mCp!JuEcz=Ht z&y3I7&uxdKU%P7D+5NV%Ok}hj@mimhKlv+R1bd8?zb|20JJD?Q?=vElsc#c2!VJmq z&W&vW+CaWx`FG1VfMsEf)`p}0TTes}|I{%_X{vj;}wDxh!zb$|D=4e756H z7dp8?Ul~60@eSwbY!+Crzr*mLMSqj6ofW&@mJB8fIGm%=B28`wnbx8F8YnigN|~sB z)ie@y57LaLin3|;u`JzFDsS0JCrG!Z4g+Nd*=-JadG7AesG5y*rMun?dHJhkCMW_% zCal ztKYWr0+ECjETkqk!9jw#hv?D8BB>sVztP<9s&fY3kg7O(65kdl!pnzWhNl>mkKBOP z9wGNuspXb&`T7gZLu#Y670KyIg|D$foZ^6CxK^NurqGjTAORgOb-D`MnNNRW8Xw=g z8)`pHz^^@&DlTfcLBTlT7>c#c{d1Rs^_EM?6rpWz{8ZrZ3&E3&F=tOC;zGnc>6#NjY1JQMZ!+8#j*!95<*U{5CE&b@6WIV= z`L8w`z0>!&Y?@c9IUIXc)WVTOpF}^_=xxWoJZGv|AT41`N;g@MZhWeGa@pxlgGji8 zR3?G5Rb3_fNj8zy!w)Nl>leQXO0(UI&kdY+N-i0G7Z%q|`!Oo^N%yZLWCBLMop?7) z`#d}b79JtI-AG(Fx@TIi!6u-D3-^!Dlae;43Yp1%MZ9XATQ^#ln*F21RntEEXZFkB z`SV+qf>QWy^~x~X!#q&<(a*gW8Npq#5?J;o^D1<$rOl;PQ2b4cBvE-R>e$@3lbK}qIv=--S zEeI|aC9>S#V3jN>JO#=lUV`ja4_n@N34a(b9DsX~5L~fhJpe=AgZbr~VX+0ZQY{x^ z(k)K(A0~mNkFt zA8e)|)*K0!nFmOg^$p@)RlWA0%f_jul)Ga}wOT-A_SHF)3v!5Ywj5XdkuSTR2s1b> z60lzNZMkjx`b~_wapzIo-Eku>H`NV#XFRgb*F@gDM&yDMiwX=D%B zmzw)_!+aX+zV8mY9at~%ev^rb^(0rwKSp(3};ZpMvxEwD2OjDaVA6Ry$0&8rtZV3pHxzf$? zzAjYXA~;b|XCc95MUR%dTT@Z>0}uY+8y=;wW1vky{pKP;cOV}6&6tV$I;>`FK z906wPfPrz9t=;&M?(Wwdm z0?&;KzLQk84srC-9#ap*I_9GregSZjm<$6oiZ>h3ACEnS7A^faq{fPmD!rT69qQG% zRVF#+RDZ(-Ue?g!$?;NT#p=8F8SV%EZ5ry{-5J)UN6Jj~-klPlw7o4w&aUp0pn@@) zM(jp3}a6rP@=sC1ZvM zV)jL-HO|elZ@x|hHXkrmGu9uS2%=Jqa zgIqpCmA+s{=XewW1!LqE)3%%mIO z(8jQbk;xApH`iS0;h7M96j^_3N=#|-xP-=*>3=obmL(W)Au>jdy3E<UjD;R zOI^Va(lW(qH`MjF&}RqCOifgKKA39SANA9=Qv4z+3Qey|4BJBzex_v%9=l5D-xJaG`?IF#?EKul!io4R+`>v>t_65&VXqROwiMr@*>SD)gNHL4^Ml5(vgCqodJjd$~XNSPzt@GziL=mgy;Y+qBZh&1qKxwm{>$kMCyH2rN?F2%^-bX#z9QBC| zNx?aIaFXEMqAKsMWDfWB@Pt3@$5LZ%DVDT70icB1BXM`F_#4rYqTkpk%wf tVgFekgZM{XhA!KlmFcR^%iaf4$rSfz)nO-hfB%&wE2$_^D)!aq{{YOB6}SKZ literal 0 HcmV?d00001 diff --git a/htdocs/themes/bootstrap/images/sort_asc.png b/htdocs/themes/bootstrap/images/sort_asc.png new file mode 100644 index 0000000000000000000000000000000000000000..a88d7975fe9017e4e5f2289a94bd1ed66a5f59dc GIT binary patch literal 1118 zcmbVLO=#0l98awuV{uMt6P_}u4rcI3idKFP2SpU%ZJIE?RL`X zK?Oyo=*5GG2SxDYK=7akJqV&hrl{aWJa`y*5xh+1%i2y4V}gO?edPc9{r;a9vjc}) zn|Cxb4AYwFmvVG%_ui)U^y_4!ujsO!qzYuv8YUIR!Aw%KiWp=JrG#@>(I!s4#N7H->?w+cxsH2#GA};A>g8lyFDGPKh!5)vuP_{)}*83+N zJUBU!S0_i+E{*Lu1iGsNB``2iK-CyCU7?y_mv{xb_pUh>ESZqe1Y2{eAZLMSIT%EO zFrdOH1W^=3p>Qk~I{J+k#s5zQ@j{%aIA!l^GQjJ zqA1Uc2%!{8qBKfMNh#9DCnKS_*uZ8?mnf!+8@f8xtz#prVg=E`3bCBLWsNmDAX~PG z<(4fQh=UOzE2?gKXRkc9XeI3Er?HlHECVd%SI}3`hy1_du3@$R$r(qT;k@Sft63UX zv;)2Ea_iH>^6+4jPK-lGM{Zw37Tz>~~zlHzO61x51(V4jcaKrcIVDG$-d>)z}S|7f!xxYhfUE}Kj zug_h&HZN}go22$5Ym1}P8~vYNx7-~$TWFJ;_nh!wFYSAQJF{CCo=xpK8^7?iY1^!H haOA^1D_`VC7fU=jcT literal 0 HcmV?d00001 diff --git a/htdocs/themes/bootstrap/images/sort_asc_disabled.png b/htdocs/themes/bootstrap/images/sort_asc_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..4e144cf0b1f786a9248a2998311e8109998d8a2d GIT binary patch literal 1050 zcmaJ=O-K|`93R^(@goeAz6hRU)S-61)?IaU({*Myml|8vh4x}JJM&z}b>>Yo&vx~s z*1>{0Sk$FMM28~iln?~vp$ zL+z1TilQ3g{c@7*P2Q^6L;g-8^nq-LaWstw(J;=d4x}PF%0Lh|)htXxRiC)>9(Gfd zk2X?ioL0_@8ZsHx!!QNYCTxo8?kU)+mV+2%VAin0^v_psXkh4J`eIPw6kCELM*pM( z2PX$o+GI}a)ajlxpt~Rv0TW^s6wEQp6$@dys4J4Qcg@nE2*J59y%|(mNdO5s5Cj>{ zuW=y`gm{Jzw6(Xlp9TWQb1WyYyx`~C#eg7k94LJ>@#g5mVp5Kkd=V>5k6>(zESt~g znS6jjPL}06J3BoMLGTlV-<`0qTJT$LYgs{tuI3mvHjo88MKy!QahN8NZl++`Te6m0 zDibLfTTpG5XE-mVGEhip#w2PB)JKi0I-PD8)*(7w)xTBHA4Yzu(Y*BKcijk8- zXslet#0bL39YHpb27^FRHN*1kB3@C%xaDHi(qLQ;(?o$W3|;IHBC-_Xc|nkPo{#bo zKE_Anh#c$_BEdk1ROZS^8#kea%Upe%D^%oqqhQ*^vkV>MD%4{RGC?tA(byrDwm?jZ z#$wTmdL^!2ITo%WmnFflUSt1hboq)*k9XV}TViYtKD5ZRJ7lb1H!ZJ`CviJ2M^c5A z%=*Sgk8hr8@-S*Kr`Ol~RJX(fddmmK4eR}O=#0l98WD1Hz^GK+C=e@fhgE~b#2$Ux^~T`1v5)mw1NlIe}zC z+ge9alrMQeN|SYi`>tC{zIG}!O_oO7k;UC8kBf>8sknx65F`zy2d1H-4fel=trX>@ z^-LCL<%6P%3`TJ=Ov$hao1$9VN|vJbLJV@SM>nJN{L>dS(6uOiBq(#Tm4F5Pz>p2Q zhq^NAP_G)%=(c^JwImV&17Zb~j6Ty5OHq1RS0sD)n5Dro1ouYi-$7;N6i6T&f*`~B zRW8JV5YO;|=5RQ?2M8R`v7Es2f}anI0YT(Au=3Evo2})=wA8uci&#;*fUzaAY_V8m ziU9`MJuDxIL|hF)@DqgJ88op{@|#XmML~j&YU>u(kqKNyC5HxZlqQk>PQkENWld+L zOr&6JNwHX-;oOueKw17j)G$`j4o<^A@%~fT$qZVMO+yC_*eYpUzR7iEi3uAj7}*(w z`YKgS6%a;F0a+l?9R#wX>ZWTi<7HV)nhsV>6(*%9O%xbi*F?TK!383rh#(|*p6}q} zd?z25;!?0(hzA2Li3(Rj>VN@FT;Xbexbdo7cN7eZc$T28pMYAYjSR4yvZz;&C0tc+ zg{xJMrKKvDCBd+6WB+P&<%mp=yImbyVyq56G|9BvWUP^I>ms=lb4e+lDSgg;Us`JO zKB6{wH+j~F#-A4FY3K3qm~Z6m@V6}oQ%8?p-E$dw`#0C$PJfmCV8)v}3>Ydha%`fZ zJk~G*M^A3LGk$Td;R`icF67R~`sBOHv)Hlqlc%$jy~9_oZJcNyWxkbb_O9u#|7hLF z-<-NMLzh3S0YA@8gd1Pt(Df|3@16Y-n=aSvsF@AkI`ioeFg>&H3bXU&vBnE6gIChkL+(Ey+0iB4Z$Eze7t_CX>Hq)$ literal 0 HcmV?d00001 diff --git a/htdocs/themes/bootstrap/images/sort_desc.png b/htdocs/themes/bootstrap/images/sort_desc.png new file mode 100644 index 0000000000000000000000000000000000000000..def071ed5afd264a036f6d9e75856366fd6ad153 GIT binary patch literal 1127 zcmbVMOK8+U7*1U&zKRu5sR)h{1;yRWWV^4}ShvZpU2*HWU2!iy(qy)cZ89;Lb+`3m zMbruv!GjkO!3qksP*5)lD)k}=Dp*ht-n@8G5m8XoN!zU+ih_Y;=AZe$?|)|~*Ri8v z(dtDU$2DZy)jV65`|pB!_H}d7Cv0h=sUqzpC0fy3%q0!dg+a#Bx^W(BM*oq=xP{{a zC9_bZ#q2IgCss)FbwX9kVQ7wPX{|b%-is;d!ri7V^Y8E8=YeU+{JuyQW*r6hnC$~D z?i}bS=mWia!r)uCftISo2rNuBP__DOPpZoN6tBeg{;|M=DHYl)^V3chvpJv;7lTL$ z26Y&PAc{gL+#HL=wg3?#C_qs_Vi3iouqZ(YW*(kdbB&UeSJN}Lm?ZN(lsb|iR4SEF zB^)Adw}29fgwG+0L8cM(`faLJgSNN6#-L(PcTI+l@K3y+Xf(g*^61+0|J+O6zN2mb?UNGh6GU@A{1+eF%d@N2(^XdVmhis(y25|iAr;gV=io5OsYy0 zB}Gv|2&GUGrBPB%s*yG^841Ug8a88lRI_zlvuiTDGuXsmv6A9qjS{y&NMEf3ay^6+ zuZK85>5PD^rkl1e`{kLAR>iJ)6dP%mSYRr@k~xQcDE=$%X{_--ITM&Og5Ml}G)wJ> zb)dhUZG9%p4iC23#JFrUCcmwHz{cugMoku~ue-kg{Mj0~%`FeCcz9jAdg}QET-kSG za`+2B_+lRTaeAVz>E`F1pN7h>B=BbGqcz13d%ywZR&4OjkNNrF_U}#EcXDGa@V52B z>JnIW7#s%CHi literal 0 HcmV?d00001 diff --git a/htdocs/themes/bootstrap/images/sort_desc_disabled.png b/htdocs/themes/bootstrap/images/sort_desc_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..7824973cc60fc1841b16f2cb39323cefcdc3f942 GIT binary patch literal 1045 zcmaJ=&rj1(9IuWjVlWt@h#q(rlc~7%$2P_q>KN??ODrK{#&I!}_Kh{rzS=%m2N%F- zAW={L0VZBJnRrkSCK{q1NKA||(ZmA>6Hgw9o;Z-;>)3_|u*vIt-(X0AeGY5Bm`Mgoq{>2>Xkbiu%Ds= zw2?31f^tL9kQr8eOxQDR!ltPHq-U$zG{j&MP8pU+Z@qp?149?-TQP-IYzdZ(;duv+ z&5z`@`Drbo)5+_g-xG*{39$-1bH;K7Po%550y+EF3=OIfJT20DK^2ryARz~WSeOlI zY%dFXxiA-r#^dp8fM+?DVR?q*LtI>l@B+(%+D8*_j$RaUa;D~sSR!4**cKS3TrP*p zkuY+m7%q`W_!>MPB8ZS%v9RieEVsL^AVXJk3>zEB0=}X;iDt1#lSubcFztq{<<`nX z3dVS<&2VAXPpJ-6l>b9bvw?PT4(`W$ps<^-*pSIV7tJ~vX67YQ8ELa7v~ZoP?{i~^a{W;-ZQ@ymjxh)IjDt*2O<6Dwh=q$vY$VY; zc&J{Ds~-?cjVm3>Wk@iL-`IZ|UB4pJ;~yJiON_?gLyJtiL&kbxZhV_OiPfx}%6s1@ zcXoG^ffrPJ;LQ4(`t<(ickJ1j|E0&fC8lSh8sUh5lwUg=l~QoqsK t`nTanN|e2@a&yVMdhyload->view("defaults/header");?> + +
+

About

+ To edit this page edit application/views/about.php. +
+ +load->view("defaults/footer");?> diff --git a/htdocs/themes/bootstrap/views/api_help.php b/htdocs/themes/bootstrap/views/api_help.php new file mode 100644 index 0000000..43982c8 --- /dev/null +++ b/htdocs/themes/bootstrap/views/api_help.php @@ -0,0 +1,64 @@ +load->view("defaults/header");?> + +
+

API

+

Create pastes from the commandline

+ +

API URL

+

+ +

Return values

+

+ On success, the API returns the paste URL:
+ On error, the API returns the error message: Error: Missing paste text +

+ +

POST parameters

+

 

+ + text=[your paste text] +

The paste content. Required.

+ + title=[title] +

Title for the paste.

+ + name=[name] +

The author's name.

+ + private=1 +

Make paste private.

+ + lang=[language] +

+ Use alternative syntax highlighting.
+ Possible values: +

+ + expire=[minutes] +

Set paste expiration.

+ + reply=[pasteid] +

Reply to existing paste.

+ +

Examples

+

 

+ +

Create paste

+ curl -d text='this is my text' +

Create a paste with the text 'this is my text'.

+ +

Create paste from a file

+ curl -d private=1 -d name=Herbert --data-urlencode text@/etc/passwd +

Create a private paste with the author 'Herbert' and the contents of '/etc/passwd'.

+ +

Create paste from a php file

+ curl -d lang=php --data-urlencode text@main.php +

Create a paste with PHP syntax highlighting.

+ +

Get paste ;-)

+ curl +

Display paste.

+ +
+ +load->view("defaults/footer");?> diff --git a/htdocs/themes/bootstrap/views/defaults/footer.php b/htdocs/themes/bootstrap/views/defaults/footer.php new file mode 100644 index 0000000..791aa32 --- /dev/null +++ b/htdocs/themes/bootstrap/views/defaults/footer.php @@ -0,0 +1,27 @@ + load->view('defaults/footer_message'); ?> + +' . json_encode($codemirror_modes) . ''; +} + +//stats +$this->load->view('defaults/stats'); + +//Javascript +$this->carabiner->js('jquery.js'); +$this->carabiner->js('bootstrap.min.js'); +$this->carabiner->js('jquery.timers.js'); +$this->carabiner->js('jquery.dataTables.min.js'); +$this->carabiner->js('codemirror/lib/codemirror.js'); + + +$this->carabiner->js('stikked.js'); + +$this->carabiner->display('js'); + +?> + + diff --git a/htdocs/themes/bootstrap/views/defaults/footer_message.php b/htdocs/themes/bootstrap/views/defaults/footer_message.php new file mode 100644 index 0000000..815e14f --- /dev/null +++ b/htdocs/themes/bootstrap/views/defaults/footer_message.php @@ -0,0 +1,3 @@ + diff --git a/htdocs/themes/bootstrap/views/defaults/header.php b/htdocs/themes/bootstrap/views/defaults/header.php new file mode 100644 index 0000000..fdad51e --- /dev/null +++ b/htdocs/themes/bootstrap/views/defaults/header.php @@ -0,0 +1,77 @@ + +config->item('site_name'); +?> + + + + <?php echo $page_title; ?> +carabiner->config(array( + 'script_dir' => 'static/js/', + 'style_dir' => 'themes/bootstrap/css/', + 'cache_dir' => 'static/asset/', + 'base_uri' => base_url(), + 'combine' => true, + 'dev' => !$this->config->item('combine_assets'), +)); + +// CSS +$this->carabiner->css('bootstrap.css'); +$this->carabiner->css('bootstrap-responsive.css'); +$this->carabiner->css('style.css'); +$this->carabiner->css('codemirror.css'); + +$this->carabiner->display('css'); + +?> + + + +
+ +
+ +
+ +
+
+ +
+
+ diff --git a/htdocs/themes/bootstrap/views/defaults/paste_form.php b/htdocs/themes/bootstrap/views/defaults/paste_form.php new file mode 100644 index 0000000..37351de --- /dev/null +++ b/htdocs/themes/bootstrap/views/defaults/paste_form.php @@ -0,0 +1,131 @@ + + + +
+
+ + +
+
+
+
+
+ + + 'name', 'id' => 'name', 'class' => 'span3', 'value' => $name_set, 'maxlength' => '32', 'tabindex' => '1'); + echo form_input($set);?> +
+ +
+ + + +
+ +
+ + +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ + "Keep Forever", + "30" => "30 Minutes", + "60" => "1 hour", + "360" => "6 Hours", + "720" => "12 Hours", + "1440" => "1 Day", + "10080" => "1 Week", + "40320" => "4 Weeks" + ); + echo form_dropdown('expire', $options, $expire_set, $expire_extra); ?> +
+
+
+ + + + + + config->item('enable_captcha')){ ?> +
+
+ + captcha + +
+
+ +
+ +
+
+
+
diff --git a/htdocs/themes/bootstrap/views/defaults/stats.php b/htdocs/themes/bootstrap/views/defaults/stats.php new file mode 100644 index 0000000..9324b0c --- /dev/null +++ b/htdocs/themes/bootstrap/views/defaults/stats.php @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/htdocs/themes/bootstrap/views/home.php b/htdocs/themes/bootstrap/views/home.php new file mode 100644 index 0000000..0186fa9 --- /dev/null +++ b/htdocs/themes/bootstrap/views/home.php @@ -0,0 +1,5 @@ +load->view('defaults/header'); ?> + +load->view('defaults/paste_form'); ?> + +load->view('defaults/footer');?> diff --git a/htdocs/themes/bootstrap/views/index.html b/htdocs/themes/bootstrap/views/index.html new file mode 100644 index 0000000..5a1f5d6 --- /dev/null +++ b/htdocs/themes/bootstrap/views/index.html @@ -0,0 +1,15 @@ + + + + +403 Forbidden + + + + + +

Directory access is forbidden.

+ + + + \ No newline at end of file diff --git a/htdocs/themes/bootstrap/views/iphone/footer.php b/htdocs/themes/bootstrap/views/iphone/footer.php new file mode 100644 index 0000000..15a3e60 --- /dev/null +++ b/htdocs/themes/bootstrap/views/iphone/footer.php @@ -0,0 +1,4 @@ +

+ + + \ No newline at end of file diff --git a/htdocs/themes/bootstrap/views/iphone/header.php b/htdocs/themes/bootstrap/views/iphone/header.php new file mode 100644 index 0000000..314d778 --- /dev/null +++ b/htdocs/themes/bootstrap/views/iphone/header.php @@ -0,0 +1,23 @@ + + + + + + Stikked - iPhone + + + +
+
+
+ +
+
    + uri->segment(2); // There is currently only one link so the active link may seem pointless but this future proofs it. ?> +
  • active">View
  • +
+
+
+
+
diff --git a/htdocs/themes/bootstrap/views/iphone/recent.php b/htdocs/themes/bootstrap/views/iphone/recent.php new file mode 100644 index 0000000..9fc485b --- /dev/null +++ b/htdocs/themes/bootstrap/views/iphone/recent.php @@ -0,0 +1,28 @@ +load->view('iphone/header.php'); ?> + +
    + +
  • + + +
  • + + + + +
+ +

Sorry no pastes to show :)

+ + + +load->view('iphone/footer.php'); ?> diff --git a/htdocs/themes/bootstrap/views/iphone/view.php b/htdocs/themes/bootstrap/views/iphone/view.php new file mode 100644 index 0000000..ad5a9fc --- /dev/null +++ b/htdocs/themes/bootstrap/views/iphone/view.php @@ -0,0 +1,11 @@ +load->view('iphone/header'); ?> +
+

+
+

By , ago, written in .

+
+
+
+ +
+load->view('iphone/footer'); ?> diff --git a/htdocs/themes/bootstrap/views/list.php b/htdocs/themes/bootstrap/views/list.php new file mode 100644 index 0000000..4646f42 --- /dev/null +++ b/htdocs/themes/bootstrap/views/list.php @@ -0,0 +1,41 @@ +load->view('defaults/header');?> + + + + + + + + + + + + + + + + + + + + + + + + + + +
TitleNameLanguageWhen
"> ago.
+ +

There have been no pastes :(

+ + +
+load->view('defaults/footer');?> diff --git a/htdocs/themes/bootstrap/views/view/api.php b/htdocs/themes/bootstrap/views/view/api.php new file mode 100644 index 0000000..1a7ef07 --- /dev/null +++ b/htdocs/themes/bootstrap/views/view/api.php @@ -0,0 +1,3 @@ + +config->item('site_name'); +?> + + + + <?php echo $page_title; ?> +carabiner->config(array( + 'script_dir' => 'static/js/', + 'style_dir' => 'static/styles/', + 'cache_dir' => 'static/asset/', + 'base_uri' => base_url(), + 'combine' => true, + 'dev' => !$this->config->item('combine_assets'), +)); + +// CSS +$this->carabiner->css('reset.css'); +$this->carabiner->css('fonts.css'); +$this->carabiner->css('main.css'); +$this->carabiner->css('embed.css'); + +$this->carabiner->display('css'); + +?> + + + + +
+

This paste brought to you by config->item('site_name'); ?>. View Raw

+
+
+ +
+
+
+ +load->view('defaults/stats'); + +?> + + + diff --git a/htdocs/themes/bootstrap/views/view/raw.php b/htdocs/themes/bootstrap/views/view/raw.php new file mode 100644 index 0000000..bac62cd --- /dev/null +++ b/htdocs/themes/bootstrap/views/view/raw.php @@ -0,0 +1,3 @@ +'."\n"; ?> + + <?php echo $page_title; ?> + + + + en + + + <?php echo $paste['title']; ?> + + + + + ]]> + ]]> + + + + diff --git a/htdocs/themes/bootstrap/views/view/view.php b/htdocs/themes/bootstrap/views/view/view.php new file mode 100644 index 0000000..7e31798 --- /dev/null +++ b/htdocs/themes/bootstrap/views/view/view.php @@ -0,0 +1,88 @@ +load->view('defaults/header'); ?> + + + +
+
+
+ +
+
+
By , ago, written in .
+
This paste is a reply to by
+
URL
+ +
Shorturl
+ +
Embed '); ?>" />
+
">Download Paste or ">View RawExpand paste to full width of browser
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+ +

Replies to rss

+ + + + + + + + + + + + + + + + + + + + + + + + +
TitleNameLanguageWhen
"> ago.
+
+load->view('defaults/paste_form', $reply_form); ?> + + +load->view('view/view_footer'); ?> diff --git a/htdocs/themes/bootstrap/views/view/view_footer.php b/htdocs/themes/bootstrap/views/view/view_footer.php new file mode 100644 index 0000000..14c7bdc --- /dev/null +++ b/htdocs/themes/bootstrap/views/view/view_footer.php @@ -0,0 +1,26 @@ + load->view('defaults/footer_message'); ?> +' . json_encode($codemirror_modes) . '
'; + +//stats +$this->load->view('defaults/stats'); + +//Javascript +$this->carabiner->js('jquery.js'); +$this->carabiner->js('bootstrap.min.js'); +$this->carabiner->js('jquery.timers.js'); +$this->carabiner->js('jquery.dataTables.min.js'); +$this->carabiner->js('codemirror/lib/codemirror.js'); + + +$this->carabiner->js('stikked.js'); + +$this->carabiner->display('js'); + +?> + + + From 8f10319eb44a5f05467fead675894457419588f9 Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 24 Mar 2013 21:49:46 +0100 Subject: [PATCH 09/26] config --- htdocs/application/config/stikked.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/application/config/stikked.php b/htdocs/application/config/stikked.php index 91a7544..082337a 100755 --- a/htdocs/application/config/stikked.php +++ b/htdocs/application/config/stikked.php @@ -24,7 +24,7 @@ $config['db_password'] = 'stikked'; * Theme * * Which theme to use - * Folder name in htdocs/application/themes/ + * Folder name in htdocs/themes/ * */ $config['theme'] = 'default'; From 848cef28c504f79b7df5cb328b16281dd83b730d Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 24 Mar 2013 21:59:37 +0100 Subject: [PATCH 10/26] - --- .../bootstrap/images/apple-touch-icon.psd | Bin 174160 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 htdocs/themes/bootstrap/images/apple-touch-icon.psd diff --git a/htdocs/themes/bootstrap/images/apple-touch-icon.psd b/htdocs/themes/bootstrap/images/apple-touch-icon.psd deleted file mode 100644 index 44c6bd4f2852490244c1cff1f19e1cb1b4a206bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 174160 zcmeD^31AaN*OMMVOKHn}OSnW7n(cjX^rTRrP-y|V8=7q!NRya@OSwEi#RJjL8$m%4 z@xTKQkV8=MKm@rIuOfm1ibW1NoBz#hHk;k-Zjz1Y=l5?R$>zm^HN`)6gZme{|m&Su<*^HMB#ool#>l z+p}i$>!LSUCevB)jKR7tT9U;vwO^N9oS?m_xI~+8vC-O;gv8zzRC1a&B`qN-JuN+n z>ZL8Vn6-uUWNl)mHi@FrwMj`?iOE?h$y)bcm;TZ4)YoRH%o7>*QE=t$n(c^&QRg0$Lh41NG*m69c`j(XtTqvOH4@Ac?t*IzJ`jdN{g*V@93|$ zT200ZJ+4JJ&1^^@L`tw$TO1a9wZ+<3$7OX_+*gNN#?Y7)GXlK=+g zq*L&Myy^IRDx||JIVCx%Pijg^1_)T%fZPH3x#@Z7>8Z&Xxyk7n$pi8VbMx|Y-3{lp z%-!t2Oo7ugj1qi+Q+)XVL$gYZGicLI1x8RIc09I;sTqBBqA6Zf=F-PVVtS^frPnvG)qp)NK5IJLS?2=K-Ju!)SPa+WJJsIGsiA128Vsfvoc_Svvm3W@?jWmdUM zC09@s2r9G6T`IYPqCilYRqj&B6%+-6%B*siO0J+N5L9NByHs)oMS-9)tK6lMD<}#C zm09I3m0UqlAgIhLcd6tGiUL7pR=G`hclH3pUMnBj!$K_c0qcL zNjr_U;WHfly1;3@E?U}L0mtIZRsFh*EGz7tL5^W|E*PF)Hl}2N7ET%39omwSc|(ix zwOxAabh&Wwkk;u6$_lh4LyJnwwD`oIZosfETJIy1_;@0nfDZ*iM!OEqMOkT^W9CpO ztT!Me7#s#T*w~jTo!1_p@2Q)XjIKIP(&!i?)FeegOoT$Eb2NYlBRoxWJWF~K4ojWZ$O14O& zgRaT7+4M8HLiPA7Gzk#dMoE<6zgxHvXtb$+dJ-Ilzz?`w*%rasJO^E9(pPy}1o?r8 zbQNvu4+pZ?N76tY+rqv&w%KrqG|-XoIwi(d=IOHNIQ|>PL8Mcd;w;(VND}+_-!v4Z z6?zk}^8d~-2s-2u1fc(aog9n;EeFT4|F`s!NT)o5@L#Eo*aizY=ijf9Bs%69jsFsn zusbK0G4rfd5A*&cqq)*DiJeWwX6cgRl9GZFoHrj%T@TaO(5(9MnmL1+M*^MDW#>=d z89k~mJ2zsIvoj`s#=Vm11=J z?pBr=Eme9#?SC(&CHmk+XQSQHTmKK!S~#jaGcVUL#c6lY1`HfQS2+HSEU&DCc$B;Z z3BHkuoJs(O=B9K%U^p``mOC{ylLz(^guh?b0wfRUz5j6r5cW`l19~UIr2@VjAOX%u z0`d0EotmD`1OJzC0Fa^x=0jM%{;O56FKf$n?7vi1P@3kVF~cRTQ^&+hW}mtEY&$L9sN(QQG}C=do`3>QUoht?7HS`W%p8w zq7st8dgK;Xa;rthOsm%d(~Tpnlg!R|re>D1US)fhS#ovwwv}A~3Y#idig!y{eBXw$ zE^%Q?*@nXHW7v(~KbqMK_zmv`pm;RU%=7RaAuB>I(ZBFtaI$EUE0i=`HzpDMg&__37Dm1i zAo)%)sTw8~w;T5b-?ExU{3z@kykUGy zXZJ0hW~a#n-|+pNjV9~u#JN&7;HEP89*IUGJED;do}mqJPo>#lA3k|X1$=X3kEn1Y z!Z%V+nZ>F#S9GyWS&S311E=Q%7j?(g{4P&A^dnoY;w8`$B(O4>fkG}I2?G`xBu zNg9Bg!K)$pQdHnocEc*0#cAb%8o=HU+$&0(oi%_HGoTcg4jy}e!S^P5r^7OkHq$oP z0xf|I70rV*(3>1(`YIkQwt_a9 z%IF!6BKx4S;-Qn_R!v-BBNoid993$S;oL=(I#LdA85>E zivt+S2i_QlxLS~%NWgWtEEEGTO?Dl5W+WqyfCoX+prJ;yB@ASv#_X`+8yasKGgjMh zC&*S5NFeaJzQS%TE-l2ef#CK=ExyK)DT%xTmCx;GBx6tSK_yzPS6U#CO)IQ6AhMb64$~84TR@5__>OC?nUx2&pG(nP-6!E4#RD> z8fpyq`2%>qYnl`DefUs#UNFr_PlxBd@Z8PhtTDnf){iY}Xg$bc1g2Rx2VGGO&lEhz z*vdxa!*gF?s+cOT=gD5r4q!mYi}EejnPf<`*H!d{dv-H3w1epBCfecXT>|(2>TL$N zowvrSH_t?f=`+Sc&3vxNBw*%EHqk4e+#?=aCjIn{WXv?Jc5pBblY?2F1zierQTSpG zHu-Uc-o6u|HU~Lax8(@M-GR_sUwHMW73LSOJA;jMMFJ+M=g)5jPfqCvulf>jeV*$@ zwFQg>YcW?>!0n|@o7Rr+P1N=lGO=PruV#6*qt^(!lD0tz0j(VcTm~DDFx+N?5#Rr* zHJW*spn8>{5Y4Lu{K)V%JTzZfk6KJhK=EI+K;ggbKoQLwqww)~*3o#zZD`aege7lu zr=J8}}}8LAnf8KWuJRB6l_ zr{-48?V3fJC7LHR&uCU_Uemm*d0+F1X1C^R%^}S(%^#YJVc}shVJ*TshFu$`3(E-0 z4I2_x7B(TQD(vR4Sz&jC-5>T?*t20Tg}oK_e%NPW`@(9&PK2EeN8ydbTZMNH?;V~I zo*zCud~A4SxGj86_&wo|gg+bpO8ENl?csaEYr}sHzYx(NqIrZiqIX1}h(Qq}BPt?p zj+hg1Z^RQ3FGRc*@j=9%h(i%|5%rNxB0EIh5SbNO6nRr*Rpj)@1(AzY_gn^taKc8#iv;rEzBC z8yg!N&ujcx|?jE`}~+#jx6ooF-$NIGWtw zWOb8mO}=k(KDK#mLTpj2A$D%;ld*5bei?f*E-J2jTyEUNxLI+J#Jv&sMcl9PQSsNt z=f~^g=fpo5|8D$&__Ix$H%)9hylG9-dz-%4^pmE)G;7%G+GYcq8JgYEY(=we%?>vY zZ{D?ee)Edvw>Mwe{KMu)S~O_UqeW4RDJ>SYc)7*S7IiI~wM=O_s^yH9Pqy6HvbI%t zt7}^owKBDOpw;WG_P4s&x?}6y)^zK;Tffr!%hrFkY2PNN4c+FRHm|nX*XCkdZQB8D zr?!2t?b~g?YZuY(`gS+Ao8Io}b|1F;wS9~BecD&Fzo-4{?GJVc>u`OC5gl&nu%g3` z4re=F({W%&YsbesZtM8#HLb46xn{~W4_~wCnq!@sck18C*y-U;n>!uXw$$coP1?t_ zA86}3cj!E*v$OLvop*M=)TKw4kzH=<@@kjwx<+@+=vvwJ;jUY|)^+RDt+?B*-PUwF z*gdLyM)&IOk9ObQ{m*NATs!*Oh1b4)?Jqsr^eE~vtH+ui-(J_`y6o$2zV6xU_V#Sh zGo$C!o=bb~x<2gs)a$FSfAab-ZV0;}?FQowOK;fSD-v!jHTQb9*MZ(Ky>oj{>%FG; zp@dcmLlbUGcst>wuA6SG?m^vlT|JdbnW&Z2H;K&>2PfW^xIXcZr0bI^lAcW3o7^P1 zFnMnBJISX~Zb+e1o=*8HwRviB>cZ5msaMj{(`;$4q#aA|mR_FzRQiF878xZO_hx*Y z8JU@vIXCmY%nMm*S&ppNvwrW>yU)}Zz%{b7+7#m!Oj8A z286{UO&_}bbWDH@!;ZzioYG!eVBRJ+r!cDqTvq>|E{D*$;~AjZftO4$&F9mcyvVK zh+9W&FKu2rsr1Ftb7gsD50rf~^16}Eky}T_jT%2{^{78b7mQvqy7ngBO|x(MY)rc` z#xd`VZ8&z+*yqQd9XDXyf5sgdpE`cQ`27=lOqem@lZovnnkH_X6gNpf>5cNp^3mll zmS5Hn*FUR2JGp4`Q!JZv~d_oJ84KUemvTvGWS3gqy zt1;jBgz?mrK~t7Z`E%;~>`yb4H@P#E!m&{sn_@Uy5-g;R3@I4Qo z`Ol>PeDX-jBg-C*e$@GB?PEh9d*|_Pk1u}w@)Olh?0Yir$ycB1@YLN;{khbz^vkDn zo_=Ln$7PF_U0iNl{?#)BpLy%qYoC2&MS~U7RvcY9YUTFlGM-!ge7oltJ%44Dc~$KT zBVPDmb^7YnFLrqGfi+=koNJD~H2$SsFBiQ0&MUoNdFIttuP$1P);iZ7f35tr{jU#s zed`+;Z@ltm_cxzf*L>YQZ)x6|`BvTA)o<6nGv=M$?+$)<>-s+H*KJ7Hu)J( z<;Dj#MQ^%elWX&=&1bh*xBU8k)%%CHPTKm-wwt!?{ouwAc78bI!;e2I{Ak@Yt^7yLX+w>`b;Ov;(9XG_k0f3D`-r9baE z-}d|q7cwqvzc~8h&zGiOZg}~zD?P8QuOCwXt*gf6B5REn#2UcH0JCPt7Bq^T0&m!! zz;*|`G~Xgk_m2TS47EWT*H^Au6hFAIs1Rww5E=ykkn1-TLw*loQhqVyIEiA(H)NOx zC1_mVpgT}ZqehLQ8pT9K#WZak-MDGXxR{u@mTj6hZ`r(go2D`3&;7xC5x#4hG;Z7^ zwn=F zfj?+4{tJiBMMO4e*eEKxu|}AvL1E!+Vm#7BXu`uH!Xg_sXcQS9lMIPX!y`I3ON`9D zQQy4F&GVBQw0Q8D*Ydh{YdPZm$;m0U+ji$S?7pP5?$D_Udupp^U%&m@f``fs1GcVk zq_zHX9!X6K=yz|Zfe6aVYGtaI2aNm)$qbjE@c;xxFKH7iuT>8M# zRnr$fy6Wxi2Y&vuDGCdN)<%#vHEa->N}A9)u~`JP;N~vPBa`Mo*aElU{SmwClDkbl zWV>xierd}Jd&;Tq4R8Y*UYol0OK8N3)`kHi(;W1Vo+e1Qpa<6k*Fh8$PU>umveBU> zMcv07e|Skzx97SoDe76&ZOPyf@Foga<=Q38-rI%N%q`7&dw;`O55K)@TZ2yjDevPr zvM&ADco#Z*w)INK1E;2+wXABe{@|SNX6*g?!ILHzx_17>j++nE+`W5#@9~#UcIa`( z(>>?>I``zV4lCMs?fgyR@!4NoIe2iq^N%U(`@b?Y_&;;2>JLsd?wd8R=G_O1HecH#>=J+I&CE5na&K4IK--?D3$ zW$);au`z4doX5`3IkR+@@x^-{FYeWH-%U*_+I4;=OjeH~xHi*Lydd=(Im(=jOf39$!4@ zrDosGsv3M^+0=%AxX_o`r}w`8Xd~N&VP&VArA=vi;kg47=bv1^@chB|U;c1upXeR) zQd*5YR8qgTV!*4@>l?iOU47cc50<`j)0SxsXJ((R8Q*1aLgsYmijQr(TfRRhsr#82 z%c%`d9GJ6i&+*qbUg`1f!urSFbxw#o@%z5|wdZzy6MOBDH)}HEzuUfbgT`rbp+0-- z^G=mL*tT2WQHJx=qT&Wo{eGN#(r~52>ziJ?GI8sPE1BmX*QUMya_jjCFT2otKm63^ za@XvBwq-y5aANj_`>!nAYf2lt|Ix|g4=32it@-7a&6ztan>PQX%NcQ7w+{C{_J{4l zl;by^EzGZf==9DxvBQUbzM)~y4Z7_!E4CXuJq3jwOB_A%?)tP@`C}@3-1PEV(^FHw zxEp<)zxm}i_PJ2v%!9Y(-Ph;aO_u2`s(zUJdy~COinKdcf*57HzU0RGdB@uRN2$7> z(VU1^pPh$tcEyHW`23aLR{PLak2l<*duHwHk3YV!aKhaDE^m$f;r4@_E|)#F{@qEf z8lD}vYEAu-PcGK|`Nr{8BYOR`w_U~iJ1aW5Q0`~j9^Liz`Ldr6O}cZ=I>V^rKXll( z;OkENCbm7W>D9Bbw?Fag_>VfiKD+(Ab2sh2@ayy|rP+zSmj6;(_tJxhp6+vYQhfbd zd$XeM?O(txOaqQA=8x5_MGf`855MDl&8nTYs?7QK-Z9kFe)hP_6^9qqucouQ@6B2> zuKt#()2}qX<~{wyk56p0T>I#a5A98Q<++RfHzd6FdA}<=ZuxBd3(sVZS$BDru2-8K z-8<_>x4NgO+e7272ZdAW+QSj=Io%K!YPD?av6S@XReh88H$T^7!@`tH_xG*8G~x1r zD{sBGyU+Ne?_{oA7_PmqQRg$ z+iu=F>eTTAb*4wg{&30m;f|v&v?%VS^IuliWZu_d*6=2dxuaZYVEyV_!UlD?`G!-M z^B-IAR9?l!A6=;RmgMzuV~_n|x4!z!%STRDyfycm&7Xthm9^geS@H|B$NbW9P^Y)b zODmRsK7Rv@zh&g>KU_4fYCZYj!Vfpk?XbmE_B-~tzVfv^2F?@Jxg=XRJMO;(xw$xHt(o^dD9d6yW78QJw3yAtnIAL z(*qhYsBp-@?oYmWbNzv1Q1$$Tw%rQuI=-#{xR`p=&HYoi&i!c7iHu2y$1VRZJmJYx z<7ZO6%Io*Ut;RVYc>YSoFSAEAXizh{@2T;>y;1-58}#Ngt>>?bxV>v$M$c`XPplc; zV{6^A#h*63T)nyQg)t+i?LYoQPyX=~@4P22F@Z$SI1H|l%N+8;YjSMtG{wC=_yf0$-`CC1?da(a zuMCa2d1~`NcJ}E{pFMs2hOBWD_N^}+{?)3p_hg>AJ9}qxefab%>tMt#{}8ij(fTJ| zeeTTo-Snt8U;pTu#^cl8eQrjliN_YMJbUk^r;55>vvq&-PxOC&dHBkdr#`%9(Eb%` zo~t`KWz6K8cYJ&3h3t)SS0a}$DY`Z*ny~ynj?}B5{FdkY_387%(S1wr8&y)%+uq(; zv$oN+1DTsvOnCd4ZlDW2IcaqEA8X=VNPpagKGxj;GIHU!Z5Q|CPt?C_nv>bzya+&9 z2Oso)xP#h*>;GEee zSGs2Z{;Lb!J~8I4Icu&|?zp&N*|~e>7Cm4{@6qA0xayPH)ArB3eU_v9!1q`0{A1JQ ze%XCfA9&#GB>OFGD>_cNFRtSKsZSiz-oE0A+V|c*QFZ?9&pudpVPn&UU7LRSb43%= ztDkN@bJm4wH=mulJ1c$sv5l5^+Hq;XeS7x4^vk*C7aloqVNLGfoW(cS{ruTyL-#N3 z5tW^}@&1ZMz*Bo-jq$l1@49iK3+frM^60~etKi}nf-G+FZ*WV7kjeIy1`pkg*V+${mh1OeINSlX%{;3)$h0L zdt}|q)l+ktgrRmQtiiN7orZrjXH?DS&)##^{(bqa4S(-*p~;BCF7S(XpBs*Li!94M zvt{b5SN2@9YVXbKCq`blFzlP+CJEE;&VJ$}7wUQPTs&54?nH5Tyb1HV%gteeqn}lLfY-Aqh{Xn&RG!gP06QQQ!Ac&>DXGwh1jw~^B=CC zdFIMj^~b@e{RqE3>_V;s9Cr{y_q98hJ-O$P_7B}@KXuX)_tN_he3uPCqa&b{y6 z^-mnUxaqo&!}Di%O9ZJe`+ax6ANHOZy=>)O54LaB>%C3AHuudvbwzh-Sry1en;%9d z&HHZ2uT{%-Y}Xk7XD}3qMz>C{C)q`J-aQ*T}s3j-j?~=^YZ5Z*JKsi znJl?R!aG@i#i3keKo&F^wsf`N>aK=o2fXa$$qLz;`^lk2`KS~n;{utzvo5#>O+s-o zx*i@Hp@y1fWG5Mxb^vb&o^YHMp~;%|p64l=>)d(5Au$o}T!Wt+A)6+NJmaiGSa<~cAoYn+a0%*5rGd%=|37(vQyWNwHBvmh z7=;sCrngnmj#Aj2hn-p+htmjWE_OKbdGR>W%rCRu=+qk^8EZ&4NYmRHyDcDKZ?r2qVW%9GAFs&u$)2<1nP?{88$E}1s z2zCtwM0o;Lh*p0FW1!wO5WoVT99<*aQC67B4c#G%p714t`7B06jcV*E5Q%|E+*{lV z0y|%$Hyeva6pnyzzv8^P<^nu2JK)9DfV|?kP;OzVr(L*=LO4+%8dt?)k@KwP!mglh8yn??3qghULK|B*?lN2Y(0q<|OpMwH3yDM{9EULp zUGVIWP=}gI8$_iL`@pNuZmtb$T82>WT_lxchd0K@9*Jkm@V77!-l3Q94zqRmTdsNl z5h|PEvH&m+;j88@cxwSK-XCFR1iSbU4H(EPhA^ELc-5rEp>enurIvgPJX+!9)p{?U zK=~${mM38dA~o_MKanjgI|hq$a*n<{b{+unAC@l+W4NmknuAAu__V37!&3KC>Oi`9)N~eF^0IOe28` z*_`1{C*P-mo*?*kYbEb{g$b9>8{NtoHkKxk#QSRv-@3tTA-rxuVAg=(497V% zTk$x;JB*`dE3SzdL0oV*cJu-sElnxYo3fdu)d+Q^xY#gUm-inVGnSLhKy%8MGY?7d z;WesdGlt@Rg53x)g)6TfMh&;x;lXewx6VPsZJ^p1)kL0g z+92C39KeWj&5m3)E!S+u`X*Lyb{HWFPj4@+))UG`kuX5Bfu7;fHlQ#Em~mhv{7ALl zVQ}aX>THaT?%OvyO6N|1OC8{v3;+NGB6Tb_cp_h;bhte2b@eXjO_QDg?vHPo(3R+I z`YM~=T0O#P=JL8@jsS+M0=T;nul%LeG!1oeNl`jCR;gpAi6+TfievyR=8_O2ZD#;X zliY3aeCU{CllYgcnS5+EUG5B{T{{lnN1}!ED&%v5yXc$7KmrEh7Xu_cWBM1RgFfWq zyE?SvFoL^8uG@b}H==Zd;kc)<(*3LLY`3Fyg+`m*0ilU>5e%f+f!oM5J4#pT(Aylo z-~ncXFOd9BZXON44^Q)oz+qsyl`w^RLvtZKcF;^~HEo9YSgph6q}eJxP{U}8%}{Eb zMQhX8v=ST5Bx{pAAdB50gh2q9ovwhNfS%^gZr5h8`Nu*as5Uu`>msQI+K3~^#%U8W z$hajYBqzJa3D|Eam@Bjm_m9cM4kS02kZGU^y2ItcT)@8ETo9$hy&g*Iv1me~rw?ur z4r1j-Wsn|AQI)n*Z?b!cljpSQ?fNRc&B%ujF`Dg`sm|dx112-u*8vbr3s>Hl!A_~M zTI`VIRT#s6ZU%&=kuzt1DOZzjW7Zx@o2wkvZU)yTF@)6>*#}#UX8mLntxbd$Gm=ik zGC(QkM3{8gBZnNE)e9bxV!IoF@NuOCUOLDU%x>HO;BSP36H~o}s!;Eok!LX(yhj5t z0a^q%2^lN+aBrURmJ^nb5-3bP{HNotBf=L?09iRM$MMtnUJ##zG8+WRVm|Y54X$tq zZ8Kw_cZDp>lQ9pX`QfG)(4xjlp4PzK&evP*T$vccX6K+ILEqSL3H%#>LFE`-C4s|Q+PhWY8Z#AV=>@V z%utX-C!CSz8a~XD2giP=^4o?jGGd##hlAxu7#JeiY~4}1QF@aTy1+~otdhW=tfFws zCSU?BEK`|vMsUT7=_syP+*W)s6OW8cT?EV{Bgu^C2!4OZaKp!TO$X8PcsxfN4UTG# z{oM6>3tiy40c%Nusl!$cJ`V)|hPDjEKHSVTOjlZMnT|7hf$&#G3NsjiAb70&BqezP zJ>$nt!CoWB4VyP@J;TQI&bw$HLntngFeFyugJ^v4pv;21g9pj(=^{fOFxVL5Oq&7} z(v7s!g&^CQ?e!)yIgwHENRDm<+|UM*(*};5?u8>GB|u5I4~3XGY}-e}S{AedCr*qi z(B)SfO$J!@GS&-gz5w&$61-;V;16-m}+~s%`Bw7+kJ@yBHIaEW+ zq}=k3nTM5gD3PBj(Os*Dt4NatnUchs#!`Wu;n+_%oYY93@f&`@_}d{&zk)9CGRNI^ z1o&sjSTeNI;aggWQSR&09|DU!GkEwdXex4o8(I%bKLa-0qjbY8#CpVtl!gj(#kgXr zORjdV_O4DY4Rsk}b=zt?x}vC-u70iwR20>iYC^?PO{ptXJ++j2nu?@yseEbxHIOQz zDyZA3JE?`#{nRtm3hFs(6}6h$MjfV(P(M>Ask78M>PhM;2x97t#`i=M&}`HTC7>+S zr*nAcDDV3NsTeAjibvzGL*vjbt|P7pw8EuD ztEgtKa0YV-OVOu=;t zbC9msGQ~Iq4)6#VqzHS+K+VW7N*XGLK28C483K$_1D~a^P2@m{LYjq8R?=TsR`Oq1 zR*I)ALd3FadKkVz(!`mVL>uZn37+*Xw?Gvv1_cA)A^b4ne5nCB#EzE{XdueNl}j#r z1&dy{aui)DO0E+{SBbFJ7p@U?Vk<-j$X_3lb&_Wt$k`}54@|f=gl_OxhM>m<>q3|w zBvyqw{+dwdZ$%iudeHxBP;@N_C6mRW*PN+i)eL8n=|oq7I*~P?PG$w@nGB)`Q*yi* zG;49F?0So3BeEJ|j6~ zfVjH66pGIpMsx)u5EZhjm#~lq!K7wF)5z3jgd=!*Gz^}dh-S2KX@$*bbvp>0r-op6h&8BvU8f_-I#QVkGaVFO*?8+1I4s-OlFw!P$PA?zDSEnE~w5!iOq zpgub|^DXe~Hc-TSAz417Uz~9Hi=A|zXn};(jAU$4lyY!T+03y`aK5?ICW~UYp}zTH zPBnoHG8Lq|?c4%O1+4YW4%Xg<#Rg$GR$)r%JJr~AfsL*jyQ;AZ+cCbvAZ5_2#xAzE zL9yX|55abbYV3M#e6Z%5YV7iT{;IL--V9WYU5~4fSc9NcRAW~)c3I>^KAbB{B zffMA3#(73q@Gpa~(Iq$v1zO;VJi*WGABpr~B8+eVjs{1$5STlf2zDI|g*KUn&j$ZXQsjR;k2dy!nd`FH&DB4gPK(P^C5` zsYQq3Dme9}(%|pq0aa>4lG^yg@$=P}N`t?d2Vixpf%8i7C>Boku>TsvQ)Bqo7PUex z;a>~5G8_ME?tV3e&v*jCcuZO}oXUxI|HHUVNNKU~$^OI7G4R5l%qy0Ba+5}#4P;WeH3jc6xT98*u)EfS^fzwIRq}6PB7#HVnc?d=3l+W9;rS4Bx zWbKx<^U8B-(NPp0U$S`DF<1Dm#U=4a&@mJiU%vK`D{PlF{uj6)Rg<&!8<%Ez&T;e` z(v;U8aA~&W{EB`D_^v(htUZZNAx-?+T`o=Cyx-9uaNly>=KzmCg-#>1{8Io^f1tCF zW!J~>Tyh%jTZQKjU8wvF`V&9GWdhV$ctpF7LmQUQE5DEvUNUbvv`AB@J%`T2`SstR zHS=8)_%=E zN-ko^;?vNm_^;sb86<5XpxV>0U$h^gwE)pxLRS!?0J3WzZVNnE3CIdh<$DpD2cKIA zWH~&=?`1L(z^*fp^d*xe=Q5N78Ro%vE&jZW;DlW~JXv=Gogn9O0?7eL4nXE%Tpk2c zxbM55Ebnim1nLSd6PIA!1+9k?ay*db0KsK45Zs^IjnE?KVaX==M703fMV@f47jMQe zE0C>x3x1-2q>JB2K(1OCj4j%2_|f`1P|o@RJOW)#y25J9Z zS6q8J99FD@&m1_Si`$k1-IL%4=^CKr5=NFfS1>54#r%JTFf?ZLdBBc%=wM`O<1tvHtpkNtx4h&ilmNpBRbIwS zPJ#ZbTWh6G0uup$fubwFMEL!vD|`#+#Va|8x{?!aows%iu!{8}VgF4)z6)5Vmejou zG&s+2KIqi)KMCKj{RpZBHYJMr6PIRj{8^%~7w-T*%sGt}xpw(3$Wwj_D|qd4VDj4X z-$C(*#an9+;&$fzhJGRZ4{}$xygdE{T%3*P3}^)irIq>_)uKoWRQ8r#=Uff&ykgCX zKa8hS{BtM&!~b4%{crzMNATZ1zUm16>qij5q{!Tq08a=d&4V|*2Ur4Ea$o>{hLiD0 zNb|*ftPusVzmWf7&7*71`2@HgDHQwLJ7l_WK^)>JlI9hzZ$b^GcNK~_~2%nXP z)6{UP79)8g@TDU_weE9(+Wv44JNX}aZT=%d-L+DGWvy}%qQ3P_z*T#Wj^H2IF0(j-+ne~}s;6C+z#K8UP`-y?G>$Ancx%IhX;Qac05wNR~tC1MEk4vm2u5qq$BDvvM zQyUR5oNy8=8;(6ii{*}?V#L6)RIC^{o{AR(x1d^xfa}xh(+D_;KROxp8Dik9`YbVU z-}=5{;Qsaf#lSiBIbz_v`aCgkL4AP;*cIi95(D>hF$}@)j%$Kzf=F&SyVX_%3}@fO z%7z1Rjm2^|p_+(+a8s(O7`P?XQUvUZb1{V^^G3%t(KV6e=7ZsU9>d=Pa6ZNG zw*WkV8X#84Kx&{ExQHqe16NQLV&L1U+r_|lQg@1h7g7tw!1q)4i-DI?OU1xXQ%{S5 zpP`-+1FxV~h=HG@o)ZJFqE?B4S5vFSz}u*8V&KEnVKML#>WCQlXXw=34gsIWAC zAz@S)DTEJ(6RV6KOy}p;P)xh|U~Nk+BT^Z>+}iHiYf0IBuq(n9LBN^3+-L=2_=FFJ z1F6iQ3BZvqhOmibcK6J6=vnkEDO?DLU)>OcYvHhtC_G7X0g+7@e9ZfEQAQqWK3=gGAwjsmY>n19gWed;zsU6n+LD?>E8fNE?L>h} zdzNz3na{%T(>^Pias=?_spm!EFHkRt!e6Aeio!pjeiDTrrH+cif1!R8h5t^S7K0~g zlk!F3^OD^B!|zwpt|Uh86Z!CDlssCjoaCF6r-{PnC4VOdABL7aCk6*LbQ^DcF^6N| zbC~>mfkw|Dml#~zLEAwT-cj4p3r_4<#&Dki>k6aYYSP2?I&d$Bz-%Sb$hUgS@I5y{ z*}Fj^`Q@J0TUXat!3KKek5Q2DE50Sfz5wV4cb& zV=GlI8HPh985^^5$zasVC4*9zONJRjE*a((xnwYU-O0?EW#!dhtu$E)4ny{*!{qOv@CE%f!usX-Ni`J#H+G4L7=Zbt<@;Q$oPy6H`#Ho1moC zUc}`3oGw!{ug}D`5>hNf2HPLCGef`y%TqbA6Xke>*Jn{K0V^|vxC^bv*7{eh%B&EbWSyarE1!B%=5dUJHtmO{@9~a}3+mSfM!^%psq}n2t`jNC` zEuRX$)#6f!oQgALx2BB-0w|Dx^Yj|YbvSg-k- zFIa58=Hsvf(YmQxzWNImTc87jMwhcRSlUUCn7pOocfi4&1Z8{7?4TPT8oLQ}K+v^I zv0Pxoo){R3|0>Db7n1 zsDJ+0;Q^4dRni2u3Ll$Y6^QgyR#c^XDlellc!3P2NHgW7Ql>sxag@PR$N};K=&lb| zz9KU)FuJVx`9qczK7uG~@TZGPUV5OCCt^FN2PAnw2vOWXh%bdJD}#R2cX~)Nm>!S} zO0_!>L6pJ`NE#)P`3nbe%^`^#hd zCSFeRMdr8+fu!+qF}}nqH6x_eN`^pGe5;k4t}+Co;)^ZWXug~TfhZ7?U@-X-5)39^ zJc7aG%SJGmd=2P}Nu~mjNs&1S7?D2*1%xeF17?cycxDJZo~e|_GehF>%#e6IQz?&U z3f51)V;~_MKw`d&HW*BWJPvg#NGZGHzRC@++eRP@ zOA(!p(fqH7w=lTsWngDzxv@$EwBQwR*7qFBd=w$%u&4r$s= zQOxiuiWwdVt(4&bRVl**s#1mrRHY0Ls8S3ckd6m@DUO%J7qYzgW-c@>1eOJts{`rP?O;+9J^r8`QxNmU zsmByRq4AD&u=a(NZ6S06^0C=@P~7(^bOZ*6D=;g9MCMQ4d}LmqMSQm4TH_lgd~|=E z7OXUbMCO|`K_c^w&>)eemYSGce*4V#Lx|T5x{LWQu$IJqkl^l-*%*>(CB<+8Z2(V}_k2gf7H@(PU|;o;J|JSjvi+doV=?L|~%?JR$*E@M87JN|Q`GWm$k@ zR*}#bAdajM`9luHZWs5Q3LU57REJ4O;KIZcn0nkmxIXt<=ZMmazmpUkt>q^^j&npS z4oJ47MmZn>lSB?g$|R8k6gBZa2PkUd$f1au_!#aZ`ma9Nw zg-c|>{|K()yUy?Wk&-EPBj3B*#W&@rk)jgCi84 z4FYF)Ahc432ULYCcs#sH86HrT8hn5%#qa^?c)*w9csYC_%ZqQyLeoNEdG)*jOe3D_ z$b8vfPLZkS4MbuDfYU=@N8uhJHz1s#$V5LtqO=b`kFy{OA(TO~Ls<$h6CCnTz7`r)&YPpD9~-n+G48U5`q+8q_F$e3FaI z1nizKC<4}I79A|X`YlN0P}oFr4HpQHNiN`|kp;^)aSt6hLwKCe**?+*v)fFH{d1wY z=R)(&DR#~&_RRr_6?!TFQ=y{*FctbK0F%$;e2&0eA>o4rOui=MFy-uMj++EL9vHfS z%f;Pt-~ds~RdL&k48A`)R)aZE6`2p6MBr+?g(edmy3=`kZU!3@I zshp9dM#sCYNC{C^Z{zokapzBqzWgRZO0bXl(;6R>T}n$W!T~)LMhA3-+8i+XD*}GI zv2;oI7?8bJFhQa6?falml@F0pFC=tS(hbQ@mohpXqx0<+-~NiA3k(-EI^Ju#6w*e$ zjh{IE$k`L&2A(goNr|-Z60Tq{6)OWZI-Yah$n9weSzdha4M!r&Xl2$j1Zx11olHPh zs$4_ceuIibn*S7Uz(K`I=RY8{()kZimCk>Fs(gqP&wo&>oOy%iK#>WI-Gze|3+6wL z<7K8#A;XJr!$F@yV0bk;K5!imgjUM%fU1≀7l96Q(|{T3|c#JzRk7?E+-`C$gd&brWib)mWH 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 Date: Mon, 25 Mar 2013 14:17:53 +0100 Subject: [PATCH 11/26] fix for issue #50 --- htdocs/application/models/pastes.php | 1 + 1 file changed, 1 insertion(+) diff --git a/htdocs/application/models/pastes.php b/htdocs/application/models/pastes.php index 85af467..a818f4e 100755 --- a/htdocs/application/models/pastes.php +++ b/htdocs/application/models/pastes.php @@ -127,6 +127,7 @@ class Pastes extends CI_Model $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $target); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + curl_setopt($ch, CURLOPT_ENCODING, 'identity'); $resp = curl_exec($ch); curl_close($ch); $data['snipurl'] = $resp; From 05564833f3f09fab66e9d0c1597755f43a750209 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 25 Mar 2013 22:01:45 +0100 Subject: [PATCH 12/26] display error messages with least dependencies --- htdocs/application/errors/error_db.php | 107 +++++++++++--------- htdocs/application/errors/error_general.php | 107 +++++++++++--------- htdocs/application/errors/error_php.php | 0 3 files changed, 118 insertions(+), 96 deletions(-) mode change 100755 => 100644 htdocs/application/errors/error_db.php mode change 100755 => 100644 htdocs/application/errors/error_general.php mode change 100755 => 100644 htdocs/application/errors/error_php.php diff --git a/htdocs/application/errors/error_db.php b/htdocs/application/errors/error_db.php old mode 100755 new mode 100644 index 45225c7..b396cda --- a/htdocs/application/errors/error_db.php +++ b/htdocs/application/errors/error_db.php @@ -1,51 +1,62 @@ - + + + +Database Error + + + +
+

+ +
+ + \ No newline at end of file diff --git a/htdocs/application/errors/error_general.php b/htdocs/application/errors/error_general.php old mode 100755 new mode 100644 index 45225c7..fd63ce2 --- a/htdocs/application/errors/error_general.php +++ b/htdocs/application/errors/error_general.php @@ -1,51 +1,62 @@ - + + + +Error + + + +
+

+ +
+ + \ No newline at end of file diff --git a/htdocs/application/errors/error_php.php b/htdocs/application/errors/error_php.php old mode 100755 new mode 100644 From cf52476eccf9183ced739b396dc6b7729c3ed8ec Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 25 Mar 2013 22:31:27 +0100 Subject: [PATCH 13/26] fixing a very nasty bug - file_exists() doesn't work with ../../ in path names --- htdocs/application/core/MY_Loader.php | 161 +++++++++++++++++++++++++- 1 file changed, 160 insertions(+), 1 deletion(-) diff --git a/htdocs/application/core/MY_Loader.php b/htdocs/application/core/MY_Loader.php index cdfbc4b..806482e 100644 --- a/htdocs/application/core/MY_Loader.php +++ b/htdocs/application/core/MY_Loader.php @@ -4,6 +4,7 @@ * Function list: * - __construct() * - view() + * - _ci_load() * Classes list: * - MY_Loader extends CI_Loader */ @@ -37,9 +38,167 @@ class MY_Loader extends CI_Loader //return return $this->_ci_load(array( - '_ci_view' => '../../' . $view_path, + '_ci_view' => $view_path, '_ci_vars' => $this->_ci_object_to_array($vars) , '_ci_return' => $return )); } + /** + * Loader + * + * This function is used to load views and files. + * Variables are prefixed with _ci_ to avoid symbol collision with + * variables made available to view files + * + * @param array + * @return void + */ + protected + function _ci_load($_ci_data) + { + + // Set the default data variables + foreach (array( + '_ci_view', + '_ci_vars', + '_ci_path', + '_ci_return' + ) as $_ci_val) + { + $$_ci_val = (!isset($_ci_data[$_ci_val])) ? FALSE : $_ci_data[$_ci_val]; + } + $file_exists = FALSE; + + // Set the path to the requested file + + if ($_ci_path != '') + { + $_ci_x = explode('/', $_ci_path); + $_ci_file = end($_ci_x); + } + else + { + $_ci_ext = pathinfo($_ci_view, PATHINFO_EXTENSION); + $_ci_file = ($_ci_ext == '') ? $_ci_view . '.php' : $_ci_view; + foreach ($this->_ci_view_paths as $view_file => $cascade) + { + + /* *** modification for stikked themes *** + * + * we are by default in the htdocs/application/views folder, which is bad. + * for security reasons, themes folder should be outside the application dir. + * but file_exists() doesn't work with ../../ in filenames :-( + * so, applying the full FrontControllerPATH here, making ../../ superfluous. + * + */ + + if (file_exists(FCPATH . $_ci_file)) + { + $_ci_path = FCPATH . $_ci_file; + $file_exists = TRUE; + break; + } + + if (!$cascade) + { + break; + } + } + } + + if (!$file_exists && !file_exists($_ci_path)) + { + show_error('Unable to load the requested file: ' . $_ci_file); + } + + // This allows anything loaded using $this->load (views, files, etc.) + // to become accessible from within the Controller and Model functions. + + $_ci_CI = & get_instance(); + foreach (get_object_vars($_ci_CI) as $_ci_key => $_ci_var) + { + + if (!isset($this->$_ci_key)) + { + $this->$_ci_key = & $_ci_CI->$_ci_key; + } + } + + /* + * Extract and cache variables + * + * You can either set variables using the dedicated $this->load_vars() + * function or via the second parameter of this function. We'll merge + * the two types and cache them so that views that are embedded within + * other views can have access to these variables. + */ + + if (is_array($_ci_vars)) + { + $this->_ci_cached_vars = array_merge($this->_ci_cached_vars, $_ci_vars); + } + extract($this->_ci_cached_vars); + + /* + * Buffer the output + * + * We buffer the output for two reasons: + * 1. Speed. You get a significant speed boost. + * 2. So that the final rendered template can be + * post-processed by the output class. Why do we + * need post processing? For one thing, in order to + * show the elapsed page load time. Unless we + * can intercept the content right before it's sent to + * the browser and then stop the timer it won't be accurate. + */ + ob_start(); + + // If the PHP installation does not support short tags we'll + // do a little string replacement, changing the short tags + + // to standard PHP echo statements. + + + if ((bool)@ini_get('short_open_tag') === FALSE AND config_item('rewrite_short_tags') == TRUE) + { + echo eval('?>' . preg_replace("/;*\s*\?>/", "; ?>", str_replace(' $this->_ci_ob_level + 1) + { + ob_end_flush(); + } + else + { + $_ci_CI->output->append_output(ob_get_contents()); + @ob_end_clean(); + } + } } From 71fba92feb1295803e699e8a793a43068100d4f4 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 25 Mar 2013 22:32:34 +0100 Subject: [PATCH 14/26] codeformatting --- htdocs/application/core/MY_Loader.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/application/core/MY_Loader.php b/htdocs/application/core/MY_Loader.php index 806482e..54b77e1 100644 --- a/htdocs/application/core/MY_Loader.php +++ b/htdocs/application/core/MY_Loader.php @@ -86,7 +86,7 @@ class MY_Loader extends CI_Loader /* *** modification for stikked themes *** * * we are by default in the htdocs/application/views folder, which is bad. - * for security reasons, themes folder should be outside the application dir. + * for security reasons, themes folder should be outside the application dir. * but file_exists() doesn't work with ../../ in filenames :-( * so, applying the full FrontControllerPATH here, making ../../ superfluous. * From b2b73a15ee9100fb2936cbdce310a2b0e6867aa0 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 26 Mar 2013 16:21:57 +0100 Subject: [PATCH 15/26] js + fixes for bootstrap theme --- htdocs/application/config/routes.php | 1 + .../application/controllers/theme_assets.php | 21 + htdocs/themes/bootstrap/css/bootstrap.css | 4 +- htdocs/themes/bootstrap/js/bootstrap.min.js | 6 + .../bootstrap/js/codemirror/keymap/emacs.js | 29 + .../bootstrap/js/codemirror/keymap/vim.js | 766 ++++ .../js/codemirror/lib/codemirror.css | 168 + .../bootstrap/js/codemirror/lib/codemirror.js | 3181 +++++++++++++++++ .../js/codemirror/lib/util/closetag.js | 146 + .../js/codemirror/lib/util/dialog.css | 23 + .../js/codemirror/lib/util/dialog.js | 63 + .../js/codemirror/lib/util/foldcode.js | 196 + .../js/codemirror/lib/util/formatting.js | 297 ++ .../js/codemirror/lib/util/javascript-hint.js | 134 + .../js/codemirror/lib/util/loadmode.js | 51 + .../codemirror/lib/util/match-highlighter.js | 44 + .../js/codemirror/lib/util/multiplex.js | 72 + .../js/codemirror/lib/util/overlay.js | 52 + .../js/codemirror/lib/util/pig-hint.js | 123 + .../js/codemirror/lib/util/runmode.js | 49 + .../js/codemirror/lib/util/search.js | 118 + .../js/codemirror/lib/util/searchcursor.js | 117 + .../js/codemirror/lib/util/simple-hint.css | 16 + .../js/codemirror/lib/util/simple-hint.js | 72 + .../js/codemirror/mode/clike/clike.js | 271 ++ .../js/codemirror/mode/clike/index.html | 101 + .../js/codemirror/mode/clike/scala.html | 765 ++++ .../js/codemirror/mode/clojure/clojure.js | 207 ++ .../js/codemirror/mode/clojure/index.html | 66 + .../js/codemirror/mode/coffeescript/LICENSE | 22 + .../mode/coffeescript/coffeescript.js | 347 ++ .../codemirror/mode/coffeescript/index.html | 727 ++++ .../bootstrap/js/codemirror/mode/css/css.js | 124 + .../js/codemirror/mode/css/index.html | 55 + .../bootstrap/js/codemirror/mode/diff/diff.js | 32 + .../js/codemirror/mode/diff/index.html | 104 + .../bootstrap/js/codemirror/mode/ecl/ecl.js | 203 ++ .../js/codemirror/mode/ecl/index.html | 42 + .../js/codemirror/mode/erlang/erlang.js | 251 ++ .../js/codemirror/mode/erlang/index.html | 61 + .../bootstrap/js/codemirror/mode/gfm/gfm.js | 144 + .../js/codemirror/mode/gfm/index.html | 47 + .../bootstrap/js/codemirror/mode/go/go.js | 170 + .../js/codemirror/mode/go/index.html | 72 + .../js/codemirror/mode/groovy/groovy.js | 210 ++ .../js/codemirror/mode/groovy/index.html | 71 + .../js/codemirror/mode/haskell/haskell.js | 242 ++ .../js/codemirror/mode/haskell/index.html | 60 + .../mode/htmlembedded/htmlembedded.js | 68 + .../codemirror/mode/htmlembedded/index.html | 49 + .../js/codemirror/mode/htmlmixed/htmlmixed.js | 85 + .../js/codemirror/mode/htmlmixed/index.html | 51 + .../js/codemirror/mode/javascript/index.html | 77 + .../codemirror/mode/javascript/javascript.js | 361 ++ .../js/codemirror/mode/jinja2/index.html | 37 + .../js/codemirror/mode/jinja2/jinja2.js | 42 + .../js/codemirror/mode/less/index.html | 618 ++++ .../bootstrap/js/codemirror/mode/less/less.js | 232 ++ .../js/codemirror/mode/lua/index.html | 72 + .../bootstrap/js/codemirror/mode/lua/lua.js | 140 + .../js/codemirror/mode/markdown/index.html | 338 ++ .../js/codemirror/mode/markdown/markdown.js | 245 ++ .../js/codemirror/mode/mysql/index.html | 41 + .../js/codemirror/mode/mysql/mysql.js | 188 + .../js/codemirror/mode/ntriples/index.html | 32 + .../js/codemirror/mode/ntriples/ntriples.js | 172 + .../js/codemirror/mode/pascal/LICENSE | 7 + .../js/codemirror/mode/pascal/index.html | 48 + .../js/codemirror/mode/pascal/pascal.js | 94 + .../bootstrap/js/codemirror/mode/perl/LICENSE | 19 + .../js/codemirror/mode/perl/index.html | 62 + .../bootstrap/js/codemirror/mode/perl/perl.js | 816 +++++ .../js/codemirror/mode/php/index.html | 48 + .../bootstrap/js/codemirror/mode/php/php.js | 150 + .../js/codemirror/mode/pig/index.html | 42 + .../bootstrap/js/codemirror/mode/pig/pig.js | 172 + .../js/codemirror/mode/plsql/index.html | 62 + .../js/codemirror/mode/plsql/plsql.js | 217 ++ .../js/codemirror/mode/properties/index.html | 40 + .../codemirror/mode/properties/properties.js | 63 + .../js/codemirror/mode/python/LICENSE.txt | 21 + .../js/codemirror/mode/python/index.html | 122 + .../js/codemirror/mode/python/python.js | 338 ++ .../bootstrap/js/codemirror/mode/r/LICENSE | 24 + .../bootstrap/js/codemirror/mode/r/index.html | 73 + .../bootstrap/js/codemirror/mode/r/r.js | 141 + .../js/codemirror/mode/rpm/changes/changes.js | 19 + .../js/codemirror/mode/rpm/changes/index.html | 53 + .../js/codemirror/mode/rpm/spec/index.html | 99 + .../js/codemirror/mode/rpm/spec/spec.css | 5 + .../js/codemirror/mode/rpm/spec/spec.js | 66 + .../js/codemirror/mode/rst/index.html | 525 +++ .../bootstrap/js/codemirror/mode/rst/rst.js | 326 ++ .../bootstrap/js/codemirror/mode/ruby/LICENSE | 24 + .../js/codemirror/mode/ruby/index.html | 171 + .../bootstrap/js/codemirror/mode/ruby/ruby.js | 195 + .../js/codemirror/mode/rust/index.html | 48 + .../bootstrap/js/codemirror/mode/rust/rust.js | 432 +++ .../js/codemirror/mode/scheme/index.html | 64 + .../js/codemirror/mode/scheme/scheme.js | 230 ++ .../js/codemirror/mode/shell/index.html | 50 + .../js/codemirror/mode/shell/shell.js | 103 + .../js/codemirror/mode/smalltalk/index.html | 55 + .../js/codemirror/mode/smalltalk/smalltalk.js | 139 + .../js/codemirror/mode/smarty/index.html | 82 + .../js/codemirror/mode/smarty/smarty.js | 148 + .../js/codemirror/mode/sparql/index.html | 40 + .../js/codemirror/mode/sparql/sparql.js | 143 + .../js/codemirror/mode/stex/index.html | 95 + .../bootstrap/js/codemirror/mode/stex/stex.js | 182 + .../js/codemirror/mode/stex/test.html | 263 ++ .../js/codemirror/mode/tiddlywiki/index.html | 140 + .../codemirror/mode/tiddlywiki/tiddlywiki.css | 14 + .../codemirror/mode/tiddlywiki/tiddlywiki.js | 384 ++ .../js/codemirror/mode/tiki/index.html | 82 + .../js/codemirror/mode/tiki/tiki.css | 26 + .../bootstrap/js/codemirror/mode/tiki/tiki.js | 316 ++ .../js/codemirror/mode/vbscript/index.html | 42 + .../js/codemirror/mode/vbscript/vbscript.js | 26 + .../js/codemirror/mode/velocity/index.html | 103 + .../js/codemirror/mode/velocity/velocity.js | 146 + .../js/codemirror/mode/verilog/index.html | 210 ++ .../js/codemirror/mode/verilog/verilog.js | 194 + .../js/codemirror/mode/xml/index.html | 44 + .../bootstrap/js/codemirror/mode/xml/xml.js | 325 ++ .../js/codemirror/mode/xquery/LICENSE | 20 + .../js/codemirror/mode/xquery/index.html | 222 ++ .../js/codemirror/mode/xquery/test/index.html | 27 + .../codemirror/mode/xquery/test/testBase.js | 42 + .../xquery/test/testEmptySequenceKeyword.js | 16 + .../mode/xquery/test/testMultiAttr.js | 16 + .../mode/xquery/test/testNamespaces.js | 91 + .../xquery/test/testProcessingInstructions.js | 16 + .../codemirror/mode/xquery/test/testQuotes.js | 19 + .../js/codemirror/mode/xquery/xquery.js | 448 +++ .../js/codemirror/mode/yaml/index.html | 67 + .../bootstrap/js/codemirror/mode/yaml/yaml.js | 95 + .../js/codemirror/theme/ambiance.css | 81 + .../js/codemirror/theme/blackboard.css | 25 + .../bootstrap/js/codemirror/theme/cobalt.css | 18 + .../bootstrap/js/codemirror/theme/eclipse.css | 25 + .../bootstrap/js/codemirror/theme/elegant.css | 10 + .../js/codemirror/theme/erlang-dark.css | 21 + .../js/codemirror/theme/lesser-dark.css | 44 + .../bootstrap/js/codemirror/theme/monokai.css | 28 + .../bootstrap/js/codemirror/theme/neat.css | 9 + .../bootstrap/js/codemirror/theme/night.css | 21 + .../js/codemirror/theme/rubyblue.css | 21 + .../js/codemirror/theme/vibrant-ink.css | 27 + .../bootstrap/js/codemirror/theme/xq-dark.css | 46 + .../bootstrap/js/jquery.dataTables.min.js | 155 + htdocs/themes/bootstrap/js/jquery.js | 4 + htdocs/themes/bootstrap/js/jquery.timers.js | 140 + htdocs/themes/bootstrap/js/stikked.js | 264 ++ .../bootstrap/views/defaults/header.php | 2 +- 155 files changed, 23176 insertions(+), 3 deletions(-) create mode 100644 htdocs/themes/bootstrap/js/bootstrap.min.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/keymap/emacs.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/keymap/vim.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/lib/codemirror.css create mode 100644 htdocs/themes/bootstrap/js/codemirror/lib/codemirror.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/lib/util/closetag.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/lib/util/dialog.css create mode 100644 htdocs/themes/bootstrap/js/codemirror/lib/util/dialog.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/lib/util/foldcode.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/lib/util/formatting.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/lib/util/javascript-hint.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/lib/util/loadmode.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/lib/util/match-highlighter.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/lib/util/multiplex.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/lib/util/overlay.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/lib/util/pig-hint.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/lib/util/runmode.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/lib/util/search.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/lib/util/searchcursor.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/lib/util/simple-hint.css create mode 100644 htdocs/themes/bootstrap/js/codemirror/lib/util/simple-hint.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/clike/clike.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/clike/index.html create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/clike/scala.html create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/clojure/clojure.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/clojure/index.html create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/coffeescript/LICENSE create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/coffeescript/coffeescript.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/coffeescript/index.html create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/css/css.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/css/index.html create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/diff/diff.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/diff/index.html create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/ecl/ecl.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/ecl/index.html create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/erlang/erlang.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/erlang/index.html create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/gfm/gfm.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/gfm/index.html create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/go/go.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/go/index.html create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/groovy/groovy.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/groovy/index.html create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/haskell/haskell.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/haskell/index.html create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/htmlembedded/htmlembedded.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/htmlembedded/index.html create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/htmlmixed/htmlmixed.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/htmlmixed/index.html create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/javascript/index.html create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/javascript/javascript.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/jinja2/index.html create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/jinja2/jinja2.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/less/index.html create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/less/less.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/lua/index.html create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/lua/lua.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/markdown/index.html create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/markdown/markdown.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/mysql/index.html create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/mysql/mysql.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/ntriples/index.html create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/ntriples/ntriples.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/pascal/LICENSE create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/pascal/index.html create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/pascal/pascal.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/perl/LICENSE create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/perl/index.html create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/perl/perl.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/php/index.html create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/php/php.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/pig/index.html create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/pig/pig.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/plsql/index.html create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/plsql/plsql.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/properties/index.html create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/properties/properties.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/python/LICENSE.txt create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/python/index.html create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/python/python.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/r/LICENSE create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/r/index.html create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/r/r.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/rpm/changes/changes.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/rpm/changes/index.html create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/rpm/spec/index.html create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/rpm/spec/spec.css create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/rpm/spec/spec.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/rst/index.html create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/rst/rst.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/ruby/LICENSE create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/ruby/index.html create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/ruby/ruby.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/rust/index.html create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/rust/rust.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/scheme/index.html create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/scheme/scheme.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/shell/index.html create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/shell/shell.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/smalltalk/index.html create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/smalltalk/smalltalk.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/smarty/index.html create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/smarty/smarty.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/sparql/index.html create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/sparql/sparql.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/stex/index.html create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/stex/stex.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/stex/test.html create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/tiddlywiki/index.html create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/tiddlywiki/tiddlywiki.css create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/tiddlywiki/tiddlywiki.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/tiki/index.html create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/tiki/tiki.css create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/tiki/tiki.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/vbscript/index.html create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/vbscript/vbscript.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/velocity/index.html create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/velocity/velocity.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/verilog/index.html create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/verilog/verilog.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/xml/index.html create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/xml/xml.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/xquery/LICENSE create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/xquery/index.html create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/xquery/test/index.html create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/xquery/test/testBase.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/xquery/test/testEmptySequenceKeyword.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/xquery/test/testMultiAttr.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/xquery/test/testNamespaces.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/xquery/test/testProcessingInstructions.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/xquery/test/testQuotes.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/xquery/xquery.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/yaml/index.html create mode 100644 htdocs/themes/bootstrap/js/codemirror/mode/yaml/yaml.js create mode 100644 htdocs/themes/bootstrap/js/codemirror/theme/ambiance.css create mode 100644 htdocs/themes/bootstrap/js/codemirror/theme/blackboard.css create mode 100644 htdocs/themes/bootstrap/js/codemirror/theme/cobalt.css create mode 100644 htdocs/themes/bootstrap/js/codemirror/theme/eclipse.css create mode 100644 htdocs/themes/bootstrap/js/codemirror/theme/elegant.css create mode 100644 htdocs/themes/bootstrap/js/codemirror/theme/erlang-dark.css create mode 100644 htdocs/themes/bootstrap/js/codemirror/theme/lesser-dark.css create mode 100644 htdocs/themes/bootstrap/js/codemirror/theme/monokai.css create mode 100644 htdocs/themes/bootstrap/js/codemirror/theme/neat.css create mode 100644 htdocs/themes/bootstrap/js/codemirror/theme/night.css create mode 100644 htdocs/themes/bootstrap/js/codemirror/theme/rubyblue.css create mode 100644 htdocs/themes/bootstrap/js/codemirror/theme/vibrant-ink.css create mode 100644 htdocs/themes/bootstrap/js/codemirror/theme/xq-dark.css create mode 100644 htdocs/themes/bootstrap/js/jquery.dataTables.min.js create mode 100644 htdocs/themes/bootstrap/js/jquery.js create mode 100644 htdocs/themes/bootstrap/js/jquery.timers.js create mode 100644 htdocs/themes/bootstrap/js/stikked.js diff --git a/htdocs/application/config/routes.php b/htdocs/application/config/routes.php index f6ba8d7..eafc508 100644 --- a/htdocs/application/config/routes.php +++ b/htdocs/application/config/routes.php @@ -66,6 +66,7 @@ $route['404_override'] = 'main/error_404'; $route['themes/:any/css/:any'] = 'theme_assets/css'; $route['themes/:any/images/:any'] = 'theme_assets/images'; +$route['themes/:any/js/:any'] = 'theme_assets/js'; /* End of file routes.php */ /* Location: ./application/config/routes.php */ diff --git a/htdocs/application/controllers/theme_assets.php b/htdocs/application/controllers/theme_assets.php index 5cd496e..5c57794 100755 --- a/htdocs/application/controllers/theme_assets.php +++ b/htdocs/application/controllers/theme_assets.php @@ -5,6 +5,7 @@ * - __construct() * - css() * - images() + * - js() * Classes list: * - Theme_assets extends CI_Controller */ @@ -56,4 +57,24 @@ class Theme_assets extends CI_Controller header('Content-type: ' . mime_content_type($file_path)); readfile($file_path); } + + function js() + { + $theme = config_item('theme'); + + //get js + $segments = $this->uri->segment_array(); + array_shift($segments); + array_shift($segments); + array_shift($segments); + $js_file = implode('/', $segments); + $js_file = str_replace('../', '', $js_file); + + //file path + $file_path = 'themes/' . $theme . '/js/' . $js_file; + + //send + header('Content-type: application/x-javascript'); + readfile($file_path); + } } diff --git a/htdocs/themes/bootstrap/css/bootstrap.css b/htdocs/themes/bootstrap/css/bootstrap.css index bb40c85..f1b2acc 100644 --- a/htdocs/themes/bootstrap/css/bootstrap.css +++ b/htdocs/themes/bootstrap/css/bootstrap.css @@ -1778,7 +1778,7 @@ table .span24 { *margin-right: .3em; line-height: 14px; vertical-align: text-top; - background-image: url("../img/glyphicons-halflings.png"); + background-image: url("../images/glyphicons-halflings.png"); background-position: 14px 14px; background-repeat: no-repeat; } @@ -1789,7 +1789,7 @@ table .span24 { } .icon-white { - background-image: url("../img/glyphicons-halflings-white.png"); + background-image: url("../images/glyphicons-halflings-white.png"); } .icon-glass { diff --git a/htdocs/themes/bootstrap/js/bootstrap.min.js b/htdocs/themes/bootstrap/js/bootstrap.min.js new file mode 100644 index 0000000..1435698 --- /dev/null +++ b/htdocs/themes/bootstrap/js/bootstrap.min.js @@ -0,0 +1,6 @@ +/*! +* Bootstrap.js by @fat & @mdo +* Copyright 2012 Twitter, Inc. +* http://www.apache.org/licenses/LICENSE-2.0.txt +*/ +!function(a){a(function(){"use strict",a.support.transition=function(){var a=function(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd",msTransition:"MSTransitionEnd",transition:"transitionend"},c;for(c in b)if(a.style[c]!==undefined)return b[c]}();return a&&{end:a}}()})}(window.jQuery),!function(a){"use strict";var b='[data-dismiss="alert"]',c=function(c){a(c).on("click",b,this.close)};c.prototype.close=function(b){function f(){e.trigger("closed").remove()}var c=a(this),d=c.attr("data-target"),e;d||(d=c.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),e=a(d),b&&b.preventDefault(),e.length||(e=c.hasClass("alert")?c:c.parent()),e.trigger(b=a.Event("close"));if(b.isDefaultPrevented())return;e.removeClass("in"),a.support.transition&&e.hasClass("fade")?e.on(a.support.transition.end,f):f()},a.fn.alert=function(b){return this.each(function(){var d=a(this),e=d.data("alert");e||d.data("alert",e=new c(this)),typeof b=="string"&&e[b].call(d)})},a.fn.alert.Constructor=c,a(function(){a("body").on("click.alert.data-api",b,c.prototype.close)})}(window.jQuery),!function(a){"use strict";var b=function(b,c){this.$element=a(b),this.options=a.extend({},a.fn.button.defaults,c)};b.prototype.setState=function(a){var b="disabled",c=this.$element,d=c.data(),e=c.is("input")?"val":"html";a+="Text",d.resetText||c.data("resetText",c[e]()),c[e](d[a]||this.options[a]),setTimeout(function(){a=="loadingText"?c.addClass(b).attr(b,b):c.removeClass(b).removeAttr(b)},0)},b.prototype.toggle=function(){var a=this.$element.parent('[data-toggle="buttons-radio"]');a&&a.find(".active").removeClass("active"),this.$element.toggleClass("active")},a.fn.button=function(c){return this.each(function(){var d=a(this),e=d.data("button"),f=typeof c=="object"&&c;e||d.data("button",e=new b(this,f)),c=="toggle"?e.toggle():c&&e.setState(c)})},a.fn.button.defaults={loadingText:"loading..."},a.fn.button.Constructor=b,a(function(){a("body").on("click.button.data-api","[data-toggle^=button]",function(b){var c=a(b.target);c.hasClass("btn")||(c=c.closest(".btn")),c.button("toggle")})})}(window.jQuery),!function(a){"use strict";var b=function(b,c){this.$element=a(b),this.options=c,this.options.slide&&this.slide(this.options.slide),this.options.pause=="hover"&&this.$element.on("mouseenter",a.proxy(this.pause,this)).on("mouseleave",a.proxy(this.cycle,this))};b.prototype={cycle:function(b){return b||(this.paused=!1),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},to:function(b){var c=this.$element.find(".active"),d=c.parent().children(),e=d.index(c),f=this;if(b>d.length-1||b<0)return;return this.sliding?this.$element.one("slid",function(){f.to(b)}):e==b?this.pause().cycle():this.slide(b>e?"next":"prev",a(d[b]))},pause:function(a){return a||(this.paused=!0),clearInterval(this.interval),this.interval=null,this},next:function(){if(this.sliding)return;return this.slide("next")},prev:function(){if(this.sliding)return;return this.slide("prev")},slide:function(b,c){var d=this.$element.find(".active"),e=c||d[b](),f=this.interval,g=b=="next"?"left":"right",h=b=="next"?"first":"last",i=this,j=a.Event("slide");this.sliding=!0,f&&this.pause(),e=e.length?e:this.$element.find(".item")[h]();if(e.hasClass("active"))return;if(a.support.transition&&this.$element.hasClass("slide")){this.$element.trigger(j);if(j.isDefaultPrevented())return;e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),this.$element.one(a.support.transition.end,function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger("slid")},0)})}else{this.$element.trigger(j);if(j.isDefaultPrevented())return;d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger("slid")}return f&&this.cycle(),this}},a.fn.carousel=function(c){return this.each(function(){var d=a(this),e=d.data("carousel"),f=a.extend({},a.fn.carousel.defaults,typeof c=="object"&&c);e||d.data("carousel",e=new b(this,f)),typeof c=="number"?e.to(c):typeof c=="string"||(c=f.slide)?e[c]():f.interval&&e.cycle()})},a.fn.carousel.defaults={interval:5e3,pause:"hover"},a.fn.carousel.Constructor=b,a(function(){a("body").on("click.carousel.data-api","[data-slide]",function(b){var c=a(this),d,e=a(c.attr("data-target")||(d=c.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,"")),f=!e.data("modal")&&a.extend({},e.data(),c.data());e.carousel(f),b.preventDefault()})})}(window.jQuery),!function(a){"use strict";var b=function(b,c){this.$element=a(b),this.options=a.extend({},a.fn.collapse.defaults,c),this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};b.prototype={constructor:b,dimension:function(){var a=this.$element.hasClass("width");return a?"width":"height"},show:function(){var b,c,d,e;if(this.transitioning)return;b=this.dimension(),c=a.camelCase(["scroll",b].join("-")),d=this.$parent&&this.$parent.find("> .accordion-group > .in");if(d&&d.length){e=d.data("collapse");if(e&&e.transitioning)return;d.collapse("hide"),e||d.data("collapse",null)}this.$element[b](0),this.transition("addClass",a.Event("show"),"shown"),this.$element[b](this.$element[0][c])},hide:function(){var b;if(this.transitioning)return;b=this.dimension(),this.reset(this.$element[b]()),this.transition("removeClass",a.Event("hide"),"hidden"),this.$element[b](0)},reset:function(a){var b=this.dimension();return this.$element.removeClass("collapse")[b](a||"auto")[0].offsetWidth,this.$element[a!==null?"addClass":"removeClass"]("collapse"),this},transition:function(b,c,d){var e=this,f=function(){c.type=="show"&&e.reset(),e.transitioning=0,e.$element.trigger(d)};this.$element.trigger(c);if(c.isDefaultPrevented())return;this.transitioning=1,this.$element[b]("in"),a.support.transition&&this.$element.hasClass("collapse")?this.$element.one(a.support.transition.end,f):f()},toggle:function(){this[this.$element.hasClass("in")?"hide":"show"]()}},a.fn.collapse=function(c){return this.each(function(){var d=a(this),e=d.data("collapse"),f=typeof c=="object"&&c;e||d.data("collapse",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.collapse.defaults={toggle:!0},a.fn.collapse.Constructor=b,a(function(){a("body").on("click.collapse.data-api","[data-toggle=collapse]",function(b){var c=a(this),d,e=c.attr("data-target")||b.preventDefault()||(d=c.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""),f=a(e).data("collapse")?"toggle":c.data();a(e).collapse(f)})})}(window.jQuery),!function(a){function d(){a(b).parent().removeClass("open")}"use strict";var b='[data-toggle="dropdown"]',c=function(b){var c=a(b).on("click.dropdown.data-api",this.toggle);a("html").on("click.dropdown.data-api",function(){c.parent().removeClass("open")})};c.prototype={constructor:c,toggle:function(b){var c=a(this),e,f,g;if(c.is(".disabled, :disabled"))return;return f=c.attr("data-target"),f||(f=c.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,"")),e=a(f),e.length||(e=c.parent()),g=e.hasClass("open"),d(),g||e.toggleClass("open"),!1}},a.fn.dropdown=function(b){return this.each(function(){var d=a(this),e=d.data("dropdown");e||d.data("dropdown",e=new c(this)),typeof b=="string"&&e[b].call(d)})},a.fn.dropdown.Constructor=c,a(function(){a("html").on("click.dropdown.data-api",d),a("body").on("click.dropdown",".dropdown form",function(a){a.stopPropagation()}).on("click.dropdown.data-api",b,c.prototype.toggle)})}(window.jQuery),!function(a){function c(){var b=this,c=setTimeout(function(){b.$element.off(a.support.transition.end),d.call(b)},500);this.$element.one(a.support.transition.end,function(){clearTimeout(c),d.call(b)})}function d(a){this.$element.hide().trigger("hidden"),e.call(this)}function e(b){var c=this,d=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var e=a.support.transition&&d;this.$backdrop=a('")[0];a.nTable.parentNode.insertBefore(b,a.nTable);a.nTableWrapper=h('
')[0];a.nTableReinsertBefore=a.nTable.nextSibling;for(var c=a.nTableWrapper,d=a.sDom.split(""),i,f,g,e,w,o,k,m=0;m
")[0];w=d[m+ +1];if("'"==w||'"'==w){o="";for(k=2;d[m+k]!=w;)o+=d[m+k],k++;"H"==o?o=a.oClasses.sJUIHeader:"F"==o&&(o=a.oClasses.sJUIFooter);-1!=o.indexOf(".")?(w=o.split("."),e.id=w[0].substr(1,w[0].length-1),e.className=w[1]):"#"==o.charAt(0)?e.id=o.substr(1,o.length-1):e.className=o;m+=k}c.appendChild(e);c=e}else if(">"==g)c=c.parentNode;else if("l"==g&&a.oFeatures.bPaginate&&a.oFeatures.bLengthChange)i=ya(a),f=1;else if("f"==g&&a.oFeatures.bFilter)i=za(a),f=1;else if("r"==g&&a.oFeatures.bProcessing)i=Aa(a),f= +1;else if("t"==g)i=Ba(a),f=1;else if("i"==g&&a.oFeatures.bInfo)i=Ca(a),f=1;else if("p"==g&&a.oFeatures.bPaginate)i=Da(a),f=1;else if(0!==j.ext.aoFeatures.length){e=j.ext.aoFeatures;k=0;for(w=e.length;k'):""===c?'':c+' ',d=l.createElement("div");d.className=a.oClasses.sFilter;d.innerHTML="";a.aanFeatures.f||(d.id=a.sTableId+"_filter");c=h('input[type="text"]',d);d._DT_Input=c[0];c.val(b.sSearch.replace('"',"""));c.bind("keyup.DT",function(){for(var c=a.aanFeatures.f,d=this.value===""?"":this.value, +g=0,e=c.length;g=b.length)a.aiDisplay.splice(0,a.aiDisplay.length),a.aiDisplay=a.aiDisplayMaster.slice();else if(a.aiDisplay.length==a.aiDisplayMaster.length||i.sSearch.length>b.length||1==c||0!==b.indexOf(i.sSearch)){a.aiDisplay.splice(0, +a.aiDisplay.length);la(a,1);for(b=0;b").html(c).text()); +return c.replace(/[\n\r]/g," ")}function ma(a,b,c,d){if(c)return a=b?a.split(" "):oa(a).split(" "),a="^(?=.*?"+a.join(")(?=.*?")+").*$",RegExp(a,d?"i":"");a=b?a:oa(a);return RegExp(a,d?"i":"")}function Ja(a,b){return"function"===typeof j.ext.ofnSearch[b]?j.ext.ofnSearch[b](a):null===a?"":"html"==b?a.replace(/[\r\n]/g," ").replace(/<.*?>/g,""):"string"===typeof a?a.replace(/[\r\n]/g," "):a}function oa(a){return a.replace(RegExp("(\\/|\\.|\\*|\\+|\\?|\\||\\(|\\)|\\[|\\]|\\{|\\}|\\\\|\\$|\\^|\\-)","g"), +"\\$1")}function Ca(a){var b=l.createElement("div");b.className=a.oClasses.sInfo;a.aanFeatures.i||(a.aoDrawCallback.push({fn:Ka,sName:"information"}),b.id=a.sTableId+"_info");a.nTable.setAttribute("aria-describedby",a.sTableId+"_info");return b}function Ka(a){if(a.oFeatures.bInfo&&0!==a.aanFeatures.i.length){var b=a.oLanguage,c=a._iDisplayStart+1,d=a.fnDisplayEnd(),i=a.fnRecordsTotal(),f=a.fnRecordsDisplay(),g;g=0===f?b.sInfoEmpty:b.sInfo;f!=i&&(g+=" "+b.sInfoFiltered);g+=b.sInfoPostFix;g=ja(a,g); +null!==b.fnInfoCallback&&(g=b.fnInfoCallback.call(a.oInstance,a,c,d,i,f,g));a=a.aanFeatures.i;b=0;for(c=a.length;b",c,d,i=a.aLengthMenu;if(2==i.length&&"object"===typeof i[0]&&"object"===typeof i[1]){c=0;for(d=i[0].length;c'+i[1][c]+""}else{c=0;for(d=i.length;c'+i[c]+""}b+="";i=l.createElement("div");a.aanFeatures.l|| +(i.id=a.sTableId+"_length");i.className=a.oClasses.sLength;i.innerHTML="";h('select option[value="'+a._iDisplayLength+'"]',i).attr("selected",!0);h("select",i).bind("change.DT",function(){var b=h(this).val(),i=a.aanFeatures.l;c=0;for(d=i.length;ca.aiDisplay.length||-1==a._iDisplayLength?a.aiDisplay.length:a._iDisplayStart+a._iDisplayLength}function Da(a){if(a.oScroll.bInfinite)return null;var b=l.createElement("div");b.className=a.oClasses.sPaging+a.sPaginationType;j.ext.oPagination[a.sPaginationType].fnInit(a, +b,function(a){y(a);x(a)});a.aanFeatures.p||a.aoDrawCallback.push({fn:function(a){j.ext.oPagination[a.sPaginationType].fnUpdate(a,function(a){y(a);x(a)})},sName:"pagination"});return b}function qa(a,b){var c=a._iDisplayStart;if("number"===typeof b)a._iDisplayStart=b*a._iDisplayLength,a._iDisplayStart>a.fnRecordsDisplay()&&(a._iDisplayStart=0);else if("first"==b)a._iDisplayStart=0;else if("previous"==b)a._iDisplayStart=0<=a._iDisplayLength?a._iDisplayStart-a._iDisplayLength:0,0>a._iDisplayStart&&(a._iDisplayStart= +0);else if("next"==b)0<=a._iDisplayLength?a._iDisplayStart+a._iDisplayLengthh(a.nTable).height()-a.oScroll.iLoadGap&&a.fnDisplayEnd()d.offsetHeight||"scroll"==h(d).css("overflow-y")))a.nTable.style.width=q(h(a.nTable).outerWidth()-a.oScroll.iBarWidth)}else""!==a.oScroll.sXInner?a.nTable.style.width= +q(a.oScroll.sXInner):i==h(d).width()&&h(d).height()i-a.oScroll.iBarWidth&&(a.nTable.style.width=q(i))):a.nTable.style.width=q(i);i=h(a.nTable).outerWidth();C(s,e);C(function(a){p.push(q(h(a).width()))},e);C(function(a,b){a.style.width=p[b]},g);h(e).height(0);null!==a.nTFoot&&(C(s,j),C(function(a){n.push(q(h(a).width()))},j),C(function(a,b){a.style.width=n[b]},o),h(j).height(0));C(function(a,b){a.innerHTML= +"";a.style.width=p[b]},e);null!==a.nTFoot&&C(function(a,b){a.innerHTML="";a.style.width=n[b]},j);if(h(a.nTable).outerWidth()d.offsetHeight||"scroll"==h(d).css("overflow-y")?i+a.oScroll.iBarWidth:i;if(r&&(d.scrollHeight>d.offsetHeight||"scroll"==h(d).css("overflow-y")))a.nTable.style.width=q(g-a.oScroll.iBarWidth);d.style.width=q(g);a.nScrollHead.style.width=q(g);null!==a.nTFoot&&(a.nScrollFoot.style.width=q(g));""===a.oScroll.sX?D(a,1,"The table cannot fit into the current element which will cause column misalignment. The table has been drawn at its minimum possible width."): +""!==a.oScroll.sXInner&&D(a,1,"The table cannot fit into the current element which will cause column misalignment. Increase the sScrollXInner value or remove it to allow automatic calculation")}else d.style.width=q("100%"),a.nScrollHead.style.width=q("100%"),null!==a.nTFoot&&(a.nScrollFoot.style.width=q("100%"));""===a.oScroll.sY&&r&&(d.style.height=q(a.nTable.offsetHeight+a.oScroll.iBarWidth));""!==a.oScroll.sY&&a.oScroll.bCollapse&&(d.style.height=q(a.oScroll.sY),r=""!==a.oScroll.sX&&a.nTable.offsetWidth> +d.offsetWidth?a.oScroll.iBarWidth:0,a.nTable.offsetHeightd.clientHeight||"scroll"==h(d).css("overflow-y");b.style.paddingRight=c?a.oScroll.iBarWidth+"px":"0px";null!==a.nTFoot&&(R.style.width=q(r),l.style.width=q(r),l.style.paddingRight=c?a.oScroll.iBarWidth+"px":"0px");h(d).scroll();if(a.bSorted||a.bFiltered)d.scrollTop=0}function C(a,b,c){for(var d= +0,i=0,f=b.length,g,e;itd",b));j=N(a,f);for(f=d=0;fc)return null;if(null===a.aoData[c].nTr){var d=l.createElement("td");d.innerHTML=v(a,c,b,"");return d}return J(a,c)[b]}function Pa(a,b){for(var c=-1,d=-1,i=0;i/g,"");e.length>c&&(c=e.length,d=i)}return d}function q(a){if(null===a)return"0px";if("number"==typeof a)return 0>a?"0px":a+"px";var b=a.charCodeAt(a.length-1); +return 48>b||57/g,""),i=q[c].nTh,i.removeAttribute("aria-sort"),i.removeAttribute("aria-label"),q[c].bSortable?0d&&d++;f=RegExp(f+"[123]");var o;b=0;for(c=a.length;b
')[0];l.body.appendChild(b);a.oBrowser.bScrollOversize= +100===h("#DT_BrowserTest",b)[0].offsetWidth?!0:!1;l.body.removeChild(b)}function Va(a){return function(){var b=[s(this[j.ext.iApiIndex])].concat(Array.prototype.slice.call(arguments));return j.ext.oApi[a].apply(this,b)}}var U=/\[.*?\]$/,Wa=X.JSON?JSON.stringify:function(a){var b=typeof a;if("object"!==b||null===a)return"string"===b&&(a='"'+a+'"'),a+"";var c,d,e=[],f=h.isArray(a);for(c in a)d=a[c],b=typeof d,"string"===b?d='"'+d+'"':"object"===b&&null!==d&&(d=Wa(d)),e.push((f?"":'"'+c+'":')+d);return(f? +"[":"{")+e+(f?"]":"}")};this.$=function(a,b){var c,d,e=[],f;d=s(this[j.ext.iApiIndex]);var g=d.aoData,o=d.aiDisplay,k=d.aiDisplayMaster;b||(b={});b=h.extend({},{filter:"none",order:"current",page:"all"},b);if("current"==b.page){c=d._iDisplayStart;for(d=d.fnDisplayEnd();c=d.fnRecordsDisplay()&&(d._iDisplayStart-=d._iDisplayLength,0>d._iDisplayStart&&(d._iDisplayStart=0));if(c===n||c)y(d),x(d);return g};this.fnDestroy=function(a){var b=s(this[j.ext.iApiIndex]),c=b.nTableWrapper.parentNode,d=b.nTBody,i,f,a=a===n?!1:a;b.bDestroying=!0;A(b,"aoDestroyCallback","destroy",[b]);if(!a){i=0;for(f=b.aoColumns.length;itr>td."+b.oClasses.sRowEmpty,b.nTable).parent().remove();b.nTable!=b.nTHead.parentNode&&(h(b.nTable).children("thead").remove(),b.nTable.appendChild(b.nTHead));b.nTFoot&&b.nTable!=b.nTFoot.parentNode&&(h(b.nTable).children("tfoot").remove(),b.nTable.appendChild(b.nTFoot));b.nTable.parentNode.removeChild(b.nTable);h(b.nTableWrapper).remove();b.aaSorting=[];b.aaSortingFixed=[];P(b);h(T(b)).removeClass(b.asStripeClasses.join(" "));h("th, td",b.nTHead).removeClass([b.oClasses.sSortable,b.oClasses.sSortableAsc, +b.oClasses.sSortableDesc,b.oClasses.sSortableNone].join(" "));b.bJUI&&(h("th span."+b.oClasses.sSortIcon+", td span."+b.oClasses.sSortIcon,b.nTHead).remove(),h("th, td",b.nTHead).each(function(){var a=h("div."+b.oClasses.sSortJUIWrapper,this),c=a.contents();h(this).append(c);a.remove()}));!a&&b.nTableReinsertBefore?c.insertBefore(b.nTable,b.nTableReinsertBefore):a||c.appendChild(b.nTable);i=0;for(f=b.aoData.length;i=t(d);if(!m)for(e=a;et<"F"ip>')):h.extend(g.oClasses,j.ext.oStdClasses);h(this).addClass(g.oClasses.sTable);if(""!==g.oScroll.sX||""!==g.oScroll.sY)g.oScroll.iBarWidth=Qa();g.iInitDisplayStart===n&&(g.iInitDisplayStart=e.iDisplayStart, +g._iDisplayStart=e.iDisplayStart);e.bStateSave&&(g.oFeatures.bStateSave=!0,Sa(g,e),z(g,"aoDrawCallback",ra,"state_save"));null!==e.iDeferLoading&&(g.bDeferLoading=!0,a=h.isArray(e.iDeferLoading),g._iRecordsDisplay=a?e.iDeferLoading[0]:e.iDeferLoading,g._iRecordsTotal=a?e.iDeferLoading[1]:e.iDeferLoading);null!==e.aaData&&(f=!0);""!==e.oLanguage.sUrl?(g.oLanguage.sUrl=e.oLanguage.sUrl,h.getJSON(g.oLanguage.sUrl,null,function(a){pa(a);h.extend(true,g.oLanguage,e.oLanguage,a);ba(g)}),i=!0):h.extend(!0, +g.oLanguage,e.oLanguage);null===e.asStripeClasses&&(g.asStripeClasses=[g.oClasses.sStripeOdd,g.oClasses.sStripeEven]);b=g.asStripeClasses.length;g.asDestroyStripes=[];if(b){c=!1;d=h(this).children("tbody").children("tr:lt("+b+")");for(a=0;a=g.aoColumns.length&&(g.aaSorting[a][0]=0);var k=g.aoColumns[g.aaSorting[a][0]];g.aaSorting[a][2]===n&&(g.aaSorting[a][2]=0);e.aaSorting===n&&g.saved_aaSorting===n&&(g.aaSorting[a][1]= +k.asSorting[0]);c=0;for(d=k.asSorting.length;c=parseInt(n,10)};j.fnIsDataTable=function(e){for(var h=j.settings,m=0;me)return e;for(var h=e+"",e=h.split(""),j="",h=h.length,k=0;k'+k.sPrevious+''+k.sNext+"":'';h(j).append(k);var l=h("a",j), +k=l[0],l=l[1];e.oApi._fnBindAction(k,{action:"previous"},n);e.oApi._fnBindAction(l,{action:"next"},n);e.aanFeatures.p||(j.id=e.sTableId+"_paginate",k.id=e.sTableId+"_previous",l.id=e.sTableId+"_next",k.setAttribute("aria-controls",e.sTableId),l.setAttribute("aria-controls",e.sTableId))},fnUpdate:function(e){if(e.aanFeatures.p)for(var h=e.oClasses,j=e.aanFeatures.p,k,l=0,n=j.length;l'+k.sFirst+''+k.sPrevious+''+k.sNext+''+k.sLast+"");var t=h("a",j),k=t[0],l=t[1],r=t[2],t=t[3];e.oApi._fnBindAction(k,{action:"first"},n);e.oApi._fnBindAction(l,{action:"previous"},n);e.oApi._fnBindAction(r,{action:"next"},n);e.oApi._fnBindAction(t,{action:"last"},n);e.aanFeatures.p||(j.id=e.sTableId+"_paginate",k.id=e.sTableId+"_first",l.id=e.sTableId+"_previous",r.id=e.sTableId+"_next",t.id=e.sTableId+"_last")}, +fnUpdate:function(e,o){if(e.aanFeatures.p){var m=j.ext.oPagination.iFullNumbersShowPages,k=Math.floor(m/2),l=Math.ceil(e.fnRecordsDisplay()/e._iDisplayLength),n=Math.ceil(e._iDisplayStart/e._iDisplayLength)+1,t="",r,B=e.oClasses,u,M=e.aanFeatures.p,L=function(h){e.oApi._fnBindAction(this,{page:h+r-1},function(h){e.oApi._fnPageChange(e,h.data.page);o(e);h.preventDefault()})};-1===e._iDisplayLength?n=k=r=1:l=l-k?(r=l-m+1,k=l):(r=n-Math.ceil(m/2)+1,k=r+m-1);for(m=r;m<=k;m++)t+= +n!==m?''+e.fnFormatNumber(m)+"":''+e.fnFormatNumber(m)+"";m=0;for(k=M.length;mh?1:0},"string-desc":function(e,h){return eh?-1:0},"html-pre":function(e){return e.replace(/<.*?>/g,"").toLowerCase()},"html-asc":function(e,h){return eh?1:0},"html-desc":function(e,h){return e< +h?1:e>h?-1:0},"date-pre":function(e){e=Date.parse(e);if(isNaN(e)||""===e)e=Date.parse("01/01/1970 00:00:00");return e},"date-asc":function(e,h){return e-h},"date-desc":function(e,h){return h-e},"numeric-pre":function(e){return"-"==e||""===e?0:1*e},"numeric-asc":function(e,h){return e-h},"numeric-desc":function(e,h){return h-e}});h.extend(j.ext.aTypes,[function(e){if("number"===typeof e)return"numeric";if("string"!==typeof e)return null;var h,j=!1;h=e.charAt(0);if(-1=="0123456789-".indexOf(h))return null; +for(var k=1;k")?"html":null}]);h.fn.DataTable=j;h.fn.dataTable=j;h.fn.dataTableSettings=j.settings;h.fn.dataTableExt=j.ext};"function"===typeof define&&define.amd?define(["jquery"],L):jQuery&&!jQuery.fn.dataTable&& +L(jQuery)})(window,document); diff --git a/htdocs/themes/bootstrap/js/jquery.js b/htdocs/themes/bootstrap/js/jquery.js new file mode 100644 index 0000000..16ad06c --- /dev/null +++ b/htdocs/themes/bootstrap/js/jquery.js @@ -0,0 +1,4 @@ +/*! jQuery v1.7.2 jquery.com | jquery.org/license */ +(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cu(a){if(!cj[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){ck||(ck=c.createElement("iframe"),ck.frameBorder=ck.width=ck.height=0),b.appendChild(ck);if(!cl||!ck.createElement)cl=(ck.contentWindow||ck.contentDocument).document,cl.write((f.support.boxModel?"":"")+""),cl.close();d=cl.createElement(a),cl.body.appendChild(d),e=f.css(d,"display"),b.removeChild(ck)}cj[a]=e}return cj[a]}function ct(a,b){var c={};f.each(cp.concat.apply([],cp.slice(0,b)),function(){c[this]=a});return c}function cs(){cq=b}function cr(){setTimeout(cs,0);return cq=f.now()}function ci(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ch(){try{return new a.XMLHttpRequest}catch(b){}}function cb(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){if(c!=="border")for(;e=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?+d:j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.2",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a!=null&&a==a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){if(typeof c!="string"||!c)return null;var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c
a",d=p.getElementsByTagName("*"),e=p.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=p.getElementsByTagName("input")[0],b={leadingWhitespace:p.firstChild.nodeType===3,tbody:!p.getElementsByTagName("tbody").length,htmlSerialize:!!p.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:p.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,pixelMargin:!0},f.boxModel=b.boxModel=c.compatMode==="CSS1Compat",i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete p.test}catch(r){b.deleteExpando=!1}!p.addEventListener&&p.attachEvent&&p.fireEvent&&(p.attachEvent("onclick",function(){b.noCloneEvent=!1}),p.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),i.setAttribute("name","t"),p.appendChild(i),j=c.createDocumentFragment(),j.appendChild(p.lastChild),b.checkClone=j.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,j.removeChild(i),j.appendChild(p);if(p.attachEvent)for(n in{submit:1,change:1,focusin:1})m="on"+n,o=m in p,o||(p.setAttribute(m,"return;"),o=typeof p[m]=="function"),b[n+"Bubbles"]=o;j.removeChild(p),j=g=h=p=i=null,f(function(){var d,e,g,h,i,j,l,m,n,q,r,s,t,u=c.getElementsByTagName("body")[0];!u||(m=1,t="padding:0;margin:0;border:",r="position:absolute;top:0;left:0;width:1px;height:1px;",s=t+"0;visibility:hidden;",n="style='"+r+t+"5px solid #000;",q="
"+""+"
",d=c.createElement("div"),d.style.cssText=s+"width:0;height:0;position:static;top:0;margin-top:"+m+"px",u.insertBefore(d,u.firstChild),p=c.createElement("div"),d.appendChild(p),p.innerHTML="
t
",k=p.getElementsByTagName("td"),o=k[0].offsetHeight===0,k[0].style.display="",k[1].style.display="none",b.reliableHiddenOffsets=o&&k[0].offsetHeight===0,a.getComputedStyle&&(p.innerHTML="",l=c.createElement("div"),l.style.width="0",l.style.marginRight="0",p.style.width="2px",p.appendChild(l),b.reliableMarginRight=(parseInt((a.getComputedStyle(l,null)||{marginRight:0}).marginRight,10)||0)===0),typeof p.style.zoom!="undefined"&&(p.innerHTML="",p.style.width=p.style.padding="1px",p.style.border=0,p.style.overflow="hidden",p.style.display="inline",p.style.zoom=1,b.inlineBlockNeedsLayout=p.offsetWidth===3,p.style.display="block",p.style.overflow="visible",p.innerHTML="
",b.shrinkWrapBlocks=p.offsetWidth!==3),p.style.cssText=r+s,p.innerHTML=q,e=p.firstChild,g=e.firstChild,i=e.nextSibling.firstChild.firstChild,j={doesNotAddBorder:g.offsetTop!==5,doesAddBorderForTableAndCells:i.offsetTop===5},g.style.position="fixed",g.style.top="20px",j.fixedPosition=g.offsetTop===20||g.offsetTop===15,g.style.position=g.style.top="",e.style.overflow="hidden",e.style.position="relative",j.subtractsBorderForOverflowNotVisible=g.offsetTop===-5,j.doesNotIncludeMarginInBodyOffset=u.offsetTop!==m,a.getComputedStyle&&(p.style.marginTop="1%",b.pixelMargin=(a.getComputedStyle(p,null)||{marginTop:0}).marginTop!=="1%"),typeof d.style.zoom!="undefined"&&(d.style.zoom=1),u.removeChild(d),l=p=d=null,f.extend(b,j))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e1,null,!1)},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,b){a&&(b=(b||"fx")+"mark",f._data(a,b,(f._data(a,b)||0)+1))},_unmark:function(a,b,c){a!==!0&&(c=b,b=a,a=!1);if(b){c=c||"fx";var d=c+"mark",e=a?0:(f._data(b,d)||1)-1;e?f._data(b,d,e):(f.removeData(b,d,!0),n(b,c,"mark"))}},queue:function(a,b,c){var d;if(a){b=(b||"fx")+"queue",d=f._data(a,b),c&&(!d||f.isArray(c)?d=f._data(a,b,f.makeArray(c)):d.push(c));return d||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e={};d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),f._data(a,b+".run",e),d.call(a,function(){f.dequeue(a,b)},e)),c.length||(f.removeData(a,b+"queue "+b+".run",!0),n(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){var d=2;typeof a!="string"&&(c=a,a="fx",d--);if(arguments.length1)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,f.prop,a,b,arguments.length>1)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(p);for(c=0,d=this.length;c-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.type]||f.valHooks[this.nodeName.toLowerCase()];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.type]||f.valHooks[g.nodeName.toLowerCase()];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h,i=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;i=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/(?:^|\s)hover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function( +a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")};f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler,g=p.selector),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;le&&j.push({elem:this,matches:d.slice(e)});for(k=0;k0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));o.match.globalPOS=p;var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h0)for(h=g;h=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/]","i"),bd=/checked\s*(?:[^=]|=\s*.checked.)/i,be=/\/(java|ecma)script/i,bf=/^\s*",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div
","
"]),f.fn.extend({text:function(a){return f.access(this,function(a){return a===b?f.text(this):this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a))},null,a,arguments.length)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f +.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){return f.access(this,function(a){var c=this[0]||{},d=0,e=this.length;if(a===b)return c.nodeType===1?c.innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1>");try{for(;d1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||f.isXMLDoc(a)||!bc.test("<"+a.nodeName+">")?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g,h,i,j=[];b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);for(var k=0,l;(l=a[k])!=null;k++){typeof l=="number"&&(l+="");if(!l)continue;if(typeof l=="string")if(!_.test(l))l=b.createTextNode(l);else{l=l.replace(Y,"<$1>");var m=(Z.exec(l)||["",""])[1].toLowerCase(),n=bg[m]||bg._default,o=n[0],p=b.createElement("div"),q=bh.childNodes,r;b===c?bh.appendChild(p):U(b).appendChild(p),p.innerHTML=n[1]+l+n[2];while(o--)p=p.lastChild;if(!f.support.tbody){var s=$.test(l),t=m==="table"&&!s?p.firstChild&&p.firstChild.childNodes:n[1]===""&&!s?p.childNodes:[];for(i=t.length-1;i>=0;--i)f.nodeName(t[i],"tbody")&&!t[i].childNodes.length&&t[i].parentNode.removeChild(t[i])}!f.support.leadingWhitespace&&X.test(l)&&p.insertBefore(b.createTextNode(X.exec(l)[0]),p.firstChild),l=p.childNodes,p&&(p.parentNode.removeChild(p),q.length>0&&(r=q[q.length-1],r&&r.parentNode&&r.parentNode.removeChild(r)))}var u;if(!f.support.appendChecked)if(l[0]&&typeof (u=l.length)=="number")for(i=0;i1)},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=by(a,"opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d,h==="string"&&(g=bu.exec(d))&&(d=+(g[1]+1)*+g[2]+parseFloat(f.css(a,c)),h="number");if(d==null||h==="number"&&isNaN(d))return;h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(by)return by(a,c)},swap:function(a,b,c){var d={},e,f;for(f in b)d[f]=a.style[f],a.style[f]=b[f];e=c.call(a);for(f in b)a.style[f]=d[f];return e}}),f.curCSS=f.css,c.defaultView&&c.defaultView.getComputedStyle&&(bz=function(a,b){var c,d,e,g,h=a.style;b=b.replace(br,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b))),!f.support.pixelMargin&&e&&bv.test(b)&&bt.test(c)&&(g=h.width,h.width=c,c=e.width,h.width=g);return c}),c.documentElement.currentStyle&&(bA=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f==null&&g&&(e=g[b])&&(f=e),bt.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),by=bz||bA,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){if(c)return a.offsetWidth!==0?bB(a,b,d):f.swap(a,bw,function(){return bB(a,b,d)})},set:function(a,b){return bs.test(b)?b+"px":b}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bq.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bp,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bp.test(g)?g.replace(bp,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){return f.swap(a,{display:"inline-block"},function(){return b?by(a,"margin-right"):a.style.marginRight})}})}),f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)}),f.each({margin:"",padding:"",border:"Width"},function(a,b){f.cssHooks[a+b]={expand:function(c){var d,e=typeof c=="string"?c.split(" "):[c],f={};for(d=0;d<4;d++)f[a+bx[d]+b]=e[d]||e[d-2]||e[0];return f}}});var bC=/%20/g,bD=/\[\]$/,bE=/\r?\n/g,bF=/#.*$/,bG=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bH=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bI=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bJ=/^(?:GET|HEAD)$/,bK=/^\/\//,bL=/\?/,bM=/)<[^<]*)*<\/script>/gi,bN=/^(?:select|textarea)/i,bO=/\s+/,bP=/([?&])_=[^&]*/,bQ=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bR=f.fn.load,bS={},bT={},bU,bV,bW=["*/"]+["*"];try{bU=e.href}catch(bX){bU=c.createElement("a"),bU.href="",bU=bU.href}bV=bQ.exec(bU.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bR)return bR.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
").append(c.replace(bM,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bN.test(this.nodeName)||bH.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bE,"\r\n")}}):{name:b.name,value:c.replace(bE,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b$(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b$(a,b);return a},ajaxSettings:{url:bU,isLocal:bI.test(bV[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bW},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bY(bS),ajaxTransport:bY(bT),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?ca(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cb(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bG.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bF,"").replace(bK,bV[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bO),d.crossDomain==null&&(r=bQ.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bV[1]&&r[2]==bV[2]&&(r[3]||(r[1]==="http:"?80:443))==(bV[3]||(bV[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),bZ(bS,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bJ.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bL.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bP,"$1_="+x);d.url=y+(y===d.url?(bL.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bW+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=bZ(bT,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)b_(g,a[g],c,e);return d.join("&").replace(bC,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cc=f.now(),cd=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cc++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=typeof b.data=="string"&&/^application\/x\-www\-form\-urlencoded/.test(b.contentType);if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(cd.test(b.url)||e&&cd.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(cd,l),b.url===j&&(e&&(k=k.replace(cd,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var ce=a.ActiveXObject?function(){for(var a in cg)cg[a](0,1)}:!1,cf=0,cg;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ch()||ci()}:ch,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,ce&&delete cg[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n);try{m.text=h.responseText}catch(a){}try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cf,ce&&(cg||(cg={},f(a).unload(ce)),cg[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cj={},ck,cl,cm=/^(?:toggle|show|hide)$/,cn=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,co,cp=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cq;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(ct("show",3),a,b,c);for(var g=0,h=this.length;g=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,c){var d=/Y/.test(c);f.fn[a]=function(e){return f.access(this,function(a,e,g){var h=cy(a);if(g===b)return h?c in h?h[c]:f.support.boxModel&&h.document.documentElement[e]||h.document.body[e]:a[e];h?h.scrollTo(d?f(h).scrollLeft():g,d?g:f(h).scrollTop()):a[e]=g},a,e,arguments.length,null)}}),f.each({Height:"height",Width:"width"},function(a,c){var d="client"+a,e="scroll"+a,g="offset"+a;f.fn["inner"+a]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,c,"padding")):this[c]():null},f.fn["outer"+a]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,c,a?"margin":"border")):this[c]():null},f.fn[c]=function(a){return f.access(this,function(a,c,h){var i,j,k,l;if(f.isWindow(a)){i=a.document,j=i.documentElement[d];return f.support.boxModel&&j||i.body&&i.body[d]||j}if(a.nodeType===9){i=a.documentElement;if(i[d]>=i[e])return i[d];return Math.max(a.body[e],i[e],a.body[g],i[g])}if(h===b){k=f.css(a,c),l=parseFloat(k);return f.isNumeric(l)?l:k}f(a).css(c,h)},c,a,arguments.length,null)}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window); \ No newline at end of file diff --git a/htdocs/themes/bootstrap/js/jquery.timers.js b/htdocs/themes/bootstrap/js/jquery.timers.js new file mode 100644 index 0000000..d7fffe2 --- /dev/null +++ b/htdocs/themes/bootstrap/js/jquery.timers.js @@ -0,0 +1,140 @@ +jQuery.fn.extend({ + everyTime: function(interval, label, fn, times, belay) { + return this.each(function() { + jQuery.timer.add(this, interval, label, fn, times, belay); + }); + }, + oneTime: function(interval, label, fn) { + return this.each(function() { + jQuery.timer.add(this, interval, label, fn, 1); + }); + }, + stopTime: function(label, fn) { + return this.each(function() { + jQuery.timer.remove(this, label, fn); + }); + } +}); + +jQuery.extend({ + timer: { + guid: 1, + global: {}, + regex: /^([0-9]+)\s*(.*s)?$/, + powers: { + // Yeah this is major overkill... + 'ms': 1, + 'cs': 10, + 'ds': 100, + 's': 1000, + 'das': 10000, + 'hs': 100000, + 'ks': 1000000 + }, + timeParse: function(value) { + if (value == undefined || value == null) + return null; + var result = this.regex.exec(jQuery.trim(value.toString())); + if (result[2]) { + var num = parseInt(result[1], 10); + var mult = this.powers[result[2]] || 1; + return num * mult; + } else { + return value; + } + }, + add: function(element, interval, label, fn, times, belay) { + var counter = 0; + + if (jQuery.isFunction(label)) { + if (!times) + times = fn; + fn = label; + label = interval; + } + + interval = jQuery.timer.timeParse(interval); + + if (typeof interval != 'number' || isNaN(interval) || interval <= 0) + return; + + if (times && times.constructor != Number) { + belay = !!times; + times = 0; + } + + times = times || 0; + belay = belay || false; + + if (!element.$timers) + element.$timers = {}; + + if (!element.$timers[label]) + element.$timers[label] = {}; + + fn.$timerID = fn.$timerID || this.guid++; + + var handler = function() { + if (belay && this.inProgress) + return; + this.inProgress = true; + if ((++counter > times && times !== 0) || fn.call(element, counter) === false) + jQuery.timer.remove(element, label, fn); + this.inProgress = false; + }; + + handler.$timerID = fn.$timerID; + + if (!element.$timers[label][fn.$timerID]) + element.$timers[label][fn.$timerID] = window.setInterval(handler,interval); + + if ( !this.global[label] ) + this.global[label] = []; + this.global[label].push( element ); + + }, + remove: function(element, label, fn) { + var timers = element.$timers, ret; + + if ( timers ) { + + if (!label) { + for ( label in timers ) + this.remove(element, label, fn); + } else if ( timers[label] ) { + if ( fn ) { + if ( fn.$timerID ) { + window.clearInterval(timers[label][fn.$timerID]); + delete timers[label][fn.$timerID]; + } + } else { + for ( var fn in timers[label] ) { + window.clearInterval(timers[label][fn]); + delete timers[label][fn]; + } + } + + for ( ret in timers[label] ) break; + if ( !ret ) { + ret = null; + delete timers[label]; + } + } + + for ( ret in timers ) break; + if ( !ret ) + element.$timers = null; + } + } + } +}); + +if (jQuery.browser.msie) + jQuery(window).one("unload", function() { + var global = jQuery.timer.global; + for ( var label in global ) { + var els = global[label], i = els.length; + while ( --i ) + jQuery.timer.remove(els[i], label); + } + }); \ No newline at end of file diff --git a/htdocs/themes/bootstrap/js/stikked.js b/htdocs/themes/bootstrap/js/stikked.js new file mode 100644 index 0000000..cfd893a --- /dev/null +++ b/htdocs/themes/bootstrap/js/stikked.js @@ -0,0 +1,264 @@ +var ST = window.ST || {}; + +ST.init = function() { + ST.change(); + //ST.expand(); + ST.show_embed(); +}; + +ST.change = function() { + $('.change').oneTime(3000, + function() { + $(this).fadeOut(2000); + }); +}; + +ST.show_embed = function() { + $embed_field = $('#embed_field'); + $embed_field.hide(); + $embed_field.after('Show code'); + $('#show_code').on('click', function(e) { + e.preventDefault(); + $(this).hide(); + $embed_field.show().select(); + }); + $embed_field.on("blur", function() { + $(this).hide(); + $('#show_code').show(); + }); +}; + +/*ST.expand = function() { + $('.expand').click(function() { + if ($('.paste').hasClass('full')) { + return false; + } + var window_width = $(window).width(); + var spacer = 20; + if (window_width < 900) { + window_width = 900; + spacer = 0; + } + var new_width = (window_width - (spacer * 3)); + $('.text_formatted').animate({ + 'width': new_width + 'px', + 'left': '-' + (((window_width - 900) / 2 - spacer)) + 'px' + }, + 200); + return false; + }); +};*/ + +/* Set the defaults for DataTables initialisation */ +$.extend( true, $.fn.dataTable.defaults, { + "sDom": "<'row-fluid'<'span6'l><'span6'f>r>t<'row-fluid'<'span6'i><'span6'p>>", + "sPaginationType": "bootstrap", + "oLanguage": { + "sLengthMenu": "_MENU_ records per page" + } +} ); + + +/* Default class modification */ +$.extend( $.fn.dataTableExt.oStdClasses, { + "sWrapper": "dataTables_wrapper form-inline" +} ); + + +/* API method to get paging information */ +$.fn.dataTableExt.oApi.fnPagingInfo = function ( oSettings ) +{ + return { + "iStart": oSettings._iDisplayStart, + "iEnd": oSettings.fnDisplayEnd(), + "iLength": oSettings._iDisplayLength, + "iTotal": oSettings.fnRecordsTotal(), + "iFilteredTotal": oSettings.fnRecordsDisplay(), + "iPage": Math.ceil( oSettings._iDisplayStart / oSettings._iDisplayLength ), + "iTotalPages": Math.ceil( oSettings.fnRecordsDisplay() / oSettings._iDisplayLength ) + }; +}; + + +/* Bootstrap style pagination control */ +$.extend( $.fn.dataTableExt.oPagination, { + "bootstrap": { + "fnInit": function( oSettings, nPaging, fnDraw ) { + var oLang = oSettings.oLanguage.oPaginate; + var fnClickHandler = function ( e ) { + e.preventDefault(); + if ( oSettings.oApi._fnPageChange(oSettings, e.data.action) ) { + fnDraw( oSettings ); + } + }; + + $(nPaging).addClass('pagination').append( + '' + ); + var els = $('a', nPaging); + $(els[0]).bind( 'click.DT', { action: "previous" }, fnClickHandler ); + $(els[1]).bind( 'click.DT', { action: "next" }, fnClickHandler ); + }, + + "fnUpdate": function ( oSettings, fnDraw ) { + var iListLength = 5; + var oPaging = oSettings.oInstance.fnPagingInfo(); + var an = oSettings.aanFeatures.p; + var i, j, sClass, iStart, iEnd, iHalf=Math.floor(iListLength/2); + + if ( oPaging.iTotalPages < iListLength) { + iStart = 1; + iEnd = oPaging.iTotalPages; + } + else if ( oPaging.iPage <= iHalf ) { + iStart = 1; + iEnd = iListLength; + } else if ( oPaging.iPage >= (oPaging.iTotalPages-iHalf) ) { + iStart = oPaging.iTotalPages - iListLength + 1; + iEnd = oPaging.iTotalPages; + } else { + iStart = oPaging.iPage - iHalf + 1; + iEnd = iStart + iListLength - 1; + } + + for ( i=0, iLen=an.length ; i'+j+'') + .insertBefore( $('li:last', an[i])[0] ) + .bind('click', function (e) { + e.preventDefault(); + oSettings._iDisplayStart = (parseInt($('a', this).text(),10)-1) * oPaging.iLength; + fnDraw( oSettings ); + } ); + } + + // Add / remove disabled classes from the static elements + if ( oPaging.iPage === 0 ) { + $('li:first', an[i]).addClass('disabled'); + } else { + $('li:first', an[i]).removeClass('disabled'); + } + + if ( oPaging.iPage === oPaging.iTotalPages-1 || oPaging.iTotalPages === 0 ) { + $('li:last', an[i]).addClass('disabled'); + } else { + $('li:last', an[i]).removeClass('disabled'); + } + } + } + } +} ); + + +/* + * TableTools Bootstrap compatibility + * Required TableTools 2.1+ + */ +if ( $.fn.DataTable.TableTools ) { + // Set the classes that TableTools uses to something suitable for Bootstrap + $.extend( true, $.fn.DataTable.TableTools.classes, { + "container": "DTTT btn-group", + "buttons": { + "normal": "btn", + "disabled": "disabled" + }, + "collection": { + "container": "DTTT_dropdown dropdown-menu", + "buttons": { + "normal": "", + "disabled": "disabled" + } + }, + "print": { + "info": "DTTT_print_info modal" + }, + "select": { + "row": "active" + } + } ); + + // Have the collection use a bootstrap compatible dropdown + $.extend( true, $.fn.DataTable.TableTools.DEFAULTS.oTags, { + "collection": { + "container": "ul", + "button": "li", + "liner": "a" + } + } ); +} + +var CM = { + init: function () { + var txtAreas = $("textarea").length; + + if(txtAreas > 0) { + modes = $.parseJSON($('#codemirror_modes').text()); + + + var editor = CodeMirror.fromTextArea(document.getElementById("code"), { + mode: "scheme", + lineNumbers: true, + matchBrackets: true, + tabMode: "indent" + }); + + $('#lang').change(function() { + set_language(); + }); + + set_syntax = function(mode) { + editor.setOption('mode', mode); + }; + + set_language = function() { + + var lang = $('#lang').val(); + mode = modes[lang]; + + $.get(base_url + 'main/get_cm_js/' + lang, + function(data) { + if (data !== '') { + set_syntax(mode); + } else { + set_syntax(null); + } + }, + 'script' + ); + }; + + set_language(); + } + } +}; + +$(document).ready(function() { + ST.init(); + CM.init(); + if($('.table').length > 0) + { + $('.table').dataTable( { + "sDom": "<'row'<'span6'l><'span6'f>r>t<'row'<'span6'i><'span6'p>>", + "sPaginationType": "bootstrap", + "oLanguage": { + "sLengthMenu": "_MENU_ records per page" + }, + "aaSorting": [[4,'desc']], + "aoColumns": [ + null, + null, + null, + null, + { "iDataSort": 3} + ] + } ); + } +}); diff --git a/htdocs/themes/bootstrap/views/defaults/header.php b/htdocs/themes/bootstrap/views/defaults/header.php index fdad51e..bc84fb6 100644 --- a/htdocs/themes/bootstrap/views/defaults/header.php +++ b/htdocs/themes/bootstrap/views/defaults/header.php @@ -16,7 +16,7 @@ $page_title .= $this->config->item('site_name'); //Carabiner $this->carabiner->config(array( - 'script_dir' => 'static/js/', + 'script_dir' => 'themes/bootstrap/js/', 'style_dir' => 'themes/bootstrap/css/', 'cache_dir' => 'static/asset/', 'base_uri' => base_url(), From 708825d5c68e9e41bce39567236d85cee9e486bf Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 26 Mar 2013 16:33:41 +0100 Subject: [PATCH 16/26] caching for assets, js in default theme --- htdocs/application/controllers/theme_assets.php | 9 +++++++++ .../default}/js/codemirror/codemirror.js | 0 .../default}/js/codemirror/mode/clike/clike.js | 0 .../default}/js/codemirror/mode/clike/index.html | 0 .../default}/js/codemirror/mode/clojure/clojure.js | 0 .../default}/js/codemirror/mode/clojure/index.html | 0 .../default}/js/codemirror/mode/coffeescript/LICENSE | 0 .../js/codemirror/mode/coffeescript/coffeescript.js | 0 .../default}/js/codemirror/mode/coffeescript/index.html | 0 .../default}/js/codemirror/mode/css/css.js | 0 .../default}/js/codemirror/mode/css/index.html | 0 .../default}/js/codemirror/mode/diff/diff.css | 0 .../default}/js/codemirror/mode/diff/diff.js | 0 .../default}/js/codemirror/mode/diff/index.html | 0 .../default}/js/codemirror/mode/ecl/ecl.js | 0 .../default}/js/codemirror/mode/ecl/index.html | 0 .../default}/js/codemirror/mode/gfm/gfm.js | 0 .../default}/js/codemirror/mode/gfm/index.html | 0 .../default}/js/codemirror/mode/go/go.js | 0 .../default}/js/codemirror/mode/go/index.html | 0 .../default}/js/codemirror/mode/groovy/groovy.js | 0 .../default}/js/codemirror/mode/groovy/index.html | 0 .../default}/js/codemirror/mode/haskell/haskell.js | 0 .../default}/js/codemirror/mode/haskell/index.html | 0 .../js/codemirror/mode/htmlembedded/htmlembedded.js | 0 .../default}/js/codemirror/mode/htmlembedded/index.html | 0 .../default}/js/codemirror/mode/htmlmixed/htmlmixed.js | 0 .../default}/js/codemirror/mode/htmlmixed/index.html | 0 .../default}/js/codemirror/mode/javascript/index.html | 0 .../default}/js/codemirror/mode/javascript/javascript.js | 0 .../default}/js/codemirror/mode/jinja2/index.html | 0 .../default}/js/codemirror/mode/jinja2/jinja2.js | 0 .../default}/js/codemirror/mode/less/index.html | 0 .../default}/js/codemirror/mode/less/less.js | 0 .../default}/js/codemirror/mode/lua/index.html | 0 .../default}/js/codemirror/mode/lua/lua.js | 0 .../default}/js/codemirror/mode/markdown/index.html | 0 .../default}/js/codemirror/mode/markdown/markdown.js | 0 .../default}/js/codemirror/mode/mysql/index.html | 0 .../default}/js/codemirror/mode/mysql/mysql.js | 0 .../default}/js/codemirror/mode/ntriples/index.html | 0 .../default}/js/codemirror/mode/ntriples/ntriples.js | 0 .../default}/js/codemirror/mode/pascal/LICENSE | 0 .../default}/js/codemirror/mode/pascal/index.html | 0 .../default}/js/codemirror/mode/pascal/pascal.js | 0 .../default}/js/codemirror/mode/perl/LICENSE | 0 .../default}/js/codemirror/mode/perl/index.html | 0 .../default}/js/codemirror/mode/perl/perl.js | 0 .../default}/js/codemirror/mode/php/index.html | 0 .../default}/js/codemirror/mode/php/php.js | 0 .../default}/js/codemirror/mode/plsql/index.html | 0 .../default}/js/codemirror/mode/plsql/plsql.js | 0 .../default}/js/codemirror/mode/properties/index.html | 0 .../default}/js/codemirror/mode/properties/properties.js | 0 .../default}/js/codemirror/mode/python/LICENSE.txt | 0 .../default}/js/codemirror/mode/python/index.html | 0 .../default}/js/codemirror/mode/python/python.js | 0 .../default}/js/codemirror/mode/r/LICENSE | 0 .../default}/js/codemirror/mode/r/index.html | 0 .../{static => themes/default}/js/codemirror/mode/r/r.js | 0 .../default}/js/codemirror/mode/rpm/changes/changes.js | 0 .../default}/js/codemirror/mode/rpm/changes/index.html | 0 .../default}/js/codemirror/mode/rpm/spec/index.html | 0 .../default}/js/codemirror/mode/rpm/spec/spec.css | 0 .../default}/js/codemirror/mode/rpm/spec/spec.js | 0 .../default}/js/codemirror/mode/rst/index.html | 0 .../default}/js/codemirror/mode/rst/rst.js | 0 .../default}/js/codemirror/mode/ruby/LICENSE | 0 .../default}/js/codemirror/mode/ruby/index.html | 0 .../default}/js/codemirror/mode/ruby/ruby.js | 0 .../default}/js/codemirror/mode/rust/index.html | 0 .../default}/js/codemirror/mode/rust/rust.js | 0 .../default}/js/codemirror/mode/scheme/index.html | 0 .../default}/js/codemirror/mode/scheme/scheme.js | 0 .../default}/js/codemirror/mode/shell/shell.js | 0 .../default}/js/codemirror/mode/smalltalk/index.html | 0 .../default}/js/codemirror/mode/smalltalk/smalltalk.js | 0 .../default}/js/codemirror/mode/smarty/index.html | 0 .../default}/js/codemirror/mode/smarty/smarty.js | 0 .../default}/js/codemirror/mode/sparql/index.html | 0 .../default}/js/codemirror/mode/sparql/sparql.js | 0 .../default}/js/codemirror/mode/stex/index.html | 0 .../default}/js/codemirror/mode/stex/stex.js | 0 .../default}/js/codemirror/mode/stex/test.html | 0 .../default}/js/codemirror/mode/tiddlywiki/index.html | 0 .../js/codemirror/mode/tiddlywiki/tiddlywiki.css | 0 .../default}/js/codemirror/mode/tiddlywiki/tiddlywiki.js | 0 .../default}/js/codemirror/mode/vbscript/index.html | 0 .../default}/js/codemirror/mode/vbscript/vbscript.js | 0 .../default}/js/codemirror/mode/velocity/index.html | 0 .../default}/js/codemirror/mode/velocity/velocity.js | 0 .../default}/js/codemirror/mode/verilog/index.html | 0 .../default}/js/codemirror/mode/verilog/verilog.js | 0 .../default}/js/codemirror/mode/xml/index.html | 0 .../default}/js/codemirror/mode/xml/xml.js | 0 .../default}/js/codemirror/mode/xmlpure/index.html | 0 .../default}/js/codemirror/mode/xmlpure/xmlpure.js | 0 .../default}/js/codemirror/mode/xquery/LICENSE | 0 .../default}/js/codemirror/mode/xquery/index.html | 0 .../default}/js/codemirror/mode/xquery/test/index.html | 0 .../default}/js/codemirror/mode/xquery/test/testBase.js | 0 .../mode/xquery/test/testEmptySequenceKeyword.js | 0 .../js/codemirror/mode/xquery/test/testMultiAttr.js | 0 .../js/codemirror/mode/xquery/test/testNamespaces.js | 0 .../mode/xquery/test/testProcessingInstructions.js | 0 .../js/codemirror/mode/xquery/test/testQuotes.js | 0 .../default}/js/codemirror/mode/xquery/xquery.js | 0 .../default}/js/codemirror/mode/yaml/index.html | 0 .../default}/js/codemirror/mode/yaml/yaml.js | 0 .../default}/js/codemirror/util/closetag.js | 0 .../default}/js/codemirror/util/dialog.css | 0 .../default}/js/codemirror/util/dialog.js | 0 .../default}/js/codemirror/util/foldcode.js | 0 .../default}/js/codemirror/util/formatting.js | 0 .../default}/js/codemirror/util/javascript-hint.js | 0 .../default}/js/codemirror/util/match-highlighter.js | 0 .../default}/js/codemirror/util/overlay.js | 0 .../default}/js/codemirror/util/runmode.js | 0 .../default}/js/codemirror/util/search.js | 0 .../default}/js/codemirror/util/searchcursor.js | 0 .../default}/js/codemirror/util/simple-hint.css | 0 .../default}/js/codemirror/util/simple-hint.js | 0 htdocs/{static => themes/default}/js/codemirror_exec.js | 0 htdocs/{static => themes/default}/js/jquery.js | 0 htdocs/{static => themes/default}/js/jquery.timers.js | 0 htdocs/{static => themes/default}/js/stikked.js | 0 htdocs/themes/default/views/defaults/header.php | 2 +- 127 files changed, 10 insertions(+), 1 deletion(-) rename htdocs/{static => themes/default}/js/codemirror/codemirror.js (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/clike/clike.js (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/clike/index.html (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/clojure/clojure.js (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/clojure/index.html (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/coffeescript/LICENSE (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/coffeescript/coffeescript.js (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/coffeescript/index.html (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/css/css.js (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/css/index.html (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/diff/diff.css (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/diff/diff.js (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/diff/index.html (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/ecl/ecl.js (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/ecl/index.html (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/gfm/gfm.js (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/gfm/index.html (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/go/go.js (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/go/index.html (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/groovy/groovy.js (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/groovy/index.html (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/haskell/haskell.js (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/haskell/index.html (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/htmlembedded/htmlembedded.js (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/htmlembedded/index.html (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/htmlmixed/htmlmixed.js (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/htmlmixed/index.html (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/javascript/index.html (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/javascript/javascript.js (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/jinja2/index.html (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/jinja2/jinja2.js (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/less/index.html (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/less/less.js (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/lua/index.html (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/lua/lua.js (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/markdown/index.html (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/markdown/markdown.js (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/mysql/index.html (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/mysql/mysql.js (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/ntriples/index.html (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/ntriples/ntriples.js (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/pascal/LICENSE (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/pascal/index.html (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/pascal/pascal.js (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/perl/LICENSE (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/perl/index.html (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/perl/perl.js (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/php/index.html (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/php/php.js (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/plsql/index.html (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/plsql/plsql.js (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/properties/index.html (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/properties/properties.js (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/python/LICENSE.txt (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/python/index.html (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/python/python.js (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/r/LICENSE (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/r/index.html (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/r/r.js (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/rpm/changes/changes.js (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/rpm/changes/index.html (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/rpm/spec/index.html (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/rpm/spec/spec.css (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/rpm/spec/spec.js (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/rst/index.html (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/rst/rst.js (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/ruby/LICENSE (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/ruby/index.html (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/ruby/ruby.js (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/rust/index.html (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/rust/rust.js (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/scheme/index.html (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/scheme/scheme.js (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/shell/shell.js (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/smalltalk/index.html (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/smalltalk/smalltalk.js (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/smarty/index.html (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/smarty/smarty.js (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/sparql/index.html (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/sparql/sparql.js (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/stex/index.html (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/stex/stex.js (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/stex/test.html (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/tiddlywiki/index.html (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/tiddlywiki/tiddlywiki.css (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/tiddlywiki/tiddlywiki.js (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/vbscript/index.html (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/vbscript/vbscript.js (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/velocity/index.html (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/velocity/velocity.js (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/verilog/index.html (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/verilog/verilog.js (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/xml/index.html (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/xml/xml.js (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/xmlpure/index.html (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/xmlpure/xmlpure.js (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/xquery/LICENSE (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/xquery/index.html (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/xquery/test/index.html (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/xquery/test/testBase.js (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/xquery/test/testEmptySequenceKeyword.js (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/xquery/test/testMultiAttr.js (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/xquery/test/testNamespaces.js (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/xquery/test/testProcessingInstructions.js (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/xquery/test/testQuotes.js (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/xquery/xquery.js (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/yaml/index.html (100%) rename htdocs/{static => themes/default}/js/codemirror/mode/yaml/yaml.js (100%) rename htdocs/{static => themes/default}/js/codemirror/util/closetag.js (100%) rename htdocs/{static => themes/default}/js/codemirror/util/dialog.css (100%) rename htdocs/{static => themes/default}/js/codemirror/util/dialog.js (100%) rename htdocs/{static => themes/default}/js/codemirror/util/foldcode.js (100%) rename htdocs/{static => themes/default}/js/codemirror/util/formatting.js (100%) rename htdocs/{static => themes/default}/js/codemirror/util/javascript-hint.js (100%) rename htdocs/{static => themes/default}/js/codemirror/util/match-highlighter.js (100%) rename htdocs/{static => themes/default}/js/codemirror/util/overlay.js (100%) rename htdocs/{static => themes/default}/js/codemirror/util/runmode.js (100%) rename htdocs/{static => themes/default}/js/codemirror/util/search.js (100%) rename htdocs/{static => themes/default}/js/codemirror/util/searchcursor.js (100%) rename htdocs/{static => themes/default}/js/codemirror/util/simple-hint.css (100%) rename htdocs/{static => themes/default}/js/codemirror/util/simple-hint.js (100%) rename htdocs/{static => themes/default}/js/codemirror_exec.js (100%) rename htdocs/{static => themes/default}/js/jquery.js (100%) rename htdocs/{static => themes/default}/js/jquery.timers.js (100%) rename htdocs/{static => themes/default}/js/stikked.js (100%) diff --git a/htdocs/application/controllers/theme_assets.php b/htdocs/application/controllers/theme_assets.php index 5c57794..901da3e 100755 --- a/htdocs/application/controllers/theme_assets.php +++ b/htdocs/application/controllers/theme_assets.php @@ -6,6 +6,7 @@ * - css() * - images() * - js() + * - _expires_header() * Classes list: * - Theme_assets extends CI_Controller */ @@ -35,6 +36,7 @@ class Theme_assets extends CI_Controller //send header('Content-type: text/css'); + $this->_expires_header(1); readfile($file_path); } @@ -55,6 +57,7 @@ class Theme_assets extends CI_Controller //send header('Content-type: ' . mime_content_type($file_path)); + $this->_expires_header(30); readfile($file_path); } @@ -75,6 +78,12 @@ class Theme_assets extends CI_Controller //send header('Content-type: application/x-javascript'); + $this->_expires_header(30); readfile($file_path); } + private + function _expires_header($days) + { + header('Expires: ' . gmdate('D, d M Y H:i:s \G\M\T', time() + 60 * 60 * 24 * $days)); + } } diff --git a/htdocs/static/js/codemirror/codemirror.js b/htdocs/themes/default/js/codemirror/codemirror.js similarity index 100% rename from htdocs/static/js/codemirror/codemirror.js rename to htdocs/themes/default/js/codemirror/codemirror.js diff --git a/htdocs/static/js/codemirror/mode/clike/clike.js b/htdocs/themes/default/js/codemirror/mode/clike/clike.js similarity index 100% rename from htdocs/static/js/codemirror/mode/clike/clike.js rename to htdocs/themes/default/js/codemirror/mode/clike/clike.js diff --git a/htdocs/static/js/codemirror/mode/clike/index.html b/htdocs/themes/default/js/codemirror/mode/clike/index.html similarity index 100% rename from htdocs/static/js/codemirror/mode/clike/index.html rename to htdocs/themes/default/js/codemirror/mode/clike/index.html diff --git a/htdocs/static/js/codemirror/mode/clojure/clojure.js b/htdocs/themes/default/js/codemirror/mode/clojure/clojure.js similarity index 100% rename from htdocs/static/js/codemirror/mode/clojure/clojure.js rename to htdocs/themes/default/js/codemirror/mode/clojure/clojure.js diff --git a/htdocs/static/js/codemirror/mode/clojure/index.html b/htdocs/themes/default/js/codemirror/mode/clojure/index.html similarity index 100% rename from htdocs/static/js/codemirror/mode/clojure/index.html rename to htdocs/themes/default/js/codemirror/mode/clojure/index.html diff --git a/htdocs/static/js/codemirror/mode/coffeescript/LICENSE b/htdocs/themes/default/js/codemirror/mode/coffeescript/LICENSE similarity index 100% rename from htdocs/static/js/codemirror/mode/coffeescript/LICENSE rename to htdocs/themes/default/js/codemirror/mode/coffeescript/LICENSE diff --git a/htdocs/static/js/codemirror/mode/coffeescript/coffeescript.js b/htdocs/themes/default/js/codemirror/mode/coffeescript/coffeescript.js similarity index 100% rename from htdocs/static/js/codemirror/mode/coffeescript/coffeescript.js rename to htdocs/themes/default/js/codemirror/mode/coffeescript/coffeescript.js diff --git a/htdocs/static/js/codemirror/mode/coffeescript/index.html b/htdocs/themes/default/js/codemirror/mode/coffeescript/index.html similarity index 100% rename from htdocs/static/js/codemirror/mode/coffeescript/index.html rename to htdocs/themes/default/js/codemirror/mode/coffeescript/index.html diff --git a/htdocs/static/js/codemirror/mode/css/css.js b/htdocs/themes/default/js/codemirror/mode/css/css.js similarity index 100% rename from htdocs/static/js/codemirror/mode/css/css.js rename to htdocs/themes/default/js/codemirror/mode/css/css.js diff --git a/htdocs/static/js/codemirror/mode/css/index.html b/htdocs/themes/default/js/codemirror/mode/css/index.html similarity index 100% rename from htdocs/static/js/codemirror/mode/css/index.html rename to htdocs/themes/default/js/codemirror/mode/css/index.html diff --git a/htdocs/static/js/codemirror/mode/diff/diff.css b/htdocs/themes/default/js/codemirror/mode/diff/diff.css similarity index 100% rename from htdocs/static/js/codemirror/mode/diff/diff.css rename to htdocs/themes/default/js/codemirror/mode/diff/diff.css diff --git a/htdocs/static/js/codemirror/mode/diff/diff.js b/htdocs/themes/default/js/codemirror/mode/diff/diff.js similarity index 100% rename from htdocs/static/js/codemirror/mode/diff/diff.js rename to htdocs/themes/default/js/codemirror/mode/diff/diff.js diff --git a/htdocs/static/js/codemirror/mode/diff/index.html b/htdocs/themes/default/js/codemirror/mode/diff/index.html similarity index 100% rename from htdocs/static/js/codemirror/mode/diff/index.html rename to htdocs/themes/default/js/codemirror/mode/diff/index.html diff --git a/htdocs/static/js/codemirror/mode/ecl/ecl.js b/htdocs/themes/default/js/codemirror/mode/ecl/ecl.js similarity index 100% rename from htdocs/static/js/codemirror/mode/ecl/ecl.js rename to htdocs/themes/default/js/codemirror/mode/ecl/ecl.js diff --git a/htdocs/static/js/codemirror/mode/ecl/index.html b/htdocs/themes/default/js/codemirror/mode/ecl/index.html similarity index 100% rename from htdocs/static/js/codemirror/mode/ecl/index.html rename to htdocs/themes/default/js/codemirror/mode/ecl/index.html diff --git a/htdocs/static/js/codemirror/mode/gfm/gfm.js b/htdocs/themes/default/js/codemirror/mode/gfm/gfm.js similarity index 100% rename from htdocs/static/js/codemirror/mode/gfm/gfm.js rename to htdocs/themes/default/js/codemirror/mode/gfm/gfm.js diff --git a/htdocs/static/js/codemirror/mode/gfm/index.html b/htdocs/themes/default/js/codemirror/mode/gfm/index.html similarity index 100% rename from htdocs/static/js/codemirror/mode/gfm/index.html rename to htdocs/themes/default/js/codemirror/mode/gfm/index.html diff --git a/htdocs/static/js/codemirror/mode/go/go.js b/htdocs/themes/default/js/codemirror/mode/go/go.js similarity index 100% rename from htdocs/static/js/codemirror/mode/go/go.js rename to htdocs/themes/default/js/codemirror/mode/go/go.js diff --git a/htdocs/static/js/codemirror/mode/go/index.html b/htdocs/themes/default/js/codemirror/mode/go/index.html similarity index 100% rename from htdocs/static/js/codemirror/mode/go/index.html rename to htdocs/themes/default/js/codemirror/mode/go/index.html diff --git a/htdocs/static/js/codemirror/mode/groovy/groovy.js b/htdocs/themes/default/js/codemirror/mode/groovy/groovy.js similarity index 100% rename from htdocs/static/js/codemirror/mode/groovy/groovy.js rename to htdocs/themes/default/js/codemirror/mode/groovy/groovy.js diff --git a/htdocs/static/js/codemirror/mode/groovy/index.html b/htdocs/themes/default/js/codemirror/mode/groovy/index.html similarity index 100% rename from htdocs/static/js/codemirror/mode/groovy/index.html rename to htdocs/themes/default/js/codemirror/mode/groovy/index.html diff --git a/htdocs/static/js/codemirror/mode/haskell/haskell.js b/htdocs/themes/default/js/codemirror/mode/haskell/haskell.js similarity index 100% rename from htdocs/static/js/codemirror/mode/haskell/haskell.js rename to htdocs/themes/default/js/codemirror/mode/haskell/haskell.js diff --git a/htdocs/static/js/codemirror/mode/haskell/index.html b/htdocs/themes/default/js/codemirror/mode/haskell/index.html similarity index 100% rename from htdocs/static/js/codemirror/mode/haskell/index.html rename to htdocs/themes/default/js/codemirror/mode/haskell/index.html diff --git a/htdocs/static/js/codemirror/mode/htmlembedded/htmlembedded.js b/htdocs/themes/default/js/codemirror/mode/htmlembedded/htmlembedded.js similarity index 100% rename from htdocs/static/js/codemirror/mode/htmlembedded/htmlembedded.js rename to htdocs/themes/default/js/codemirror/mode/htmlembedded/htmlembedded.js diff --git a/htdocs/static/js/codemirror/mode/htmlembedded/index.html b/htdocs/themes/default/js/codemirror/mode/htmlembedded/index.html similarity index 100% rename from htdocs/static/js/codemirror/mode/htmlembedded/index.html rename to htdocs/themes/default/js/codemirror/mode/htmlembedded/index.html diff --git a/htdocs/static/js/codemirror/mode/htmlmixed/htmlmixed.js b/htdocs/themes/default/js/codemirror/mode/htmlmixed/htmlmixed.js similarity index 100% rename from htdocs/static/js/codemirror/mode/htmlmixed/htmlmixed.js rename to htdocs/themes/default/js/codemirror/mode/htmlmixed/htmlmixed.js diff --git a/htdocs/static/js/codemirror/mode/htmlmixed/index.html b/htdocs/themes/default/js/codemirror/mode/htmlmixed/index.html similarity index 100% rename from htdocs/static/js/codemirror/mode/htmlmixed/index.html rename to htdocs/themes/default/js/codemirror/mode/htmlmixed/index.html diff --git a/htdocs/static/js/codemirror/mode/javascript/index.html b/htdocs/themes/default/js/codemirror/mode/javascript/index.html similarity index 100% rename from htdocs/static/js/codemirror/mode/javascript/index.html rename to htdocs/themes/default/js/codemirror/mode/javascript/index.html diff --git a/htdocs/static/js/codemirror/mode/javascript/javascript.js b/htdocs/themes/default/js/codemirror/mode/javascript/javascript.js similarity index 100% rename from htdocs/static/js/codemirror/mode/javascript/javascript.js rename to htdocs/themes/default/js/codemirror/mode/javascript/javascript.js diff --git a/htdocs/static/js/codemirror/mode/jinja2/index.html b/htdocs/themes/default/js/codemirror/mode/jinja2/index.html similarity index 100% rename from htdocs/static/js/codemirror/mode/jinja2/index.html rename to htdocs/themes/default/js/codemirror/mode/jinja2/index.html diff --git a/htdocs/static/js/codemirror/mode/jinja2/jinja2.js b/htdocs/themes/default/js/codemirror/mode/jinja2/jinja2.js similarity index 100% rename from htdocs/static/js/codemirror/mode/jinja2/jinja2.js rename to htdocs/themes/default/js/codemirror/mode/jinja2/jinja2.js diff --git a/htdocs/static/js/codemirror/mode/less/index.html b/htdocs/themes/default/js/codemirror/mode/less/index.html similarity index 100% rename from htdocs/static/js/codemirror/mode/less/index.html rename to htdocs/themes/default/js/codemirror/mode/less/index.html diff --git a/htdocs/static/js/codemirror/mode/less/less.js b/htdocs/themes/default/js/codemirror/mode/less/less.js similarity index 100% rename from htdocs/static/js/codemirror/mode/less/less.js rename to htdocs/themes/default/js/codemirror/mode/less/less.js diff --git a/htdocs/static/js/codemirror/mode/lua/index.html b/htdocs/themes/default/js/codemirror/mode/lua/index.html similarity index 100% rename from htdocs/static/js/codemirror/mode/lua/index.html rename to htdocs/themes/default/js/codemirror/mode/lua/index.html diff --git a/htdocs/static/js/codemirror/mode/lua/lua.js b/htdocs/themes/default/js/codemirror/mode/lua/lua.js similarity index 100% rename from htdocs/static/js/codemirror/mode/lua/lua.js rename to htdocs/themes/default/js/codemirror/mode/lua/lua.js diff --git a/htdocs/static/js/codemirror/mode/markdown/index.html b/htdocs/themes/default/js/codemirror/mode/markdown/index.html similarity index 100% rename from htdocs/static/js/codemirror/mode/markdown/index.html rename to htdocs/themes/default/js/codemirror/mode/markdown/index.html diff --git a/htdocs/static/js/codemirror/mode/markdown/markdown.js b/htdocs/themes/default/js/codemirror/mode/markdown/markdown.js similarity index 100% rename from htdocs/static/js/codemirror/mode/markdown/markdown.js rename to htdocs/themes/default/js/codemirror/mode/markdown/markdown.js diff --git a/htdocs/static/js/codemirror/mode/mysql/index.html b/htdocs/themes/default/js/codemirror/mode/mysql/index.html similarity index 100% rename from htdocs/static/js/codemirror/mode/mysql/index.html rename to htdocs/themes/default/js/codemirror/mode/mysql/index.html diff --git a/htdocs/static/js/codemirror/mode/mysql/mysql.js b/htdocs/themes/default/js/codemirror/mode/mysql/mysql.js similarity index 100% rename from htdocs/static/js/codemirror/mode/mysql/mysql.js rename to htdocs/themes/default/js/codemirror/mode/mysql/mysql.js diff --git a/htdocs/static/js/codemirror/mode/ntriples/index.html b/htdocs/themes/default/js/codemirror/mode/ntriples/index.html similarity index 100% rename from htdocs/static/js/codemirror/mode/ntriples/index.html rename to htdocs/themes/default/js/codemirror/mode/ntriples/index.html diff --git a/htdocs/static/js/codemirror/mode/ntriples/ntriples.js b/htdocs/themes/default/js/codemirror/mode/ntriples/ntriples.js similarity index 100% rename from htdocs/static/js/codemirror/mode/ntriples/ntriples.js rename to htdocs/themes/default/js/codemirror/mode/ntriples/ntriples.js diff --git a/htdocs/static/js/codemirror/mode/pascal/LICENSE b/htdocs/themes/default/js/codemirror/mode/pascal/LICENSE similarity index 100% rename from htdocs/static/js/codemirror/mode/pascal/LICENSE rename to htdocs/themes/default/js/codemirror/mode/pascal/LICENSE diff --git a/htdocs/static/js/codemirror/mode/pascal/index.html b/htdocs/themes/default/js/codemirror/mode/pascal/index.html similarity index 100% rename from htdocs/static/js/codemirror/mode/pascal/index.html rename to htdocs/themes/default/js/codemirror/mode/pascal/index.html diff --git a/htdocs/static/js/codemirror/mode/pascal/pascal.js b/htdocs/themes/default/js/codemirror/mode/pascal/pascal.js similarity index 100% rename from htdocs/static/js/codemirror/mode/pascal/pascal.js rename to htdocs/themes/default/js/codemirror/mode/pascal/pascal.js diff --git a/htdocs/static/js/codemirror/mode/perl/LICENSE b/htdocs/themes/default/js/codemirror/mode/perl/LICENSE similarity index 100% rename from htdocs/static/js/codemirror/mode/perl/LICENSE rename to htdocs/themes/default/js/codemirror/mode/perl/LICENSE diff --git a/htdocs/static/js/codemirror/mode/perl/index.html b/htdocs/themes/default/js/codemirror/mode/perl/index.html similarity index 100% rename from htdocs/static/js/codemirror/mode/perl/index.html rename to htdocs/themes/default/js/codemirror/mode/perl/index.html diff --git a/htdocs/static/js/codemirror/mode/perl/perl.js b/htdocs/themes/default/js/codemirror/mode/perl/perl.js similarity index 100% rename from htdocs/static/js/codemirror/mode/perl/perl.js rename to htdocs/themes/default/js/codemirror/mode/perl/perl.js diff --git a/htdocs/static/js/codemirror/mode/php/index.html b/htdocs/themes/default/js/codemirror/mode/php/index.html similarity index 100% rename from htdocs/static/js/codemirror/mode/php/index.html rename to htdocs/themes/default/js/codemirror/mode/php/index.html diff --git a/htdocs/static/js/codemirror/mode/php/php.js b/htdocs/themes/default/js/codemirror/mode/php/php.js similarity index 100% rename from htdocs/static/js/codemirror/mode/php/php.js rename to htdocs/themes/default/js/codemirror/mode/php/php.js diff --git a/htdocs/static/js/codemirror/mode/plsql/index.html b/htdocs/themes/default/js/codemirror/mode/plsql/index.html similarity index 100% rename from htdocs/static/js/codemirror/mode/plsql/index.html rename to htdocs/themes/default/js/codemirror/mode/plsql/index.html diff --git a/htdocs/static/js/codemirror/mode/plsql/plsql.js b/htdocs/themes/default/js/codemirror/mode/plsql/plsql.js similarity index 100% rename from htdocs/static/js/codemirror/mode/plsql/plsql.js rename to htdocs/themes/default/js/codemirror/mode/plsql/plsql.js diff --git a/htdocs/static/js/codemirror/mode/properties/index.html b/htdocs/themes/default/js/codemirror/mode/properties/index.html similarity index 100% rename from htdocs/static/js/codemirror/mode/properties/index.html rename to htdocs/themes/default/js/codemirror/mode/properties/index.html diff --git a/htdocs/static/js/codemirror/mode/properties/properties.js b/htdocs/themes/default/js/codemirror/mode/properties/properties.js similarity index 100% rename from htdocs/static/js/codemirror/mode/properties/properties.js rename to htdocs/themes/default/js/codemirror/mode/properties/properties.js diff --git a/htdocs/static/js/codemirror/mode/python/LICENSE.txt b/htdocs/themes/default/js/codemirror/mode/python/LICENSE.txt similarity index 100% rename from htdocs/static/js/codemirror/mode/python/LICENSE.txt rename to htdocs/themes/default/js/codemirror/mode/python/LICENSE.txt diff --git a/htdocs/static/js/codemirror/mode/python/index.html b/htdocs/themes/default/js/codemirror/mode/python/index.html similarity index 100% rename from htdocs/static/js/codemirror/mode/python/index.html rename to htdocs/themes/default/js/codemirror/mode/python/index.html diff --git a/htdocs/static/js/codemirror/mode/python/python.js b/htdocs/themes/default/js/codemirror/mode/python/python.js similarity index 100% rename from htdocs/static/js/codemirror/mode/python/python.js rename to htdocs/themes/default/js/codemirror/mode/python/python.js diff --git a/htdocs/static/js/codemirror/mode/r/LICENSE b/htdocs/themes/default/js/codemirror/mode/r/LICENSE similarity index 100% rename from htdocs/static/js/codemirror/mode/r/LICENSE rename to htdocs/themes/default/js/codemirror/mode/r/LICENSE diff --git a/htdocs/static/js/codemirror/mode/r/index.html b/htdocs/themes/default/js/codemirror/mode/r/index.html similarity index 100% rename from htdocs/static/js/codemirror/mode/r/index.html rename to htdocs/themes/default/js/codemirror/mode/r/index.html diff --git a/htdocs/static/js/codemirror/mode/r/r.js b/htdocs/themes/default/js/codemirror/mode/r/r.js similarity index 100% rename from htdocs/static/js/codemirror/mode/r/r.js rename to htdocs/themes/default/js/codemirror/mode/r/r.js diff --git a/htdocs/static/js/codemirror/mode/rpm/changes/changes.js b/htdocs/themes/default/js/codemirror/mode/rpm/changes/changes.js similarity index 100% rename from htdocs/static/js/codemirror/mode/rpm/changes/changes.js rename to htdocs/themes/default/js/codemirror/mode/rpm/changes/changes.js diff --git a/htdocs/static/js/codemirror/mode/rpm/changes/index.html b/htdocs/themes/default/js/codemirror/mode/rpm/changes/index.html similarity index 100% rename from htdocs/static/js/codemirror/mode/rpm/changes/index.html rename to htdocs/themes/default/js/codemirror/mode/rpm/changes/index.html diff --git a/htdocs/static/js/codemirror/mode/rpm/spec/index.html b/htdocs/themes/default/js/codemirror/mode/rpm/spec/index.html similarity index 100% rename from htdocs/static/js/codemirror/mode/rpm/spec/index.html rename to htdocs/themes/default/js/codemirror/mode/rpm/spec/index.html diff --git a/htdocs/static/js/codemirror/mode/rpm/spec/spec.css b/htdocs/themes/default/js/codemirror/mode/rpm/spec/spec.css similarity index 100% rename from htdocs/static/js/codemirror/mode/rpm/spec/spec.css rename to htdocs/themes/default/js/codemirror/mode/rpm/spec/spec.css diff --git a/htdocs/static/js/codemirror/mode/rpm/spec/spec.js b/htdocs/themes/default/js/codemirror/mode/rpm/spec/spec.js similarity index 100% rename from htdocs/static/js/codemirror/mode/rpm/spec/spec.js rename to htdocs/themes/default/js/codemirror/mode/rpm/spec/spec.js diff --git a/htdocs/static/js/codemirror/mode/rst/index.html b/htdocs/themes/default/js/codemirror/mode/rst/index.html similarity index 100% rename from htdocs/static/js/codemirror/mode/rst/index.html rename to htdocs/themes/default/js/codemirror/mode/rst/index.html diff --git a/htdocs/static/js/codemirror/mode/rst/rst.js b/htdocs/themes/default/js/codemirror/mode/rst/rst.js similarity index 100% rename from htdocs/static/js/codemirror/mode/rst/rst.js rename to htdocs/themes/default/js/codemirror/mode/rst/rst.js diff --git a/htdocs/static/js/codemirror/mode/ruby/LICENSE b/htdocs/themes/default/js/codemirror/mode/ruby/LICENSE similarity index 100% rename from htdocs/static/js/codemirror/mode/ruby/LICENSE rename to htdocs/themes/default/js/codemirror/mode/ruby/LICENSE diff --git a/htdocs/static/js/codemirror/mode/ruby/index.html b/htdocs/themes/default/js/codemirror/mode/ruby/index.html similarity index 100% rename from htdocs/static/js/codemirror/mode/ruby/index.html rename to htdocs/themes/default/js/codemirror/mode/ruby/index.html diff --git a/htdocs/static/js/codemirror/mode/ruby/ruby.js b/htdocs/themes/default/js/codemirror/mode/ruby/ruby.js similarity index 100% rename from htdocs/static/js/codemirror/mode/ruby/ruby.js rename to htdocs/themes/default/js/codemirror/mode/ruby/ruby.js diff --git a/htdocs/static/js/codemirror/mode/rust/index.html b/htdocs/themes/default/js/codemirror/mode/rust/index.html similarity index 100% rename from htdocs/static/js/codemirror/mode/rust/index.html rename to htdocs/themes/default/js/codemirror/mode/rust/index.html diff --git a/htdocs/static/js/codemirror/mode/rust/rust.js b/htdocs/themes/default/js/codemirror/mode/rust/rust.js similarity index 100% rename from htdocs/static/js/codemirror/mode/rust/rust.js rename to htdocs/themes/default/js/codemirror/mode/rust/rust.js diff --git a/htdocs/static/js/codemirror/mode/scheme/index.html b/htdocs/themes/default/js/codemirror/mode/scheme/index.html similarity index 100% rename from htdocs/static/js/codemirror/mode/scheme/index.html rename to htdocs/themes/default/js/codemirror/mode/scheme/index.html diff --git a/htdocs/static/js/codemirror/mode/scheme/scheme.js b/htdocs/themes/default/js/codemirror/mode/scheme/scheme.js similarity index 100% rename from htdocs/static/js/codemirror/mode/scheme/scheme.js rename to htdocs/themes/default/js/codemirror/mode/scheme/scheme.js diff --git a/htdocs/static/js/codemirror/mode/shell/shell.js b/htdocs/themes/default/js/codemirror/mode/shell/shell.js similarity index 100% rename from htdocs/static/js/codemirror/mode/shell/shell.js rename to htdocs/themes/default/js/codemirror/mode/shell/shell.js diff --git a/htdocs/static/js/codemirror/mode/smalltalk/index.html b/htdocs/themes/default/js/codemirror/mode/smalltalk/index.html similarity index 100% rename from htdocs/static/js/codemirror/mode/smalltalk/index.html rename to htdocs/themes/default/js/codemirror/mode/smalltalk/index.html diff --git a/htdocs/static/js/codemirror/mode/smalltalk/smalltalk.js b/htdocs/themes/default/js/codemirror/mode/smalltalk/smalltalk.js similarity index 100% rename from htdocs/static/js/codemirror/mode/smalltalk/smalltalk.js rename to htdocs/themes/default/js/codemirror/mode/smalltalk/smalltalk.js diff --git a/htdocs/static/js/codemirror/mode/smarty/index.html b/htdocs/themes/default/js/codemirror/mode/smarty/index.html similarity index 100% rename from htdocs/static/js/codemirror/mode/smarty/index.html rename to htdocs/themes/default/js/codemirror/mode/smarty/index.html diff --git a/htdocs/static/js/codemirror/mode/smarty/smarty.js b/htdocs/themes/default/js/codemirror/mode/smarty/smarty.js similarity index 100% rename from htdocs/static/js/codemirror/mode/smarty/smarty.js rename to htdocs/themes/default/js/codemirror/mode/smarty/smarty.js diff --git a/htdocs/static/js/codemirror/mode/sparql/index.html b/htdocs/themes/default/js/codemirror/mode/sparql/index.html similarity index 100% rename from htdocs/static/js/codemirror/mode/sparql/index.html rename to htdocs/themes/default/js/codemirror/mode/sparql/index.html diff --git a/htdocs/static/js/codemirror/mode/sparql/sparql.js b/htdocs/themes/default/js/codemirror/mode/sparql/sparql.js similarity index 100% rename from htdocs/static/js/codemirror/mode/sparql/sparql.js rename to htdocs/themes/default/js/codemirror/mode/sparql/sparql.js diff --git a/htdocs/static/js/codemirror/mode/stex/index.html b/htdocs/themes/default/js/codemirror/mode/stex/index.html similarity index 100% rename from htdocs/static/js/codemirror/mode/stex/index.html rename to htdocs/themes/default/js/codemirror/mode/stex/index.html diff --git a/htdocs/static/js/codemirror/mode/stex/stex.js b/htdocs/themes/default/js/codemirror/mode/stex/stex.js similarity index 100% rename from htdocs/static/js/codemirror/mode/stex/stex.js rename to htdocs/themes/default/js/codemirror/mode/stex/stex.js diff --git a/htdocs/static/js/codemirror/mode/stex/test.html b/htdocs/themes/default/js/codemirror/mode/stex/test.html similarity index 100% rename from htdocs/static/js/codemirror/mode/stex/test.html rename to htdocs/themes/default/js/codemirror/mode/stex/test.html diff --git a/htdocs/static/js/codemirror/mode/tiddlywiki/index.html b/htdocs/themes/default/js/codemirror/mode/tiddlywiki/index.html similarity index 100% rename from htdocs/static/js/codemirror/mode/tiddlywiki/index.html rename to htdocs/themes/default/js/codemirror/mode/tiddlywiki/index.html diff --git a/htdocs/static/js/codemirror/mode/tiddlywiki/tiddlywiki.css b/htdocs/themes/default/js/codemirror/mode/tiddlywiki/tiddlywiki.css similarity index 100% rename from htdocs/static/js/codemirror/mode/tiddlywiki/tiddlywiki.css rename to htdocs/themes/default/js/codemirror/mode/tiddlywiki/tiddlywiki.css diff --git a/htdocs/static/js/codemirror/mode/tiddlywiki/tiddlywiki.js b/htdocs/themes/default/js/codemirror/mode/tiddlywiki/tiddlywiki.js similarity index 100% rename from htdocs/static/js/codemirror/mode/tiddlywiki/tiddlywiki.js rename to htdocs/themes/default/js/codemirror/mode/tiddlywiki/tiddlywiki.js diff --git a/htdocs/static/js/codemirror/mode/vbscript/index.html b/htdocs/themes/default/js/codemirror/mode/vbscript/index.html similarity index 100% rename from htdocs/static/js/codemirror/mode/vbscript/index.html rename to htdocs/themes/default/js/codemirror/mode/vbscript/index.html diff --git a/htdocs/static/js/codemirror/mode/vbscript/vbscript.js b/htdocs/themes/default/js/codemirror/mode/vbscript/vbscript.js similarity index 100% rename from htdocs/static/js/codemirror/mode/vbscript/vbscript.js rename to htdocs/themes/default/js/codemirror/mode/vbscript/vbscript.js diff --git a/htdocs/static/js/codemirror/mode/velocity/index.html b/htdocs/themes/default/js/codemirror/mode/velocity/index.html similarity index 100% rename from htdocs/static/js/codemirror/mode/velocity/index.html rename to htdocs/themes/default/js/codemirror/mode/velocity/index.html diff --git a/htdocs/static/js/codemirror/mode/velocity/velocity.js b/htdocs/themes/default/js/codemirror/mode/velocity/velocity.js similarity index 100% rename from htdocs/static/js/codemirror/mode/velocity/velocity.js rename to htdocs/themes/default/js/codemirror/mode/velocity/velocity.js diff --git a/htdocs/static/js/codemirror/mode/verilog/index.html b/htdocs/themes/default/js/codemirror/mode/verilog/index.html similarity index 100% rename from htdocs/static/js/codemirror/mode/verilog/index.html rename to htdocs/themes/default/js/codemirror/mode/verilog/index.html diff --git a/htdocs/static/js/codemirror/mode/verilog/verilog.js b/htdocs/themes/default/js/codemirror/mode/verilog/verilog.js similarity index 100% rename from htdocs/static/js/codemirror/mode/verilog/verilog.js rename to htdocs/themes/default/js/codemirror/mode/verilog/verilog.js diff --git a/htdocs/static/js/codemirror/mode/xml/index.html b/htdocs/themes/default/js/codemirror/mode/xml/index.html similarity index 100% rename from htdocs/static/js/codemirror/mode/xml/index.html rename to htdocs/themes/default/js/codemirror/mode/xml/index.html diff --git a/htdocs/static/js/codemirror/mode/xml/xml.js b/htdocs/themes/default/js/codemirror/mode/xml/xml.js similarity index 100% rename from htdocs/static/js/codemirror/mode/xml/xml.js rename to htdocs/themes/default/js/codemirror/mode/xml/xml.js diff --git a/htdocs/static/js/codemirror/mode/xmlpure/index.html b/htdocs/themes/default/js/codemirror/mode/xmlpure/index.html similarity index 100% rename from htdocs/static/js/codemirror/mode/xmlpure/index.html rename to htdocs/themes/default/js/codemirror/mode/xmlpure/index.html diff --git a/htdocs/static/js/codemirror/mode/xmlpure/xmlpure.js b/htdocs/themes/default/js/codemirror/mode/xmlpure/xmlpure.js similarity index 100% rename from htdocs/static/js/codemirror/mode/xmlpure/xmlpure.js rename to htdocs/themes/default/js/codemirror/mode/xmlpure/xmlpure.js diff --git a/htdocs/static/js/codemirror/mode/xquery/LICENSE b/htdocs/themes/default/js/codemirror/mode/xquery/LICENSE similarity index 100% rename from htdocs/static/js/codemirror/mode/xquery/LICENSE rename to htdocs/themes/default/js/codemirror/mode/xquery/LICENSE diff --git a/htdocs/static/js/codemirror/mode/xquery/index.html b/htdocs/themes/default/js/codemirror/mode/xquery/index.html similarity index 100% rename from htdocs/static/js/codemirror/mode/xquery/index.html rename to htdocs/themes/default/js/codemirror/mode/xquery/index.html diff --git a/htdocs/static/js/codemirror/mode/xquery/test/index.html b/htdocs/themes/default/js/codemirror/mode/xquery/test/index.html similarity index 100% rename from htdocs/static/js/codemirror/mode/xquery/test/index.html rename to htdocs/themes/default/js/codemirror/mode/xquery/test/index.html diff --git a/htdocs/static/js/codemirror/mode/xquery/test/testBase.js b/htdocs/themes/default/js/codemirror/mode/xquery/test/testBase.js similarity index 100% rename from htdocs/static/js/codemirror/mode/xquery/test/testBase.js rename to htdocs/themes/default/js/codemirror/mode/xquery/test/testBase.js diff --git a/htdocs/static/js/codemirror/mode/xquery/test/testEmptySequenceKeyword.js b/htdocs/themes/default/js/codemirror/mode/xquery/test/testEmptySequenceKeyword.js similarity index 100% rename from htdocs/static/js/codemirror/mode/xquery/test/testEmptySequenceKeyword.js rename to htdocs/themes/default/js/codemirror/mode/xquery/test/testEmptySequenceKeyword.js diff --git a/htdocs/static/js/codemirror/mode/xquery/test/testMultiAttr.js b/htdocs/themes/default/js/codemirror/mode/xquery/test/testMultiAttr.js similarity index 100% rename from htdocs/static/js/codemirror/mode/xquery/test/testMultiAttr.js rename to htdocs/themes/default/js/codemirror/mode/xquery/test/testMultiAttr.js diff --git a/htdocs/static/js/codemirror/mode/xquery/test/testNamespaces.js b/htdocs/themes/default/js/codemirror/mode/xquery/test/testNamespaces.js similarity index 100% rename from htdocs/static/js/codemirror/mode/xquery/test/testNamespaces.js rename to htdocs/themes/default/js/codemirror/mode/xquery/test/testNamespaces.js diff --git a/htdocs/static/js/codemirror/mode/xquery/test/testProcessingInstructions.js b/htdocs/themes/default/js/codemirror/mode/xquery/test/testProcessingInstructions.js similarity index 100% rename from htdocs/static/js/codemirror/mode/xquery/test/testProcessingInstructions.js rename to htdocs/themes/default/js/codemirror/mode/xquery/test/testProcessingInstructions.js diff --git a/htdocs/static/js/codemirror/mode/xquery/test/testQuotes.js b/htdocs/themes/default/js/codemirror/mode/xquery/test/testQuotes.js similarity index 100% rename from htdocs/static/js/codemirror/mode/xquery/test/testQuotes.js rename to htdocs/themes/default/js/codemirror/mode/xquery/test/testQuotes.js diff --git a/htdocs/static/js/codemirror/mode/xquery/xquery.js b/htdocs/themes/default/js/codemirror/mode/xquery/xquery.js similarity index 100% rename from htdocs/static/js/codemirror/mode/xquery/xquery.js rename to htdocs/themes/default/js/codemirror/mode/xquery/xquery.js diff --git a/htdocs/static/js/codemirror/mode/yaml/index.html b/htdocs/themes/default/js/codemirror/mode/yaml/index.html similarity index 100% rename from htdocs/static/js/codemirror/mode/yaml/index.html rename to htdocs/themes/default/js/codemirror/mode/yaml/index.html diff --git a/htdocs/static/js/codemirror/mode/yaml/yaml.js b/htdocs/themes/default/js/codemirror/mode/yaml/yaml.js similarity index 100% rename from htdocs/static/js/codemirror/mode/yaml/yaml.js rename to htdocs/themes/default/js/codemirror/mode/yaml/yaml.js diff --git a/htdocs/static/js/codemirror/util/closetag.js b/htdocs/themes/default/js/codemirror/util/closetag.js similarity index 100% rename from htdocs/static/js/codemirror/util/closetag.js rename to htdocs/themes/default/js/codemirror/util/closetag.js diff --git a/htdocs/static/js/codemirror/util/dialog.css b/htdocs/themes/default/js/codemirror/util/dialog.css similarity index 100% rename from htdocs/static/js/codemirror/util/dialog.css rename to htdocs/themes/default/js/codemirror/util/dialog.css diff --git a/htdocs/static/js/codemirror/util/dialog.js b/htdocs/themes/default/js/codemirror/util/dialog.js similarity index 100% rename from htdocs/static/js/codemirror/util/dialog.js rename to htdocs/themes/default/js/codemirror/util/dialog.js diff --git a/htdocs/static/js/codemirror/util/foldcode.js b/htdocs/themes/default/js/codemirror/util/foldcode.js similarity index 100% rename from htdocs/static/js/codemirror/util/foldcode.js rename to htdocs/themes/default/js/codemirror/util/foldcode.js diff --git a/htdocs/static/js/codemirror/util/formatting.js b/htdocs/themes/default/js/codemirror/util/formatting.js similarity index 100% rename from htdocs/static/js/codemirror/util/formatting.js rename to htdocs/themes/default/js/codemirror/util/formatting.js diff --git a/htdocs/static/js/codemirror/util/javascript-hint.js b/htdocs/themes/default/js/codemirror/util/javascript-hint.js similarity index 100% rename from htdocs/static/js/codemirror/util/javascript-hint.js rename to htdocs/themes/default/js/codemirror/util/javascript-hint.js diff --git a/htdocs/static/js/codemirror/util/match-highlighter.js b/htdocs/themes/default/js/codemirror/util/match-highlighter.js similarity index 100% rename from htdocs/static/js/codemirror/util/match-highlighter.js rename to htdocs/themes/default/js/codemirror/util/match-highlighter.js diff --git a/htdocs/static/js/codemirror/util/overlay.js b/htdocs/themes/default/js/codemirror/util/overlay.js similarity index 100% rename from htdocs/static/js/codemirror/util/overlay.js rename to htdocs/themes/default/js/codemirror/util/overlay.js diff --git a/htdocs/static/js/codemirror/util/runmode.js b/htdocs/themes/default/js/codemirror/util/runmode.js similarity index 100% rename from htdocs/static/js/codemirror/util/runmode.js rename to htdocs/themes/default/js/codemirror/util/runmode.js diff --git a/htdocs/static/js/codemirror/util/search.js b/htdocs/themes/default/js/codemirror/util/search.js similarity index 100% rename from htdocs/static/js/codemirror/util/search.js rename to htdocs/themes/default/js/codemirror/util/search.js diff --git a/htdocs/static/js/codemirror/util/searchcursor.js b/htdocs/themes/default/js/codemirror/util/searchcursor.js similarity index 100% rename from htdocs/static/js/codemirror/util/searchcursor.js rename to htdocs/themes/default/js/codemirror/util/searchcursor.js diff --git a/htdocs/static/js/codemirror/util/simple-hint.css b/htdocs/themes/default/js/codemirror/util/simple-hint.css similarity index 100% rename from htdocs/static/js/codemirror/util/simple-hint.css rename to htdocs/themes/default/js/codemirror/util/simple-hint.css diff --git a/htdocs/static/js/codemirror/util/simple-hint.js b/htdocs/themes/default/js/codemirror/util/simple-hint.js similarity index 100% rename from htdocs/static/js/codemirror/util/simple-hint.js rename to htdocs/themes/default/js/codemirror/util/simple-hint.js diff --git a/htdocs/static/js/codemirror_exec.js b/htdocs/themes/default/js/codemirror_exec.js similarity index 100% rename from htdocs/static/js/codemirror_exec.js rename to htdocs/themes/default/js/codemirror_exec.js diff --git a/htdocs/static/js/jquery.js b/htdocs/themes/default/js/jquery.js similarity index 100% rename from htdocs/static/js/jquery.js rename to htdocs/themes/default/js/jquery.js diff --git a/htdocs/static/js/jquery.timers.js b/htdocs/themes/default/js/jquery.timers.js similarity index 100% rename from htdocs/static/js/jquery.timers.js rename to htdocs/themes/default/js/jquery.timers.js diff --git a/htdocs/static/js/stikked.js b/htdocs/themes/default/js/stikked.js similarity index 100% rename from htdocs/static/js/stikked.js rename to htdocs/themes/default/js/stikked.js diff --git a/htdocs/themes/default/views/defaults/header.php b/htdocs/themes/default/views/defaults/header.php index b44104c..1bbf4e5 100755 --- a/htdocs/themes/default/views/defaults/header.php +++ b/htdocs/themes/default/views/defaults/header.php @@ -18,7 +18,7 @@ $theme = $this->config->item('theme'); //Carabiner $this->carabiner->config(array( - 'script_dir' => 'static/js/', + 'script_dir' => 'themes/default/js/', 'style_dir' => 'themes/' . $theme . '/css/', 'cache_dir' => 'static/asset/', 'base_uri' => base_url(), From ced4445dd1d66d3510d0c5ca2b8783eb82ae5562 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 26 Mar 2013 17:00:06 +0100 Subject: [PATCH 17/26] simplification --- htdocs/application/controllers/theme_assets.php | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/htdocs/application/controllers/theme_assets.php b/htdocs/application/controllers/theme_assets.php index 901da3e..5d02a88 100755 --- a/htdocs/application/controllers/theme_assets.php +++ b/htdocs/application/controllers/theme_assets.php @@ -17,15 +17,15 @@ class Theme_assets extends CI_Controller function __construct() { parent::__construct(); + $this->theme = config_item('theme'); } function css() { - $theme = config_item('theme'); $css_file = $this->uri->segment(4); //file path - $file_path = 'themes/' . $theme . '/css/' . $css_file; + $file_path = 'themes/' . $this->theme . '/css/' . $css_file; //fallback to default css if view in theme not found @@ -42,11 +42,10 @@ class Theme_assets extends CI_Controller function images() { - $theme = config_item('theme'); $image_file = $this->uri->segment(4); //file path - $file_path = 'themes/' . $theme . '/images/' . $image_file; + $file_path = 'themes/' . $this->theme . '/images/' . $image_file; //fallback to default css if view in theme not found @@ -63,7 +62,6 @@ class Theme_assets extends CI_Controller function js() { - $theme = config_item('theme'); //get js $segments = $this->uri->segment_array(); @@ -74,7 +72,7 @@ class Theme_assets extends CI_Controller $js_file = str_replace('../', '', $js_file); //file path - $file_path = 'themes/' . $theme . '/js/' . $js_file; + $file_path = 'themes/' . $this->theme . '/js/' . $js_file; //send header('Content-type: application/x-javascript'); From 7b3dc57f74cf3231cce9580cc69c4b372bd899c6 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 26 Mar 2013 17:00:32 +0100 Subject: [PATCH 18/26] datatables are confusing with existing navigation --- htdocs/themes/bootstrap/views/defaults/footer.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/themes/bootstrap/views/defaults/footer.php b/htdocs/themes/bootstrap/views/defaults/footer.php index 791aa32..66410a4 100644 --- a/htdocs/themes/bootstrap/views/defaults/footer.php +++ b/htdocs/themes/bootstrap/views/defaults/footer.php @@ -14,7 +14,7 @@ $this->load->view('defaults/stats'); $this->carabiner->js('jquery.js'); $this->carabiner->js('bootstrap.min.js'); $this->carabiner->js('jquery.timers.js'); -$this->carabiner->js('jquery.dataTables.min.js'); +//$this->carabiner->js('jquery.dataTables.min.js'); $this->carabiner->js('codemirror/lib/codemirror.js'); From 2ce4ff679b425dcd82c1e70e54a14cf4c036aa02 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 26 Mar 2013 17:01:13 +0100 Subject: [PATCH 19/26] trends view --- htdocs/themes/bootstrap/views/trends.php | 39 ++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 htdocs/themes/bootstrap/views/trends.php diff --git a/htdocs/themes/bootstrap/views/trends.php b/htdocs/themes/bootstrap/views/trends.php new file mode 100644 index 0000000..58dd7e2 --- /dev/null +++ b/htdocs/themes/bootstrap/views/trends.php @@ -0,0 +1,39 @@ +load->view('defaults/header');?> + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
TitleNameLanguageHitsWhen
"> ago.
+ +

There have been no pastes :(

+ + +
+load->view('defaults/footer');?> From adb37a437f0da2bad05e5232fea548cb32cd6dc6 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 26 Mar 2013 17:19:33 +0100 Subject: [PATCH 20/26] -datatables --- htdocs/themes/bootstrap/css/bootstrap.css | 2 +- htdocs/themes/bootstrap/css/style.css | 10 +++++----- htdocs/themes/bootstrap/js/stikked.js | 19 +++++++++++-------- .../bootstrap/views/view/view_footer.php | 2 +- 4 files changed, 18 insertions(+), 15 deletions(-) diff --git a/htdocs/themes/bootstrap/css/bootstrap.css b/htdocs/themes/bootstrap/css/bootstrap.css index f1b2acc..c7dadc9 100644 --- a/htdocs/themes/bootstrap/css/bootstrap.css +++ b/htdocs/themes/bootstrap/css/bootstrap.css @@ -3620,7 +3620,7 @@ input[type="submit"].btn.btn-mini { font-size: 20px; font-weight: 200; line-height: 1; - color: #999999; + color: #ffffff; } .navbar .navbar-text { diff --git a/htdocs/themes/bootstrap/css/style.css b/htdocs/themes/bootstrap/css/style.css index 8216b2c..db66ffa 100644 --- a/htdocs/themes/bootstrap/css/style.css +++ b/htdocs/themes/bootstrap/css/style.css @@ -60,9 +60,9 @@ table.table thead .sorting_desc_disabled { *cursor: hand; } -table.table thead .sorting { background: url('../img/sort_both.png') no-repeat center right; } -table.table thead .sorting_asc { background: url('../img/sort_asc.png') no-repeat center right; } -table.table thead .sorting_desc { background: url('../img/sort_desc.png') no-repeat center right; } +table.table thead .sorting { background: url('../images/sort_both.png') no-repeat center right; } +table.table thead .sorting_asc { background: url('../images/sort_asc.png') no-repeat center right; } +table.table thead .sorting_desc { background: url('../images/sort_desc.png') no-repeat center right; } -table.table thead .sorting_asc_disabled { background: url('../img/sort_asc_disabled.png') no-repeat center right; } -table.table thead .sorting_desc_disabled { background: url('../img/sort_desc_disabled.png') no-repeat center right; } \ No newline at end of file +table.table thead .sorting_asc_disabled { background: url('../images/sort_asc_disabled.png') no-repeat center right; } +table.table thead .sorting_desc_disabled { background: url('../images/sort_desc_disabled.png') no-repeat center right; } diff --git a/htdocs/themes/bootstrap/js/stikked.js b/htdocs/themes/bootstrap/js/stikked.js index cfd893a..5455b3d 100644 --- a/htdocs/themes/bootstrap/js/stikked.js +++ b/htdocs/themes/bootstrap/js/stikked.js @@ -50,6 +50,7 @@ ST.show_embed = function() { };*/ /* Set the defaults for DataTables initialisation */ +/* $.extend( true, $.fn.dataTable.defaults, { "sDom": "<'row-fluid'<'span6'l><'span6'f>r>t<'row-fluid'<'span6'i><'span6'p>>", "sPaginationType": "bootstrap", @@ -59,13 +60,13 @@ $.extend( true, $.fn.dataTable.defaults, { } ); -/* Default class modification */ +// Default class modification $.extend( $.fn.dataTableExt.oStdClasses, { "sWrapper": "dataTables_wrapper form-inline" } ); -/* API method to get paging information */ +// API method to get paging information $.fn.dataTableExt.oApi.fnPagingInfo = function ( oSettings ) { return { @@ -79,8 +80,7 @@ $.fn.dataTableExt.oApi.fnPagingInfo = function ( oSettings ) }; }; - -/* Bootstrap style pagination control */ +// Bootstrap style pagination control $.extend( $.fn.dataTableExt.oPagination, { "bootstrap": { "fnInit": function( oSettings, nPaging, fnDraw ) { @@ -158,10 +158,10 @@ $.extend( $.fn.dataTableExt.oPagination, { } ); -/* - * TableTools Bootstrap compatibility - * Required TableTools 2.1+ - */ +// +// TableTools Bootstrap compatibility +// Required TableTools 2.1+ +// if ( $.fn.DataTable.TableTools ) { // Set the classes that TableTools uses to something suitable for Bootstrap $.extend( true, $.fn.DataTable.TableTools.classes, { @@ -194,6 +194,7 @@ if ( $.fn.DataTable.TableTools ) { } } ); } +*/ var CM = { init: function () { @@ -243,6 +244,7 @@ var CM = { $(document).ready(function() { ST.init(); CM.init(); + /* if($('.table').length > 0) { $('.table').dataTable( { @@ -261,4 +263,5 @@ $(document).ready(function() { ] } ); } + */ }); diff --git a/htdocs/themes/bootstrap/views/view/view_footer.php b/htdocs/themes/bootstrap/views/view/view_footer.php index 14c7bdc..9011e27 100644 --- a/htdocs/themes/bootstrap/views/view/view_footer.php +++ b/htdocs/themes/bootstrap/views/view/view_footer.php @@ -11,7 +11,7 @@ $this->load->view('defaults/stats'); $this->carabiner->js('jquery.js'); $this->carabiner->js('bootstrap.min.js'); $this->carabiner->js('jquery.timers.js'); -$this->carabiner->js('jquery.dataTables.min.js'); +//$this->carabiner->js('jquery.dataTables.min.js'); $this->carabiner->js('codemirror/lib/codemirror.js'); From 4513517492d9f584ba7c1d519807bd56202e42ef Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 26 Mar 2013 17:28:43 +0100 Subject: [PATCH 21/26] how to create your own theme --- CREATING_THEMES.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 CREATING_THEMES.md diff --git a/CREATING_THEMES.md b/CREATING_THEMES.md new file mode 100644 index 0000000..c10bc50 --- /dev/null +++ b/CREATING_THEMES.md @@ -0,0 +1,14 @@ +How to create your own theme +---------------------------- + +# Make a copy of the folder htdocs/themes/default, and name it as you like. +# Start customizing your files! +# Delete everything that has not been changed. + +For example: If you've only modified the main.css, create a folder named "css" in your theme folder, and put your main.css in there. +The theme engine will load your CSS, and falls back to files in the default theme that aren't in your theme folder. + +Examples: + +* gabdark - a theme with only a modified main.css +* bootstrap - a full theme with custom html, css, js and images From 40764c84edc6d33a90e569343f8438077c93ce45 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 26 Mar 2013 17:32:07 +0100 Subject: [PATCH 22/26] themes in readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d559554..685ebf3 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,7 @@ Changelog ### Version 0.8.5: Todo. Planned: Refactoring of pastes model, unit tests, diff-view, easier spamadmin, documentation, and more -* Themes! TODO: Make JS also part of the theme. Fix Bootstrap theme (but it's awesome!) +* Themes! Configure a different theme in config/stikked.php - or create your own ### Version 0.8.4: From c8ce286f65ea11aa299cb91f13cc546f2d646510 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 26 Mar 2013 17:32:34 +0100 Subject: [PATCH 23/26] files don't have to be executable --- htdocs/application/config/stikked.php | 0 htdocs/application/controllers/api.php | 0 htdocs/application/controllers/backup.php | 0 htdocs/application/controllers/index.html | 0 htdocs/application/controllers/iphone.php | 0 htdocs/application/controllers/main.php | 0 htdocs/application/controllers/spamadmin.php | 0 htdocs/application/controllers/theme_assets.php | 0 htdocs/application/controllers/unittest.php | 0 htdocs/application/core/Input.php | 0 htdocs/application/errors/error_404.php | 0 htdocs/application/errors/index.html | 0 htdocs/application/helpers/json_helper.php | 0 htdocs/application/libraries/index.html | 0 htdocs/application/libraries/process.php | 0 htdocs/application/models/index.html | 0 htdocs/application/models/pastes.php | 0 htdocs/system/core/Benchmark.php | 0 htdocs/system/core/CodeIgniter.php | 0 htdocs/system/core/Config.php | 0 htdocs/system/core/Exceptions.php | 0 htdocs/system/core/Hooks.php | 0 htdocs/system/core/Input.php | 0 htdocs/system/core/Lang.php | 0 htdocs/system/core/Model.php | 0 htdocs/system/core/Output.php | 0 htdocs/system/core/Router.php | 0 htdocs/system/core/Security.php | 0 htdocs/system/core/URI.php | 0 htdocs/system/database/DB.php | 0 htdocs/themes/default/css/fonts.css | 0 htdocs/themes/default/css/reset.css | 0 htdocs/themes/default/images/button.png | Bin .../js/codemirror/mode/properties/index.html | 0 .../js/codemirror/mode/properties/properties.js | 0 htdocs/themes/default/js/jquery.timers.js | 0 htdocs/themes/default/views/about.php | 0 htdocs/themes/default/views/api_help.php | 0 htdocs/themes/default/views/defaults/footer.php | 0 htdocs/themes/default/views/defaults/header.php | 0 htdocs/themes/default/views/defaults/stats.php | 0 htdocs/themes/default/views/home.php | 0 htdocs/themes/default/views/index.html | 0 htdocs/themes/default/views/iphone/footer.php | 0 htdocs/themes/default/views/iphone/header.php | 0 htdocs/themes/default/views/iphone/recent.php | 0 htdocs/themes/default/views/iphone/view.php | 0 htdocs/themes/default/views/list.php | 0 htdocs/themes/default/views/list_blocked_ips.php | 0 htdocs/themes/default/views/list_ips.php | 0 htdocs/themes/default/views/spam_detail.php | 0 htdocs/themes/default/views/trends.php | 0 htdocs/themes/default/views/view/api.php | 0 htdocs/themes/default/views/view/embed.php | 0 htdocs/themes/default/views/view/raw.php | 0 htdocs/themes/default/views/view/view.php | 0 htdocs/themes/default/views/view/view_footer.php | 0 57 files changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 htdocs/application/config/stikked.php mode change 100755 => 100644 htdocs/application/controllers/api.php mode change 100755 => 100644 htdocs/application/controllers/backup.php mode change 100755 => 100644 htdocs/application/controllers/index.html mode change 100755 => 100644 htdocs/application/controllers/iphone.php mode change 100755 => 100644 htdocs/application/controllers/main.php mode change 100755 => 100644 htdocs/application/controllers/spamadmin.php mode change 100755 => 100644 htdocs/application/controllers/theme_assets.php mode change 100755 => 100644 htdocs/application/controllers/unittest.php mode change 100755 => 100644 htdocs/application/core/Input.php mode change 100755 => 100644 htdocs/application/errors/error_404.php mode change 100755 => 100644 htdocs/application/errors/index.html mode change 100755 => 100644 htdocs/application/helpers/json_helper.php mode change 100755 => 100644 htdocs/application/libraries/index.html mode change 100755 => 100644 htdocs/application/libraries/process.php mode change 100755 => 100644 htdocs/application/models/index.html mode change 100755 => 100644 htdocs/application/models/pastes.php mode change 100755 => 100644 htdocs/system/core/Benchmark.php mode change 100755 => 100644 htdocs/system/core/CodeIgniter.php mode change 100755 => 100644 htdocs/system/core/Config.php mode change 100755 => 100644 htdocs/system/core/Exceptions.php mode change 100755 => 100644 htdocs/system/core/Hooks.php mode change 100755 => 100644 htdocs/system/core/Input.php mode change 100755 => 100644 htdocs/system/core/Lang.php mode change 100755 => 100644 htdocs/system/core/Model.php mode change 100755 => 100644 htdocs/system/core/Output.php mode change 100755 => 100644 htdocs/system/core/Router.php mode change 100755 => 100644 htdocs/system/core/Security.php mode change 100755 => 100644 htdocs/system/core/URI.php mode change 100755 => 100644 htdocs/system/database/DB.php mode change 100755 => 100644 htdocs/themes/default/css/fonts.css mode change 100755 => 100644 htdocs/themes/default/css/reset.css mode change 100755 => 100644 htdocs/themes/default/images/button.png mode change 100755 => 100644 htdocs/themes/default/js/codemirror/mode/properties/index.html mode change 100755 => 100644 htdocs/themes/default/js/codemirror/mode/properties/properties.js mode change 100755 => 100644 htdocs/themes/default/js/jquery.timers.js mode change 100755 => 100644 htdocs/themes/default/views/about.php mode change 100755 => 100644 htdocs/themes/default/views/api_help.php mode change 100755 => 100644 htdocs/themes/default/views/defaults/footer.php mode change 100755 => 100644 htdocs/themes/default/views/defaults/header.php mode change 100755 => 100644 htdocs/themes/default/views/defaults/stats.php mode change 100755 => 100644 htdocs/themes/default/views/home.php mode change 100755 => 100644 htdocs/themes/default/views/index.html mode change 100755 => 100644 htdocs/themes/default/views/iphone/footer.php mode change 100755 => 100644 htdocs/themes/default/views/iphone/header.php mode change 100755 => 100644 htdocs/themes/default/views/iphone/recent.php mode change 100755 => 100644 htdocs/themes/default/views/iphone/view.php mode change 100755 => 100644 htdocs/themes/default/views/list.php mode change 100755 => 100644 htdocs/themes/default/views/list_blocked_ips.php mode change 100755 => 100644 htdocs/themes/default/views/list_ips.php mode change 100755 => 100644 htdocs/themes/default/views/spam_detail.php mode change 100755 => 100644 htdocs/themes/default/views/trends.php mode change 100755 => 100644 htdocs/themes/default/views/view/api.php mode change 100755 => 100644 htdocs/themes/default/views/view/embed.php mode change 100755 => 100644 htdocs/themes/default/views/view/raw.php mode change 100755 => 100644 htdocs/themes/default/views/view/view.php mode change 100755 => 100644 htdocs/themes/default/views/view/view_footer.php diff --git a/htdocs/application/config/stikked.php b/htdocs/application/config/stikked.php old mode 100755 new mode 100644 diff --git a/htdocs/application/controllers/api.php b/htdocs/application/controllers/api.php old mode 100755 new mode 100644 diff --git a/htdocs/application/controllers/backup.php b/htdocs/application/controllers/backup.php old mode 100755 new mode 100644 diff --git a/htdocs/application/controllers/index.html b/htdocs/application/controllers/index.html old mode 100755 new mode 100644 diff --git a/htdocs/application/controllers/iphone.php b/htdocs/application/controllers/iphone.php old mode 100755 new mode 100644 diff --git a/htdocs/application/controllers/main.php b/htdocs/application/controllers/main.php old mode 100755 new mode 100644 diff --git a/htdocs/application/controllers/spamadmin.php b/htdocs/application/controllers/spamadmin.php old mode 100755 new mode 100644 diff --git a/htdocs/application/controllers/theme_assets.php b/htdocs/application/controllers/theme_assets.php old mode 100755 new mode 100644 diff --git a/htdocs/application/controllers/unittest.php b/htdocs/application/controllers/unittest.php old mode 100755 new mode 100644 diff --git a/htdocs/application/core/Input.php b/htdocs/application/core/Input.php old mode 100755 new mode 100644 diff --git a/htdocs/application/errors/error_404.php b/htdocs/application/errors/error_404.php old mode 100755 new mode 100644 diff --git a/htdocs/application/errors/index.html b/htdocs/application/errors/index.html old mode 100755 new mode 100644 diff --git a/htdocs/application/helpers/json_helper.php b/htdocs/application/helpers/json_helper.php old mode 100755 new mode 100644 diff --git a/htdocs/application/libraries/index.html b/htdocs/application/libraries/index.html old mode 100755 new mode 100644 diff --git a/htdocs/application/libraries/process.php b/htdocs/application/libraries/process.php old mode 100755 new mode 100644 diff --git a/htdocs/application/models/index.html b/htdocs/application/models/index.html old mode 100755 new mode 100644 diff --git a/htdocs/application/models/pastes.php b/htdocs/application/models/pastes.php old mode 100755 new mode 100644 diff --git a/htdocs/system/core/Benchmark.php b/htdocs/system/core/Benchmark.php old mode 100755 new mode 100644 diff --git a/htdocs/system/core/CodeIgniter.php b/htdocs/system/core/CodeIgniter.php old mode 100755 new mode 100644 diff --git a/htdocs/system/core/Config.php b/htdocs/system/core/Config.php old mode 100755 new mode 100644 diff --git a/htdocs/system/core/Exceptions.php b/htdocs/system/core/Exceptions.php old mode 100755 new mode 100644 diff --git a/htdocs/system/core/Hooks.php b/htdocs/system/core/Hooks.php old mode 100755 new mode 100644 diff --git a/htdocs/system/core/Input.php b/htdocs/system/core/Input.php old mode 100755 new mode 100644 diff --git a/htdocs/system/core/Lang.php b/htdocs/system/core/Lang.php old mode 100755 new mode 100644 diff --git a/htdocs/system/core/Model.php b/htdocs/system/core/Model.php old mode 100755 new mode 100644 diff --git a/htdocs/system/core/Output.php b/htdocs/system/core/Output.php old mode 100755 new mode 100644 diff --git a/htdocs/system/core/Router.php b/htdocs/system/core/Router.php old mode 100755 new mode 100644 diff --git a/htdocs/system/core/Security.php b/htdocs/system/core/Security.php old mode 100755 new mode 100644 diff --git a/htdocs/system/core/URI.php b/htdocs/system/core/URI.php old mode 100755 new mode 100644 diff --git a/htdocs/system/database/DB.php b/htdocs/system/database/DB.php old mode 100755 new mode 100644 diff --git a/htdocs/themes/default/css/fonts.css b/htdocs/themes/default/css/fonts.css old mode 100755 new mode 100644 diff --git a/htdocs/themes/default/css/reset.css b/htdocs/themes/default/css/reset.css old mode 100755 new mode 100644 diff --git a/htdocs/themes/default/images/button.png b/htdocs/themes/default/images/button.png old mode 100755 new mode 100644 diff --git a/htdocs/themes/default/js/codemirror/mode/properties/index.html b/htdocs/themes/default/js/codemirror/mode/properties/index.html old mode 100755 new mode 100644 diff --git a/htdocs/themes/default/js/codemirror/mode/properties/properties.js b/htdocs/themes/default/js/codemirror/mode/properties/properties.js old mode 100755 new mode 100644 diff --git a/htdocs/themes/default/js/jquery.timers.js b/htdocs/themes/default/js/jquery.timers.js old mode 100755 new mode 100644 diff --git a/htdocs/themes/default/views/about.php b/htdocs/themes/default/views/about.php old mode 100755 new mode 100644 diff --git a/htdocs/themes/default/views/api_help.php b/htdocs/themes/default/views/api_help.php old mode 100755 new mode 100644 diff --git a/htdocs/themes/default/views/defaults/footer.php b/htdocs/themes/default/views/defaults/footer.php old mode 100755 new mode 100644 diff --git a/htdocs/themes/default/views/defaults/header.php b/htdocs/themes/default/views/defaults/header.php old mode 100755 new mode 100644 diff --git a/htdocs/themes/default/views/defaults/stats.php b/htdocs/themes/default/views/defaults/stats.php old mode 100755 new mode 100644 diff --git a/htdocs/themes/default/views/home.php b/htdocs/themes/default/views/home.php old mode 100755 new mode 100644 diff --git a/htdocs/themes/default/views/index.html b/htdocs/themes/default/views/index.html old mode 100755 new mode 100644 diff --git a/htdocs/themes/default/views/iphone/footer.php b/htdocs/themes/default/views/iphone/footer.php old mode 100755 new mode 100644 diff --git a/htdocs/themes/default/views/iphone/header.php b/htdocs/themes/default/views/iphone/header.php old mode 100755 new mode 100644 diff --git a/htdocs/themes/default/views/iphone/recent.php b/htdocs/themes/default/views/iphone/recent.php old mode 100755 new mode 100644 diff --git a/htdocs/themes/default/views/iphone/view.php b/htdocs/themes/default/views/iphone/view.php old mode 100755 new mode 100644 diff --git a/htdocs/themes/default/views/list.php b/htdocs/themes/default/views/list.php old mode 100755 new mode 100644 diff --git a/htdocs/themes/default/views/list_blocked_ips.php b/htdocs/themes/default/views/list_blocked_ips.php old mode 100755 new mode 100644 diff --git a/htdocs/themes/default/views/list_ips.php b/htdocs/themes/default/views/list_ips.php old mode 100755 new mode 100644 diff --git a/htdocs/themes/default/views/spam_detail.php b/htdocs/themes/default/views/spam_detail.php old mode 100755 new mode 100644 diff --git a/htdocs/themes/default/views/trends.php b/htdocs/themes/default/views/trends.php old mode 100755 new mode 100644 diff --git a/htdocs/themes/default/views/view/api.php b/htdocs/themes/default/views/view/api.php old mode 100755 new mode 100644 diff --git a/htdocs/themes/default/views/view/embed.php b/htdocs/themes/default/views/view/embed.php old mode 100755 new mode 100644 diff --git a/htdocs/themes/default/views/view/raw.php b/htdocs/themes/default/views/view/raw.php old mode 100755 new mode 100644 diff --git a/htdocs/themes/default/views/view/view.php b/htdocs/themes/default/views/view/view.php old mode 100755 new mode 100644 diff --git a/htdocs/themes/default/views/view/view_footer.php b/htdocs/themes/default/views/view/view_footer.php old mode 100755 new mode 100644 From 47c88c0d8d37284d99c945a37ffc5ca54c49e1e7 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 26 Mar 2013 17:35:38 +0100 Subject: [PATCH 24/26] ordered list syntax --- CREATING_THEMES.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CREATING_THEMES.md b/CREATING_THEMES.md index c10bc50..90e2d04 100644 --- a/CREATING_THEMES.md +++ b/CREATING_THEMES.md @@ -1,9 +1,9 @@ How to create your own theme ---------------------------- -# Make a copy of the folder htdocs/themes/default, and name it as you like. -# Start customizing your files! -# Delete everything that has not been changed. +1. Make a copy of the folder htdocs/themes/default, and name it as you like. +2. Start customizing your files! +3. Delete everything that has not been changed. For example: If you've only modified the main.css, create a folder named "css" in your theme folder, and put your main.css in there. The theme engine will load your CSS, and falls back to files in the default theme that aren't in your theme folder. From b7776fcddaf21702570925feb6f166d57774873a Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 26 Mar 2013 17:36:29 +0100 Subject: [PATCH 25/26] perfectionism --- CREATING_THEMES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CREATING_THEMES.md b/CREATING_THEMES.md index 90e2d04..5fa6183 100644 --- a/CREATING_THEMES.md +++ b/CREATING_THEMES.md @@ -6,7 +6,7 @@ How to create your own theme 3. Delete everything that has not been changed. For example: If you've only modified the main.css, create a folder named "css" in your theme folder, and put your main.css in there. -The theme engine will load your CSS, and falls back to files in the default theme that aren't in your theme folder. +The theme engine will load your css, and falls back to files in the default theme that aren't in your theme folder. Examples: From ec2e3afba5cb5428c1bb7492eda3fe42fed42e01 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 26 Mar 2013 17:52:29 +0100 Subject: [PATCH 26/26] upgrade instructions --- README.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 685ebf3..49ab739 100644 --- a/README.md +++ b/README.md @@ -37,9 +37,18 @@ Changelog ### Version 0.8.5: -Todo. Planned: Refactoring of pastes model, unit tests, diff-view, easier spamadmin, documentation, and more * Themes! Configure a different theme in config/stikked.php - or create your own +#### Upgrade instructions + +The following line must be present config/stikked.php + +```php +$config['theme'] = 'default'; +``` + +You can choose between default, bootstrap, gabdark and gabdark3. + ### Version 0.8.4: * Trending pastes: http://paste.scratchbook.ch/trends