From e3fdad520663e7523300578504d3a2a9d74ef1ec Mon Sep 17 00:00:00 2001 From: "Timothy J. Warren" Date: Wed, 2 Apr 2014 17:08:50 -0400 Subject: [PATCH] Namespaces! --- autoload.php | 3 +- classes/abstract_driver.php | 12 +- classes/abstract_sql.php | 2 + classes/connection_manager.php | 20 +- classes/db_util.php | 4 + classes/driver_interface.php | 2 + classes/query_builder.php | 41 +- classes/query_builder_interface.php | 2 + classes/query_parser.php | 42 +- classes/sql_interface.php | 2 + common.php | 2 +- docs/classes.svg | 262 - ...n.html => Query.BadDBDriverException.html} | 12 +- ...ger.html => Query.Connection_Manager.html} | 38 +- ...html => Query.Driver.Abstract_Driver.html} | 37 +- ...QL.html => Query.Driver.Abstract_SQL.html} | 15 +- ...DB_Util.html => Query.Driver.DB_Util.html} | 15 +- ...tml => Query.Driver.Driver_Interface.html} | 23 +- ...rebird.html => Query.Driver.Firebird.html} | 31 +- ...html => Query.Driver.Firebird_Result.html} | 23 +- ...QL.html => Query.Driver.Firebird_SQL.html} | 15 +- ...l.html => Query.Driver.Firebird_Util.html} | 15 +- .../{MySQL.html => Query.Driver.MySQL.html} | 15 +- ...L_SQL.html => Query.Driver.MySQL_SQL.html} | 15 +- ...Util.html => Query.Driver.MySQL_Util.html} | 15 +- .../{PgSQL.html => Query.Driver.PgSQL.html} | 15 +- ...L_SQL.html => Query.Driver.PgSQL_SQL.html} | 15 +- ...Util.html => Query.Driver.PgSQL_Util.html} | 15 +- ...e.html => Query.Driver.SQL_Interface.html} | 15 +- .../{SQLite.html => Query.Driver.SQLite.html} | 17 +- ..._SQL.html => Query.Driver.SQLite_SQL.html} | 15 +- ...til.html => Query.Driver.SQLite_Util.html} | 15 +- ..._Builder.html => Query.Query_Builder.html} | 201 +- ...tml => Query.Query_Builder_Interface.html} | 148 +- ...ry_Parser.html => Query.Query_Parser.html} | 61 +- docs/classes/Query.Table_Builder.html | 423 + ...tml => Query.Table_Builder_Interface.html} | 16 +- docs/css/bootstrap-responsive.css | 567 - docs/css/bootstrap-responsive.min.css | 3 - docs/css/bootstrap.css | 3370 ------ docs/css/bootstrap.min.css | 611 -- docs/css/jquery.iviewer.css | 91 - docs/css/prettify.css | 1 - docs/css/template.css | 527 - docs/deprecated.html | 72 - docs/errors.html | 101 - docs/graph_class.html | 69 - docs/img/apple-touch-icon-114x114.png | Bin 28338 -> 0 bytes docs/img/apple-touch-icon-72x72.png | Bin 12751 -> 0 bytes docs/img/apple-touch-icon.png | Bin 8358 -> 0 bytes docs/img/favicon.ico | Bin 1150 -> 0 bytes docs/img/glyphicons-halflings-white.png | Bin 4352 -> 0 bytes docs/img/glyphicons-halflings.png | Bin 4352 -> 0 bytes docs/img/icons/arrow_down.png | Bin 606 -> 0 bytes docs/img/icons/arrow_right.png | Bin 628 -> 0 bytes docs/img/icons/class.png | Bin 395 -> 0 bytes docs/img/icons/constant.png | Bin 496 -> 0 bytes docs/img/icons/favicon.ico | Bin 1150 -> 0 bytes docs/img/icons/file-php.png | Bin 4017 -> 0 bytes docs/img/icons/file.gif | Bin 110 -> 0 bytes docs/img/icons/folder.gif | Bin 106 -> 0 bytes docs/img/icons/function.png | Bin 338 -> 0 bytes docs/img/icons/icon-folder-open-big.png | Bin 232 -> 0 bytes docs/img/icons/icon-th-big.png | Bin 106 -> 0 bytes docs/img/icons/icon_template.svg | 93 - docs/img/icons/interface.png | Bin 281 -> 0 bytes docs/img/icons/method.png | Bin 377 -> 0 bytes docs/img/icons/ok.png | Bin 3685 -> 0 bytes docs/img/icons/property.png | Bin 360 -> 0 bytes docs/img/icons/search.gif | Bin 152 -> 0 bytes docs/img/icons/variable.png | Bin 829 -> 0 bytes docs/img/icons/view_source.png | Bin 603 -> 0 bytes docs/img/icons/visibility_private.png | Bin 3433 -> 0 bytes docs/img/icons/visibility_protected.png | Bin 764 -> 0 bytes docs/img/icons/visibility_public.png | Bin 3451 -> 0 bytes docs/img/iviewer/grab.cur | Bin 1150 -> 0 bytes docs/img/iviewer/hand.cur | Bin 1150 -> 0 bytes docs/img/iviewer/iviewer.rotate_left.png | Bin 1493 -> 0 bytes docs/img/iviewer/iviewer.rotate_right.png | Bin 1482 -> 0 bytes docs/img/iviewer/iviewer.zoom_fit.png | Bin 1252 -> 0 bytes docs/img/iviewer/iviewer.zoom_fit2.gif | Bin 95 -> 0 bytes docs/img/iviewer/iviewer.zoom_in.png | Bin 1420 -> 0 bytes docs/img/iviewer/iviewer.zoom_in2.gif | Bin 90 -> 0 bytes docs/img/iviewer/iviewer.zoom_out.png | Bin 1416 -> 0 bytes docs/img/iviewer/iviewer.zoom_out2.gif | Bin 69 -> 0 bytes docs/img/iviewer/iviewer.zoom_zero.png | Bin 1091 -> 0 bytes docs/img/iviewer/iviewer.zoom_zero2.gif | Bin 98 -> 0 bytes docs/img/loader.gif | Bin 4726 -> 0 bytes docs/js/SVGPan.js | 232 - docs/js/bootstrap.js | 1722 --- docs/js/bootstrap.min.js | 1 - docs/js/jquery-1.4.2.min.js | 154 - docs/js/jquery-1.7.1.min.js | 9270 ----------------- docs/js/jquery-ui-1.8.2.custom.min.js | 1012 -- docs/js/jquery.cookie.js | 104 - docs/js/jquery.iviewer.js | 1045 -- docs/js/jquery.iviewer.min.js | 42 - docs/js/jquery.mousewheel.min.js | 13 - docs/js/jquery.panzoom.js | 467 - docs/js/jquery.splitter.js | 228 - docs/js/jquery.tools.min.js | 115 - docs/js/jquery.treeview.js | 256 - docs/js/menu.js | 31 - docs/js/prettify/lang-apollo.js | 2 - docs/js/prettify/lang-clj.js | 18 - docs/js/prettify/lang-css.js | 2 - docs/js/prettify/lang-go.js | 1 - docs/js/prettify/lang-hs.js | 2 - docs/js/prettify/lang-lisp.js | 3 - docs/js/prettify/lang-lua.js | 2 - docs/js/prettify/lang-ml.js | 2 - docs/js/prettify/lang-n.js | 4 - docs/js/prettify/lang-proto.js | 1 - docs/js/prettify/lang-scala.js | 2 - docs/js/prettify/lang-sql.js | 2 - docs/js/prettify/lang-tex.js | 1 - docs/js/prettify/lang-vb.js | 2 - docs/js/prettify/lang-vhdl.js | 3 - docs/js/prettify/lang-wiki.js | 2 - docs/js/prettify/lang-xq.js | 3 - docs/js/prettify/lang-yaml.js | 2 - docs/js/prettify/prettify.min.js | 28 - docs/js/sidebar.js | 45 - docs/js/template.js | 205 - docs/markers.html | 108 - .../Query.Driver.html} | 125 +- docs/namespaces/Query.html | 292 + docs/namespaces/global.html | 117 - docs/packages/Default.html | 72 - docs/packages/Query.Core.html | 155 - docs/packages/Query.Query_Builder.html | 113 - docs/packages/Query.Table_Builder.html | 103 - docs/packages/Query.html | 427 - docs/structure.xml | 7274 ------------- drivers/firebird/firebird_driver.php | 38 +- drivers/firebird/firebird_result.php | 42 +- drivers/firebird/firebird_sql.php | 2 + drivers/firebird/firebird_util.php | 4 +- drivers/mysql/mysql_driver.php | 6 +- drivers/mysql/mysql_sql.php | 2 + drivers/mysql/mysql_util.php | 4 +- drivers/pgsql/pgsql_driver.php | 2 + drivers/pgsql/pgsql_sql.php | 2 + drivers/pgsql/pgsql_util.php | 4 +- drivers/sqlite/sqlite_driver.php | 4 +- drivers/sqlite/sqlite_sql.php | 2 + drivers/sqlite/sqlite_util.php | 8 +- tests/bootstrap.php | 2 + tests/core/core.php | 1 + tests/core/db_qb_test.php | 4 +- tests/databases/firebird/FirebirdQBTest.php | 6 +- tests/databases/firebird/FirebirdTest.php | 6 +- tests/databases/mysql/MySQLQBTest.php | 14 +- tests/databases/mysql/MySQLTest.php | 10 +- tests/databases/pgsql/PgSQLQBTest.php | 4 +- tests/databases/pgsql/PgSQLTest.php | 9 +- tests/databases/sqlite/SqliteTest.php | 6 +- 157 files changed, 1452 insertions(+), 29664 deletions(-) delete mode 100644 docs/classes.svg rename docs/classes/{BadDBDriverException.html => Query.BadDBDriverException.html} (90%) rename docs/classes/{Connection_Manager.html => Query.Connection_Manager.html} (89%) rename docs/classes/{Abstract_Driver.html => Query.Driver.Abstract_Driver.html} (94%) rename docs/classes/{Abstract_SQL.html => Query.Driver.Abstract_SQL.html} (90%) rename docs/classes/{DB_Util.html => Query.Driver.DB_Util.html} (95%) rename docs/classes/{Driver_Interface.html => Query.Driver.Driver_Interface.html} (91%) rename docs/classes/{Firebird.html => Query.Driver.Firebird.html} (94%) rename docs/classes/{Firebird_Result.html => Query.Driver.Firebird_Result.html} (95%) rename docs/classes/{Firebird_SQL.html => Query.Driver.Firebird_SQL.html} (95%) rename docs/classes/{Firebird_Util.html => Query.Driver.Firebird_Util.html} (93%) rename docs/classes/{MySQL.html => Query.Driver.MySQL.html} (93%) rename docs/classes/{MySQL_SQL.html => Query.Driver.MySQL_SQL.html} (96%) rename docs/classes/{MySQL_Util.html => Query.Driver.MySQL_Util.html} (95%) rename docs/classes/{PgSQL.html => Query.Driver.PgSQL.html} (92%) rename docs/classes/{PgSQL_SQL.html => Query.Driver.PgSQL_SQL.html} (95%) rename docs/classes/{PgSQL_Util.html => Query.Driver.PgSQL_Util.html} (93%) rename docs/classes/{SQL_Interface.html => Query.Driver.SQL_Interface.html} (95%) rename docs/classes/{SQLite.html => Query.Driver.SQLite.html} (93%) rename docs/classes/{SQLite_SQL.html => Query.Driver.SQLite_SQL.html} (95%) rename docs/classes/{SQLite_Util.html => Query.Driver.SQLite_Util.html} (94%) rename docs/classes/{Query_Builder.html => Query.Query_Builder.html} (91%) rename docs/classes/{Query_Builder_Interface.html => Query.Query_Builder_Interface.html} (89%) rename docs/classes/{Query_Parser.html => Query.Query_Parser.html} (73%) create mode 100644 docs/classes/Query.Table_Builder.html rename docs/classes/{Table_Builder_Interface.html => Query.Table_Builder_Interface.html} (89%) delete mode 100644 docs/css/bootstrap-responsive.css delete mode 100644 docs/css/bootstrap-responsive.min.css delete mode 100644 docs/css/bootstrap.css delete mode 100644 docs/css/bootstrap.min.css delete mode 100644 docs/css/jquery.iviewer.css delete mode 100644 docs/css/prettify.css delete mode 100644 docs/css/template.css delete mode 100644 docs/deprecated.html delete mode 100644 docs/errors.html delete mode 100644 docs/graph_class.html delete mode 100644 docs/img/apple-touch-icon-114x114.png delete mode 100644 docs/img/apple-touch-icon-72x72.png delete mode 100644 docs/img/apple-touch-icon.png delete mode 100644 docs/img/favicon.ico delete mode 100644 docs/img/glyphicons-halflings-white.png delete mode 100644 docs/img/glyphicons-halflings.png delete mode 100644 docs/img/icons/arrow_down.png delete mode 100644 docs/img/icons/arrow_right.png delete mode 100644 docs/img/icons/class.png delete mode 100644 docs/img/icons/constant.png delete mode 100644 docs/img/icons/favicon.ico delete mode 100644 docs/img/icons/file-php.png delete mode 100644 docs/img/icons/file.gif delete mode 100644 docs/img/icons/folder.gif delete mode 100644 docs/img/icons/function.png delete mode 100644 docs/img/icons/icon-folder-open-big.png delete mode 100644 docs/img/icons/icon-th-big.png delete mode 100644 docs/img/icons/icon_template.svg delete mode 100644 docs/img/icons/interface.png delete mode 100644 docs/img/icons/method.png delete mode 100644 docs/img/icons/ok.png delete mode 100644 docs/img/icons/property.png delete mode 100644 docs/img/icons/search.gif delete mode 100644 docs/img/icons/variable.png delete mode 100644 docs/img/icons/view_source.png delete mode 100644 docs/img/icons/visibility_private.png delete mode 100644 docs/img/icons/visibility_protected.png delete mode 100644 docs/img/icons/visibility_public.png delete mode 100644 docs/img/iviewer/grab.cur delete mode 100644 docs/img/iviewer/hand.cur delete mode 100644 docs/img/iviewer/iviewer.rotate_left.png delete mode 100644 docs/img/iviewer/iviewer.rotate_right.png delete mode 100644 docs/img/iviewer/iviewer.zoom_fit.png delete mode 100644 docs/img/iviewer/iviewer.zoom_fit2.gif delete mode 100644 docs/img/iviewer/iviewer.zoom_in.png delete mode 100644 docs/img/iviewer/iviewer.zoom_in2.gif delete mode 100644 docs/img/iviewer/iviewer.zoom_out.png delete mode 100644 docs/img/iviewer/iviewer.zoom_out2.gif delete mode 100644 docs/img/iviewer/iviewer.zoom_zero.png delete mode 100644 docs/img/iviewer/iviewer.zoom_zero2.gif delete mode 100644 docs/img/loader.gif delete mode 100644 docs/js/SVGPan.js delete mode 100644 docs/js/bootstrap.js delete mode 100644 docs/js/bootstrap.min.js delete mode 100644 docs/js/jquery-1.4.2.min.js delete mode 100644 docs/js/jquery-1.7.1.min.js delete mode 100644 docs/js/jquery-ui-1.8.2.custom.min.js delete mode 100644 docs/js/jquery.cookie.js delete mode 100644 docs/js/jquery.iviewer.js delete mode 100644 docs/js/jquery.iviewer.min.js delete mode 100644 docs/js/jquery.mousewheel.min.js delete mode 100644 docs/js/jquery.panzoom.js delete mode 100644 docs/js/jquery.splitter.js delete mode 100644 docs/js/jquery.tools.min.js delete mode 100644 docs/js/jquery.treeview.js delete mode 100644 docs/js/menu.js delete mode 100644 docs/js/prettify/lang-apollo.js delete mode 100644 docs/js/prettify/lang-clj.js delete mode 100644 docs/js/prettify/lang-css.js delete mode 100644 docs/js/prettify/lang-go.js delete mode 100644 docs/js/prettify/lang-hs.js delete mode 100644 docs/js/prettify/lang-lisp.js delete mode 100644 docs/js/prettify/lang-lua.js delete mode 100644 docs/js/prettify/lang-ml.js delete mode 100644 docs/js/prettify/lang-n.js delete mode 100644 docs/js/prettify/lang-proto.js delete mode 100644 docs/js/prettify/lang-scala.js delete mode 100644 docs/js/prettify/lang-sql.js delete mode 100644 docs/js/prettify/lang-tex.js delete mode 100644 docs/js/prettify/lang-vb.js delete mode 100644 docs/js/prettify/lang-vhdl.js delete mode 100644 docs/js/prettify/lang-wiki.js delete mode 100644 docs/js/prettify/lang-xq.js delete mode 100644 docs/js/prettify/lang-yaml.js delete mode 100644 docs/js/prettify/prettify.min.js delete mode 100644 docs/js/sidebar.js delete mode 100644 docs/js/template.js delete mode 100644 docs/markers.html rename docs/{packages/Query.Drivers.html => namespaces/Query.Driver.html} (60%) create mode 100644 docs/namespaces/Query.html delete mode 100644 docs/namespaces/global.html delete mode 100644 docs/packages/Default.html delete mode 100644 docs/packages/Query.Core.html delete mode 100644 docs/packages/Query.Query_Builder.html delete mode 100644 docs/packages/Query.Table_Builder.html delete mode 100644 docs/packages/Query.html delete mode 100644 docs/structure.xml diff --git a/autoload.php b/autoload.php index 29414b3..9d86827 100644 --- a/autoload.php +++ b/autoload.php @@ -42,7 +42,8 @@ require(QBASE_PATH.'common.php'); */ function query_autoload($class) { - $class = strtolower($class); + $class_segments = explode('\\', $class); + $class = strtolower(array_pop($class_segments)); // Load Firebird separately if (function_exists('fbird_connect') && $class === 'firebird') diff --git a/classes/abstract_driver.php b/classes/abstract_driver.php index a438b91..38d1e4f 100644 --- a/classes/abstract_driver.php +++ b/classes/abstract_driver.php @@ -13,6 +13,8 @@ // -------------------------------------------------------------------------- +namespace Query\Driver; + /** * Base Database class * @@ -21,7 +23,7 @@ * @package Query * @subpackage Drivers */ -abstract class Abstract_Driver extends PDO implements Driver_Interface { +abstract class Abstract_Driver extends \PDO implements Driver_Interface { /** * Reference to the last executed query @@ -70,7 +72,7 @@ abstract class Abstract_Driver extends PDO implements Driver_Interface { public function __construct($dsn, $username=NULL, $password=NULL, array $driver_options=array()) { // Set PDO to display errors as exceptions, and apply driver options - $driver_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION; + $driver_options[\PDO::ATTR_ERRMODE] = \PDO::ERRMODE_EXCEPTION; parent::__construct($dsn, $username, $password, $driver_options); // Load the sql and util class for the driver @@ -100,7 +102,7 @@ abstract class Abstract_Driver extends PDO implements Driver_Interface { if( ! (is_array($data) || is_object($data))) { - throw new InvalidArgumentException("Invalid data argument"); + throw new \InvalidArgumentException("Invalid data argument"); } // Bind the parameters @@ -422,10 +424,10 @@ abstract class Abstract_Driver extends PDO implements Driver_Interface { $res = $this->query($sql); - $flag = ($filtered_index) ? PDO::FETCH_NUM : PDO::FETCH_ASSOC; + $flag = ($filtered_index) ? \PDO::FETCH_NUM : \PDO::FETCH_ASSOC; $all = $res->fetchAll($flag); - return ($filtered_index) ? db_filter($all, 0) : $all; + return ($filtered_index) ? \db_filter($all, 0) : $all; } // -------------------------------------------------------------------------- diff --git a/classes/abstract_sql.php b/classes/abstract_sql.php index f2f7ca0..62e9761 100644 --- a/classes/abstract_sql.php +++ b/classes/abstract_sql.php @@ -13,6 +13,8 @@ // -------------------------------------------------------------------------- +namespace Query\Driver; + /** * parent for database manipulation subclasses * diff --git a/classes/connection_manager.php b/classes/connection_manager.php index 95097b9..bc842d0 100644 --- a/classes/connection_manager.php +++ b/classes/connection_manager.php @@ -13,13 +13,17 @@ // -------------------------------------------------------------------------- +namespace Query; + +use \Query\Driver; + /** * Generic exception for bad drivers * * @package Query * @subpackage Core */ -class BadDBDriverException extends InvalidArgumentException {} +class BadDBDriverException extends \InvalidArgumentException {} // -------------------------------------------------------------------------- @@ -69,7 +73,7 @@ final class Connection_Manager { */ private function __wakeup() { - throw new DomainException("Can't unserialize singleton"); + throw new \DomainException("Can't unserialize singleton"); } // -------------------------------------------------------------------------- @@ -115,7 +119,7 @@ final class Connection_Manager { } else { - throw new InvalidArgumentException("The specified connection does not exist"); + throw new \InvalidArgumentException("The specified connection does not exist"); } } @@ -132,10 +136,12 @@ final class Connection_Manager { { list($dsn, $dbtype, $params, $options) = $this->parse_params($params); + $driver = "\\Query\\Driver\\{$dbtype}"; + // Create the database connection $db = ( ! empty($params->user)) - ? new $dbtype($dsn, $params->user, $params->pass, $options) - : new $dbtype($dsn, '', '', $options); + ? new $driver($dsn, $params->user, $params->pass, $options) + : new $driver($dsn, '', '', $options); // -------------------------------------------------------------------------- // Save connection @@ -178,12 +184,12 @@ final class Connection_Manager { // -------------------------------------------------------------------------- // Convert array to object - $params = new ArrayObject($params, ArrayObject::STD_PROP_LIST | ArrayObject::ARRAY_AS_PROPS); + $params = new \ArrayObject($params, \ArrayObject::STD_PROP_LIST | \ArrayObject::ARRAY_AS_PROPS); $params->type = strtolower($params->type); $dbtype = ($params->type !== 'postgresql') ? $params->type : 'pgsql'; // Make sure the class exists - if ( ! class_exists($dbtype)) + if ( ! class_exists("Query\\Driver\\$dbtype")) { throw new BadDBDriverException('Database driver does not exist, or is not supported'); } diff --git a/classes/db_util.php b/classes/db_util.php index bdcc7c1..670ebb5 100644 --- a/classes/db_util.php +++ b/classes/db_util.php @@ -13,6 +13,10 @@ // -------------------------------------------------------------------------- +namespace Query\Driver; + +use \Query; + /** * Abstract class defining database / table creation methods * diff --git a/classes/driver_interface.php b/classes/driver_interface.php index e5f10d3..98e5788 100644 --- a/classes/driver_interface.php +++ b/classes/driver_interface.php @@ -13,6 +13,8 @@ // -------------------------------------------------------------------------- +namespace Query\Driver; + /** * PDO Interface to implement for database drivers * diff --git a/classes/query_builder.php b/classes/query_builder.php index 8e1b866..5668a28 100644 --- a/classes/query_builder.php +++ b/classes/query_builder.php @@ -13,6 +13,8 @@ // -------------------------------------------------------------------------- +namespace Query; + /** * Convienience class for creating sql queries - also the class that * instantiates the specific db driver @@ -176,14 +178,14 @@ class Query_Builder implements Query_Builder_Interface { /** * Constructor * - * @param Abstract_driver $db + * @param \Query\Driver\Driver_Interface $db */ - public function __construct(Driver_Interface $db) + public function __construct(\Query\Driver\Driver_Interface $db) { $this->db = $db; // Instantiate the Query Parser - $this->parser = new Query_Parser(); + $this->parser = new Query_Parser($this); $this->queries['total_time'] = 0; @@ -810,19 +812,7 @@ class Query_Builder implements Query_Builder_Interface { $table = implode(' ', $table); // Parse out the join condition - $parts = $this->parser->parse_join($condition); - $count = count($parts['identifiers']); - - // Go through and quote the identifiers - for($i=0; $i <= $count; $i++) - { - if (in_array($parts['combined'][$i], $parts['identifiers']) && ! is_numeric($parts['combined'][$i])) - { - $parts['combined'][$i] = $this->db->quote_ident($parts['combined'][$i]); - } - } - - $parsed_condition = implode('', $parts['combined']); + $parsed_condition = $this->parser->compile_join($condition); $condition = $table . ' ON ' . $parsed_condition; $this->_append_map("\n" . strtoupper($type) . ' JOIN ', $condition, 'join'); @@ -1251,7 +1241,7 @@ class Query_Builder implements Query_Builder_Interface { 'group_string', 'limit', 'offset', - 'explain' + 'explain', ) as $var) { $this->$var = NULL; @@ -1297,19 +1287,14 @@ class Query_Builder implements Query_Builder_Interface { $start_time = microtime(TRUE); - if (empty($vals)) - { - $res = $this->db->query($sql); - } - else - { - $res = $this->db->prepare_execute($sql, $vals); - } + $res = (empty($vals)) + ? $this->db->query($sql) + : $this->db->prepare_execute($sql, $vals); $end_time = microtime(TRUE); $total_time = number_format($end_time - $start_time, 5); - + // Add this query to the list of executed queries $this->_append_query($vals, $sql, $total_time); // Reset class state for next query @@ -1335,7 +1320,7 @@ class Query_Builder implements Query_Builder_Interface { return call_user_func_array(array($this->db, $name), $params); } - throw new BadMethodCallException("Method does not exist"); + throw new \BadMethodCallException("Method does not exist"); } /** @@ -1349,13 +1334,13 @@ class Query_Builder implements Query_Builder_Interface { protected function _append_query($vals, $sql, $total_time) { $evals = (is_array($vals)) ? $vals : array(); + $esql = str_replace('?', "%s", $sql); // Quote string values foreach($evals as &$v) { $v = ( ! is_numeric($v)) ? htmlentities($this->db->quote($v), ENT_NOQUOTES, 'utf-8', FALSE) : $v; } - $esql = str_replace('?', "%s", $sql); // Add the query onto the array of values to pass // as arguments to sprintf diff --git a/classes/query_builder_interface.php b/classes/query_builder_interface.php index d6030e0..7217e3c 100644 --- a/classes/query_builder_interface.php +++ b/classes/query_builder_interface.php @@ -13,6 +13,8 @@ // -------------------------------------------------------------------------- +namespace Query; + /** * Interface defining the Query Builder class * diff --git a/classes/query_parser.php b/classes/query_parser.php index 4fffe6f..df087a9 100644 --- a/classes/query_parser.php +++ b/classes/query_parser.php @@ -13,6 +13,8 @@ // -------------------------------------------------------------------------- +namespace Query; + /** * Utility Class to parse sql clauses for properly escaping identifiers * @@ -21,6 +23,13 @@ */ class Query_Parser { + /** + * DB Driver + * + * @var \Query\Driver\Driver_Interface + */ + private $db; + /** * Regex patterns for various syntax components * @@ -51,6 +60,12 @@ class Query_Parser { */ public function __construct($sql = '') { + if (is_object($sql)) + { + $this->db = $sql; + $sql = ''; + } + // Get sql clause components preg_match_all('`'.$this->match_patterns['function'].'`', $sql, $this->matches['functions'], PREG_SET_ORDER); preg_match_all('`'.$this->match_patterns['identifier'].'`', $sql, $this->matches['identifiers'], PREG_SET_ORDER); @@ -71,7 +86,7 @@ class Query_Parser { * * @param string $sql */ - public function parse_join($sql) + protected function parse_join($sql) { $this->__construct($sql); return $this->matches; @@ -79,13 +94,36 @@ class Query_Parser { // -------------------------------------------------------------------------- + /** + * Compiles a join condition after parsing + * + * @param string $condition + * @return string + */ + public function compile_join($condition) + { + $parts = $this->parse_join($condition); + $count = count($parts['identifiers']); + + // Go through and quote the identifiers + for($i=0; $i <= $count; $i++) + { + if (in_array($parts['combined'][$i], $parts['identifiers']) && ! is_numeric($parts['combined'][$i])) + { + $parts['combined'][$i] = $this->db->quote_ident($parts['combined'][$i]); + } + } + + return implode('', $parts['combined']); + } + /** * Returns a more useful match array * * @param array $array * @return array */ - private function filter_array($array) + protected function filter_array($array) { $new_array = array(); diff --git a/classes/sql_interface.php b/classes/sql_interface.php index 61dc59a..54b3c64 100644 --- a/classes/sql_interface.php +++ b/classes/sql_interface.php @@ -13,6 +13,8 @@ // -------------------------------------------------------------------------- +namespace Query\Driver; + /** * parent for database manipulation subclasses * diff --git a/common.php b/common.php index 7958455..86d2efa 100644 --- a/common.php +++ b/common.php @@ -82,7 +82,7 @@ function db_filter($array, $index) */ function Query($params = '') { - $cmanager = Connection_Manager::get_instance(); + $cmanager = \Query\Connection_Manager::get_instance(); // If you are getting a previously created connection if (is_scalar($params)) diff --git a/docs/classes.svg b/docs/classes.svg deleted file mode 100644 index ccfcb1e..0000000 --- a/docs/classes.svg +++ /dev/null @@ -1,262 +0,0 @@ - - - - - - -G - -cluster_Global - - - - - - - - -\ - - -\\Query_Parser - -Query_Parser - - -\\Abstract_SQL - -«abstract» -Abstract_SQL - - -\\SQL_Interface - -SQL_Interface - - -\\Abstract_SQL->\\SQL_Interface - - - - -\\DB_Util - -«abstract» -DB_Util - - -\\Abstract_Driver - -«abstract» -Abstract_Driver - - -\\Driver_Interface - -Driver_Interface - - -\\Abstract_Driver->\\Driver_Interface - - - - -\\PDO - -\PDO - - -\\Abstract_Driver->\\PDO - - - - -\\Table_Builder - -Table_Builder - - -\\Table_Builder_Interface - -Table_Builder_Interface - - -\\Table_Builder->\\Table_Builder_Interface - - - - -\\BadDBDriverException - -BadDBDriverException - - -\\InvalidArgumentException - -\InvalidArgumentException - - -\\BadDBDriverException->\\InvalidArgumentException - - - - -\\Connection_Manager - -Connection_Manager - - -\\Query_Builder - -Query_Builder - - -\\Query_Builder_Interface - -Query_Builder_Interface - - -\\Query_Builder->\\Query_Builder_Interface - - - - -\\SQLite - -SQLite - - -\\SQLite->\\Abstract_Driver - - - - -\\SQLite_SQL - -SQLite_SQL - - -\\SQLite_SQL->\\Abstract_SQL - - - - -\\SQLite_Util - -SQLite_Util - - -\\SQLite_Util->\\DB_Util - - - - -\\Firebird_SQL - -Firebird_SQL - - -\\Firebird_SQL->\\Abstract_SQL - - - - -\\Firebird_Result - -Firebird_Result - - -\\PDOStatement - -\PDOStatement - - -\\Firebird_Result->\\PDOStatement - - - - -\\Firebird - -Firebird - - -\\Firebird->\\Abstract_Driver - - - - -\\Firebird_Util - -Firebird_Util - - -\\Firebird_Util->\\DB_Util - - - - -\\PgSQL - -PgSQL - - -\\PgSQL->\\Abstract_Driver - - - - -\\PgSQL_SQL - -PgSQL_SQL - - -\\PgSQL_SQL->\\Abstract_SQL - - - - -\\PgSQL_Util - -PgSQL_Util - - -\\PgSQL_Util->\\DB_Util - - - - -\\MySQL - -MySQL - - -\\MySQL->\\Abstract_Driver - - - - -\\MySQL_SQL - -MySQL_SQL - - -\\MySQL_SQL->\\Abstract_SQL - - - - -\\MySQL_Util - -MySQL_Util - - -\\MySQL_Util->\\DB_Util - - - - - diff --git a/docs/classes/BadDBDriverException.html b/docs/classes/Query.BadDBDriverException.html similarity index 90% rename from docs/classes/BadDBDriverException.html rename to docs/classes/Query.BadDBDriverException.html index ec1dc1d..b0ef339 100644 --- a/docs/classes/BadDBDriverException.html +++ b/docs/classes/Query.BadDBDriverException.html @@ -3,7 +3,7 @@ -Query » \BadDBDriverException +Query » \Query\BadDBDriverException @@ -19,6 +19,9 @@
-
-
diff --git a/docs/classes/DB_Util.html b/docs/classes/Query.Driver.DB_Util.html similarity index 95% rename from docs/classes/DB_Util.html rename to docs/classes/Query.Driver.DB_Util.html index e7bb4e6..6e33321 100644 --- a/docs/classes/DB_Util.html +++ b/docs/classes/Query.Driver.DB_Util.html @@ -3,7 +3,7 @@ -Query » \DB_Util +Query » \Query\Driver\DB_Util @@ -19,6 +19,9 @@
-
+ generated on 2014-04-02T17:05:03-04:00.
diff --git a/docs/classes/Firebird.html b/docs/classes/Query.Driver.Firebird.html similarity index 94% rename from docs/classes/Firebird.html rename to docs/classes/Query.Driver.Firebird.html index 2e4935c..65787f3 100644 --- a/docs/classes/Firebird.html +++ b/docs/classes/Query.Driver.Firebird.html @@ -3,7 +3,7 @@ -Query » \Firebird +Query » \Query\Driver\Firebird @@ -19,6 +19,9 @@
-
diff --git a/docs/classes/SQLite.html b/docs/classes/Query.Driver.SQLite.html similarity index 93% rename from docs/classes/SQLite.html rename to docs/classes/Query.Driver.SQLite.html index bc3bd8b..9b1bfab 100644 --- a/docs/classes/SQLite.html +++ b/docs/classes/Query.Driver.SQLite.html @@ -3,7 +3,7 @@ -Query » \SQLite +Query » \Query\Driver\SQLite @@ -19,6 +19,9 @@
-
diff --git a/docs/classes/Query_Builder.html b/docs/classes/Query.Query_Builder.html similarity index 91% rename from docs/classes/Query_Builder.html rename to docs/classes/Query.Query_Builder.html index 95cfff6..0d78dc4 100644 --- a/docs/classes/Query_Builder.html +++ b/docs/classes/Query.Query_Builder.html @@ -3,7 +3,7 @@ -Query » \Query_Builder +Query » \Query\Query_Builder @@ -19,6 +19,9 @@
-

Adds the 'distinct' keyword to a query

-
distinct() : \Query_Builder
+
distinct() : \Query\Query_Builder

Shows the query plan for the query

-
explain() : \Query_Builder
+
explain() : \Query\Query_Builder

Specify the database table to select from

-
from(string $tblname) : \Query_Builder
+
from(string $tblname) : \Query\Query_Builder
@@ -224,13 +228,13 @@ in place of the get() method string

Returns

- +

Select and retrieve all records from the current table, and/or execute current compiled query

-
get(mixed $table = '', int $limit = FALSE, int $offset = FALSE) : \PDOStatement
+
get(mixed $table = '', int $limit = FALSE, int $offset = FALSE) : \Query\PDOStatement
@@ -245,7 +249,7 @@ execute current compiled query int

Returns

- +
@@ -326,7 +330,7 @@ execute current compiled query

Convience method for get() with a where clause

-
get_where(string $table, array $where = array(), int $limit = FALSE, int $offset = FALSE) : \PDOStatement
+
get_where(string $table, array $where = array(), int $limit = FALSE, int $offset = FALSE) : \Query\PDOStatement
@@ -348,12 +352,12 @@ execute current compiled query int

Returns

- +

Group the results by the selected field(s)

-
group_by(mixed $field) : \Query_Builder
+
group_by(mixed $field) : \Query\Query_Builder
@@ -363,32 +367,32 @@ execute current compiled query mixed

Returns

- +

Ends a query group

-
group_end() : \Query_Builder
+
group_end() : \Query\Query_Builder

Adds a paren to the current query for query grouping

-
group_start() : \Query_Builder
+
group_start() : \Query\Query_Builder

Generates a 'Having' clause

-
having(mixed $key, mixed $val = array()) : \Query_Builder
+
having(mixed $key, mixed $val = array()) : \Query\Query_Builder
@@ -402,12 +406,12 @@ execute current compiled query mixed

Returns

- +

Creates an insert clause, and executes it

-
insert(string $table, mixed $data = array()) : \PDOStatement
+
insert(string $table, mixed $data = array()) : \Query\PDOStatement
@@ -421,12 +425,12 @@ execute current compiled query mixed

Returns

- +

Creates and executes a batch insertion query

-
insert_batch(string $table, array $data = array()) : \PDOStatement
+
insert_batch(string $table, array $data = array()) : \Query\PDOStatement
@@ -440,12 +444,12 @@ execute current compiled query array

Returns

- +

Creates a join phrase in a compiled query

-
join(string $table, string $condition, string $type = '') : \Query_Builder
+
join(string $table, string $condition, string $type = '') : \Query\Query_Builder
@@ -463,12 +467,12 @@ execute current compiled query string

Returns

- +

Creates a Like clause in the sql statement

-
like(string $field, mixed $val, string $pos = 'both') : \Query_Builder
+
like(string $field, mixed $val, string $pos = 'both') : \Query\Query_Builder
@@ -486,7 +490,7 @@ execute current compiled query string

Returns

- +
@@ -510,7 +514,7 @@ execute current compiled query

Generates a NOT LIKE clause

-
not_like(string $field, mixed $val, string $pos = 'both') : \Query_Builder
+
not_like(string $field, mixed $val, string $pos = 'both') : \Query\Query_Builder
@@ -528,23 +532,23 @@ execute current compiled query string

Returns

- +

Adds a paren to the current query for query grouping, prefixed with 'OR'

-
or_group_start() : \Query_Builder
+
or_group_start() : \Query\Query_Builder

Generates a 'Having' clause prefixed with 'OR'

-
or_having(mixed $key, mixed $val = array()) : \Query_Builder
+
or_having(mixed $key, mixed $val = array()) : \Query\Query_Builder
@@ -558,12 +562,12 @@ prefixed with 'OR' mixed

Returns

- +

Generates an OR Like clause

-
or_like(string $field, mixed $val, string $pos = 'both') : \Query_Builder
+
or_like(string $field, mixed $val, string $pos = 'both') : \Query\Query_Builder
@@ -581,23 +585,23 @@ prefixed with 'OR' string

Returns

- +

Adds a paren to the current query for query grouping, prefixed with 'OR NOT'

-
or_not_group_start() : \Query_Builder
+
or_not_group_start() : \Query\Query_Builder

Generates a OR NOT LIKE clause

-
or_not_like(string $field, mixed $val, string $pos = 'both') : \Query_Builder
+
or_not_like(string $field, mixed $val, string $pos = 'both') : \Query\Query_Builder
@@ -615,12 +619,12 @@ prefixed with 'OR NOT' string

Returns

- +

Where clause prefixed with "OR"

-
or_where(string $key, mixed $val = array()) : \Query_Builder
+
or_where(string $key, mixed $val = array()) : \Query\Query_Builder
@@ -634,12 +638,12 @@ prefixed with 'OR NOT' mixed

Returns

- +

Where in statement prefixed with "or"

-
or_where_in(string $field, mixed $val = array()) : \Query_Builder
+
or_where_in(string $field, mixed $val = array()) : \Query\Query_Builder
@@ -653,12 +657,12 @@ prefixed with 'OR NOT' mixed

Returns

- +

OR WHERE NOT IN (FOO) clause

-
or_where_not_in(string $field, mixed $val = array()) : \Query_Builder
+
or_where_not_in(string $field, mixed $val = array()) : \Query\Query_Builder
@@ -672,12 +676,12 @@ prefixed with 'OR NOT' mixed

Returns

- +

Order the results by the selected field(s)

-
order_by(string $field, string $type = "") : \Query_Builder
+
order_by(string $field, string $type = "") : \Query\Query_Builder
@@ -691,7 +695,7 @@ prefixed with 'OR NOT' string

Returns

- +
@@ -702,7 +706,7 @@ prefixed with 'OR NOT'

Specifies rows to select in a query

-
select(string $fields) : \Query_Builder
+
select(string $fields) : \Query\Query_Builder
@@ -712,12 +716,12 @@ prefixed with 'OR NOT' string

Returns

- +

Selects the average value of a field from a query

-
select_avg(string $field, string $as = FALSE) : \Query_Builder
+
select_avg(string $field, string $as = FALSE) : \Query\Query_Builder
@@ -731,12 +735,12 @@ prefixed with 'OR NOT' string

Returns

- +

Selects the maximum value of a field from a query

-
select_max(string $field, string $as = FALSE) : \Query_Builder
+
select_max(string $field, string $as = FALSE) : \Query\Query_Builder
@@ -750,12 +754,12 @@ prefixed with 'OR NOT' string

Returns

- +

Selects the minimum value of a field from a query

-
select_min(string $field, string $as = FALSE) : \Query_Builder
+
select_min(string $field, string $as = FALSE) : \Query\Query_Builder
@@ -769,12 +773,12 @@ prefixed with 'OR NOT' string

Returns

- +

Selects the sum of a field from a query

-
select_sum(string $field, string $as = FALSE) : \Query_Builder
+
select_sum(string $field, string $as = FALSE) : \Query\Query_Builder
@@ -788,12 +792,12 @@ prefixed with 'OR NOT' string

Returns

- +

Sets values for inserts / updates / deletes

-
set(mixed $key, mixed $val = NULL) : \Query_Builder
+
set(mixed $key, mixed $val = NULL) : \Query\Query_Builder
@@ -807,12 +811,12 @@ prefixed with 'OR NOT' mixed

Returns

- +

Creates an update clause, and executes it

-
update(string $table, mixed $data = array()) : \PDOStatement
+
update(string $table, mixed $data = array()) : \Query\PDOStatement
@@ -826,14 +830,14 @@ prefixed with 'OR NOT' mixed

Returns

- +

Specify condition(s) in the where clause of a query Note: this function works with key / value, or a passed array with key / value pairs

-
where(mixed $key, mixed $val = array(), bool $escape = NULL) : \Query_Builder
+
where(mixed $key, mixed $val = array(), bool $escape = NULL) : \Query\Query_Builder
@@ -851,12 +855,12 @@ passed array with key / value pairs bool

Returns

- +

Where clause with 'IN' statement

-
where_in(mixed $field, mixed $val = array()) : \Query_Builder
+
where_in(mixed $field, mixed $val = array()) : \Query\Query_Builder
@@ -870,12 +874,12 @@ passed array with key / value pairs mixed

Returns

- +

WHERE NOT IN (FOO) clause

-
where_not_in(string $field, mixed $val = array()) : \Query_Builder
+
where_not_in(string $field, mixed $val = array()) : \Query\Query_Builder
@@ -889,7 +893,7 @@ passed array with key / value pairs mixed

Returns

- +
@@ -900,7 +904,7 @@ passed array with key / value pairs Template is built using Twitter Bootstrap 2 and icons provided by Glyphicons.
Documentation is powered by phpDocumentor 2.2.0 and
- generated on 2014-04-02T11:00:35-04:00.
+ generated on 2014-04-02T17:05:03-04:00.
diff --git a/docs/classes/Query_Parser.html b/docs/classes/Query.Query_Parser.html similarity index 73% rename from docs/classes/Query_Parser.html rename to docs/classes/Query.Query_Parser.html index ea7cf48..e92d39b 100644 --- a/docs/classes/Query_Parser.html +++ b/docs/classes/Query.Query_Parser.html @@ -3,7 +3,7 @@ -Query » \Query_Parser +Query » \Query\Query_Parser @@ -19,6 +19,9 @@ -
-
-
-

Public parser method for seting the parse string

-
parse_join(string $sql) 
+
+

Compiles a join condition after parsing

+
compile_join(string $condition) : string

Parameters

-

$sql

+

$condition

string
+

Returns

+
string
-
+

Returns a more useful match array

filter_array(array $array) : array
@@ -143,6 +155,19 @@
array
+
+

Public parser method for seting the parse string

+
parse_join(string $sql) 
+
+
+
+

Parameters

+
+

$sql

+string +
+
+

 Properties

 
@@ -155,6 +180,16 @@
+ 
+

DB Driver

+
$db : \Query\Driver\Driver_Interface
+
+

Default

+
+
+
+
+
 

Regex patterns for various syntax components

$match_patterns : array
@@ -173,7 +208,7 @@ Template is built using Twitter Bootstrap 2 and icons provided by Glyphicons.
Documentation is powered by phpDocumentor 2.2.0 and
- generated on 2014-04-02T11:00:35-04:00.
+ generated on 2014-04-02T17:05:03-04:00.
diff --git a/docs/classes/Query.Table_Builder.html b/docs/classes/Query.Table_Builder.html new file mode 100644 index 0000000..e2fe9ff --- /dev/null +++ b/docs/classes/Query.Table_Builder.html @@ -0,0 +1,423 @@ + + + + + +Query » \Query\Table_Builder + + + + + + + + + + +
+ +
+ +
+ +
+

Abstract class defining database / table creation methods

+
+
+ + + + + + + + + +
packageQuery
subpackageTable_Builder
+

+ Methods

+
+

Constructor

+
__construct(string $name, array $options = array(), \Query\Driver_Interface $driver = NULL) : \Query\Table_Builder
+
+
+
+

Parameters

+
+

$name

+string +
+
+

$options

+array +
+ +

Returns

+ +
+
+
+

add_column() +

+
add_column($column_name, $type = NULL, $options = array()
+
+
+
+

Parameters

+

$column_name

+

$type

+

$options

+
+
+
+

add_foreign_key() +

+
add_foreign_key($columns, $referenced_table, $referenced_columns = array('id'), $options = array()
+
+
+
+

Parameters

+

$columns

+

$referenced_table

+

$referenced_columns

+

$options

+
+
+
+

add_index() +

+
add_index($columns, $options = array()
+
+
+
+

Parameters

+

$columns

+

$options

+
+
+
+

change_column() +

+
change_column($column_name, $new_column_type, $options = array()
+
+
+
+

Parameters

+

$column_name

+

$new_column_type

+

$options

+
+
+
+

create() +

+
create() 
+
+
+
+
+

drop() +

+
drop() 
+
+
+
+
+

drop_foreign_key() +

+
drop_foreign_key($columns, $constraint = NULL
+
+
+
+

Parameters

+

$columns

+

$constraint

+
+
+
+

exists() +

+
exists() 
+
+
+
+
+

get_columns() +

+
get_columns() 
+
+
+
+
+

has_column() +

+
has_column($column_name, $options = array()
+
+
+
+

Parameters

+

$column_name

+

$options

+
+
+
+

has_foreign_key() +

+
has_foreign_key($columns, $constraint = NULL
+
+
+
+

Parameters

+

$columns

+

$constraint

+
+
+
+

has_index() +

+
has_index($columns, $options = array()
+
+
+
+

Parameters

+

$columns

+

$options

+
+
+
+

remove_column() +

+
remove_column($column_name) 
+
+
+
+

Parameters

+

$column_name

+
+
+
+

remove_index() +

+
remove_index($columns, $options = array()
+
+
+
+

Parameters

+

$columns

+

$options

+
+
+
+

remove_index_by_name() +

+
remove_index_by_name($name) 
+
+
+
+

Parameters

+

$name

+
+
+
+

rename() +

+
rename($new_table_name) 
+
+
+
+

Parameters

+

$new_table_name

+
+
+
+

rename_column() +

+
rename_column($old_name, $new_name) 
+
+
+
+

Parameters

+

$old_name

+

$new_name

+
+
+
+

reset() +

+
reset() 
+
+
+
+
+

save() +

+
save() 
+
+
+
+
+

update() +

+
update() 
+
+
+
+

+ Properties

+ 
+

The name of the current table

+
$name : string
+
+

Default

+
''
+
+
+
+
+ 
+

Driver for the current db

+
$driver : \Query\Driver_Interface
+
+

Default

+
NULL
+
+
+
+
+ 
+

Options for the current table

+
$table_options : array
+
+

Default

+
array()
+
+
+
+
+
+
+
+
+
+
+ + diff --git a/docs/classes/Table_Builder_Interface.html b/docs/classes/Query.Table_Builder_Interface.html similarity index 89% rename from docs/classes/Table_Builder_Interface.html rename to docs/classes/Query.Table_Builder_Interface.html index 36948a9..3af882e 100644 --- a/docs/classes/Table_Builder_Interface.html +++ b/docs/classes/Query.Table_Builder_Interface.html @@ -3,7 +3,7 @@ -Query » \Table_Builder_Interface +Query » \Query\Table_Builder_Interface @@ -19,6 +19,9 @@
-
+ generated on 2014-04-02T17:05:03-04:00.
diff --git a/docs/css/bootstrap-responsive.css b/docs/css/bootstrap-responsive.css deleted file mode 100644 index 4b032cd..0000000 --- a/docs/css/bootstrap-responsive.css +++ /dev/null @@ -1,567 +0,0 @@ -/*! - * Bootstrap Responsive v2.0.0 - * - * 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. - */ -.hidden { - display: none; - visibility: hidden; -} -@media (max-width: 480px) { - .nav-collapse { - -webkit-transform: translate3d(0, 0, 0); - } - .page-header h1 small { - display: block; - line-height: 18px; - } - input[class*="span"], - select[class*="span"], - textarea[class*="span"], - .uneditable-input { - display: block; - width: 100%; - height: 28px; - /* Make inputs at least the height of their button counterpart */ - - /* Makes inputs behave like true block-level elements */ - - -webkit-box-sizing: border-box; - /* Older Webkit */ - - -moz-box-sizing: border-box; - /* Older FF */ - - -ms-box-sizing: border-box; - /* IE8 */ - - box-sizing: border-box; - /* CSS3 spec*/ - - } - .input-prepend input[class*="span"], .input-append input[class*="span"] { - width: auto; - } - 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-left: 10px; - padding-right: 10px; - } - .modal { - position: absolute; - top: 10px; - left: 10px; - right: 10px; - width: auto; - margin: 0; - } - .modal.fade.in { - top: auto; - } - .modal-header .close { - padding: 10px; - margin: -10px; - } - .carousel-caption { - position: static; - } -} -@media (max-width: 768px) { - .container { - width: auto; - padding: 0 20px; - } - .row-fluid { - width: 100%; - } - .row { - margin-left: 0; - } - .row > [class*="span"], .row-fluid > [class*="span"] { - float: none; - display: block; - width: auto; - margin: 0; - } -} -@media (min-width: 768px) and (max-width: 980px) { - .row { - margin-left: -20px; - *zoom: 1; - } - .row:before, .row:after { - display: table; - content: ""; - } - .row:after { - clear: both; - } - [class*="span"] { - float: left; - margin-left: 20px; - } - .span1 { - width: 42px; - } - .span2 { - width: 104px; - } - .span3 { - width: 166px; - } - .span4 { - width: 228px; - } - .span5 { - width: 290px; - } - .span6 { - width: 352px; - } - .span7 { - width: 414px; - } - .span8 { - width: 476px; - } - .span9 { - width: 538px; - } - .span10 { - width: 600px; - } - .span11 { - width: 662px; - } - .span12, .container { - width: 724px; - } - .offset1 { - margin-left: 82px; - } - .offset2 { - margin-left: 144px; - } - .offset3 { - margin-left: 206px; - } - .offset4 { - margin-left: 268px; - } - .offset5 { - margin-left: 330px; - } - .offset6 { - margin-left: 392px; - } - .offset7 { - margin-left: 454px; - } - .offset8 { - margin-left: 516px; - } - .offset9 { - margin-left: 578px; - } - .offset10 { - margin-left: 640px; - } - .offset11 { - margin-left: 702px; - } - .row-fluid { - width: 100%; - *zoom: 1; - } - .row-fluid:before, .row-fluid:after { - display: table; - content: ""; - } - .row-fluid:after { - clear: both; - } - .row-fluid > [class*="span"] { - float: left; - margin-left: 2.762430939%; - } - .row-fluid > [class*="span"]:first-child { - margin-left: 0; - } - .row-fluid .span1 { - width: 5.801104972%; - } - .row-fluid .span2 { - width: 14.364640883%; - } - .row-fluid .span3 { - width: 22.928176794%; - } - .row-fluid .span4 { - width: 31.491712705%; - } - .row-fluid .span5 { - width: 40.055248616%; - } - .row-fluid .span6 { - width: 48.618784527%; - } - .row-fluid .span7 { - width: 57.182320438000005%; - } - .row-fluid .span8 { - width: 65.74585634900001%; - } - .row-fluid .span9 { - width: 74.30939226%; - } - .row-fluid .span10 { - width: 82.87292817100001%; - } - .row-fluid .span11 { - width: 91.436464082%; - } - .row-fluid .span12 { - width: 99.999999993%; - } - input.span1, textarea.span1, .uneditable-input.span1 { - width: 32px; - } - input.span2, textarea.span2, .uneditable-input.span2 { - width: 94px; - } - input.span3, textarea.span3, .uneditable-input.span3 { - width: 156px; - } - input.span4, textarea.span4, .uneditable-input.span4 { - width: 218px; - } - input.span5, textarea.span5, .uneditable-input.span5 { - width: 280px; - } - input.span6, textarea.span6, .uneditable-input.span6 { - width: 342px; - } - input.span7, textarea.span7, .uneditable-input.span7 { - width: 404px; - } - input.span8, textarea.span8, .uneditable-input.span8 { - width: 466px; - } - input.span9, textarea.span9, .uneditable-input.span9 { - width: 528px; - } - input.span10, textarea.span10, .uneditable-input.span10 { - width: 590px; - } - input.span11, textarea.span11, .uneditable-input.span11 { - width: 652px; - } - input.span12, textarea.span12, .uneditable-input.span12 { - width: 714px; - } -} -@media (max-width: 980px) { - body { - padding-top: 0; - } - .navbar-fixed-top { - position: static; - margin-bottom: 18px; - } - .navbar-fixed-top .navbar-inner { - padding: 5px; - } - .navbar .container { - width: auto; - padding: 0; - } - .navbar .brand { - padding-left: 10px; - padding-right: 10px; - margin: 0 0 0 -5px; - } - .navbar .nav-collapse { - clear: left; - } - .navbar .nav { - float: none; - margin: 0 0 9px; - } - .navbar .nav > li { - float: none; - } - .navbar .nav > li > a { - margin-bottom: 2px; - } - .navbar .nav > .divider-vertical { - display: none; - } - .navbar .nav > li > a, .navbar .dropdown-menu a { - padding: 6px 15px; - font-weight: bold; - color: #999999; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - } - .navbar .dropdown-menu li + li a { - margin-bottom: 2px; - } - .navbar .nav > li > a:hover, .navbar .dropdown-menu a:hover { - background-color: #222222; - } - .navbar .dropdown-menu { - position: static; - top: auto; - left: auto; - float: none; - display: block; - max-width: none; - margin: 0 15px; - padding: 0; - 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; - } - .navbar .dropdown-menu:before, .navbar .dropdown-menu:after { - display: none; - } - .navbar .dropdown-menu .divider { - display: none; - } - .navbar-form, .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.pull-right { - float: none; - margin-left: 0; - } - .navbar-static .navbar-inner { - padding-left: 10px; - padding-right: 10px; - } - .btn-navbar { - display: block; - } - .nav-collapse { - overflow: hidden; - height: 0; - } -} -@media (min-width: 980px) { - .nav-collapse.collapse { - height: auto !important; - } -} -@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; - } - .span1 { - width: 70px; - } - .span2 { - width: 170px; - } - .span3 { - width: 270px; - } - .span4 { - width: 370px; - } - .span5 { - width: 470px; - } - .span6 { - width: 570px; - } - .span7 { - width: 670px; - } - .span8 { - width: 770px; - } - .span9 { - width: 870px; - } - .span10 { - width: 970px; - } - .span11 { - width: 1070px; - } - .span12, .container { - width: 1170px; - } - .offset1 { - margin-left: 130px; - } - .offset2 { - margin-left: 230px; - } - .offset3 { - margin-left: 330px; - } - .offset4 { - margin-left: 430px; - } - .offset5 { - margin-left: 530px; - } - .offset6 { - margin-left: 630px; - } - .offset7 { - margin-left: 730px; - } - .offset8 { - margin-left: 830px; - } - .offset9 { - margin-left: 930px; - } - .offset10 { - margin-left: 1030px; - } - .offset11 { - margin-left: 1130px; - } - .row-fluid { - width: 100%; - *zoom: 1; - } - .row-fluid:before, .row-fluid:after { - display: table; - content: ""; - } - .row-fluid:after { - clear: both; - } - .row-fluid > [class*="span"] { - float: left; - margin-left: 2.564102564%; - } - .row-fluid > [class*="span"]:first-child { - margin-left: 0; - } - .row-fluid .span1 { - width: 5.982905983%; - } - .row-fluid .span2 { - width: 14.529914530000001%; - } - .row-fluid .span3 { - width: 23.076923077%; - } - .row-fluid .span4 { - width: 31.623931624%; - } - .row-fluid .span5 { - width: 40.170940171000005%; - } - .row-fluid .span6 { - width: 48.717948718%; - } - .row-fluid .span7 { - width: 57.264957265%; - } - .row-fluid .span8 { - width: 65.81196581200001%; - } - .row-fluid .span9 { - width: 74.358974359%; - } - .row-fluid .span10 { - width: 82.905982906%; - } - .row-fluid .span11 { - width: 91.45299145300001%; - } - .row-fluid .span12 { - width: 100%; - } - input.span1, textarea.span1, .uneditable-input.span1 { - width: 60px; - } - input.span2, textarea.span2, .uneditable-input.span2 { - width: 160px; - } - input.span3, textarea.span3, .uneditable-input.span3 { - width: 260px; - } - input.span4, textarea.span4, .uneditable-input.span4 { - width: 360px; - } - input.span5, textarea.span5, .uneditable-input.span5 { - width: 460px; - } - input.span6, textarea.span6, .uneditable-input.span6 { - width: 560px; - } - input.span7, textarea.span7, .uneditable-input.span7 { - width: 660px; - } - input.span8, textarea.span8, .uneditable-input.span8 { - width: 760px; - } - input.span9, textarea.span9, .uneditable-input.span9 { - width: 860px; - } - input.span10, textarea.span10, .uneditable-input.span10 { - width: 960px; - } - input.span11, textarea.span11, .uneditable-input.span11 { - width: 1060px; - } - input.span12, textarea.span12, .uneditable-input.span12 { - width: 1160px; - } - .thumbnails { - margin-left: -30px; - } - .thumbnails > li { - margin-left: 30px; - } -} diff --git a/docs/css/bootstrap-responsive.min.css b/docs/css/bootstrap-responsive.min.css deleted file mode 100644 index bc3f2ab..0000000 --- a/docs/css/bootstrap-responsive.min.css +++ /dev/null @@ -1,3 +0,0 @@ - -.hidden{display:none;visibility:hidden;} -@media (max-width:480px){.nav-collapse{-webkit-transform:translate3d(0, 0, 0);} .page-header h1 small{display:block;line-height:18px;} input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;height:28px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;} .input-prepend input[class*="span"],.input-append input[class*="span"]{width:auto;} 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-left:10px;padding-right:10px;} .modal{position:absolute;top:10px;left:10px;right:10px;width:auto;margin:0;}.modal.fade.in{top:auto;} .modal-header .close{padding:10px;margin:-10px;} .carousel-caption{position:static;}}@media (max-width:768px){.container{width:auto;padding:0 20px;} .row-fluid{width:100%;} .row{margin-left:0;} .row>[class*="span"],.row-fluid>[class*="span"]{float:none;display:block;width:auto;margin:0;}}@media (min-width:768px) and (max-width:980px){.row{margin-left:-20px;*zoom:1;}.row:before,.row:after{display:table;content:"";} .row:after{clear:both;} [class*="span"]{float:left;margin-left:20px;} .span1{width:42px;} .span2{width:104px;} .span3{width:166px;} .span4{width:228px;} .span5{width:290px;} .span6{width:352px;} .span7{width:414px;} .span8{width:476px;} .span9{width:538px;} .span10{width:600px;} .span11{width:662px;} .span12,.container{width:724px;} .offset1{margin-left:82px;} .offset2{margin-left:144px;} .offset3{margin-left:206px;} .offset4{margin-left:268px;} .offset5{margin-left:330px;} .offset6{margin-left:392px;} .offset7{margin-left:454px;} .offset8{margin-left:516px;} .offset9{margin-left:578px;} .offset10{margin-left:640px;} .offset11{margin-left:702px;} .row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";} .row-fluid:after{clear:both;} .row-fluid>[class*="span"]{float:left;margin-left:2.762430939%;} .row-fluid>[class*="span"]:first-child{margin-left:0;} .row-fluid .span1{width:5.801104972%;} .row-fluid .span2{width:14.364640883%;} .row-fluid .span3{width:22.928176794%;} .row-fluid .span4{width:31.491712705%;} .row-fluid .span5{width:40.055248616%;} .row-fluid .span6{width:48.618784527%;} .row-fluid .span7{width:57.182320438000005%;} .row-fluid .span8{width:65.74585634900001%;} .row-fluid .span9{width:74.30939226%;} .row-fluid .span10{width:82.87292817100001%;} .row-fluid .span11{width:91.436464082%;} .row-fluid .span12{width:99.999999993%;} input.span1,textarea.span1,.uneditable-input.span1{width:32px;} input.span2,textarea.span2,.uneditable-input.span2{width:94px;} input.span3,textarea.span3,.uneditable-input.span3{width:156px;} input.span4,textarea.span4,.uneditable-input.span4{width:218px;} input.span5,textarea.span5,.uneditable-input.span5{width:280px;} input.span6,textarea.span6,.uneditable-input.span6{width:342px;} input.span7,textarea.span7,.uneditable-input.span7{width:404px;} input.span8,textarea.span8,.uneditable-input.span8{width:466px;} input.span9,textarea.span9,.uneditable-input.span9{width:528px;} input.span10,textarea.span10,.uneditable-input.span10{width:590px;} input.span11,textarea.span11,.uneditable-input.span11{width:652px;} input.span12,textarea.span12,.uneditable-input.span12{width:714px;}}@media (max-width:980px){body{padding-top:0;} .navbar-fixed-top{position:static;margin-bottom:18px;} .navbar-fixed-top .navbar-inner{padding:5px;} .navbar .container{width:auto;padding:0;} .navbar .brand{padding-left:10px;padding-right:10px;margin:0 0 0 -5px;} .navbar .nav-collapse{clear:left;} .navbar .nav{float:none;margin:0 0 9px;} .navbar .nav>li{float:none;} .navbar .nav>li>a{margin-bottom:2px;} .navbar .nav>.divider-vertical{display:none;} .navbar .nav>li>a,.navbar .dropdown-menu a{padding:6px 15px;font-weight:bold;color:#999999;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} .navbar .dropdown-menu li+li a{margin-bottom:2px;} .navbar .nav>li>a:hover,.navbar .dropdown-menu a:hover{background-color:#222222;} .navbar .dropdown-menu{position:static;top:auto;left:auto;float:none;display:block;max-width:none;margin:0 15px;padding:0;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;} .navbar .dropdown-menu:before,.navbar .dropdown-menu:after{display:none;} .navbar .dropdown-menu .divider{display:none;} .navbar-form,.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.pull-right{float:none;margin-left:0;} .navbar-static .navbar-inner{padding-left:10px;padding-right:10px;} .btn-navbar{display:block;} .nav-collapse{overflow:hidden;height:0;}}@media (min-width:980px){.nav-collapse.collapse{height:auto !important;}}@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;} .span1{width:70px;} .span2{width:170px;} .span3{width:270px;} .span4{width:370px;} .span5{width:470px;} .span6{width:570px;} .span7{width:670px;} .span8{width:770px;} .span9{width:870px;} .span10{width:970px;} .span11{width:1070px;} .span12,.container{width:1170px;} .offset1{margin-left:130px;} .offset2{margin-left:230px;} .offset3{margin-left:330px;} .offset4{margin-left:430px;} .offset5{margin-left:530px;} .offset6{margin-left:630px;} .offset7{margin-left:730px;} .offset8{margin-left:830px;} .offset9{margin-left:930px;} .offset10{margin-left:1030px;} .offset11{margin-left:1130px;} .row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";} .row-fluid:after{clear:both;} .row-fluid>[class*="span"]{float:left;margin-left:2.564102564%;} .row-fluid>[class*="span"]:first-child{margin-left:0;} .row-fluid .span1{width:5.982905983%;} .row-fluid .span2{width:14.529914530000001%;} .row-fluid .span3{width:23.076923077%;} .row-fluid .span4{width:31.623931624%;} .row-fluid .span5{width:40.170940171000005%;} .row-fluid .span6{width:48.717948718%;} .row-fluid .span7{width:57.264957265%;} .row-fluid .span8{width:65.81196581200001%;} .row-fluid .span9{width:74.358974359%;} .row-fluid .span10{width:82.905982906%;} .row-fluid .span11{width:91.45299145300001%;} .row-fluid .span12{width:100%;} input.span1,textarea.span1,.uneditable-input.span1{width:60px;} input.span2,textarea.span2,.uneditable-input.span2{width:160px;} input.span3,textarea.span3,.uneditable-input.span3{width:260px;} input.span4,textarea.span4,.uneditable-input.span4{width:360px;} input.span5,textarea.span5,.uneditable-input.span5{width:460px;} input.span6,textarea.span6,.uneditable-input.span6{width:560px;} input.span7,textarea.span7,.uneditable-input.span7{width:660px;} input.span8,textarea.span8,.uneditable-input.span8{width:760px;} input.span9,textarea.span9,.uneditable-input.span9{width:860px;} input.span10,textarea.span10,.uneditable-input.span10{width:960px;} input.span11,textarea.span11,.uneditable-input.span11{width:1060px;} input.span12,textarea.span12,.uneditable-input.span12{width:1160px;} .thumbnails{margin-left:-30px;} .thumbnails>li{margin-left:30px;}} diff --git a/docs/css/bootstrap.css b/docs/css/bootstrap.css deleted file mode 100644 index 563050c..0000000 --- a/docs/css/bootstrap.css +++ /dev/null @@ -1,3370 +0,0 @@ -/*! - * Bootstrap v2.0.0 - * - * 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; - 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%; - height: auto; - border: 0; - -ms-interpolation-mode: bicubic; -} -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-appearance: textfield; - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; -} -input[type="search"]::-webkit-search-decoration, input[type="search"]::-webkit-search-cancel-button { - -webkit-appearance: none; -} -textarea { - overflow: auto; - vertical-align: top; -} -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; -} -.span1 { - width: 60px; -} -.span2 { - width: 140px; -} -.span3 { - width: 220px; -} -.span4 { - width: 300px; -} -.span5 { - width: 380px; -} -.span6 { - width: 460px; -} -.span7 { - width: 540px; -} -.span8 { - width: 620px; -} -.span9 { - width: 700px; -} -.span10 { - width: 780px; -} -.span11 { - width: 860px; -} -.span12, .container { - width: 940px; -} -.offset1 { - margin-left: 100px; -} -.offset2 { - margin-left: 180px; -} -.offset3 { - margin-left: 260px; -} -.offset4 { - margin-left: 340px; -} -.offset5 { - margin-left: 420px; -} -.offset6 { - margin-left: 500px; -} -.offset7 { - margin-left: 580px; -} -.offset8 { - margin-left: 660px; -} -.offset9 { - margin-left: 740px; -} -.offset10 { - margin-left: 820px; -} -.offset11 { - margin-left: 900px; -} -.row-fluid { - width: 100%; - *zoom: 1; -} -.row-fluid:before, .row-fluid:after { - display: table; - content: ""; -} -.row-fluid:after { - clear: both; -} -.row-fluid > [class*="span"] { - float: left; - margin-left: 2.127659574%; -} -.row-fluid > [class*="span"]:first-child { - margin-left: 0; -} -.row-fluid .span1 { - width: 6.382978723%; -} -.row-fluid .span2 { - width: 14.89361702%; -} -.row-fluid .span3 { - width: 23.404255317%; -} -.row-fluid .span4 { - width: 31.914893614%; -} -.row-fluid .span5 { - width: 40.425531911%; -} -.row-fluid .span6 { - width: 48.93617020799999%; -} -.row-fluid .span7 { - width: 57.446808505%; -} -.row-fluid .span8 { - width: 65.95744680199999%; -} -.row-fluid .span9 { - width: 74.468085099%; -} -.row-fluid .span10 { - width: 82.97872339599999%; -} -.row-fluid .span11 { - width: 91.489361693%; -} -.row-fluid .span12 { - width: 99.99999998999999%; -} -.container { - width: 940px; - margin-left: auto; - margin-right: auto; - *zoom: 1; -} -.container:before, .container:after { - display: table; - content: ""; -} -.container:after { - clear: both; -} -.container-fluid { - padding-left: 20px; - padding-right: 20px; - *zoom: 1; -} -.container-fluid:before, .container-fluid:after { - display: table; - content: ""; -} -.container-fluid:after { - clear: both; -} -p { - margin: 0 0 9px; - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 13px; - line-height: 18px; -} -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-weight: bold; - color: #333333; - 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 { - line-height: 27px; - font-size: 18px; -} -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 { - margin-left: 0; - list-style: none; -} -dl { - margin-bottom: 18px; -} -dt, dd { - line-height: 18px; -} -dt { - font-weight: bold; -} -dd { - margin-left: 9px; -} -hr { - margin: 18px 0; - border: 0; - border-top: 1px solid #e5e5e5; - border-bottom: 1px solid #ffffff; -} -strong { - font-weight: bold; -} -em { - font-style: italic; -} -.muted { - color: #999999; -} -abbr { - font-size: 90%; - text-transform: uppercase; - border-bottom: 1px dotted #ddd; - cursor: help; -} -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-left: 0; - padding-right: 15px; - border-left: 0; - border-right: 5px solid #eeeeee; -} -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; - line-height: 18px; - font-style: normal; -} -small { - font-size: 100%; -} -cite { - font-style: normal; -} -code, pre { - padding: 0 3px 2px; - font-family: Menlo, Monaco, "Courier New", monospace; - font-size: 12px; - color: #333333; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; -} -code { - padding: 3px 4px; - color: #d14; - background-color: #f7f7f9; - border: 1px solid #e1e1e8; -} -pre { - display: block; - padding: 8.5px; - margin: 0 0 9px; - font-size: 12px; - line-height: 18px; - 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; - white-space: pre; - white-space: pre-wrap; - word-break: break-all; -} -pre.prettyprint { - margin-bottom: 18px; -} -pre code { - padding: 0; - background-color: transparent; -} -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 #eee; -} -label, -input, -button, -select, -textarea { - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 13px; - font-weight: normal; - line-height: 18px; -} -label { - display: block; - margin-bottom: 5px; - color: #333333; -} -input, -textarea, -select, -.uneditable-input { - display: inline-block; - width: 210px; - height: 18px; - padding: 4px; - margin-bottom: 9px; - font-size: 13px; - line-height: 18px; - color: #555555; - border: 1px solid #ccc; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; -} -.uneditable-textarea { - width: auto; - height: auto; -} -label input, label textarea, label select { - display: block; -} -input[type="image"], input[type="checkbox"], input[type="radio"] { - width: auto; - height: auto; - padding: 0; - margin: 3px 0; - *margin-top: 0; - /* IE7 */ - - line-height: normal; - border: 0; - cursor: pointer; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; -} -input[type="file"] { - padding: initial; - line-height: initial; - border: initial; - background-color: #ffffff; - background-color: initial; - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; -} -input[type="button"], input[type="reset"], input[type="submit"] { - 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; - background-color: #ffffff; -} -select[multiple], select[size] { - height: auto; -} -input[type="image"] { - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; -} -textarea { - height: auto; -} -input[type="hidden"] { - display: none; -} -.radio, .checkbox { - 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; - margin-bottom: 0; - vertical-align: middle; -} -.radio.inline + .radio.inline, .checkbox.inline + .checkbox.inline { - margin-left: 10px; -} -.controls > .radio.inline:first-child, .controls > .checkbox.inline:first-child { - padding-top: 0; -} -input, textarea { - -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; -} -input:focus, textarea:focus { - border-color: rgba(82, 168, 236, 0.8); - -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); - outline: 0; - outline: thin dotted \9; - /* IE6-8 */ - -} -input[type="file"]:focus, input[type="checkbox"]:focus, select:focus { - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; - outline: thin dotted; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} -.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 { - float: none; - margin-left: 0; -} -input.span1, textarea.span1, .uneditable-input.span1 { - width: 50px; -} -input.span2, textarea.span2, .uneditable-input.span2 { - width: 130px; -} -input.span3, textarea.span3, .uneditable-input.span3 { - width: 210px; -} -input.span4, textarea.span4, .uneditable-input.span4 { - width: 290px; -} -input.span5, textarea.span5, .uneditable-input.span5 { - width: 370px; -} -input.span6, textarea.span6, .uneditable-input.span6 { - width: 450px; -} -input.span7, textarea.span7, .uneditable-input.span7 { - width: 530px; -} -input.span8, textarea.span8, .uneditable-input.span8 { - width: 610px; -} -input.span9, textarea.span9, .uneditable-input.span9 { - width: 690px; -} -input.span10, textarea.span10, .uneditable-input.span10 { - width: 770px; -} -input.span11, textarea.span11, .uneditable-input.span11 { - width: 850px; -} -input.span12, textarea.span12, .uneditable-input.span12 { - width: 930px; -} -input[disabled], -select[disabled], -textarea[disabled], -input[readonly], -select[readonly], -textarea[readonly] { - background-color: #f5f5f5; - border-color: #ddd; - cursor: not-allowed; -} -.control-group.warning > label, .control-group.warning .help-block, .control-group.warning .help-inline { - color: #c09853; -} -.control-group.warning input, .control-group.warning select, .control-group.warning textarea { - color: #c09853; - border-color: #c09853; -} -.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 input, .control-group.error select, .control-group.error textarea { - color: #b94a48; - border-color: #b94a48; -} -.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 input, .control-group.success select, .control-group.success textarea { - color: #468847; - border-color: #468847; -} -.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 #ddd; -} -.uneditable-input { - display: block; - 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); - cursor: not-allowed; -} -:-moz-placeholder { - color: #999999; -} -::-webkit-input-placeholder { - color: #999999; -} -.help-block { - margin-top: 5px; - margin-bottom: 0; - color: #999999; -} -.help-inline { - display: inline-block; - *display: inline; - /* IE7 inline-block hack */ - - *zoom: 1; - margin-bottom: 9px; - vertical-align: middle; - padding-left: 5px; -} -.input-prepend, .input-append { - margin-bottom: 5px; - *zoom: 1; -} -.input-prepend:before, -.input-append:before, -.input-prepend:after, -.input-append:after { - display: table; - content: ""; -} -.input-prepend:after, .input-append:after { - clear: both; -} -.input-prepend input, -.input-append input, -.input-prepend .uneditable-input, -.input-append .uneditable-input { - -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 .uneditable-input:focus, -.input-append .uneditable-input:focus { - position: relative; - z-index: 2; -} -.input-prepend .uneditable-input, .input-append .uneditable-input { - border-left-color: #ccc; -} -.input-prepend .add-on, .input-append .add-on { - float: left; - display: block; - width: auto; - min-width: 16px; - height: 18px; - margin-right: -1px; - padding: 4px 5px; - font-weight: normal; - line-height: 18px; - color: #999999; - text-align: center; - text-shadow: 0 1px 0 #ffffff; - background-color: #f5f5f5; - border: 1px solid #ccc; - -webkit-border-radius: 3px 0 0 3px; - -moz-border-radius: 3px 0 0 3px; - border-radius: 3px 0 0 3px; -} -.input-prepend .active, .input-append .active { - background-color: #a9dba9; - border-color: #46a546; -} -.input-prepend .add-on { - *margin-top: 1px; - /* IE6-7 */ - -} -.input-append input, .input-append .uneditable-input { - float: left; - -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; -} -.input-append .add-on { - margin-right: 0; - margin-left: -1px; - -webkit-border-radius: 0 3px 3px 0; - -moz-border-radius: 0 3px 3px 0; - border-radius: 0 3px 3px 0; -} -.input-append input:first-child { - *margin-left: -160px; -} -.input-append input:first-child + .add-on { - *margin-left: -21px; -} -.search-query { - padding-left: 14px; - padding-right: 14px; - 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 { - display: inline-block; - margin-bottom: 0; -} -.form-search label, -.form-inline label, -.form-search .input-append, -.form-inline .input-append, -.form-search .input-prepend, -.form-inline .input-prepend { - display: inline-block; -} -.form-search .input-append .add-on, -.form-inline .input-prepend .add-on, -.form-search .input-append .add-on, -.form-inline .input-prepend .add-on { - vertical-align: middle; -} -.control-group { - margin-bottom: 9px; -} -.form-horizontal 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-group > label { - float: left; - width: 140px; - padding-top: 5px; - text-align: right; -} -.form-horizontal .controls { - margin-left: 160px; -} -.form-horizontal .form-actions { - padding-left: 160px; -} -table { - max-width: 100%; - border-collapse: collapse; - border-spacing: 0; -} -.table { - width: 100%; - margin-bottom: 18px; -} -.table th, .table td { - padding: 8px; - line-height: 18px; - text-align: left; - border-top: 1px solid #ddd; -} -.table th { - font-weight: bold; - vertical-align: bottom; -} -.table td { - vertical-align: top; -} -.table thead:first-child tr th, .table thead:first-child tr 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; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} -.table-bordered th + th, -.table-bordered td + td, -.table-bordered th + td, -.table-bordered td + th { - border-left: 1px solid #ddd; -} -.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-radius: 4px 0 0 0; - -moz-border-radius: 4px 0 0 0; - border-radius: 4px 0 0 0; -} -.table-bordered thead:first-child tr:first-child th:last-child, .table-bordered tbody:first-child tr:first-child td:last-child { - -webkit-border-radius: 0 4px 0 0; - -moz-border-radius: 0 4px 0 0; - border-radius: 0 4px 0 0; -} -.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; -} -.table-bordered thead:last-child tr:last-child th:last-child, .table-bordered tbody:last-child tr:last-child td:last-child { - -webkit-border-radius: 0 0 4px 0; - -moz-border-radius: 0 0 4px 0; - border-radius: 0 0 4px 0; -} -.table-striped tbody tr:nth-child(odd) td, .table-striped tbody tr:nth-child(odd) th { - background-color: #f9f9f9; -} -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; -} -[class^="icon-"] { - display: inline-block; - width: 14px; - height: 14px; - vertical-align: text-top; - background-image: url(../img/glyphicons-halflings.png); - background-position: 14px 14px; - background-repeat: no-repeat; - *margin-right: .3em; -} -[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; -} -.dropdown { - position: relative; -} -.dropdown-toggle { - *margin-bottom: -3px; -} -.dropdown-toggle:active, .open .dropdown-toggle { - outline: 0; -} -.caret { - display: inline-block; - width: 0; - height: 0; - text-indent: -99999px; - *text-indent: 0; - vertical-align: top; - border-left: 4px solid transparent; - border-right: 4px solid transparent; - border-top: 4px solid #000000; - opacity: 0.3; - filter: alpha(opacity=30); - content: "\2193"; -} -.dropdown .caret { - margin-top: 8px; - margin-left: 2px; -} -.dropdown:hover .caret, .open.dropdown .caret { - opacity: 1; - filter: alpha(opacity=100); -} -.dropdown-menu { - position: absolute; - top: 100%; - left: 0; - z-index: 1000; - float: left; - display: none; - min-width: 160px; - max-width: 220px; - _width: 160px; - padding: 4px 0; - margin: 0; - list-style: none; - background-color: #ffffff; - border-color: #ccc; - border-color: rgba(0, 0, 0, 0.2); - border-style: solid; - border-width: 1px; - -webkit-border-radius: 0 0 5px 5px; - -moz-border-radius: 0 0 5px 5px; - border-radius: 0 0 5px 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; - *border-right-width: 2px; - *border-bottom-width: 2px; -} -.dropdown-menu.bottom-up { - top: auto; - bottom: 100%; - margin-bottom: 2px; -} -.dropdown-menu .divider { - height: 1px; - margin: 5px 1px; - overflow: hidden; - background-color: #e5e5e5; - border-bottom: 1px solid #ffffff; - *width: 100%; - *margin: -5px 0 5px; -} -.dropdown-menu a { - display: block; - padding: 3px 15px; - clear: both; - font-weight: normal; - line-height: 18px; - color: #555555; - 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; -} -.dropdown.open { - *z-index: 1000; -} -.dropdown.open .dropdown-toggle { - color: #ffffff; - background: #ccc; - background: rgba(0, 0, 0, 0.3); -} -.dropdown.open .dropdown-menu { - display: block; -} -.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); -} -.fade { - -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; - opacity: 0; -} -.fade.in { - opacity: 1; -} -.collapse { - -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; - position: relative; - overflow: hidden; - height: 0; -} -.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; - opacity: 0.4; - filter: alpha(opacity=40); - cursor: pointer; -} -.btn { - display: inline-block; - padding: 4px 10px 4px; - font-size: 13px; - line-height: 18px; - color: #333333; - text-align: center; - text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); - background-color: #fafafa; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), color-stop(25%, #ffffff), to(#e6e6e6)); - background-image: -webkit-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6); - background-image: -moz-linear-gradient(top, #ffffff, #ffffff 25%, #e6e6e6); - background-image: -ms-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6); - background-image: -o-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6); - background-image: linear-gradient(#ffffff, #ffffff 25%, #e6e6e6); - background-repeat: no-repeat; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0); - border: 1px solid #ccc; - border-bottom-color: #bbb; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - -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); - cursor: pointer; - *margin-left: .3em; -} -.btn:first-child { - *margin-left: 0; -} -.btn:hover { - color: #333333; - text-decoration: none; - background-color: #e6e6e6; - 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; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} -.btn.active, .btn:active { - 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); - background-color: #e6e6e6; - background-color: #d9d9d9 \9; - color: rgba(0, 0, 0, 0.5); - outline: 0; -} -.btn.disabled, .btn[disabled] { - cursor: default; - background-image: none; - background-color: #e6e6e6; - 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 .icon { - margin-top: 1px; -} -.btn-small { - padding: 5px 9px; - font-size: 11px; - line-height: 16px; -} -.btn-small .icon { - margin-top: -1px; -} -.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 { - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - color: #ffffff; -} -.btn-primary.active, -.btn-warning.active, -.btn-danger.active, -.btn-success.active, -.btn-info.active { - color: rgba(255, 255, 255, 0.75); -} -.btn-primary { - background-color: #006dcc; - background-image: -moz-linear-gradient(top, #0088cc, #0044cc); - background-image: -ms-linear-gradient(top, #0088cc, #0044cc); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc)); - background-image: -webkit-linear-gradient(top, #0088cc, #0044cc); - background-image: -o-linear-gradient(top, #0088cc, #0044cc); - background-image: linear-gradient(top, #0088cc, #0044cc); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0044cc', GradientType=0); - border-color: #0044cc #0044cc #002a80; - 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(enabled = false); -} -.btn-primary:hover, -.btn-primary:active, -.btn-primary.active, -.btn-primary.disabled, -.btn-primary[disabled] { - background-color: #0044cc; -} -.btn-primary:active, .btn-primary.active { - background-color: #003399 \9; -} -.btn-warning { - 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); - 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(enabled = false); -} -.btn-warning:hover, -.btn-warning:active, -.btn-warning.active, -.btn-warning.disabled, -.btn-warning[disabled] { - background-color: #f89406; -} -.btn-warning:active, .btn-warning.active { - background-color: #c67605 \9; -} -.btn-danger { - background-color: #da4f49; - background-image: -moz-linear-gradient(top, #ee5f5b, #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: linear-gradient(top, #ee5f5b, #bd362f); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#bd362f', GradientType=0); - 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(enabled = false); -} -.btn-danger:hover, -.btn-danger:active, -.btn-danger.active, -.btn-danger.disabled, -.btn-danger[disabled] { - background-color: #bd362f; -} -.btn-danger:active, .btn-danger.active { - background-color: #942a25 \9; -} -.btn-success { - background-color: #5bb75b; - background-image: -moz-linear-gradient(top, #62c462, #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: linear-gradient(top, #62c462, #51a351); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#51a351', GradientType=0); - 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(enabled = false); -} -.btn-success:hover, -.btn-success:active, -.btn-success.active, -.btn-success.disabled, -.btn-success[disabled] { - background-color: #51a351; -} -.btn-success:active, .btn-success.active { - background-color: #408140 \9; -} -.btn-info { - background-color: #49afcd; - background-image: -moz-linear-gradient(top, #5bc0de, #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: linear-gradient(top, #5bc0de, #2f96b4); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#2f96b4', GradientType=0); - 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(enabled = false); -} -.btn-info:hover, -.btn-info:active, -.btn-info.active, -.btn-info.disabled, -.btn-info[disabled] { - background-color: #2f96b4; -} -.btn-info:active, .btn-info.active { - background-color: #24748c \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.large, input[type="submit"].btn.large { - *padding-top: 7px; - *padding-bottom: 7px; -} -button.btn.small, input[type="submit"].btn.small { - *padding-top: 3px; - *padding-bottom: 3px; -} -.btn-group { - position: relative; - *zoom: 1; - *margin-left: .3em; -} -.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-top-left-radius: 4px; - -moz-border-radius-topleft: 4px; - border-top-left-radius: 4px; - -webkit-border-bottom-left-radius: 4px; - -moz-border-radius-bottomleft: 4px; - border-bottom-left-radius: 4px; -} -.btn-group .btn:last-child, .btn-group .dropdown-toggle { - -webkit-border-top-right-radius: 4px; - -moz-border-radius-topright: 4px; - border-top-right-radius: 4px; - -webkit-border-bottom-right-radius: 4px; - -moz-border-radius-bottomright: 4px; - border-bottom-right-radius: 4px; -} -.btn-group .btn.large:first-child { - margin-left: 0; - -webkit-border-top-left-radius: 6px; - -moz-border-radius-topleft: 6px; - border-top-left-radius: 6px; - -webkit-border-bottom-left-radius: 6px; - -moz-border-radius-bottomleft: 6px; - border-bottom-left-radius: 6px; -} -.btn-group .btn.large:last-child, .btn-group .large.dropdown-toggle { - -webkit-border-top-right-radius: 6px; - -moz-border-radius-topright: 6px; - border-top-right-radius: 6px; - -webkit-border-bottom-right-radius: 6px; - -moz-border-radius-bottomright: 6px; - border-bottom-right-radius: 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-left: 8px; - padding-right: 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); - *padding-top: 5px; - *padding-bottom: 5px; -} -.btn-group.open { - *z-index: 1000; -} -.btn-group.open .dropdown-menu { - display: block; - margin-top: 1px; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - border-radius: 5px; -} -.btn-group.open .dropdown-toggle { - background-image: none; - -webkit-box-shadow: inset 0 1px 6px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); - -moz-box-shadow: inset 0 1px 6px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 6px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); -} -.btn .caret { - margin-top: 7px; - margin-left: 0; -} -.btn:hover .caret, .open.btn-group .caret { - opacity: 1; - filter: alpha(opacity=100); -} -.btn-primary .caret, -.btn-danger .caret, -.btn-info .caret, -.btn-success .caret { - border-top-color: #ffffff; - opacity: 0.75; - filter: alpha(opacity=75); -} -.btn-small .caret { - margin-top: 4px; -} -.alert { - padding: 8px 35px 8px 14px; - margin-bottom: 18px; - 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, .alert-heading { - color: #c09853; -} -.alert .close { - position: relative; - top: -2px; - right: -21px; - line-height: 18px; -} -.alert-success { - background-color: #dff0d8; - border-color: #d6e9c6; -} -.alert-success, .alert-success .alert-heading { - color: #468847; -} -.alert-danger, .alert-error { - background-color: #f2dede; - border-color: #eed3d7; -} -.alert-danger, -.alert-error, -.alert-danger .alert-heading, -.alert-error .alert-heading { - color: #b94a48; -} -.alert-info { - background-color: #d9edf7; - border-color: #bce8f1; -} -.alert-info, .alert-info .alert-heading { - color: #3a87ad; -} -.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-left: 0; - margin-bottom: 18px; - list-style: none; -} -.nav > li > a { - display: block; -} -.nav > li > a:hover { - text-decoration: none; - background-color: #eeeeee; -} -.nav-list { - padding-left: 14px; - padding-right: 14px; - margin-bottom: 0; -} -.nav-list > li > a, .nav-list .nav-header { - display: block; - padding: 3px 15px; - margin-left: -15px; - margin-right: -15px; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); -} -.nav-list .nav-header { - font-size: 11px; - font-weight: bold; - line-height: 18px; - color: #999999; - text-transform: uppercase; -} - -.nav-list .nav-header * { - text-transform:none; -} - -.nav-list > li + .nav-header { - margin-top: 9px; -} -.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-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: 9px; - padding-bottom: 9px; - 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; - background-color: #ffffff; - border: 1px solid #ddd; - border-bottom-color: transparent; - cursor: default; -} -.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 { - border-color: #ddd; - z-index: 2; -} -.nav-pills.nav-stacked > li > a { - margin-bottom: 3px; -} -.nav-pills.nav-stacked > li:last-child > a { - margin-bottom: 1px; -} -.nav-tabs .dropdown-menu, .nav-pills .dropdown-menu { - margin-top: 1px; - border-width: 1px; -} -.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 { - border-top-color: #0088cc; - margin-top: 6px; -} -.nav-tabs .dropdown-toggle:hover .caret, .nav-pills .dropdown-toggle:hover .caret { - border-top-color: #005580; -} -.nav-tabs .active .dropdown-toggle .caret, .nav-pills .active .dropdown-toggle .caret { - border-top-color: #333333; -} -.nav > .dropdown.active > a:hover { - color: #000000; - cursor: pointer; -} -.nav-tabs .open .dropdown-toggle, .nav-pills .open .dropdown-toggle, .nav > .open.active > a:hover { - color: #ffffff; - background-color: #999999; - border-color: #999999; -} -.nav .open .caret, .nav .open.active .caret, .nav .open a:hover .caret { - border-top-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; -} -.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-bottom-color: transparent; - border-top-color: #ddd; -} -.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 { - overflow: visible; - margin-bottom: 18px; -} -.navbar-inner { - padding-left: 20px; - padding-right: 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; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0); - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - -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); -} -.btn-navbar { - display: none; - float: right; - padding: 7px 10px; - margin-left: 5px; - margin-right: 5px; - 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; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0); - 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(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); -} -.btn-navbar:hover, -.btn-navbar:active, -.btn-navbar.active, -.btn-navbar.disabled, -.btn-navbar[disabled] { - background-color: #222222; -} -.btn-navbar:active, .btn-navbar.active { - background-color: #080808 \9; -} -.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; -} -.nav-collapse.collapse { - height: auto; -} -.navbar .brand:hover { - text-decoration: none; -} -.navbar .brand { - float: left; - display: block; - padding: 8px 20px 12px; - margin-left: -20px; - font-size: 20px; - font-weight: 200; - line-height: 1; - color: #ffffff; -} -.navbar .navbar-text { - margin-bottom: 0; - line-height: 40px; - color: #999999; -} -.navbar .navbar-text a:hover { - color: #ffffff; - background-color: transparent; -} -.navbar .btn, .navbar .btn-group { - margin-top: 5px; -} -.navbar .btn-group .btn { - margin-top: 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 { - display: inline-block; - margin-top: 5px; - margin-bottom: 0; -} -.navbar-form .radio, .navbar-form .checkbox { - margin-top: 5px; -} -.navbar-form input[type="image"], .navbar-form input[type="checkbox"], .navbar-form input[type="radio"] { - margin-top: 3px; -} -.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; - color: rgba(255, 255, 255, 0.75); - background: #666; - background: rgba(255, 255, 255, 0.3); - border: 1px solid #111; - -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0px rgba(255, 255, 255, 0.15); - -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0px rgba(255, 255, 255, 0.15); - box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0px 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: #eeeeee; -} -.navbar-search .search-query::-webkit-input-placeholder { - color: #eeeeee; -} -.navbar-search .search-query:hover { - color: #ffffff; - background-color: #999999; - background-color: rgba(255, 255, 255, 0.5); -} -.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; - -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); - outline: 0; -} -.navbar-fixed-top { - position: fixed; - top: 0; - right: 0; - left: 0; - z-index: 1030; -} -.navbar-fixed-top .navbar-inner { - padding-left: 0; - padding-right: 0; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 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: 10px 10px 11px; - line-height: 19px; - color: #999999; - text-decoration: none; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); -} -.navbar .nav > li > a:hover { - background-color: transparent; - color: #ffffff; - text-decoration: none; -} -.navbar .nav .active > a, .navbar .nav .active > a:hover { - color: #ffffff; - text-decoration: none; - background-color: #222222; - background-color: rgba(0, 0, 0, 0.5); -} -.navbar .divider-vertical { - height: 40px; - width: 1px; - margin: 0 9px; - overflow: hidden; - background-color: #222222; - border-right: 1px solid #333333; -} -.navbar .nav.pull-right { - margin-left: 10px; - margin-right: 0; -} -.navbar .dropdown-menu { - margin-top: 1px; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} -.navbar .dropdown-menu:before { - content: ''; - display: inline-block; - border-left: 7px solid transparent; - border-right: 7px solid transparent; - border-bottom: 7px solid #ccc; - border-bottom-color: rgba(0, 0, 0, 0.2); - position: absolute; - top: -7px; - left: 9px; -} -.navbar .dropdown-menu:after { - content: ''; - display: inline-block; - border-left: 6px solid transparent; - border-right: 6px solid transparent; - border-bottom: 6px solid #ffffff; - position: absolute; - top: -6px; - left: 10px; -} -.navbar .nav .dropdown-toggle .caret, .navbar .nav .open.dropdown .caret { - border-top-color: #ffffff; -} -.navbar .nav .active .caret { - opacity: 1; - filter: alpha(opacity=100); -} -.navbar .nav .open > .dropdown-toggle, .navbar .nav .active > .dropdown-toggle, .navbar .nav .open.active > .dropdown-toggle { - background-color: transparent; -} -.navbar .nav .active > .dropdown-toggle:hover { - color: #ffffff; -} -.navbar .nav.pull-right .dropdown-menu { - left: auto; - right: 0; -} -.navbar .nav.pull-right .dropdown-menu:before { - left: auto; - right: 12px; -} -.navbar .nav.pull-right .dropdown-menu:after { - left: auto; - right: 13px; -} -.breadcrumb { - padding: 7px 14px; - margin: 0 0 18px; - 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; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f5f5f5', GradientType=0); - border: 1px solid #ddd; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - -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; - text-shadow: 0 1px 0 #ffffff; -} -.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; - /* IE7 inline-block hack */ - - *zoom: 1; - margin-left: 0; - margin-bottom: 0; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - -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 a, .pagination .disabled a:hover { - color: #999999; - background-color: transparent; - cursor: default; -} -.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-left: 0; - margin-bottom: 18px; - list-style: none; - text-align: center; - *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; -} -.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; - max-height: 500px; - overflow: auto; - width: 560px; - margin: -250px 0 0 -280px; - background-color: #ffffff; - border: 1px solid #999; - border: 1px solid rgba(0, 0, 0, 0.3); - *border: 1px solid #999; - /* IE6-7 */ - - -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 { - -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; - top: -25%; -} -.modal.fade.in { - top: 50%; -} -.modal-header { - padding: 9px 15px; - border-bottom: 1px solid #eee; -} -.modal-header .close { - margin-top: 2px; -} -.modal-body { - padding: 15px; -} -.modal-footer { - padding: 14px 15px 15px; - margin-bottom: 0; - 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; - -webkit-box-shadow: inset 0 1px 0 #ffffff; - -moz-box-shadow: inset 0 1px 0 #ffffff; - box-shadow: inset 0 1px 0 #ffffff; - *zoom: 1; -} -.modal-footer:before, .modal-footer:after { - display: table; - content: ""; -} -.modal-footer:after { - clear: both; -} -.modal-footer .btn { - float: right; - margin-left: 5px; - margin-bottom: 0; -} -.tooltip { - position: absolute; - z-index: 1020; - display: block; - visibility: visible; - padding: 5px; - font-size: 11px; - opacity: 0; - filter: alpha(opacity=0); -} -.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-left: 5px solid transparent; - border-right: 5px solid transparent; - border-top: 5px solid #000000; -} -.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-left: 5px solid transparent; - border-right: 5px solid transparent; - border-bottom: 5px solid #000000; -} -.tooltip.right .tooltip-arrow { - top: 50%; - left: 0; - margin-top: -5px; - border-top: 5px solid transparent; - border-bottom: 5px solid transparent; - border-right: 5px solid #000000; -} -.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-left: 5px solid transparent; - border-right: 5px solid transparent; - border-top: 5px solid #000000; -} -.popover.right .arrow { - top: 50%; - left: 0; - margin-top: -5px; - border-top: 5px solid transparent; - border-bottom: 5px solid transparent; - border-right: 5px solid #000000; -} -.popover.bottom .arrow { - top: 0; - left: 50%; - margin-left: -5px; - border-left: 5px solid transparent; - border-right: 5px solid transparent; - border-bottom: 5px solid #000000; -} -.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 { - padding: 3px; - width: 280px; - 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; -} -.thumbnails > li { - float: left; - margin: 0 0 18px 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-left: auto; - margin-right: auto; -} -.thumbnail .caption { - padding: 9px; -} -.label { - padding: 1px 3px 2px; - font-size: 9.75px; - font-weight: bold; - color: #ffffff; - text-transform: uppercase; - background-color: #999999; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; -} -.label-important { - background-color: #b94a48; -} -.label-warning { - background-color: #f89406; -} -.label-success { - background-color: #468847; -} -.label-info { - background-color: #3a87ad; -} -@-webkit-keyframes progress-bar-stripes { - from { - background-position: 0 0; - } - to { - background-position: 40px 0; - } -} -@-moz-keyframes progress-bar-stripes { - from { - background-position: 0 0; - } - to { - background-position: 40px 0; - } -} -@keyframes progress-bar-stripes { - from { - background-position: 0 0; - } - to { - background-position: 40px 0; - } -} -.progress { - overflow: hidden; - height: 18px; - margin-bottom: 18px; - 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; - 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); - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} -.progress .bar { - width: 0%; - height: 18px; - color: #ffffff; - font-size: 12px; - 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: -ms-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-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; - 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: #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); - -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; - 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); -} -.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-inner { - padding: 9px 15px; - border-top: 1px solid #e5e5e5; -} -.carousel { - position: relative; - margin-bottom: 18px; - line-height: 1; -} -.carousel-inner { - overflow: hidden; - width: 100%; - position: relative; -} -.carousel .item { - display: none; - position: relative; - -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 { - left: auto; - right: 15px; -} -.carousel-control:hover { - color: #ffffff; - text-decoration: none; - opacity: 0.9; - filter: alpha(opacity=90); -} -.carousel-caption { - position: absolute; - left: 0; - right: 0; - bottom: 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: #f5f5f5; - -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; -} -.hero-unit p { - font-size: 18px; - font-weight: 200; - line-height: 27px; -} -.pull-right { - float: right; -} -.pull-left { - float: left; -} -.hide { - display: none; -} -.show { - display: block; -} -.invisible { - visibility: hidden; -} diff --git a/docs/css/bootstrap.min.css b/docs/css/bootstrap.min.css deleted file mode 100644 index d522124..0000000 --- a/docs/css/bootstrap.min.css +++ /dev/null @@ -1,611 +0,0 @@ -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;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%;height:auto;border:0;-ms-interpolation-mode:bicubic;} -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-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;} -input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none;} -textarea{overflow:auto;vertical-align:top;} -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;} -.span1{width:60px;} -.span2{width:140px;} -.span3{width:220px;} -.span4{width:300px;} -.span5{width:380px;} -.span6{width:460px;} -.span7{width:540px;} -.span8{width:620px;} -.span9{width:700px;} -.span10{width:780px;} -.span11{width:860px;} -.span12,.container{width:940px;} -.offset1{margin-left:100px;} -.offset2{margin-left:180px;} -.offset3{margin-left:260px;} -.offset4{margin-left:340px;} -.offset5{margin-left:420px;} -.offset6{margin-left:500px;} -.offset7{margin-left:580px;} -.offset8{margin-left:660px;} -.offset9{margin-left:740px;} -.offset10{margin-left:820px;} -.offset11{margin-left:900px;} -.row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";} -.row-fluid:after{clear:both;} -.row-fluid>[class*="span"]{float:left;margin-left:2.127659574%;} -.row-fluid>[class*="span"]:first-child{margin-left:0;} -.row-fluid .span1{width:6.382978723%;} -.row-fluid .span2{width:14.89361702%;} -.row-fluid .span3{width:23.404255317%;} -.row-fluid .span4{width:31.914893614%;} -.row-fluid .span5{width:40.425531911%;} -.row-fluid .span6{width:48.93617020799999%;} -.row-fluid .span7{width:57.446808505%;} -.row-fluid .span8{width:65.95744680199999%;} -.row-fluid .span9{width:74.468085099%;} -.row-fluid .span10{width:82.97872339599999%;} -.row-fluid .span11{width:91.489361693%;} -.row-fluid .span12{width:99.99999998999999%;} -.container{width:940px;margin-left:auto;margin-right:auto;*zoom:1;}.container:before,.container:after{display:table;content:"";} -.container:after{clear:both;} -.container-fluid{padding-left:20px;padding-right:20px;*zoom:1;}.container-fluid:before,.container-fluid:after{display:table;content:"";} -.container-fluid:after{clear:both;} -p{margin:0 0 9px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;line-height:18px;}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-weight:bold;color:#333333;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{line-height:27px;font-size:18px;}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{margin-left:0;list-style:none;} -dl{margin-bottom:18px;} -dt,dd{line-height:18px;} -dt{font-weight:bold;} -dd{margin-left:9px;} -hr{margin:18px 0;border:0;border-top:1px solid #e5e5e5;border-bottom:1px solid #ffffff;} -strong{font-weight:bold;} -em{font-style:italic;} -.muted{color:#999999;} -abbr{font-size:90%;text-transform:uppercase;border-bottom:1px dotted #ddd;cursor:help;} -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-left:0;padding-right:15px;border-left:0;border-right:5px solid #eeeeee;}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;line-height:18px;font-style:normal;} -small{font-size:100%;} -cite{font-style:normal;} -code,pre{padding:0 3px 2px;font-family:Menlo,Monaco,"Courier New",monospace;font-size:12px;color:#333333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} -code{padding:3px 4px;color:#d14;background-color:#f7f7f9;border:1px solid #e1e1e8;} -pre{display:block;padding:8.5px;margin:0 0 9px;font-size:12px;line-height:18px;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;white-space:pre;white-space:pre-wrap;word-break:break-all;}pre.prettyprint{margin-bottom:18px;} -pre code{padding:0;background-color:transparent;} -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 #eee;} -label,input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:18px;} -label{display:block;margin-bottom:5px;color:#333333;} -input,textarea,select,.uneditable-input{display:inline-block;width:210px;height:18px;padding:4px;margin-bottom:9px;font-size:13px;line-height:18px;color:#555555;border:1px solid #ccc;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} -.uneditable-textarea{width:auto;height:auto;} -label input,label textarea,label select{display:block;} -input[type="image"],input[type="checkbox"],input[type="radio"]{width:auto;height:auto;padding:0;margin:3px 0;*margin-top:0;line-height:normal;border:0;cursor:pointer;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;} -input[type="file"]{padding:initial;line-height:initial;border:initial;background-color:#ffffff;background-color:initial;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;} -input[type="button"],input[type="reset"],input[type="submit"]{width:auto;height:auto;} -select,input[type="file"]{height:28px;*margin-top:4px;line-height:28px;} -select{width:220px;background-color:#ffffff;} -select[multiple],select[size]{height:auto;} -input[type="image"]{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;} -textarea{height:auto;} -input[type="hidden"]{display:none;} -.radio,.checkbox{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;margin-bottom:0;vertical-align:middle;} -.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px;} -.controls>.radio.inline:first-child,.controls>.checkbox.inline:first-child{padding-top:0;} -input,textarea{-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;} -input:focus,textarea:focus{border-color:rgba(82, 168, 236, 0.8);-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);outline:0;outline:thin dotted \9;} -input[type="file"]:focus,input[type="checkbox"]:focus,select:focus{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;} -.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{float:none;margin-left:0;} -input.span1,textarea.span1,.uneditable-input.span1{width:50px;} -input.span2,textarea.span2,.uneditable-input.span2{width:130px;} -input.span3,textarea.span3,.uneditable-input.span3{width:210px;} -input.span4,textarea.span4,.uneditable-input.span4{width:290px;} -input.span5,textarea.span5,.uneditable-input.span5{width:370px;} -input.span6,textarea.span6,.uneditable-input.span6{width:450px;} -input.span7,textarea.span7,.uneditable-input.span7{width:530px;} -input.span8,textarea.span8,.uneditable-input.span8{width:610px;} -input.span9,textarea.span9,.uneditable-input.span9{width:690px;} -input.span10,textarea.span10,.uneditable-input.span10{width:770px;} -input.span11,textarea.span11,.uneditable-input.span11{width:850px;} -input.span12,textarea.span12,.uneditable-input.span12{width:930px;} -input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{background-color:#f5f5f5;border-color:#ddd;cursor:not-allowed;} -.control-group.warning>label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853;} -.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853;border-color:#c09853;}.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 input,.control-group.error select,.control-group.error textarea{color:#b94a48;border-color:#b94a48;}.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 input,.control-group.success select,.control-group.success textarea{color:#468847;border-color:#468847;}.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 #ddd;} -.uneditable-input{display:block;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);cursor:not-allowed;} -:-moz-placeholder{color:#999999;} -::-webkit-input-placeholder{color:#999999;} -.help-block{margin-top:5px;margin-bottom:0;color:#999999;} -.help-inline{display:inline-block;*display:inline;*zoom:1;margin-bottom:9px;vertical-align:middle;padding-left:5px;} -.input-prepend,.input-append{margin-bottom:5px;*zoom:1;}.input-prepend:before,.input-append:before,.input-prepend:after,.input-append:after{display:table;content:"";} -.input-prepend:after,.input-append:after{clear:both;} -.input-prepend input,.input-append input,.input-prepend .uneditable-input,.input-append .uneditable-input{-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 .uneditable-input:focus,.input-append .uneditable-input:focus{position:relative;z-index:2;} -.input-prepend .uneditable-input,.input-append .uneditable-input{border-left-color:#ccc;} -.input-prepend .add-on,.input-append .add-on{float:left;display:block;width:auto;min-width:16px;height:18px;margin-right:-1px;padding:4px 5px;font-weight:normal;line-height:18px;color:#999999;text-align:center;text-shadow:0 1px 0 #ffffff;background-color:#f5f5f5;border:1px solid #ccc;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;} -.input-prepend .active,.input-append .active{background-color:#a9dba9;border-color:#46a546;} -.input-prepend .add-on{*margin-top:1px;} -.input-append input,.input-append .uneditable-input{float:left;-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;} -.input-append .add-on{margin-right:0;margin-left:-1px;-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0;} -.input-append input:first-child{*margin-left:-160px;}.input-append input:first-child+.add-on{*margin-left:-21px;} -.search-query{padding-left:14px;padding-right:14px;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{display:inline-block;margin-bottom:0;} -.form-search label,.form-inline label,.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{display:inline-block;} -.form-search .input-append .add-on,.form-inline .input-prepend .add-on,.form-search .input-append .add-on,.form-inline .input-prepend .add-on{vertical-align:middle;} -.control-group{margin-bottom:9px;} -.form-horizontal 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-group>label{float:left;width:140px;padding-top:5px;text-align:right;} -.form-horizontal .controls{margin-left:160px;} -.form-horizontal .form-actions{padding-left:160px;} -table{max-width:100%;border-collapse:collapse;border-spacing:0;} -.table{width:100%;margin-bottom:18px;}.table th,.table td{padding:8px;line-height:18px;text-align:left;border-top:1px solid #ddd;} -.table th{font-weight:bold;vertical-align:bottom;} -.table td{vertical-align:top;} -.table thead:first-child tr th,.table thead:first-child tr 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;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}.table-bordered th+th,.table-bordered td+td,.table-bordered th+td,.table-bordered td+th{border-left:1px solid #ddd;} -.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-radius:4px 0 0 0;-moz-border-radius:4px 0 0 0;border-radius:4px 0 0 0;} -.table-bordered thead:first-child tr:first-child th:last-child,.table-bordered tbody:first-child tr:first-child td:last-child{-webkit-border-radius:0 4px 0 0;-moz-border-radius:0 4px 0 0;border-radius:0 4px 0 0;} -.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;} -.table-bordered thead:last-child tr:last-child th:last-child,.table-bordered tbody:last-child tr:last-child td:last-child{-webkit-border-radius:0 0 4px 0;-moz-border-radius:0 0 4px 0;border-radius:0 0 4px 0;} -.table-striped tbody tr:nth-child(odd) td,.table-striped tbody tr:nth-child(odd) th{background-color:#f9f9f9;} -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;} -[class^="icon-"]{display:inline-block;width:14px;height:14px;vertical-align:text-top;background-image:url(../img/glyphicons-halflings.png);background-position:14px 14px;background-repeat:no-repeat;*margin-right:.3em;}[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;} -.dropdown{position:relative;} -.dropdown-toggle{*margin-bottom:-3px;} -.dropdown-toggle:active,.open .dropdown-toggle{outline:0;} -.caret{display:inline-block;width:0;height:0;text-indent:-99999px;*text-indent:0;vertical-align:top;border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid #000000;opacity:0.3;filter:alpha(opacity=30);content:"\2193";} -.dropdown .caret{margin-top:8px;margin-left:2px;} -.dropdown:hover .caret,.open.dropdown .caret{opacity:1;filter:alpha(opacity=100);} -.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;float:left;display:none;min-width:160px;max-width:220px;_width:160px;padding:4px 0;margin:0;list-style:none;background-color:#ffffff;border-color:#ccc;border-color:rgba(0, 0, 0, 0.2);border-style:solid;border-width:1px;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;border-radius:0 0 5px 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;*border-right-width:2px;*border-bottom-width:2px;}.dropdown-menu.bottom-up{top:auto;bottom:100%;margin-bottom:2px;} -.dropdown-menu .divider{height:1px;margin:5px 1px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #ffffff;*width:100%;*margin:-5px 0 5px;} -.dropdown-menu a{display:block;padding:3px 15px;clear:both;font-weight:normal;line-height:18px;color:#555555;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;} -.dropdown.open{*z-index:1000;}.dropdown.open .dropdown-toggle{color:#ffffff;background:#ccc;background:rgba(0, 0, 0, 0.3);} -.dropdown.open .dropdown-menu{display:block;} -.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);} -.fade{-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;opacity:0;}.fade.in{opacity:1;} -.collapse{-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;position:relative;overflow:hidden;height:0;}.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;opacity:0.4;filter:alpha(opacity=40);cursor:pointer;} -.btn{display:inline-block;padding:4px 10px 4px;font-size:13px;line-height:18px;color:#333333;text-align:center;text-shadow:0 1px 1px rgba(255, 255, 255, 0.75);background-color:#fafafa;background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), color-stop(25%, #ffffff), to(#e6e6e6));background-image:-webkit-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);background-image:-moz-linear-gradient(top, #ffffff, #ffffff 25%, #e6e6e6);background-image:-ms-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);background-image:-o-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);background-image:linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0);border:1px solid #ccc;border-bottom-color:#bbb;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-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);cursor:pointer;*margin-left:.3em;}.btn:first-child{*margin-left:0;} -.btn:hover{color:#333333;text-decoration:none;background-color:#e6e6e6;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;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;} -.btn.active,.btn:active{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);background-color:#e6e6e6;background-color:#d9d9d9 \9;color:rgba(0, 0, 0, 0.5);outline:0;} -.btn.disabled,.btn[disabled]{cursor:default;background-image:none;background-color:#e6e6e6;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 .icon{margin-top:1px;} -.btn-small{padding:5px 9px;font-size:11px;line-height:16px;} -.btn-small .icon{margin-top:-1px;} -.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{text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);color:#ffffff;} -.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active{color:rgba(255, 255, 255, 0.75);} -.btn-primary{background-color:#006dcc;background-image:-moz-linear-gradient(top, #0088cc, #0044cc);background-image:-ms-linear-gradient(top, #0088cc, #0044cc);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc));background-image:-webkit-linear-gradient(top, #0088cc, #0044cc);background-image:-o-linear-gradient(top, #0088cc, #0044cc);background-image:linear-gradient(top, #0088cc, #0044cc);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0044cc', GradientType=0);border-color:#0044cc #0044cc #002a80;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(enabled = false);}.btn-primary:hover,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{background-color:#0044cc;} -.btn-primary:active,.btn-primary.active{background-color:#003399 \9;} -.btn-warning{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);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(enabled = false);}.btn-warning:hover,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{background-color:#f89406;} -.btn-warning:active,.btn-warning.active{background-color:#c67605 \9;} -.btn-danger{background-color:#da4f49;background-image:-moz-linear-gradient(top, #ee5f5b, #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:linear-gradient(top, #ee5f5b, #bd362f);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#bd362f', GradientType=0);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(enabled = false);}.btn-danger:hover,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{background-color:#bd362f;} -.btn-danger:active,.btn-danger.active{background-color:#942a25 \9;} -.btn-success{background-color:#5bb75b;background-image:-moz-linear-gradient(top, #62c462, #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:linear-gradient(top, #62c462, #51a351);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#51a351', GradientType=0);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(enabled = false);}.btn-success:hover,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{background-color:#51a351;} -.btn-success:active,.btn-success.active{background-color:#408140 \9;} -.btn-info{background-color:#49afcd;background-image:-moz-linear-gradient(top, #5bc0de, #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:linear-gradient(top, #5bc0de, #2f96b4);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#2f96b4', GradientType=0);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(enabled = false);}.btn-info:hover,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{background-color:#2f96b4;} -.btn-info:active,.btn-info.active{background-color:#24748c \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.large,input[type="submit"].btn.large{*padding-top:7px;*padding-bottom:7px;} -button.btn.small,input[type="submit"].btn.small{*padding-top:3px;*padding-bottom:3px;} -.btn-group{position:relative;*zoom:1;*margin-left:.3em;}.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-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px;} -.btn-group .btn:last-child,.btn-group .dropdown-toggle{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px;} -.btn-group .btn.large:first-child{margin-left:0;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px;} -.btn-group .btn.large:last-child,.btn-group .large.dropdown-toggle{-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius: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-left:8px;padding-right: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);*padding-top:5px;*padding-bottom:5px;} -.btn-group.open{*z-index:1000;}.btn-group.open .dropdown-menu{display:block;margin-top:1px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;} -.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 1px 6px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 6px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 6px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);} -.btn .caret{margin-top:7px;margin-left:0;} -.btn:hover .caret,.open.btn-group .caret{opacity:1;filter:alpha(opacity=100);} -.btn-primary .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret{border-top-color:#ffffff;opacity:0.75;filter:alpha(opacity=75);} -.btn-small .caret{margin-top:4px;} -.alert{padding:8px 35px 8px 14px;margin-bottom:18px;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,.alert-heading{color:#c09853;} -.alert .close{position:relative;top:-2px;right:-21px;line-height:18px;} -.alert-success{background-color:#dff0d8;border-color:#d6e9c6;} -.alert-success,.alert-success .alert-heading{color:#468847;} -.alert-danger,.alert-error{background-color:#f2dede;border-color:#eed3d7;} -.alert-danger,.alert-error,.alert-danger .alert-heading,.alert-error .alert-heading{color:#b94a48;} -.alert-info{background-color:#d9edf7;border-color:#bce8f1;} -.alert-info,.alert-info .alert-heading{color:#3a87ad;} -.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-left:0;margin-bottom:18px;list-style:none;} -.nav>li>a{display:block;} -.nav>li>a:hover{text-decoration:none;background-color:#eeeeee;} -.nav-list{padding-left:14px;padding-right:14px;margin-bottom:0;} -.nav-list>li>a,.nav-list .nav-header{display:block;padding:3px 15px;margin-left:-15px;margin-right:-15px;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);} -.nav-list .nav-header{font-size:11px;font-weight:bold;line-height:18px;color:#999999;text-transform:uppercase;} -.nav-list .nav-header *{text-transform:none;} -.nav-list>li+.nav-header{margin-top:9px;} -.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-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:9px;padding-bottom:9px;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;background-color:#ffffff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default;} -.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{border-color:#ddd;z-index:2;} -.nav-pills.nav-stacked>li>a{margin-bottom:3px;} -.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px;} -.nav-tabs .dropdown-menu,.nav-pills .dropdown-menu{margin-top:1px;border-width:1px;} -.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{border-top-color:#0088cc;margin-top:6px;} -.nav-tabs .dropdown-toggle:hover .caret,.nav-pills .dropdown-toggle:hover .caret{border-top-color:#005580;} -.nav-tabs .active .dropdown-toggle .caret,.nav-pills .active .dropdown-toggle .caret{border-top-color:#333333;} -.nav>.dropdown.active>a:hover{color:#000000;cursor:pointer;} -.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>.open.active>a:hover{color:#ffffff;background-color:#999999;border-color:#999999;} -.nav .open .caret,.nav .open.active .caret,.nav .open a:hover .caret{border-top-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;} -.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-bottom-color:transparent;border-top-color:#ddd;} -.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{overflow:visible;margin-bottom:18px;} -.navbar-inner{padding-left:20px;padding-right: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;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-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);} -.btn-navbar{display:none;float:right;padding:7px 10px;margin-left:5px;margin-right:5px;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;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0);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(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);}.btn-navbar:hover,.btn-navbar:active,.btn-navbar.active,.btn-navbar.disabled,.btn-navbar[disabled]{background-color:#222222;} -.btn-navbar:active,.btn-navbar.active{background-color:#080808 \9;} -.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;} -.nav-collapse.collapse{height:auto;} -.navbar .brand:hover{text-decoration:none;} -.navbar .brand{float:left;display:block;padding:8px 20px 12px;margin-left:-20px;font-size:20px;font-weight:200;line-height:1;color:#ffffff;} -.navbar .navbar-text{margin-bottom:0;line-height:40px;color:#999999;}.navbar .navbar-text a:hover{color:#ffffff;background-color:transparent;} -.navbar .btn,.navbar .btn-group{margin-top:5px;} -.navbar .btn-group .btn{margin-top: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{display:inline-block;margin-top:5px;margin-bottom:0;} -.navbar-form .radio,.navbar-form .checkbox{margin-top:5px;} -.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px;} -.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;color:rgba(255, 255, 255, 0.75);background:#666;background:rgba(255, 255, 255, 0.3);border:1px solid #111;-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1),0 1px 0px rgba(255, 255, 255, 0.15);-moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1),0 1px 0px rgba(255, 255, 255, 0.15);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1),0 1px 0px 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:#eeeeee;} -.navbar-search .search-query::-webkit-input-placeholder{color:#eeeeee;} -.navbar-search .search-query:hover{color:#ffffff;background-color:#999999;background-color:rgba(255, 255, 255, 0.5);} -.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;-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);outline:0;} -.navbar-fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030;} -.navbar-fixed-top .navbar-inner{padding-left:0;padding-right:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius: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:10px 10px 11px;line-height:19px;color:#999999;text-decoration:none;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);} -.navbar .nav>li>a:hover{background-color:transparent;color:#ffffff;text-decoration:none;} -.navbar .nav .active>a,.navbar .nav .active>a:hover{color:#ffffff;text-decoration:none;background-color:#222222;background-color:rgba(0, 0, 0, 0.5);} -.navbar .divider-vertical{height:40px;width:1px;margin:0 9px;overflow:hidden;background-color:#222222;border-right:1px solid #333333;} -.navbar .nav.pull-right{margin-left:10px;margin-right:0;} -.navbar .dropdown-menu{margin-top:1px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}.navbar .dropdown-menu:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-bottom-color:rgba(0, 0, 0, 0.2);position:absolute;top:-7px;left:9px;} -.navbar .dropdown-menu:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #ffffff;position:absolute;top:-6px;left:10px;} -.navbar .nav .dropdown-toggle .caret,.navbar .nav .open.dropdown .caret{border-top-color:#ffffff;} -.navbar .nav .active .caret{opacity:1;filter:alpha(opacity=100);} -.navbar .nav .open>.dropdown-toggle,.navbar .nav .active>.dropdown-toggle,.navbar .nav .open.active>.dropdown-toggle{background-color:transparent;} -.navbar .nav .active>.dropdown-toggle:hover{color:#ffffff;} -.navbar .nav.pull-right .dropdown-menu{left:auto;right:0;}.navbar .nav.pull-right .dropdown-menu:before{left:auto;right:12px;} -.navbar .nav.pull-right .dropdown-menu:after{left:auto;right:13px;} -.breadcrumb{padding:7px 14px;margin:0 0 18px;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;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f5f5f5', GradientType=0);border:1px solid #ddd;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-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;text-shadow:0 1px 0 #ffffff;} -.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;*zoom:1;margin-left:0;margin-bottom:0;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-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 a,.pagination .disabled a:hover{color:#999999;background-color:transparent;cursor:default;} -.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-left:0;margin-bottom:18px;list-style:none;text-align:center;*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;} -.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;max-height:500px;overflow:auto;width:560px;margin:-250px 0 0 -280px;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{-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;top:-25%;} -.modal.fade.in{top:50%;} -.modal-header{padding:9px 15px;border-bottom:1px solid #eee;}.modal-header .close{margin-top:2px;} -.modal-body{padding:15px;} -.modal-footer{padding:14px 15px 15px;margin-bottom:0;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;-webkit-box-shadow:inset 0 1px 0 #ffffff;-moz-box-shadow:inset 0 1px 0 #ffffff;box-shadow:inset 0 1px 0 #ffffff;*zoom:1;}.modal-footer:before,.modal-footer:after{display:table;content:"";} -.modal-footer:after{clear:both;} -.modal-footer .btn{float:right;margin-left:5px;margin-bottom:0;} -.tooltip{position:absolute;z-index:1020;display:block;visibility:visible;padding:5px;font-size:11px;opacity:0;filter:alpha(opacity=0);}.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-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #000000;} -.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-left:5px solid transparent;border-right:5px solid transparent;border-bottom:5px solid #000000;} -.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-right:5px solid #000000;} -.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-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #000000;} -.popover.right .arrow{top:50%;left:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-right:5px solid #000000;} -.popover.bottom .arrow{top:0;left:50%;margin-left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:5px solid #000000;} -.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{padding:3px;width:280px;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;} -.thumbnails>li{float:left;margin:0 0 18px 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-left:auto;margin-right:auto;} -.thumbnail .caption{padding:9px;} -.label{padding:1px 3px 2px;font-size:9.75px;font-weight:bold;color:#ffffff;text-transform:uppercase;background-color:#999999;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} -.label-important{background-color:#b94a48;} -.label-warning{background-color:#f89406;} -.label-success{background-color:#468847;} -.label-info{background-color:#3a87ad;} -@-webkit-keyframes progress-bar-stripes{from{background-position:0 0;} to{background-position:40px 0;}}@-moz-keyframes progress-bar-stripes{from{background-position:0 0;} to{background-position:40px 0;}}@keyframes progress-bar-stripes{from{background-position:0 0;} to{background-position:40px 0;}}.progress{overflow:hidden;height:18px;margin-bottom:18px;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;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);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} -.progress .bar{width:0%;height:18px;color:#ffffff;font-size:12px;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:-ms-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-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;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:#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);-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;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);} -.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-inner{padding:9px 15px;border-top:1px solid #e5e5e5;} -.carousel{position:relative;margin-bottom:18px;line-height:1;} -.carousel-inner{overflow:hidden;width:100%;position:relative;} -.carousel .item{display:none;position:relative;-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{left:auto;right:15px;} -.carousel-control:hover{color:#ffffff;text-decoration:none;opacity:0.9;filter:alpha(opacity=90);} -.carousel-caption{position:absolute;left:0;right:0;bottom: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:#f5f5f5;-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;} -.hero-unit p{font-size:18px;font-weight:200;line-height:27px;} -.pull-right{float:right;} -.pull-left{float:left;} -.hide{display:none;} -.show{display:block;} -.invisible{visibility:hidden;} diff --git a/docs/css/jquery.iviewer.css b/docs/css/jquery.iviewer.css deleted file mode 100644 index d68c642..0000000 --- a/docs/css/jquery.iviewer.css +++ /dev/null @@ -1,91 +0,0 @@ -.iviewer_common { - position:absolute; - bottom:10px; - border: 1px solid #000; - height: 28px; - z-index: 5000; -} - -.iviewer_cursor { - cursor: url(../img/iviewer/hand.cur) 6 8, pointer; -} - -.iviewer_drag_cursor { - cursor: url(../img/iviewer/grab.cur) 6 8, pointer; -} - -.iviewer_button { - width: 28px; - cursor: pointer; - background-position: center center; - background-repeat: no-repeat; -} - -.iviewer_zoom_in { - left: 20px; - background: url(../img/iviewer/iviewer.zoom_in.png); -} - -.iviewer_zoom_out { - left: 55px; - background: url(../img/iviewer/iviewer.zoom_out.png); -} - -.iviewer_zoom_zero { - left: 90px; - background: url(../img/iviewer/iviewer.zoom_zero.png); -} - -.iviewer_zoom_fit { - left: 125px; - background: url(../img/iviewer/iviewer.zoom_fit.png); -} - -.iviewer_zoom_status { - left: 160px; - font: 1em/28px Sans; - color: #000; - background-color: #fff; - text-align: center; - width: 60px; -} - -.iviewer_rotate_left { - left: 227px; - background: #fff url(../img/iviewer/iviewer.rotate_left.png) center center no-repeat; -} - -.iviewer_rotate_right { - left: 262px; - background: #fff url(../img/iviewer/iviewer.rotate_right.png) center center no-repeat; -} - -.viewer -{ - width: 100%; - height: 500px; - position: relative; - background: transparent url('../img/loader.gif') no-repeat center center; -} - -.viewer img -{ - max-width: none; -} - -.wrapper -{ - overflow: hidden; -} - -.iviewer_common -{ - border: 0; - bottom: auto; - top: 10px; -} - -.iviewer_zoom_status -{ - border: 1px solid black; -} diff --git a/docs/css/prettify.css b/docs/css/prettify.css deleted file mode 100644 index d44b3a2..0000000 --- a/docs/css/prettify.css +++ /dev/null @@ -1 +0,0 @@ -.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} \ No newline at end of file diff --git a/docs/css/template.css b/docs/css/template.css deleted file mode 100644 index 45d6196..0000000 --- a/docs/css/template.css +++ /dev/null @@ -1,527 +0,0 @@ -@import url(bootstrap.min.css); -@import url(bootstrap-responsive.css); -@import url(prettify.css); -@import url(jquery.iviewer.css); -@import url(http://fonts.googleapis.com/css?family=Forum); - -body -{ - padding-top: 60px; /* 60px to make the container go all the way to the bottom of the topbar */ - background: #f9f9f9; - color: #444; -} - -a -{ - color: #55A72F; -} - -td p:last-of-type { - margin: 0; -} - -li.l0, li.l1, li.l2, li.l3, li.l5, li.l6, li.l7, li.l8 -{ - list-style-type: decimal; -} - -a.brand, h2, .hero-unit h1 -{ - font-family: 'Forum', "Helvetica Neue", Helvetica, Arial, sans-serif; -} - -.element .span4 -{ - width: 275px; -} - -.namespace-contents hr, .package-contents hr -{ - border-top: 3px dotted silver; -} - -.namespace-indent, .package-indent -{ - padding-left: 10px; border-left: 1px dashed #f0f0f0; -} - -.element h3 i, .namespace-contents h3 i, .package-contents h3 i -{ - margin-top: 2px; - margin-right: 5px; -} - -.element h3, .namespace-contents h3, .package-contents h3 -{ - margin-top: 25px; - margin-bottom: 20px; - border-bottom: 1px solid silver; -} - -.element h3:first-of-type, .namespace-contents h3:first-of-type, -.package-contents h3:first-of-type -{ - margin-top: 30px; -} - -.element h2 -{ - font-family: inherit; - font-size: 1.2em; - color: black; -} - -.element .type -{ - font-weight: bold; -} - -#search-query -{ - height: auto; -} - -.hero-unit, div.element, .well -{ - border: 1px solid #e0e0e0; - background: white; -} - -.dropdown-menu a{ - overflow: hidden; - text-overflow: ellipsis; -} -h2 -{ - border-bottom: 1px dashed #55A72F; - margin-bottom: 10px; - padding-bottom: 0; - padding-left: 5px; - color: #e9e9e9; - font-weight: normal; - margin-top: 40px; -} - -h2:first-of-type -{ - margin-top: 0; -} - -.hero-unit -{ - background: #75a70d; /* Old browsers */ - background: -moz-radial-gradient(center, ellipse cover, #bfd255 0%, #8eb92a 72%, #72aa00 96%, #9ecb2d 100%); /* FF3.6+ */ - background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%,#bfd255), color-stop(72%,#8eb92a), color-stop(96%,#72aa00), color-stop(100%,#9ecb2d)); /* Chrome,Safari4+ */ - background: -webkit-radial-gradient(center, ellipse cover, #bfd255 0%,#8eb92a 72%,#72aa00 96%,#9ecb2d 100%); /* Chrome10+,Safari5.1+ */ - background: -o-radial-gradient(center, ellipse cover, #bfd255 0%,#8eb92a 72%,#72aa00 96%,#9ecb2d 100%); /* Opera 12+ */ - background: -ms-radial-gradient(center, ellipse cover, #bfd255 0%,#8eb92a 72%,#72aa00 96%,#9ecb2d 100%); /* IE10+ */ - background: radial-gradient(center, ellipse cover, #bfd255 0%,#8eb92a 72%,#72aa00 96%,#9ecb2d 100%); /* W3C */ - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#bfd255', endColorstr='#9ecb2d',GradientType=1 ); /* IE6-9 fallback on horizontal gradient */ - - padding: 40px 0 15px 0; - box-shadow: inset 0 0 10px gray; -} - -.hero-unit h1 -{ - font-weight: normal; - text-align: center; - color: white; - text-shadow: black 0 0 15px; -} - -.hero-unit h2 -{ - border: none; - color: white; - background: rgba(48, 48, 48, 0.5); - padding: 0; - margin: 0; - margin-top: 15px; - text-align: center; -} - -.namespace-contents h2, .package-contents h2 -{ - padding-left: 44px; - background: transparent url('../img/icons/icon-th-big.png') no-repeat 3px center; -} - -.package-contents h2 -{ - background-image: url('../img/icons/icon-folder-open-big.png'); -} - -.namespace-contents .element h2, .package-contents .element h2 -{ - padding-left: 0; - background: none; -} - -div.element -{ - border-left: 10px solid #55A72F; - border-radius: 5px; - padding: 7px 7px 2px 7px; - margin-bottom: 15px; - margin-left: 0; -} - -div.element.protected -{ - border-left-color: orange; -} - -div.element.private -{ - border-left-color: red; -} - -div.element.class, div.element.interface -{ - border-left-color: #e0e0e0; -} - -div.element.class.abstract h1, div.element.interface.abstract h1 -{ - font-style: italic; -} - -div.element h1 -{ - font-size: 1.2em; - line-height: 1.5em; - margin-bottom: 10px; - padding-left: 22px; - background: transparent no-repeat left 2px; - word-wrap: break-word; -} - -div.element h1 a -{ - color: transparent; - margin-left: 10px; -} - -div.element h1:hover a -{ - color: silver; -} - -div.element h1 a:hover -{ - color: navy; -} - -div.element a.more:hover -{ - background: #f0f0f0; - color: #444; - text-decoration: none; -} - -div.element a.more -{ - font-weight: bold; - text-align: center; - color: gray; - border-top: 1px dashed silver; - display: block; - margin-top: 5px; - padding: 5px 0; - border-bottom-left-radius: 5px; - border-bottom-right-radius: 5px; -} - -div.element p -{ - font-size: 0.9em; -} - -div.element .table -{ - font-size: 0.9em; -} - -div.element .table th -{ - text-transform: capitalize; -} - -div.detail-description -{ - padding-left: 30px; -} - -div.detail-description table th { - vertical-align: top; -} - -body.invert -{ - background: white; -} - -body.invert div.element -{ - background: #f9f9f9; -} - -ul.side-nav -{ - clear: both; -} - -ul.side-nav li -{ - word-wrap: break-word; - padding-left: 10px; - text-indent: -10px; -} - -ul.side-nav li a -{ - background: transparent no-repeat 5px 3px; - padding-bottom: 10px; - font-style: italic; -} - -ul.side-nav li pre -{ - font-size: 0.8em; - margin: 5px 15px 0 15px; - padding: 2px 5px; - background-color: #f8f8f8; - color: gray; - font-style: normal; - word-wrap: break-word; - text-indent: 0; -} - -ul.side-nav li.view-simple span.description -{ - display: none; -} - -ul.side-nav li.view-simple pre -{ - font-size: inherit; - margin: inherit; - padding: inherit; - background-color: inherit; - border: none; - color: inherit; - font-family: inherit; - font-style: inherit; - padding-bottom: 0; - padding-left: 5px; -} - -ul.side-nav li.view-simple a -{ - padding-bottom: 0; -} - -i.icon-custom -{ - width: 16px; - height: 16px; - background-position: 0; -} - -.table.markers -{ - background: white; -} - -/* JS only functionality; disable by default */ -.btn-group.visibility, .btn-group.view, .btn-group.type-filter -{ - display: none; -} - -.visibility button -{ - height: 24px; -} - -div.element.constant h1, -i.icon-constant { background-image: url('../img/icons/constant.png'); } - -div.element.function h1, -i.icon-function { background-image: url('../img/icons/function.png'); } - -div.element.method h1, -i.icon-method { background-image: url('../img/icons/method.png'); } - -div.element.class h1, -i.icon-class { background-image: url('../img/icons/class.png'); } - -div.element.interface h1, -i.icon-interface { background-image: url('../img/icons/interface.png'); } - -div.element.property h1, -i.icon-property { background-image: url('../img/icons/property.png'); } - -span.empty-namespace -{ - color: silver; -} - -footer -{ - text-align: right; - font-size: 0.8em; - opacity: 0.5; -} - -#mapHolder -{ - border: 4px solid #555; - padding: 0 !important; - overflow: hidden -} - -div.element div.subelement -{ - margin-left: 10px; - padding-bottom: 5px; - clear: both; -} - -pre code -{ - border: none; -} - -div.element div.subelement > code -{ - font-size: 0.8em; - float: left; - margin-right: 10px; - padding: 0 5px; - line-height: 16px; -} - -div.element div.subelement > p -{ - margin-left: 20px; - margin-right: 50px; -} - -div.element div.subelement h4 -{ - color: #666; - margin-bottom: 5px; -} - -div.element div.subelement.response -{ - padding-bottom: 15px; - margin-right: 50px; -} - -div.labels -{ - text-align: right; -} - -.nav-list .nav-header -{ - font-size: 13px; -} - -.nav-list .nav-header .side-nav-header -{ - font-weight: bold; - line-height: 18px; - color: #999999; - text-transform: uppercase; -} - -.detail-description code { - white-space: pre; - display: inline-block; - padding: 10px; -} - -.go_to_top -{ - float: right; - margin-right: 20px; - background: #2C2C2C; - color: #999; - padding: 3px 10px; - border-bottom-right-radius: 5px; - border-bottom-left-radius: 5px; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - line-height: 19px; -} - -.visibility .btn { - text-transform: uppercase; - font-size: 0.7em; - font-weight: bold; -} - -.iviewer_common -{ - z-index: 100; -} - -@media (min-width: 980px) -{ - a[name] - { - margin-top: -50px; - position: absolute; - } -} - -@media (min-width: 1200px) -{ - .method .span4 - { - width: 345px; - } -} - -/* redefined because twitter bootstrap assumes that bootstrap-responsive.css */ -@media (max-width: 980px) -{ - body - { - padding-top: 0; - } - - .go_to_top - { - display: none; - } - - .btn-group.visibility - { - font-size: 0.80em; - margin-bottom: 7px; - display: inline-block; - float: right; - } -} - -@media (max-width: 768px) -{ - .hero-unit h1 { - font-size: 30px; - } - .hero-unit h2 { - font-size: 19px; - } - -} -@media (min-width: 768px) and (max-width: 980px) -{ - .method .span4 - { - width: 203px; - } -} diff --git a/docs/deprecated.html b/docs/deprecated.html deleted file mode 100644 index b718149..0000000 --- a/docs/deprecated.html +++ /dev/null @@ -1,72 +0,0 @@ - - - - - -Query - - - - - - - - - - -
- -
-
-
- -
No deprecated elements have been - found in this project. -
-
-
-
-
-
- - diff --git a/docs/errors.html b/docs/errors.html deleted file mode 100644 index c213485..0000000 --- a/docs/errors.html +++ /dev/null @@ -1,101 +0,0 @@ - - - - - -Query - - - - - - - - - - -
- -
-
-
- -
No errors have been found in this project.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - diff --git a/docs/graph_class.html b/docs/graph_class.html deleted file mode 100644 index 0965770..0000000 --- a/docs/graph_class.html +++ /dev/null @@ -1,69 +0,0 @@ - - - - - -Query - - - - - - - - - - -
- -
-
-
- - diff --git a/docs/img/apple-touch-icon-114x114.png b/docs/img/apple-touch-icon-114x114.png deleted file mode 100644 index 1506f6a668fbb2837c06b561895da248c310ac53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28338 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�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 diff --git a/docs/img/apple-touch-icon.png b/docs/img/apple-touch-icon.png deleted file mode 100644 index 2d320cb5e1215894ef37cf8c6fd7a0085eba06f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8358 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 LNHCv2rc(U_{c|km diff --git a/docs/img/glyphicons-halflings-white.png b/docs/img/glyphicons-halflings-white.png deleted file mode 100644 index a20760bfde58d1c92cee95116059fba03c68d689..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4352 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 diff --git a/docs/img/icons/arrow_down.png b/docs/img/icons/arrow_down.png deleted file mode 100644 index 61505adc46d8fa4156d9b31831ebe6770f0e2757..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 606 zcmV-k0-^nhP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iph( z1qcLRmoAwA00G`fL_t(I%cWC2tJ+``e%^eL7t$KUBw$9t*+0;sKcG;!o#ftvQ=v=O zPEznkbn((fBwn}RP@zy12dlPS%uu3(Akjdnjb!m7Z{AKf?FH|p;Io_q=Wq_^JkLWo z=Qsxf&cxXRNV#0TVT@UX5OB_sBngrvNpr^7o%nCPR4T2dTrT%m)3hhWViEKC9B~|j zF^1#uh$Kmn&1OL6a}1fD2f7I*U{_szDuTQUi!ZOqfjWA01!nH;yA``w*%)K zs;Yug3Q-h6DTN>iAcUaZZvWhDHqV4=wffsM&FACsIL_zuX_G9=kR&O+_4XuD6w&YZ zlPHQVyWQ?u0DxMp_GP_Z-y9AHSe6Azl0XPax7|XPWh@p8ESJmcPN(zf4hxRsTn&fA zuar{gx(-1QAP9d+5=9YV7-BM+jB~l%>ytFDR;#zJ>#hvLKqiw(w{yPNyJ*ytHlGe^5w{<6H+p@P5DF!?G;MvWzec z5d^`9X0!S6zm#a(_8ZrA2b!kAG);J(_suYjSEqWV`y{Gq+Kbt2=5Dv!N1CQx)a!M2 sQpyjxu~Ml#WsK2AqtU(B3+LMT58IsRj2DXS7XSbN07*qoM6N<$f?9MBJpcdz diff --git a/docs/img/icons/arrow_right.png b/docs/img/icons/arrow_right.png deleted file mode 100644 index 60c5927ebf63f388b45315cbc4cc56a77b9f903c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 628 zcmV-)0*n2LP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iph( z1qT;gv2%z300Hz#L_t(I%axPMt5Q)EhkyI*EgldQ%_FEFNFoiwK|$ce2O<`vO%-#J z*f5+m4E!U)pbO5VW@l24A`$5(O~gT>V;_X?vwa*%Pb1@|_l9>(HfyjxzP0vRMAI}J zBA?HH1aP2?dagoht>5TwNDO6R(YPG_8y~cXI2Im}{b9lX8_ zilTha<#MhY4K|w%7K;TIiv<)#fubnjoMSSXfKrNJF!)f@w4a$w<}m=UV}t2*irH)i z#ux-a_&XQ9UJr-E0ZJ)MCKDfz$D3;n4h4so5CWso2)Ek}0I1jNHC0vbmrA9tCkBKN z=yW=Wq6k3{z!-zoYK0_8=yW=};c)o2TrR)5TEmVFD5YSGK@>$e91e)0h*qoB@AZ0b zWLbWH{Ea67#u&_IGwgOdw%aYL)#{IazyG>ct9`j{4^CR}cs$tcc4#yjzXyZC2U(V% z|8JH50ce_rZnulkX!Ofwvpp*oi2?p zUk71ECym(^Ktah8*NBqf{Irtt#G+J&^73-M%)IR4`J+jIM*dB6Xqg)}~| zJoCIb=eAt%N2Sc0*LR=)Gr>jXc+U1{2EKOY&`?3wi#H~`UdZcts5G`~(Smi^VXH-t zNnA2H`u*=l#_~yWzkbC{@|eWZU~_(X%TKE^b)f2_P*>quOSp`{Hl;21nz{an^LB{Ts5!Fr;& diff --git a/docs/img/icons/constant.png b/docs/img/icons/constant.png deleted file mode 100644 index f5f180d5a9b09a19b5ae44ad64a1fdceb6a86d7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 496 zcmVrl1?U*0YQ8KBh3^hnN3W5 z2%|~HXz55n-@#z_4GhF=O%)o!1~F5NWx9pcZ;~F+?Pl3!f;~`hPjKs2om2M?&}Yi{ z)a|hNOZ<{ll;no}Bk)fO?j?Pd^dsz_V-;AIg>Bmyh7qUYr=-X5?0(D-NtDZF=JPoK zm&=9SZbzX|h$DHpwjoI*lSww44g39`Mx%jgn$+ucGMNm9VNk2pa2$tryNzwzJxRTg z;8l{SR;vIEhr`H=-EJ4(_i-GD)oR6Jv3R?-aYHZ~jUoig<&w!{f+RYf4giC};OT}S zkx1Zq9*4t$R;z_&Su~qXve_)-@tE~`O*);X-|ureoq}Sq`0d7mBub?cv)PRE`3%5z zyCt8`Q>j##PN(?3kLP)~uKN-h;x$auB$vxYtfW$@*foCnJuN{HCvYhz#zuJz@P!dKp~(AL>x#lFaYJy!Tsagqt+F;zg(Vd_Ma3C z(nGFZm^~mf*5 z)sz1pn_UOj3v?y|2J0zg2h4lZXZ~Oq6V)2(>o0PAi0Mp zcm2O}aQ*+4X;%Lqp4$EY_?&u@^n?8R{_$;a_<;NZ^2eq1Gykv3ut72B2M+tMZ(scX z!_&L}cQnO<)vrjkgy>B%C#)Z+=I#Bf|8MMChN2ecXJi`Peo$P2?0#|mG=^J|^}*N= zPwo1DaqZOq$7k37KfSmE=*JoV_w{7|UykNZn0k89t1|6?Zs{cGcU*1(=|3{P60d%I dd2d6B_y4`!nK<=Rk_TaW8yL|`1mgK1y#VW>cs>9C diff --git a/docs/img/icons/file-php.png b/docs/img/icons/file-php.png deleted file mode 100644 index c323f09f66241a28d61f1d2c8e90be0a68126bb6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4017 zcmV;i4^HrjP)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=00004XF*Lt006O$eEU(80000WV@Og>004R=004l4008;_004mL004C` z008P>0026e000+nl3&F}000EcNkl2m;0!ZJ-o+356@I zw3Y_?!u5KP>-BDD{IIvz>)DpBQE`&Z?C#9Y^P6X$o##J7DaFk!A`{?^ms=>z2?dI~*f68DYAyE>tCTMJ~ZSBZx9}yrvC`rT>N`VmOJ55j4nm}mgy{?&! zB3Ub`Fr-3BkWyhJAdxViT^=zapvFxuBLXN1N}01zDtT|1Z8AAS07I(O%q>son!w=@ zXqrHGfWu+dC>sDWt+TX@*nkij5Lpuh$_{{KM9Se1Fg^$iWC%joTLOl8AkCn%2VsJM z!=c#(NE%jhIE1wn__Xd_%1iH}YDzUe zkB4%fhuqu>!u{~xTTM)_9N@vFm19CU#-iJ{DvDDR4WP>8l_&2Cvp0;I%C^Ha8*#J3juAGS4#h?&@Lx-YCaT z|ICVKbXKj)Vbce*2#2AkyO-@d*Yb324k8PleOc$J7js$qyrAJ+kS}+HDfiT{{hh=1 z_krIUB;W2n#IfT?2?m>KYTnO^M^;m}P0`kQhG6FjO8tJet_zdr%%`d46vej&`1)0XLr+h^fce?Y2f5hr_H}WLL}bJk+YvMND(D0;kLpHoI3RtjpsjS{*09bTTb9~ z=FoWh0C{=Yg!@CBIp4}FJIm0s!}MP%puXoLN}_q(GiBwd9vCGC6mzR5V|1_P`-Z~^ z2I+|$r?TP!^7JaYnikL<>twp`IWAoaQx(|A@iTjvIir}#6IWpL&E{ZzI|e!n7Cy$T zc`o}wxOPo7y`gL#j+Jq#?L3b^SwsCd)f}mh=yczr!}p9F}~ z#zb;hx@03obECYlz7iv01Hf|E#toJ1t8Aw6@B+^5o5$}BjT93lzp#k>!UCMRE|fF~ zUG3-BFAC}F4dc_VQ*r0r_~!?hb6AUUaU;p;xRGFx5;P6wO!HDT-OI(x5!x9Ftd~Of|JtfnIQn0ms z4}&mB$+&TEM45ubT9Q;|R0_i|m%w^wWkE|9suj5JaEzdRR=7z4U4m{^cCOjugKnx=^{PfON`DN}?+!0m5Y~9sd L;uWgGz+epk&R;19 diff --git a/docs/img/icons/folder.gif b/docs/img/icons/folder.gif deleted file mode 100644 index 2b31631ca2bfec3a8afb1bfdd4f8ed4c5bcc3a18..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 106 zcmZ?wbhEHb6ky=hKW2GJ7 I#Kd3?0MGg2?p zUk71ECym(^Ktah8*NBqf{Irtt#G+J&^73-M%)IR4c?q7?3B2Xp1x8ImHETXz54QVYrPgqHx8=(z e>Gl76{l!*pI92y$_dTH37(8A5T-G@yGywo6mxkK_ diff --git a/docs/img/icons/icon-folder-open-big.png b/docs/img/icons/icon-folder-open-big.png deleted file mode 100644 index fae384ef4df761b2d6cc250ed5787e430ae91663..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 232 zcmeAS@N?(olHy`uVBq!ia0vp^azHG`!3HF+C+nOCQtLfk978H@y`6TEw^f11_3i;d ziGzYN2L&Zg3QDws(66dq&SgShn{Thb{zRo^(j5Lg&dD7z8Ed<2HaxncvF_0qB|qh( zD^{Iwcon{}=b8RLEj=%X$?owoQ+czMDqpDz@out+{J4%~%}Jdw83lFk?!Av|@026WQIOdE8_{3R(~E4X}F}*cK0{Nlc(N@tWx{N75ZIyLFkD`ce?_+omU+4eIu&X fef&+H?MME!>ysALYPH`1I-SAO)z4*}Q$iB}E$LkN diff --git a/docs/img/icons/icon-th-big.png b/docs/img/icons/icon-th-big.png deleted file mode 100644 index 04b0ad872a98de63bc0e300e627ce69a2a209471..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 106 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fhMq2tAr-gYPBH{4<6!#zfBD*P z%ML8Ga1?(i);mdUy45w?2d5KGCQHxw$nZHi?xXOW{3u1P>qQzNK+O!Eu6{1-oD!M< D6}BRE diff --git a/docs/img/icons/icon_template.svg b/docs/img/icons/icon_template.svg deleted file mode 100644 index b0428aa..0000000 --- a/docs/img/icons/icon_template.svg +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - - - - - - image/svg+xml - - - - - - - - - Co - - diff --git a/docs/img/icons/interface.png b/docs/img/icons/interface.png deleted file mode 100644 index 51a3a1762db628e8cbbfb4d933a74b4d962d2d7e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 281 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf2?p zUk71ECym(^Ktah8*NBqf{Irtt#G+J&^73-M%)IR40E|;Z~{{z_~j>MQR++0q{n_jdZ_~Xzv)82ln zir1^4FSoop)7kP4q||D^oYExqqT%4L-+qnX2?p zUk71ECym(^Ktah8*NBqf{Irtt#G+J&^73-M%)IR4|3mlps%(3Z75trJZsonk=m!SRtUbjIcd*Gd{GD-MU&5kK`Fd$; z&qe*M;R)u)+B55zu54SYqS>Xy$aOeCxaR(R@13(xM|fE^lFf7PnUNSzTjBx@u1_}0S82W4^{;r-{cRJTTl!v}kb2YK z*1sl?dBGmby>EB*DR3}+u*rYhnEoKO=X=4viDB0(R!$ZFviy;n_U!uqz48-dSM>2+ S-W3cC0R~T3KbLh*2~7ZLUYG9x diff --git a/docs/img/icons/ok.png b/docs/img/icons/ok.png deleted file mode 100644 index 39f287ab19b8bcdc156ea56355a95290d04f0ee8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3685 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 AIsgCw diff --git a/docs/img/icons/search.gif b/docs/img/icons/search.gif deleted file mode 100644 index eef46fc9ee10547bfa2da348f81b4c83f19e65a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 152 zcmZ?wbhEHb6krfw*v!MQVZ+APuU|iW_~^rj4_mixJ96acuV25;ojZ5^`i(nx?(W*P zd;k6e|NsAIfC0syEQ|~cJPbM@0gxFCEUptydamAU5nbG%&zz z##7bH4$=1vId^*V*v!xR>*{?7mqKrCnmdg!}G z=IXm8Sn&!;akH?purU1n%JB2k%b%|wU4DOV*XpD9FQ1(YRJQ}B0U&^o4e)SH>*-Ur zh)`kY;$&s`_k)2EsF{J8m4Sm#kV96(KvF=6-{ZWnu*|swyBJ`G00a;d%-Q;G(RnJC zk*X~0{H%Zf{A2k0_b@F4v6je+t14+fASCR#!a*Y7?B`u`upwYzT_j5PRxk@1k>@6WFcf574M53UU$ zfM5nZ{PpG4FOc(@{(fdKQRiUz`t=9HgNKh8zJB|~V5B3;@aO9@i00pa89smd@*SEs z7ytqYX29h)kFR`S`1=Lu?N1E0y_w^~*-1fljz_B$LUvK}k?BNXe#Y!m=zM!!V#}8bncK5m;8VP zw86G*RI63?Cd%b9bX|ueNlZ|wR6rj|r_)VIP@r2imh3?SN+^{|kY%~8B{maJ@F*OK z&VH9LwOeGt#DRjj0~v~8`>iO7!Ybi;zE$va`A^T#yW`y44;k^#O~K5*jD=qcUhPSc zvyy~q;5H_1WT1l~cqje9yfa+l!hu6xjdOJ8s;8E^+=QQ$tw p?%p!Hy#YapB=@+^9(46X{{RQg%9y;OKjr`c002ovPDHLkV1g7l326WT diff --git a/docs/img/icons/visibility_private.png b/docs/img/icons/visibility_private.png deleted file mode 100644 index 386dc2d879d20cf85e4eeaaeb29e66bfe8398995..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3433 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 diff --git a/docs/img/iviewer/grab.cur b/docs/img/iviewer/grab.cur deleted file mode 100644 index ef540be09383a215ba21287683ae956b74a6dbbf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1150 zcmeHEF%H8Z3_L;+LM2k9N*yv~>~H#wK9i4B>Jy?)*;1Rr5Mf~HSVzWizBA$iDEg)e zv@Up@fGdC-B|(IIaVjw`XMnR4do4(}ceLED$#?I4PhZt?V;F{(zNyX4aU6>oTI<~I zR%1+|Z@pO>D9unx@mz^sV2R6KAHrH&a3w(Uah_+1dcf$ic$W0J$AsEGc`x}F-{G8# oT0W#ZA~$;zN&n?%4r~@-v(K$0B;Q#;t diff --git a/docs/img/iviewer/hand.cur b/docs/img/iviewer/hand.cur deleted file mode 100644 index 1a5bafb5263fd4937dda4098b04aa5c70e2de924..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1150 zcma)3OKyWe4E694LIn}22q6~8?0U4`qB$BzVUYuLnN^5A#g-vqrbZ8co}UNC0FIu^ z1?Y|NodI+J@I{~!RsQPaynTKEFe0{|*)R-iM9cJuPktQ*F&}vmxJX7;nU}sFz|xzG*A)o1}vy~Np8!oh{{D) z3FWrSE(G-lOIo^%@l%Jh z7d(bKZD(=f(+rDu3Ibk!p~fAzvAEw(G5oFaf>VGX;I$X`=G^#MhKzfwaaX++^R_aG z{23g@-KfbsV!rlS8y~jNpC$Q98001E5Sq?VpxukSs-?)+t$^aeGL+RsprA4wk<#_> z_+u(WTiH*vZ^%;_bKH_BUEq}jd#?-l#9J=q_v{?VaI4}Q9JQ|FoaxO4M#r~&(9l-@ga5_qddH0^Pp)3D%%13U()$KPZ9mfuKHeN zh|FV%AcKd9$Xte~JpHr7ISdEsS=dbylRpV}b%EG*(H$Zm7BrYE89CoGzCv2mgg*7U?}T-eQj1 z{ctQepE}YD%L6}S{pbtWcxoXGX*qRvIs~7NleuJ1rI2sTU9}wgEO}#naM{Mwl$wh8u zCnBy@;!tLlFk2ANZy*yRh*u1IjEu7sgd^u~j?-pP>cuPS5S69F5h60HO2`84nde#W zyHhV;*NN!tY8*EZeXCkX$LB3TNWEh+HIj>(aWc0CrwBgBQY@5_fO(q}ggUVHfHYwh z33cBmty=DP=A9=gECUXndMm_NP*e}Z-LCDyS)!}~n7b*S3$R(WUj{y!TOYyebROJ- zFF$p&>5+Q7DfKeS+K_mst_KprM8H(Hy%~al3{|Z#A5JZTYe-7!V4F>!)KgSFrn=vN z3kCIkDE(K!G*^RwzlwE`Dy#7rUC1u2#kz=0tng2mHP|cZPQ4qN4qPSy<|wW2D5KC{MlR z;>)=A5V)!Cz;#udS#FfKqnHHD=_R1Ptpjzf{nOgnDXf!ZtKqUo3Ky}YM}T&xUI8_p z+{#DD)pj7q40-gM-UA6eVt~J6Ck37*j6+@9f{jOSVfEgWC}V(*7I~i&Dx8uU4S&P_ z;3=qW>uyHVjD_fF#+pz$KVvi(@T$|6gmQ;1NkX6Jb)Y}^@BGWy!Sjrgf9<#ho=bDz zCj-9w{fH|?2J}+O500000NkvXXu0mjf*RRDb diff --git a/docs/img/iviewer/iviewer.rotate_right.png b/docs/img/iviewer/iviewer.rotate_right.png deleted file mode 100644 index 7a6c829871d058af5a5ca0ac67256c259f84c5ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1482 zcmV;*1vUDKP)W@q8L24va@vW@P7*!=(&yIADtgIo?`IW@@z#oP%kAO5~e4>aSvdau$keO zelrxe7h>a?XEPGL-8ZvUK7S5JxO_SC%cam%h9U3nOynA8Bd1~p@(p_slER=;FN42~ zVT$Cx%L&IBfqkNPU0Q$wV<=M8^Ktsd`-seX8%Hx4(Mza9RSeQph6Cvg*A2_?bs*!Z zJm9Mh7vz)H#bKgf96Z*=%6lrx!F>}8+<9p(ZW^~EGIuaSuQBYWfCsY}!gCl75#iYs zn4X1YwmkE{L{qbYU7_|vC;44Kc>_>d53G;Ofy>H6K72&Q1n)K0hYkOJ{}5yueQ_kO zAEZ3kO@`uTdQ^;QD4P$Xc-46$f7y>g|g44T+ z#BgE=@!>Z#-vKoL6Wa&pE*R*#HWno`0s)tGNL1G$LZyexFDGPt0qahH^Hl0tOywX% zlsY1!jA8k4hEa>zCTrlAtqC<~Car`X>shKzaMo5pP+|!}lx4#8x7#jb=yVHAyecTTC4J8t z#9H#H1x)ab5$qRn{T_~Gwh%$&8k>4#Nl^>etY1&RH*c@JV*VdWES08K(6hJ3ua1F+ z1Vqx@pUkersqB_Ip|BQ5mEtYg?Pld26u-(ZDhIXZN8p8vpywZqUmXq21K`XJ6VBRD zSPjgUh_hsuo0Zq@#H52sg=lQDK%p}U0=)MqxPXrz3y|HcLaYr6jTyT{TGH;2&kl$g zvn(tPnZ+iUo13A~-oxKTMnQmAi+~YaKrsopkYC+_iv!`6FZ*8at59p?CSTLD^ce@1hVDp0-#Q zq7i&EGSIAWEAo-(3@vR~e8qHMf3DS%&Pzg-H4FABh2HRK5QhTu_A0SBL~)<~@sXQv zl!l*(`MH4my)*cGH#$9gu8S$5cCU4I9uNy}^C|I;^|0b5vYngtVB^%;d7vlsx1OAw ktS2S0?VM~5JkO{63m1~IVD>3BuK)l507*qoM6N<$f)6RO6951J diff --git a/docs/img/iviewer/iviewer.zoom_fit.png b/docs/img/iviewer/iviewer.zoom_fit.png deleted file mode 100644 index 364e01d90eae19584713851314629f2468198e9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1252 zcmbVMZD`zN9M7nO!F>6)Qu>rmKTa$KDx31r-tX6e<%`(6Krd_QfiW`8t`1_@uq7ekl83AbH+? zzu*7$$#_?1`>KY!8VG_|C2bSZcx-mx`sMihAai~i59?7fi@MD`D#97s?^ptvbD@%0UaWlEb9Y?!POak>Kac>j_lvC`$F%JGkXW>_ZEGx zJom!Kv#(7V2O9tK-kSZb!BUHpo@HF_;W5I?7`%^kn|fV6LyKC%38?;(5V z!PU9ZKS#&d``e%Ktf-E%=q0M&EZqyy}ir$_H&JcW2fJ{{PgiX z8-IUUIXQgrq&9v}_F_|k9sDEvsw97zUz^v|wk^6~k{(E}g+-F{ISKr))j<47BXr41~e0blAr&bSs z|IrSo^7@evzS-=(@x`Huqc2r99GkQ^PabxeDqKE2-7j>wsvG2m_N{Pyfo(Z~3KXY?;^Pc&YH??aJsCHEo`3 w8eZ!(AMJatv3kpyYro>2$M)>r+u)qoRbjGiisBQYX$xZ(3D5f)$iQF?09S=3^#A|> diff --git a/docs/img/iviewer/iviewer.zoom_in.png b/docs/img/iviewer/iviewer.zoom_in.png deleted file mode 100644 index 78993327c62ddd64e7fe33bc1b0d469ef9e17f30..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1420 zcmbVMeM}o=96n$mLI`O1*jPqxokAS8_t9QIP6}&#?I^6YLL;DzakN*s!1Zp|0}9Rz z8rh;F0cBg38IU39T#zkeLnml8hzMCSG?@^xXdOBYVGI|HL|oz(DEbH4A6|0zem&3g z`+V;WTfxD&nA8{m0OHKKM4>pQ1>fi>@%sWi*eedZ1Y?O%#JYqAlBWQjldYscGecHU zg%s&*JUU5b0YHS4wwDMcmP5FMWn^R!Bl9wx$OeF{94|*YYA6A$q^fAQR`OuPF9B(% zR#J>vU<+rUs_EP&o+@f8usfP+92%!2CmYQ2;-UaU2_)!cYTX{(tCg(l;^I8G4N1Ut zh)|=IY&cb7v4IAbr$9^wOC7Kh29<~mkt? zy6{56v}sFRX(iQyz~K<#uSL*ic3n>tk$HCK_ zK(lTzs7O|_b%ItRdb$w;!&xj_!fwxIqQsOzUXp_l84NK@Fs^m9M<}HJbz@t!$KJ?M zP$A`E>v)G)57)jBS6;_)Fv2Ks*P|kY8`^A2u!ZfsWAnHVJ68Y*ZF@k28qrD)nZSf_1^Pw#| z@pZkmCA&G}0&7bcjq%x*?aRCV3irha4o~M_DArx{=C$ijm7gxpJfn{2L~$I+EADGSEAJts^bthXdZ0!+7(pGrKca+s`)MokNH6@80m`S3a@u zY1ygFvFkgB8j(NleZ>ubn=|IJ|7-yHzY}KZV-M0lk+#l6X1~TQy|p*uWp8(@{ii>t zUM%g1pU@A_-dyI62l_3g1J;f*Z-2$!(N|(ifOlu2-fw+1YIXRfE0Nik_Z$MUT=6@` he~f-qo>Y;tmQ(?tGoVp(DLyXve>58lh(UdY?;kaa{Rsd7 diff --git a/docs/img/iviewer/iviewer.zoom_in2.gif b/docs/img/iviewer/iviewer.zoom_in2.gif deleted file mode 100644 index 5d596181627a30344f9783d466ce0558279fe729..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 90 zcmZ?wbhEHblwpuzXkcUjg8%>j>wsvG2m_O4Pyfo(Z}}I`;fT1UbHL~G(^^jrxfIDc qOSLxju^l&BbLLyj{a>m(=kzlMwFoEmw|glD9`i8f>~-Q|um%7;9UyH0 diff --git a/docs/img/iviewer/iviewer.zoom_out.png b/docs/img/iviewer/iviewer.zoom_out.png deleted file mode 100644 index 893f3502baaab667354fe8b560c1712b72630836..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1416 zcmeAS@N?(olHy`uVBq!ia0vp^av;pX1|+Qw)-3{3k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+m{T%CB1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxKsVXI%s|1+P|wiV z#N6CmN5ROz&_Lh7NZ-&%*U;R`*vQJjKmiJrfVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8EkR}&8R-I5=oVMzl_XZ^<`pZ$OmImpPA){ffi_eM3D1{oGuTzrd=COM+4n&cLd=IHa;5RX-@T zIKQ+g85kdF$}r8qu)}W=NFmTQR{lkqz(`5Vami0E%}vcK@pQ3O0?O#6WTsddyBS)T zxj4DGI+;7U8WbpSnwXlJx+y{RrjQe2`as9%gOUbPQh^Bp(;tWlPxwF%JnN+90rN`{ zFk|eTuyZ2=1LH1F7srr_TYIJ*^g8Sy&?e2@*d%abWdMgri<5t&U4#0<`~ZPHTulKV zL_SFVVrt@l5PQLUVYuUp3a@^r?zky&+EXok@RH&z@w!8r$f$z%0{cUx;M)M%(BO@dlSAr|x|-`3zUuyW0)IVtW>|s>WVT?mGEc zSkr=`cGH2CXUi731dH|WWa9iWg>~1jL@c(3*I%OB-d`n9ld0_~{X@e~VM+?bvqa&xDF~4=3Dc{-t;PQB<+c zv78v6y_Q$sW5p8UNtB8n}}+(%+^^VTDLxDs_M@V zktZgdHP!#l9(Qv}igT01!>vuNAL^777;7#{%n;%?`4GGKfzXddg$9fTvuy=L>XpA# emo~({32$Iz;FK4L4Ckl>myMpTelF{r5}E)fw)-Uj diff --git a/docs/img/iviewer/iviewer.zoom_out2.gif b/docs/img/iviewer/iviewer.zoom_out2.gif deleted file mode 100644 index 77ec19af216c5525438e73e4fafef1ce08db3cf3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 69 zcmZ?wbhEHblwpuzXkcUjg8%>j>wsvG2m_N!Pyfo(Z}}I`*>bCU^SwRQTrH10rZprj VQ(Lv|A^Y)9KG(nX7PB%~0{{a@8tMQ5 diff --git a/docs/img/iviewer/iviewer.zoom_zero.png b/docs/img/iviewer/iviewer.zoom_zero.png deleted file mode 100644 index c981db6d690774d0c2e67e21c9081d5c89b5fd2d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1091 zcmbVL&ui0A9M4pSOy+USDH`Jt54L&lWo?(ZTAQSq1v^VuUA;)t~d_LcwSBo>#!$V_3 z9LEjkPwFMM?vLJ`gY0_@JiN=6Jv3LLv!qU2W`Mb@O=_6WyXHJDVbfl^_!>`f+;-b3 zS7@bhO0kF=HzS*P+w~cm6!@+QT}TTXPE`s;ULyhK6LAo; zKoamt7>CkCDwR6QBLIO2kO)x>rW6S&0Pwv>U}}L~S4z6k(_*Kz(4f>;M6uOs#amLG z1oI-4WjW$ND8?*e;gUzqcFYS8^%-;=T7lzJhj@I%Xx2!RrUmBdMhLE7C~OjYVJ}fE zWn$a(MHmO7>qc>PtwUPEf85y8IxH{wSS;a?Gy{v(qkgClX1V*fP-MuwQBDUAD~h?O z6RYWBkLLBX!2ZN-$5tc*P9}BL$f+qc2OyjTdQR0O9U94`B&o2^u@x4nAeBw1(2x=n z5avKO31v+Nl7u7!=(60$=Dm=bo`w6m4%6*n!9THz7GRT-piIbOzXOU5LP^*lKCjIt z_&LY3Nh^$svk|L~1LqR9jexj(H@k|ng?bW90+iEJ2GWfvYE_c6auz`iY1tG)S)qru z|0iQ2b4H9>hb!)51ol8qidf>uee2NcllE7&Y7PpcX!=7_qbu-x&Nqo^YXsS zx4psB1L(rH2OVv_Ry|wWf8@aTYwPTIZ{+>+x4F)XFBxU;`RVIF##f(pxPd|L)0^?x S8}D{hqp{BCX7q<@b>%mi3|d_P diff --git a/docs/img/iviewer/iviewer.zoom_zero2.gif b/docs/img/iviewer/iviewer.zoom_zero2.gif deleted file mode 100644 index e56c670fe62062458276fab5512701433b37af4e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 98 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 diff --git a/docs/js/SVGPan.js b/docs/js/SVGPan.js deleted file mode 100644 index 4966b99..0000000 --- a/docs/js/SVGPan.js +++ /dev/null @@ -1,232 +0,0 @@ -/** - * SVGPan library 1.2 - phpDocumentor1 - * ==================== - * - * Given an unique existing element with id "viewport", including the - * the library into any SVG adds the following capabilities: - * - * - Mouse panning - * - Mouse zooming (using the wheel) - * - Object dargging - * - * Known issues: - * - * - Zooming (while panning) on Safari has still some issues - * - * Releases: - * - * 1.2 - phpDocumentor1, Fri Apr 08 19:19:00 CET 2011, Mike van Riel - * Increased zoom speed with 20% - * Disabled element moving functionality - * - * 1.2, Sat Mar 20 08:42:50 GMT 2010, Zeng Xiaohui - * Fixed a bug with browser mouse handler interaction - * - * 1.1, Wed Feb 3 17:39:33 GMT 2010, Zeng Xiaohui - * Updated the zoom code to support the mouse wheel on Safari/Chrome - * - * 1.0, Andrea Leofreddi - * First release - * - * This code is licensed under the following BSD license: - * - * Copyright 2009-2010 Andrea Leofreddi . All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, are - * permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this list of - * conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright notice, this list - * of conditions and the following disclaimer in the documentation and/or other materials - * provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY Andrea Leofreddi ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND - * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Andrea Leofreddi OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * The views and conclusions contained in the software and documentation are those of the - * authors and should not be interpreted as representing official policies, either expressed - * or implied, of Andrea Leofreddi. - */ - -var root = document.documentElement; - -var state = 'none', stateTarget, stateOrigin, stateTf; - -setupHandlers(root); - -/** - * Register handlers - */ -function setupHandlers(root){ - setAttributes(root, { - "onmouseup" : "add(evt)", - "onmousedown" : "handleMouseDown(evt)", - "onmousemove" : "handleMouseMove(evt)", - "onmouseup" : "handleMouseUp(evt)", -// "onmouseout" : "handleMouseUp(evt)" // Decomment this to stop the pan functionality when dragging out of the SVG element - }); - - if(navigator.userAgent.toLowerCase().indexOf('webkit') >= 0) - window.addEventListener('mousewheel', handleMouseWheel, false); // Chrome/Safari - else - window.addEventListener('DOMMouseScroll', handleMouseWheel, false); // Others -} - -/** - * Instance an SVGPoint object with given event coordinates. - */ -function getEventPoint(evt) { - var p = root.createSVGPoint(); - - p.x = evt.clientX; - p.y = evt.clientY; - - return p; -} - -/** - * Sets the current transform matrix of an element. - */ -function setCTM(element, matrix) { - var s = "matrix(" + matrix.a + "," + matrix.b + "," + matrix.c + "," + matrix.d + "," + matrix.e + "," + matrix.f + ")"; - - element.setAttribute("transform", s); -} - -/** - * Dumps a matrix to a string (useful for debug). - */ -function dumpMatrix(matrix) { - var s = "[ " + matrix.a + ", " + matrix.c + ", " + matrix.e + "\n " + matrix.b + ", " + matrix.d + ", " + matrix.f + "\n 0, 0, 1 ]"; - - return s; -} - -/** - * Sets attributes of an element. - */ -function setAttributes(element, attributes){ - for (i in attributes) - element.setAttributeNS(null, i, attributes[i]); -} - -/** - * Handle mouse move event. - */ -function handleMouseWheel(evt) { - if(evt.preventDefault) - evt.preventDefault(); - - evt.returnValue = false; - - var svgDoc = evt.target.ownerDocument; - - var delta; - - if(evt.wheelDelta) - delta = evt.wheelDelta / 3600; // Chrome/Safari - else - delta = evt.detail / -90; // Mozilla - - var z = 1 + (delta * 1.2); // Zoom factor: 0.9/1.1 - - var g = svgDoc.getElementById("viewport"); - - var p = getEventPoint(evt); - - p = p.matrixTransform(g.getCTM().inverse()); - - // Compute new scale matrix in current mouse position - var k = root.createSVGMatrix().translate(p.x, p.y).scale(z).translate(-p.x, -p.y); - - setCTM(g, g.getCTM().multiply(k)); - - stateTf = stateTf.multiply(k.inverse()); -} - -/** - * Handle mouse move event. - */ -function handleMouseMove(evt) { - if(evt.preventDefault) - evt.preventDefault(); - - evt.returnValue = false; - - var svgDoc = evt.target.ownerDocument; - - var g = svgDoc.getElementById("viewport"); - - if(state == 'pan') { - // Pan mode - var p = getEventPoint(evt).matrixTransform(stateTf); - - setCTM(g, stateTf.inverse().translate(p.x - stateOrigin.x, p.y - stateOrigin.y)); - } else if(state == 'move') { - // Move mode - var p = getEventPoint(evt).matrixTransform(g.getCTM().inverse()); - - setCTM(stateTarget, root.createSVGMatrix().translate(p.x - stateOrigin.x, p.y - stateOrigin.y).multiply(g.getCTM().inverse()).multiply(stateTarget.getCTM())); - - stateOrigin = p; - } -} - -/** - * Handle click event. - */ -function handleMouseDown(evt) { - if(evt.preventDefault) - evt.preventDefault(); - - evt.returnValue = false; - - var svgDoc = evt.target.ownerDocument; - - var g = svgDoc.getElementById("viewport"); - -// if(evt.target.tagName == "svg") { - // Pan mode - state = 'pan'; - - stateTf = g.getCTM().inverse(); - - stateOrigin = getEventPoint(evt).matrixTransform(stateTf); -// } else { - // Move mode -// state = 'move'; -// -// stateTarget = evt.target; -// -// stateTf = g.getCTM().inverse(); -// -// stateOrigin = getEventPoint(evt).matrixTransform(stateTf); -// } -} - -/** - * Handle mouse button release event. - */ -function handleMouseUp(evt) { - if(evt.preventDefault) - evt.preventDefault(); - - evt.returnValue = false; - - var svgDoc = evt.target.ownerDocument; - - if(state == 'pan' || state == 'move') { - // Quit pan mode - state = ''; - } -} - diff --git a/docs/js/bootstrap.js b/docs/js/bootstrap.js deleted file mode 100644 index c832ccb..0000000 --- a/docs/js/bootstrap.js +++ /dev/null @@ -1,1722 +0,0 @@ -/* =================================================== - * bootstrap-transition.js v2.0.0 - * http://twitter.github.com/bootstrap/javascript.html#transitions - * =================================================== - * Copyright 2012 Twitter, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ========================================================== */ - -!function( $ ) { - - $(function () { - - "use strict" - - /* CSS TRANSITION SUPPORT (https://gist.github.com/373874) - * ======================================================= */ - - $.support.transition = (function () { - var thisBody = document.body || document.documentElement - , thisStyle = thisBody.style - , support = thisStyle.transition !== undefined || thisStyle.WebkitTransition !== undefined || thisStyle.MozTransition !== undefined || thisStyle.MsTransition !== undefined || thisStyle.OTransition !== undefined - - return support && { - end: (function () { - var transitionEnd = "TransitionEnd" - if ( $.browser.webkit ) { - transitionEnd = "webkitTransitionEnd" - } else if ( $.browser.mozilla ) { - transitionEnd = "transitionend" - } else if ( $.browser.opera ) { - transitionEnd = "oTransitionEnd" - } - return transitionEnd - }()) - } - })() - - }) - -}( window.jQuery ) -/* ========================================================== - * bootstrap-alert.js v2.0.0 - * http://twitter.github.com/bootstrap/javascript.html#alerts - * ========================================================== - * Copyright 2012 Twitter, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ========================================================== */ - - -!function( $ ){ - - "use strict" - - /* ALERT CLASS DEFINITION - * ====================== */ - - var dismiss = '[data-dismiss="alert"]' - , Alert = function ( el ) { - $(el).on('click', dismiss, this.close) - } - - Alert.prototype = { - - constructor: Alert - - , close: function ( e ) { - var $this = $(this) - , selector = $this.attr('data-target') - , $parent - - if (!selector) { - selector = $this.attr('href') - selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 - } - - $parent = $(selector) - $parent.trigger('close') - - e && e.preventDefault() - - $parent.length || ($parent = $this.hasClass('alert') ? $this : $this.parent()) - - $parent.removeClass('in') - - function removeElement() { - $parent.remove() - $parent.trigger('closed') - } - - $.support.transition && $parent.hasClass('fade') ? - $parent.on($.support.transition.end, removeElement) : - removeElement() - } - - } - - - /* ALERT PLUGIN DEFINITION - * ======================= */ - - $.fn.alert = function ( option ) { - return this.each(function () { - var $this = $(this) - , data = $this.data('alert') - if (!data) $this.data('alert', (data = new Alert(this))) - if (typeof option == 'string') data[option].call($this) - }) - } - - $.fn.alert.Constructor = Alert - - - /* ALERT DATA-API - * ============== */ - - $(function () { - $('body').on('click.alert.data-api', dismiss, Alert.prototype.close) - }) - -}( window.jQuery ) -/* ============================================================ - * bootstrap-button.js v2.0.0 - * http://twitter.github.com/bootstrap/javascript.html#buttons - * ============================================================ - * Copyright 2012 Twitter, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============================================================ */ - -!function( $ ){ - - "use strict" - - /* BUTTON PUBLIC CLASS DEFINITION - * ============================== */ - - var Button = function ( element, options ) { - this.$element = $(element) - this.options = $.extend({}, $.fn.button.defaults, options) - } - - Button.prototype = { - - constructor: Button - - , setState: function ( state ) { - var d = 'disabled' - , $el = this.$element - , data = $el.data() - , val = $el.is('input') ? 'val' : 'html' - - state = state + 'Text' - data.resetText || $el.data('resetText', $el[val]()) - - $el[val](data[state] || this.options[state]) - - // push to event loop to allow forms to submit - setTimeout(function () { - state == 'loadingText' ? - $el.addClass(d).attr(d, d) : - $el.removeClass(d).removeAttr(d) - }, 0) - } - - , toggle: function () { - var $parent = this.$element.parent('[data-toggle="buttons-radio"]') - - $parent && $parent - .find('.active') - .removeClass('active') - - this.$element.toggleClass('active') - } - - } - - - /* BUTTON PLUGIN DEFINITION - * ======================== */ - - $.fn.button = function ( option ) { - return this.each(function () { - var $this = $(this) - , data = $this.data('button') - , options = typeof option == 'object' && option - if (!data) $this.data('button', (data = new Button(this, options))) - if (option == 'toggle') data.toggle() - else if (option) data.setState(option) - }) - } - - $.fn.button.defaults = { - loadingText: 'loading...' - } - - $.fn.button.Constructor = Button - - - /* BUTTON DATA-API - * =============== */ - - $(function () { - $('body').on('click.button.data-api', '[data-toggle^=button]', function ( e ) { - $(e.target).button('toggle') - }) - }) - -}( window.jQuery ) -/* ========================================================== - * bootstrap-carousel.js v2.0.0 - * http://twitter.github.com/bootstrap/javascript.html#carousel - * ========================================================== - * Copyright 2012 Twitter, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ========================================================== */ - - -!function( $ ){ - - "use strict" - - /* CAROUSEL CLASS DEFINITION - * ========================= */ - - var Carousel = function (element, options) { - this.$element = $(element) - this.options = $.extend({}, $.fn.carousel.defaults, options) - this.options.slide && this.slide(this.options.slide) - } - - Carousel.prototype = { - - cycle: function () { - this.interval = setInterval($.proxy(this.next, this), this.options.interval) - return this - } - - , to: function (pos) { - var $active = this.$element.find('.active') - , children = $active.parent().children() - , activePos = children.index($active) - , that = this - - if (pos > (children.length - 1) || pos < 0) return - - if (this.sliding) { - return this.$element.one('slid', function () { - that.to(pos) - }) - } - - if (activePos == pos) { - return this.pause().cycle() - } - - return this.slide(pos > activePos ? 'next' : 'prev', $(children[pos])) - } - - , pause: function () { - clearInterval(this.interval) - return this - } - - , next: function () { - if (this.sliding) return - return this.slide('next') - } - - , prev: function () { - if (this.sliding) return - return this.slide('prev') - } - - , slide: function (type, next) { - var $active = this.$element.find('.active') - , $next = next || $active[type]() - , isCycling = this.interval - , direction = type == 'next' ? 'left' : 'right' - , fallback = type == 'next' ? 'first' : 'last' - , that = this - - this.sliding = true - - isCycling && this.pause() - - $next = $next.length ? $next : this.$element.find('.item')[fallback]() - - if (!$.support.transition && this.$element.hasClass('slide')) { - this.$element.trigger('slide') - $active.removeClass('active') - $next.addClass('active') - this.sliding = false - this.$element.trigger('slid') - } else { - $next.addClass(type) - $next[0].offsetWidth // force reflow - $active.addClass(direction) - $next.addClass(direction) - this.$element.trigger('slide') - this.$element.one($.support.transition.end, function () { - $next.removeClass([type, direction].join(' ')).addClass('active') - $active.removeClass(['active', direction].join(' ')) - that.sliding = false - setTimeout(function () { that.$element.trigger('slid') }, 0) - }) - } - - isCycling && this.cycle() - - return this - } - - } - - - /* CAROUSEL PLUGIN DEFINITION - * ========================== */ - - $.fn.carousel = function ( option ) { - return this.each(function () { - var $this = $(this) - , data = $this.data('carousel') - , options = typeof option == 'object' && option - if (!data) $this.data('carousel', (data = new Carousel(this, options))) - if (typeof option == 'number') data.to(option) - else if (typeof option == 'string' || (option = options.slide)) data[option]() - else data.cycle() - }) - } - - $.fn.carousel.defaults = { - interval: 5000 - } - - $.fn.carousel.Constructor = Carousel - - - /* CAROUSEL DATA-API - * ================= */ - - $(function () { - $('body').on('click.carousel.data-api', '[data-slide]', function ( e ) { - var $this = $(this), href - , $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7 - , options = !$target.data('modal') && $.extend({}, $target.data(), $this.data()) - $target.carousel(options) - e.preventDefault() - }) - }) - -}( window.jQuery ) -/* ============================================================= - * bootstrap-collapse.js v2.0.0 - * http://twitter.github.com/bootstrap/javascript.html#collapse - * ============================================================= - * Copyright 2012 Twitter, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============================================================ */ - -!function( $ ){ - - "use strict" - - var Collapse = function ( element, options ) { - this.$element = $(element) - this.options = $.extend({}, $.fn.collapse.defaults, options) - - if (this.options["parent"]) { - this.$parent = $(this.options["parent"]) - } - - this.options.toggle && this.toggle() - } - - Collapse.prototype = { - - constructor: Collapse - - , dimension: function () { - var hasWidth = this.$element.hasClass('width') - return hasWidth ? 'width' : 'height' - } - - , show: function () { - var dimension = this.dimension() - , scroll = $.camelCase(['scroll', dimension].join('-')) - , actives = this.$parent && this.$parent.find('.in') - , hasData - - if (actives && actives.length) { - hasData = actives.data('collapse') - actives.collapse('hide') - hasData || actives.data('collapse', null) - } - - this.$element[dimension](0) - this.transition('addClass', 'show', 'shown') - this.$element[dimension](this.$element[0][scroll]) - - } - - , hide: function () { - var dimension = this.dimension() - this.reset(this.$element[dimension]()) - this.transition('removeClass', 'hide', 'hidden') - this.$element[dimension](0) - } - - , reset: function ( size ) { - var dimension = this.dimension() - - this.$element - .removeClass('collapse') - [dimension](size || 'auto') - [0].offsetWidth - - this.$element.addClass('collapse') - } - - , transition: function ( method, startEvent, completeEvent ) { - var that = this - , complete = function () { - if (startEvent == 'show') that.reset() - that.$element.trigger(completeEvent) - } - - this.$element - .trigger(startEvent) - [method]('in') - - $.support.transition && this.$element.hasClass('collapse') ? - this.$element.one($.support.transition.end, complete) : - complete() - } - - , toggle: function () { - this[this.$element.hasClass('in') ? 'hide' : 'show']() - } - - } - - /* COLLAPSIBLE PLUGIN DEFINITION - * ============================== */ - - $.fn.collapse = function ( option ) { - return this.each(function () { - var $this = $(this) - , data = $this.data('collapse') - , options = typeof option == 'object' && option - if (!data) $this.data('collapse', (data = new Collapse(this, options))) - if (typeof option == 'string') data[option]() - }) - } - - $.fn.collapse.defaults = { - toggle: true - } - - $.fn.collapse.Constructor = Collapse - - - /* COLLAPSIBLE DATA-API - * ==================== */ - - $(function () { - $('body').on('click.collapse.data-api', '[data-toggle=collapse]', function ( e ) { - var $this = $(this), href - , target = $this.attr('data-target') - || e.preventDefault() - || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7 - , option = $(target).data('collapse') ? 'toggle' : $this.data() - $(target).collapse(option) - }) - }) - -}( window.jQuery ) -/* ============================================================ - * bootstrap-dropdown.js v2.0.0 - * http://twitter.github.com/bootstrap/javascript.html#dropdowns - * ============================================================ - * Copyright 2012 Twitter, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============================================================ */ - - -!function( $ ){ - - "use strict" - - /* DROPDOWN CLASS DEFINITION - * ========================= */ - - var toggle = '[data-toggle="dropdown"]' - , Dropdown = function ( element ) { - var $el = $(element).on('click.dropdown.data-api', this.toggle) - $('html').on('click.dropdown.data-api', function () { - $el.parent().removeClass('open') - }) - } - - Dropdown.prototype = { - - constructor: Dropdown - - , toggle: function ( e ) { - var $this = $(this) - , selector = $this.attr('data-target') - , $parent - , isActive - - if (!selector) { - selector = $this.attr('href') - selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 - } - - $parent = $(selector) - $parent.length || ($parent = $this.parent()) - - isActive = $parent.hasClass('open') - - clearMenus() - !isActive && $parent.toggleClass('open') - - return false - } - - } - - function clearMenus() { - $(toggle).parent().removeClass('open') - } - - - /* DROPDOWN PLUGIN DEFINITION - * ========================== */ - - $.fn.dropdown = function ( option ) { - return this.each(function () { - var $this = $(this) - , data = $this.data('dropdown') - if (!data) $this.data('dropdown', (data = new Dropdown(this))) - if (typeof option == 'string') data[option].call($this) - }) - } - - $.fn.dropdown.Constructor = Dropdown - - - /* APPLY TO STANDARD DROPDOWN ELEMENTS - * =================================== */ - - $(function () { - $('html').on('click.dropdown.data-api', clearMenus) - $('body').on('click.dropdown.data-api', toggle, Dropdown.prototype.toggle) - }) - -}( window.jQuery ) -/* ========================================================= - * bootstrap-modal.js v2.0.0 - * http://twitter.github.com/bootstrap/javascript.html#modals - * ========================================================= - * Copyright 2012 Twitter, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ========================================================= */ - - -!function( $ ){ - - "use strict" - - /* MODAL CLASS DEFINITION - * ====================== */ - - var Modal = function ( content, options ) { - this.options = $.extend({}, $.fn.modal.defaults, options) - this.$element = $(content) - .delegate('[data-dismiss="modal"]', 'click.dismiss.modal', $.proxy(this.hide, this)) - } - - Modal.prototype = { - - constructor: Modal - - , toggle: function () { - return this[!this.isShown ? 'show' : 'hide']() - } - - , show: function () { - var that = this - - if (this.isShown) return - - $('body').addClass('modal-open') - - this.isShown = true - this.$element.trigger('show') - - escape.call(this) - backdrop.call(this, function () { - var transition = $.support.transition && that.$element.hasClass('fade') - - !that.$element.parent().length && that.$element.appendTo(document.body) //don't move modals dom position - - that.$element - .show() - - if (transition) { - that.$element[0].offsetWidth // force reflow - } - - that.$element.addClass('in') - - transition ? - that.$element.one($.support.transition.end, function () { that.$element.trigger('shown') }) : - that.$element.trigger('shown') - - }) - } - - , hide: function ( e ) { - e && e.preventDefault() - - if (!this.isShown) return - - var that = this - this.isShown = false - - $('body').removeClass('modal-open') - - escape.call(this) - - this.$element - .trigger('hide') - .removeClass('in') - - $.support.transition && this.$element.hasClass('fade') ? - hideWithTransition.call(this) : - hideModal.call(this) - } - - } - - - /* MODAL PRIVATE METHODS - * ===================== */ - - function hideWithTransition() { - var that = this - , timeout = setTimeout(function () { - that.$element.off($.support.transition.end) - hideModal.call(that) - }, 500) - - this.$element.one($.support.transition.end, function () { - clearTimeout(timeout) - hideModal.call(that) - }) - } - - function hideModal( that ) { - this.$element - .hide() - .trigger('hidden') - - backdrop.call(this) - } - - function backdrop( callback ) { - var that = this - , animate = this.$element.hasClass('fade') ? 'fade' : '' - - if (this.isShown && this.options.backdrop) { - var doAnimate = $.support.transition && animate - - this.$backdrop = $(' -
- +

- Classes and interfaces

+ Classes and interfaces
-

Driver_Interface +

Driver_Interface

PDO Interface to implement for database drivers

-« More » +« More »
-

SQL_Interface +

SQL_Interface

parent for database manipulation subclasses

-« More » +« More »
-

Abstract_Driver +

Abstract_Driver

Base Database class

-« More » +« More »
-

Abstract_SQL +

Abstract_SQL

parent for database manipulation subclasses

-« More » +« More »
-

DB_Util +

DB_Util

Abstract class defining database / table creation methods

-« More » +« More »
-

Firebird +

Firebird

Firebird Database class

-« More » +« More »
-

Firebird_Result +

Firebird_Result

Firebird result class to emulate PDOStatement Class - only implements data-fetching methods

-« More » +« More »
-

Firebird_SQL +

Firebird_SQL

Firebird Specific SQL

-« More » +« More »
-

Firebird_Util +

Firebird_Util

Firebird-specific backup, import and creation methods

-« More » +« More »
-

MySQL +

MySQL

MySQL specific class

-« More » +« More »
-

MySQL_SQL +

MySQL_SQL

MySQL specifc SQL

-« More » +« More »
-

MySQL_Util +

MySQL_Util

MySQL-specific backup, import and creation methods

-« More » +« More »
-

PgSQL +

PgSQL

PostgreSQL specifc class

-« More » +« More »
-

PgSQL_SQL +

PgSQL_SQL

PostgreSQL specifc SQL

-« More » +« More »
-

PgSQL_Util +

PgSQL_Util

Posgres-specific backup, import and creation methods

-« More » +« More »
-

SQLite +

SQLite

SQLite specific class

-« More » +« More »
-

SQLite_SQL +

SQLite_SQL

SQLite Specific SQL

-« More » +« More »
-

SQLite_Util +

SQLite_Util

SQLite-specific backup, import and creation methods

-« More » +« More »
@@ -227,7 +210,7 @@ data-fetching methods

Template is built using Twitter Bootstrap 2 and icons provided by Glyphicons.
Documentation is powered by phpDocumentor 2.2.0 and
- generated on 2014-04-02T11:00:35-04:00.
+ generated on 2014-04-02T17:05:03-04:00.
diff --git a/docs/namespaces/Query.html b/docs/namespaces/Query.html new file mode 100644 index 0000000..99a64dc --- /dev/null +++ b/docs/namespaces/Query.html @@ -0,0 +1,292 @@ + + + + + +Query » Query + + + + + + + + + + +
+ +
+ +
+ +
+

+ Classes and interfaces

+
+

Query_Builder_Interface +

+

Interface defining the Query Builder class

+
+« More » +
+
+

Table_Builder_Interface +

+

Abstract class defining database / table creation methods

+
+« More » +
+
+

BadDBDriverException +

+

Generic exception for bad drivers

+
+« More » +
+
+

Connection_Manager +

+

Connection manager class to manage connections for the +Query method

+
+« More » +
+
+

Query_Builder +

+

Convienience class for creating sql queries - also the class that +instantiates the specific db driver

+
+« More » +
+
+

Query_Parser +

+

Utility Class to parse sql clauses for properly escaping identifiers

+
+« More » +
+
+

Table_Builder +

+

Abstract class defining database / table creation methods

+
+« More » +
+ +
+

+ Classes and interfaces

+
+

Driver_Interface +

+

PDO Interface to implement for database drivers

+
+« More » +
+
+

SQL_Interface +

+

parent for database manipulation subclasses

+
+« More » +
+
+

Abstract_Driver +

+

Base Database class

+
+« More » +
+
+

Abstract_SQL +

+

parent for database manipulation subclasses

+
+« More » +
+
+

DB_Util +

+

Abstract class defining database / table creation methods

+
+« More » +
+
+

Firebird +

+

Firebird Database class

+
+« More » +
+
+

Firebird_Result +

+

Firebird result class to emulate PDOStatement Class - only implements +data-fetching methods

+
+« More » +
+
+

Firebird_SQL +

+

Firebird Specific SQL

+
+« More » +
+
+

Firebird_Util +

+

Firebird-specific backup, import and creation methods

+
+« More » +
+
+

MySQL +

+

MySQL specific class

+
+« More » +
+
+

MySQL_SQL +

+

MySQL specifc SQL

+
+« More » +
+
+

MySQL_Util +

+

MySQL-specific backup, import and creation methods

+
+« More » +
+
+

PgSQL +

+

PostgreSQL specifc class

+
+« More » +
+
+

PgSQL_SQL +

+

PostgreSQL specifc SQL

+
+« More » +
+
+

PgSQL_Util +

+

Posgres-specific backup, import and creation methods

+
+« More » +
+
+

SQLite +

+

SQLite specific class

+
+« More » +
+
+

SQLite_SQL +

+

SQLite Specific SQL

+
+« More » +
+
+

SQLite_Util +

+

SQLite-specific backup, import and creation methods

+
+« More » +
+
+
+
+
+
+
+ + diff --git a/docs/namespaces/global.html b/docs/namespaces/global.html deleted file mode 100644 index 889c565..0000000 --- a/docs/namespaces/global.html +++ /dev/null @@ -1,117 +0,0 @@ - - - - - -Query » global - - - - - - - - - - - - - diff --git a/docs/packages/Default.html b/docs/packages/Default.html deleted file mode 100644 index bdf72ae..0000000 --- a/docs/packages/Default.html +++ /dev/null @@ -1,72 +0,0 @@ - - - - - -Query » Default - - - - - - - - - - -
- -
-
-
- -
- -
-
-
-
-
- - diff --git a/docs/packages/Query.Core.html b/docs/packages/Query.Core.html deleted file mode 100644 index 6fdb5fc..0000000 --- a/docs/packages/Query.Core.html +++ /dev/null @@ -1,155 +0,0 @@ - - - - - -Query » Query\Core - - - - - - - - - - -
- -
- -
- -
-

- Functions

-
-

Load query classes

-
query_autoload(string $class) 
-
-
-
- - - -
subpackageCore
-

Parameters

-
-

$class

-string -
-
-
-

- Classes and interfaces

-
-

BadDBDriverException -

-

Generic exception for bad drivers

-
-« More » -
-
-

Connection_Manager -

-

Connection manager class to manage connections for the -Query method

-
-« More » -
-

- Constants

- 
-

Reference to root path

-
QBASE_PATH = dirname(__FILE__) . '/' 
-
-
-
- - - -
subpackageCore
-
-
- 
-

Path to driver classes

-
QDRIVER_PATH = QBASE_PATH . 'drivers/' 
-
-
-
- - - -
subpackageCore
-
-
-
-
-
-
-
- - diff --git a/docs/packages/Query.Query_Builder.html b/docs/packages/Query.Query_Builder.html deleted file mode 100644 index 67fc1c4..0000000 --- a/docs/packages/Query.Query_Builder.html +++ /dev/null @@ -1,113 +0,0 @@ - - - - - -Query » Query\Query_Builder - - - - - - - - - - -
- -
-
-
- -
- -
-
- -
-

- Classes and interfaces

-
-

Query_Builder_Interface -

-

Interface defining the Query Builder class

-
-« More » -
-
-

Query_Builder -

-

Convienience class for creating sql queries - also the class that -instantiates the specific db driver

-
-« More » -
-
-

Query_Parser -

-

Utility Class to parse sql clauses for properly escaping identifiers

-
-« More » -
-
-
-
-
-
- - diff --git a/docs/packages/Query.Table_Builder.html b/docs/packages/Query.Table_Builder.html deleted file mode 100644 index f014131..0000000 --- a/docs/packages/Query.Table_Builder.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - - -Query » Query\Table_Builder - - - - - - - - - - -
- -
-
-
- -
- -
-
- -
-

- Classes and interfaces

-
-

Table_Builder_Interface -

-

Abstract class defining database / table creation methods

-
-« More » -
-
-

Table_Builder -

-

Abstract class defining database / table creation methods

-
-« More » -
-
-
-
-
-
- - diff --git a/docs/packages/Query.html b/docs/packages/Query.html deleted file mode 100644 index da56b0f..0000000 --- a/docs/packages/Query.html +++ /dev/null @@ -1,427 +0,0 @@ - - - - - -Query » Query - - - - - - - - - - -
- -
- -
- -
-

- Functions

-
-

Connection function

-
Query(mixed $params = '') : \Query_Builder
-
-
-
-

Parameters

-
-

$params

-mixed -
-

Returns

- -
-
-
-

Filter out db rows into one array

-
db_filter(array $array, mixed $index) : array
-
-
-
-

Parameters

-
-

$array

-array -
-
-

$index

-mixed -
-

Returns

-
array
-
-
-
-

Bulk directory loading workaround for use -with array_map and glob

-
do_include(string $path) : void
-
-
-
-

Parameters

-
-

$path

-string -
-
-
-
-

Multibyte-safe trim function

-
mb_trim(string $string) : string
-
-
-
-

Parameters

-
-

$string

-string -
-

Returns

-
string
-
-
- -
-

- Functions

-
-

Load query classes

-
query_autoload(string $class) 
-
-
-
- - - -
subpackageCore
-

Parameters

-
-

$class

-string -
-
-
-

- Classes and interfaces

-
-

BadDBDriverException -

-

Generic exception for bad drivers

-
-« More » -
-
-

Connection_Manager -

-

Connection manager class to manage connections for the -Query method

-
-« More » -
-

- Constants

- 
-

Reference to root path

-
QBASE_PATH = dirname(__FILE__) . '/' 
-
-
-
- - - -
subpackageCore
-
-
- 
-

Path to driver classes

-
QDRIVER_PATH = QBASE_PATH . 'drivers/' 
-
-
-
- - - -
subpackageCore
-
-
-
- -
-

- Classes and interfaces

-
-

Driver_Interface -

-

PDO Interface to implement for database drivers

-
-« More » -
-
-

SQL_Interface -

-

parent for database manipulation subclasses

-
-« More » -
-
-

Abstract_Driver -

-

Base Database class

-
-« More » -
-
-

Abstract_SQL -

-

parent for database manipulation subclasses

-
-« More » -
-
-

DB_Util -

-

Abstract class defining database / table creation methods

-
-« More » -
-
-

Firebird -

-

Firebird Database class

-
-« More » -
-
-

Firebird_Result -

-

Firebird result class to emulate PDOStatement Class - only implements -data-fetching methods

-
-« More » -
-
-

Firebird_SQL -

-

Firebird Specific SQL

-
-« More » -
-
-

Firebird_Util -

-

Firebird-specific backup, import and creation methods

-
-« More » -
-
-

MySQL -

-

MySQL specific class

-
-« More » -
-
-

MySQL_SQL -

-

MySQL specifc SQL

-
-« More » -
-
-

MySQL_Util -

-

MySQL-specific backup, import and creation methods

-
-« More » -
-
-

PgSQL -

-

PostgreSQL specifc class

-
-« More » -
-
-

PgSQL_SQL -

-

PostgreSQL specifc SQL

-
-« More » -
-
-

PgSQL_Util -

-

Posgres-specific backup, import and creation methods

-
-« More » -
-
-

SQLite -

-

SQLite specific class

-
-« More » -
-
-

SQLite_SQL -

-

SQLite Specific SQL

-
-« More » -
-
-

SQLite_Util -

-

SQLite-specific backup, import and creation methods

-
-« More » -
-
- -
-

- Classes and interfaces

-
-

Query_Builder_Interface -

-

Interface defining the Query Builder class

-
-« More » -
-
-

Query_Builder -

-

Convienience class for creating sql queries - also the class that -instantiates the specific db driver

-
-« More » -
-
-

Query_Parser -

-

Utility Class to parse sql clauses for properly escaping identifiers

-
-« More » -
-
- -
-

- Classes and interfaces

-
-

Table_Builder_Interface -

-

Abstract class defining database / table creation methods

-
-« More » -
-
-

Table_Builder -

-

Abstract class defining database / table creation methods

-
-« More » -
-
-
-
-
-
-
- - diff --git a/docs/structure.xml b/docs/structure.xml deleted file mode 100644 index 164348e..0000000 --- a/docs/structure.xml +++ /dev/null @@ -1,7274 +0,0 @@ - - - - - - Query - Free Query Builder / Database Abstraction Layer - - - - - - - - - Query_Parser - \Query_Parser - - Utility Class to parse sql clauses for properly escaping identifiers - - - - - - $match_patterns - array('function' => '([a-zA-Z0-9_]+\((.*?)\))', 'identifier' => '([a-zA-Z0-9_-]+\.?)+', 'operator' => '=|AND|&&?|~|\|\|?|\^|/|>=?|<=?|-|%|OR|\+|NOT|\!=?|<>|XOR') - - Regex patterns for various syntax components - - - array - - - - - $matches - array('functions' => array(), 'identifiers' => array(), 'operators' => array(), 'combined' => array()) - - Regex matches - - - array - - - - - __construct - \Query_Parser::__construct() - - Constructor/entry point into parser - - - string - - - - $sql - '' - string - - - - parse_join - \Query_Parser::parse_join() - - Public parser method for seting the parse string - - - string - - - - $sql - - string - - - - filter_array - \Query_Parser::filter_array() - - Returns a more useful match array - - - array - - - array - - - - $array - - array - - - - eJy1Vm1v2zYQ/iz9ihvgVVL8orTol3VNnCzJCgxFk3kZNiz2VFo+W2xkUSUpt17V/fYdqRe/JAtSrEtgWz4+x7t77jnSL4d5krvhwYELB/BzgXJND+b5R4lYGeCHgqczlBDCOdNsyhTC6VRpyWLNRQav2Rpl7XWSs/iWLdBxmr3ghBU6EdJxrvlS6GQNPw3gNyYlZnY1Fvla8kWinbPmCfw4gGeHT59B33w8t7iUZ7fgOInWuXoRhguuk2I6iMUyZCvO9HPKJNzETHmMmcIKT/A84anShVygyMhpUNyGsZhhOJuyWb8Gk2PoumEI/a/25zbM/qp5yvUazlKmFGgBOZNEo3qfQpyyQqGCuZCQS5GjTNeAKmY5zxbAZ5hpPuco1R7FsKlWFdMdY1R3zFYU25CV/cpElfDJdR2TmEPOI1zgR0pHa5RZlcWKSS4KBWqdafYRiONcZJSGMg7W6YQgQD1ka/M1dJ1c8hXTCJ0l03EStdsdVSjfdRxvXmRWMB4cHYPn37D+X6f9Pw7730WT7tj3BwfDYBwEXs9gN2XfRfcJPhgG3QppCGNa1Lij8vTNefnkybD8uxzT/7Ac/1mG5fHRsHxJr375bXk5Ksfd8s3ldTn+xpiPy98vR57rBN/fYcUWgw+VXUxJPHXVeH+5ymZW2YO94u6uNeXcXaE2THmGs72FnbTPKJyWRUwbhBSDZjcXPNNAr1pyclMMfWdLILzRWYekuFtUkz9EUdxs6xsYVel5get8oqxoWl6h3tLxjlpIFriIKkmwNPW9t96goxOu+se7OrnZiGMyIFTP5kPvW2DcQilv0oOr0cWr6JeL6+hydH4xIh6+JN6WwB6MuN2r/xqzleqDETcKuC/ehnNc0USTLzWPaRBZjHZ4haTBJyMBO/MiTZv4pmuPo79bPpK10n9UqUH3LffuYWonvX9jo1X9A2QI0IkUxSKhT2yGtgcsm8GCiLJGoTRITHHFaBzauXZ2wzXzS0nmfjViFtADb85TSjOyRi/Yz9MI4bOZw697ebRzfVWNZDXBsES6UGe22wq1EYApsb5RdNX8Lx1y6x29o9PCzng93nWV+yeA1b1Euk+zPSL+Zx5GNqYCRg2VCHTekIaqdm7O5e3CrRE67Rqc1Gnfd3m1ZGw326+cG0Iy/FDZ27O+0iE1A1mc1GhgCjpSfCAv67bldzMhT/C5arY3sACGFn9zOIEX9skwbJhsaW43qCj+bH+pXJDExRze28u9UseAfs/9A+b49sg= - - - - Query - Free Query Builder / Database Abstraction Layer - - - - - - - - Driver_Interface - \Driver_Interface - - PDO Interface to implement for database drivers - - - - - - __construct - \Driver_Interface::__construct() - - Constructor/Connection method - - - string - - - \[string] - - - \[string] - - - \[array] - - - void - - - - $dsn - - string - - - $username - NULL - \[string] - - - $password - NULL - \[string] - - - $driver_options - array() - \[array] - - - - beginTransaction - \Driver_Interface::beginTransaction() - - Begin a transaction - - - bool - - - - - commit - \Driver_Interface::commit() - - Commit a transaction - - - bool - - - - - errorCode - \Driver_Interface::errorCode() - - Return the current error code - - - mixed - - - - - errorInfo - \Driver_Interface::errorInfo() - - Return information about the current error - - - array - - - - - exec - \Driver_Interface::exec() - - Execute an SQL statement and return the number of affected rows - - - string - - - int - - - - $statement - - string - - - - getAttribute - \Driver_Interface::getAttribute() - - Get a connection attribute for the current db driver - - - int - - - - - $attribute - - int - - - - rollback - \Driver_Interface::rollback() - - Rollback a transaction - - - bool - - - - - setAttribute - \Driver_Interface::setAttribute() - - Set a connection attribute - - - int - - - mixed - - - bool - - - - $attribute - - int - - - $value - - mixed - - - - eJytVU1P20AQPTsS/2EOOQQEcYs4tUUFElpRRbQUqh6qKtpdT+wV9q61H4Go6n/v2OvECU6KKppL7J1589587Pjd+zIr93rxwcFeDw7gxqNZVE/12weDGI7gwss8QQMxjJljnFmEc26dYcJJrWDCFmhWuLOSiXuWYhSt4sEZ8y7TJoruZKFdtoBPQ/jOjEEVzEKXCyPTzEWj5RMMxD4cv3p9DEfV30lwzKW6hyjKnCvtmzhOpcs8HwpdxGwumTshOfEabS4FKosBQP5lJnPrvElRK0IN/X0sdIJxwlly1DhXyHivR2WJ4ei//eqATZ2/jD/DlXJoZkwgOA2yKHMsUDmYaQPJssaJkXM0tlNZWMvQer48HbfupF+uCML5tGX8VYmJajURxRhpRb30wmkT07PC0NUCqWVJ7RL8iN6wAshXqhT6iVUb5z+C4Sf0vUWjWIE7zCWz9kGbZNNM08AWZA1JT3VZibCNj0FqmoK5lgFF+UWl59QxmHkV9E6nYpnIoBJ32Ao5vf42mRy2zM17TfmUEU7D+WB//+1mnS4wlQoY0NwrG0Z/vTqNRq51vlMjr0LctfjBU46RLgrpXkYi6hid0F8D1GUIwldXzwEaQ/NW3YAtHIV8xN3VrqEjQu7ikYpmuWC1M+Pauy7zFtK69H8nvaLAHdLLRxTeITAFtzcTmlHmwoViKgHTZq58wWmR6Rmw2YwGHcmqH+zuKV9F2tQpm4OtKknLoAU+lQofsWqwaG8ac0TGK/nV9V8vU8KbJdAVSAqgv0KuqyueaV2K7nyJG7QhOn3Uec5ptbxsGE0TpdOx251VeD7NYKqzhP6c5R7/QZHdnv5hE6nS+bte/pc0OjQozXpY7dNh/c38A1caIYA= - - - - Query - Free Query Builder / Database Abstraction Layer - - - - - - - - Query_Builder_Interface - \Query_Builder_Interface - - Interface defining the Query Builder class - - - - - - select - \Query_Builder_Interface::select() - - Specifies rows to select in a query - - - string - - - \Query_Builder - - - - $fields - - string - - - - select_max - \Query_Builder_Interface::select_max() - - Selects the maximum value of a field from a query - - - string - - - string - - - \Query_Builder - - - - $field - - string - - - $as - FALSE - string - - - - select_min - \Query_Builder_Interface::select_min() - - Selects the minimum value of a field from a query - - - string - - - string - - - \Query_Builder - - - - $field - - string - - - $as - FALSE - string - - - - select_avg - \Query_Builder_Interface::select_avg() - - Selects the average value of a field from a query - - - string - - - string - - - \Query_Builder - - - - $field - - string - - - $as - FALSE - string - - - - select_sum - \Query_Builder_Interface::select_sum() - - Selects the sum of a field from a query - - - string - - - string - - - \Query_Builder - - - - $field - - string - - - $as - FALSE - string - - - - distinct - \Query_Builder_Interface::distinct() - - Adds the 'distinct' keyword to a query - - - \Query_Builder - - - - - explain - \Query_Builder_Interface::explain() - - Shows the query plan for the query - - - \Query_Builder - - - - - from - \Query_Builder_Interface::from() - - Specify the database table to select from - - - string - - - \Query_Builder - - - - $tblname - - string - - - - like - \Query_Builder_Interface::like() - - Creates a Like clause in the sql statement - - - string - - - mixed - - - string - - - \Query_Builder - - - - $field - - string - - - $val - - mixed - - - $pos - 'both' - string - - - - or_like - \Query_Builder_Interface::or_like() - - Generates an OR Like clause - - - string - - - mixed - - - string - - - \Query_Builder - - - - $field - - string - - - $val - - mixed - - - $pos - 'both' - string - - - - not_like - \Query_Builder_Interface::not_like() - - Generates a NOT LIKE clause - - - string - - - mixed - - - string - - - \Query_Builder - - - - $field - - string - - - $val - - mixed - - - $pos - 'both' - string - - - - or_not_like - \Query_Builder_Interface::or_not_like() - - Generates a OR NOT LIKE clause - - - string - - - mixed - - - string - - - \Query_Builder - - - - $field - - string - - - $val - - mixed - - - $pos - 'both' - string - - - - having - \Query_Builder_Interface::having() - - Generates a 'Having' clause - - - mixed - - - mixed - - - \Query_Builder - - - - $key - - mixed - - - $val - array() - mixed - - - - or_having - \Query_Builder_Interface::or_having() - - Generates a 'Having' clause prefixed with 'OR' - - - mixed - - - mixed - - - \Query_Builder - - - - $key - - mixed - - - $val - array() - mixed - - - - where - \Query_Builder_Interface::where() - - Specify condition(s) in the where clause of a query -Note: this function works with key / value, or a -passed array with key / value pairs - - - mixed - - - mixed - - - bool - - - \Query_Builder - - - - $key - - mixed - - - $val - array() - mixed - - - $escape - NULL - bool - - - - or_where - \Query_Builder_Interface::or_where() - - Where clause prefixed with "OR" - - - string - - - mixed - - - \Query_Builder - - - - $key - - string - - - $val - array() - mixed - - - - where_in - \Query_Builder_Interface::where_in() - - Where clause with 'IN' statement - - - mixed - - - mixed - - - \Query_Builder - - - - $field - - mixed - - - $val - array() - mixed - - - - or_where_in - \Query_Builder_Interface::or_where_in() - - Where in statement prefixed with "or" - - - string - - - mixed - - - \Query_Builder - - - - $field - - string - - - $val - array() - mixed - - - - where_not_in - \Query_Builder_Interface::where_not_in() - - WHERE NOT IN (FOO) clause - - - string - - - mixed - - - \Query_Builder - - - - $field - - string - - - $val - array() - mixed - - - - or_where_not_in - \Query_Builder_Interface::or_where_not_in() - - OR WHERE NOT IN (FOO) clause - - - string - - - mixed - - - \Query_Builder - - - - $field - - string - - - $val - array() - mixed - - - - set - \Query_Builder_Interface::set() - - Sets values for inserts / updates / deletes - - - mixed - - - mixed - - - \Query_Builder - - - - $key - - mixed - - - $val - NULL - mixed - - - - join - \Query_Builder_Interface::join() - - Creates a join phrase in a compiled query - - - string - - - string - - - string - - - \Query_Builder - - - - $table - - string - - - $condition - - string - - - $type - '' - string - - - - group_by - \Query_Builder_Interface::group_by() - - Group the results by the selected field(s) - - - mixed - - - \Query_Builder - - - - $field - - mixed - - - - order_by - \Query_Builder_Interface::order_by() - - Order the results by the selected field(s) - - - string - - - string - - - \Query_Builder - - - - $field - - string - - - $type - "" - string - - - - limit - \Query_Builder_Interface::limit() - - Set a limit on the current sql statement - - - int - - - int - - - string - - - - $limit - - int - - - $offset - FALSE - int - - - - group_start - \Query_Builder_Interface::group_start() - - Adds a paren to the current query for query grouping - - - \Query_Builder - - - - - or_group_start - \Query_Builder_Interface::or_group_start() - - Adds a paren to the current query for query grouping, -prefixed with 'OR' - - - \Query_Builder - - - - - or_not_group_start - \Query_Builder_Interface::or_not_group_start() - - Adds a paren to the current query for query grouping, -prefixed with 'OR NOT' - - - \Query_Builder - - - - - group_end - \Query_Builder_Interface::group_end() - - Ends a query group - - - \Query_Builder - - - - - get - \Query_Builder_Interface::get() - - Select and retrieve all records from the current table, and/or -execute current compiled query - - - - int - - - int - - - \PDOStatement - - - - $table - '' - mixed - - - $limit - FALSE - int - - - $offset - FALSE - int - - - - get_where - \Query_Builder_Interface::get_where() - - Convience method for get() with a where clause - - - string - - - array - - - int - - - int - - - \PDOStatement - - - - $table - - string - - - $where - array() - array - - - $limit - FALSE - int - - - $offset - FALSE - int - - - - count_all - \Query_Builder_Interface::count_all() - - Retreive the number of rows in the selected table - - - string - - - int - - - - $table - - string - - - - count_all_results - \Query_Builder_Interface::count_all_results() - - Retrieve the number of results for the generated query - used -in place of the get() method - - - string - - - int - - - - $table - '' - string - - - - insert - \Query_Builder_Interface::insert() - - Creates an insert clause, and executes it - - - string - - - mixed - - - \PDOStatement - - - - $table - - string - - - $data - array() - mixed - - - - insert_batch - \Query_Builder_Interface::insert_batch() - - Creates and executes a batch insertion query - - - string - - - array - - - \PDOStatement - - - - $table - - string - - - $data - array() - array - - - - update - \Query_Builder_Interface::update() - - Creates an update clause, and executes it - - - string - - - mixed - - - \PDOStatement - - - - $table - - string - - - $data - array() - mixed - - - - delete - \Query_Builder_Interface::delete() - - Deletes data from a table - - - string - - - mixed - - - \PDOStatement - - - - $table - - string - - - $where - '' - mixed - - - - get_compiled_select - \Query_Builder_Interface::get_compiled_select() - - Returns the generated 'select' sql query - - - string - - - bool - - - string - - - - $table - '' - string - - - $reset - TRUE - bool - - - - get_compiled_insert - \Query_Builder_Interface::get_compiled_insert() - - Returns the generated 'insert' sql query - - - string - - - bool - - - string - - - - $table - - string - - - $reset - TRUE - bool - - - - get_compiled_update - \Query_Builder_Interface::get_compiled_update() - - Returns the generated 'update' sql query - - - string - - - bool - - - string - - - - $table - '' - string - - - $reset - TRUE - bool - - - - get_compiled_delete - \Query_Builder_Interface::get_compiled_delete() - - Returns the generated 'delete' sql query - - - string - - - bool - - - string - - - - $table - "" - string - - - $reset - TRUE - bool - - - - reset_query - \Query_Builder_Interface::reset_query() - - Clear out the class variables, so the next query can be run - - - void - - - - - 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 - - - - Query - Free Query Builder / Database Abstraction Layer - - - - - - - - - \SQL_Interface - Abstract_SQL - \Abstract_SQL - - parent for database manipulation subclasses - - - - - - limit - \Abstract_SQL::limit() - - Limit clause - - - string - - - int - - - int - - - string - - - - $sql - - string - - - $limit - - int - - - $offset - FALSE - int - - - - eJytk11r2zAUhq8VyH84lF4kobG20qtupe3WBDI8SklhN4Mgy7ItYkuaPgqh5L9PX05XdlvfWHr9nkevjuSvt6pT0wleLKYTWMCTY/oQRnG21owlCb453tdMA4YHYklFDIP7ylhNqOVSQEkOTJ/q7oizndQIPfNB2u4APwr4RbRmIn2mUh00bzuLvo8jmNE5XH76fAnL8LpKxp6LPSDUWavMNcYtt52rCioHTF44sVd+aXyKHOyUCcNSgferjvfGOt0yKXxV4faYyprhuiL1MptTpSJ0T1pfeaLh6cS3BcPyw54IzH1WxDfDQiM11GM/ByK4cj2JDTWuoj0xhpm3ruaQ8M+OvW1UHzR/Ydrk7CQfDkTK6ax226cS+KB6Nvj1DfjpbiMs0w2hDF5DRBQzIk8v+cAjwIU2Iciyz6HJAB7IRQvn5k//Tud+X+d9KP1flk1j2Khr5o9GZE7UfG6kXOVPBhon0s2KpFlY5SJjL0bOzfq+3K7mvsgHRyh4oLiBs9+i3PzcPMNr8h/PvsR9Id7AjJudcAPTnM4yZR4AifCGgMf1ersKiGSKDISOCZSTB3eQo3qMt2UlapANjN3feUcRf7C/TLP1uw== - - - - Query - Free Query Builder / Database Abstraction Layer - - - - - - - - - DB_Util - \DB_Util - - Abstract class defining database / table creation methods - - - - - - $conn - - - Reference to the current connection object - - - - - __construct - \DB_Util::__construct() - - Save a reference to the connection object for later use - - - object - - - - $conn - - object - - - - __call - \DB_Util::__call() - - Enable calling driver methods - - - string - - - array - - - mixed - - - - $method - - string - - - $args - - array - - - - create_table - \DB_Util::create_table() - - Convienience public function to generate sql for creating a db table - - - string - - - array - - - array - - - array - - - string - - - - $name - - string - - - $fields - - array - - - $constraints - array() - array - - - $indexes - array() - array - - - - delete_table - \DB_Util::delete_table() - - Drop the selected table - - - string - - - string - - - - $name - - string - - - - backup_structure - \DB_Util::backup_structure() - - Return an SQL file with the database table structure - - - - string - - - - - backup_data - \DB_Util::backup_data() - - Return an SQL file with the database data as insert statements - - - - string - - - - - eJy1Vltv2zYUfpZ+xalhQHLgWFvRp2Zum4s3oMjQ1c2wh6AwKOlY5iJTGklldYP89x2Soiw79tYBaWDENHku3/nOhfzpbb2qw+TkJIQT+Nig3NDCrH+WiG4DLhpe5ighgSumWcoUwnmqtGSZ5pWAa7ZB2Wq9q1l2xwoMAm8L3rFGryoZBDd8XenVBt5P4A8mJQp7mlX1RvJipYNLv4I4G8HLH358Cafm65WVK7m4gyBYaV2r10lScL1q0klWrRN2z5l+RUiSrc+SZygUOnkSr1e8VLqRBVaClCbNXZJVOSZ5yvLTVpgUkzBMEjh9tr/QM+v5gqxkSkGOSy64KCD3hCZAixIhk8gsq2sk1nK1xytsQ1RN6jevJL9HqWwAbNfT1cXid81LeAjDwGAJSHWOSyT6MwRdgV6R08akg1QqIdAltUr/pJURT8KgJvtMIwyNwFnP0id2j8BAPjG4bwiWlYSSbEhoiGnStfoUlmRrL2PNe5dNSmmBZSOcmcWCDimyJtOxlRuFwUMYBEO94ur0jdmBqQcYPBqMz5vILuaZcIliZWkzaLnv0rUXGSE2QkN33D+hDmAbGDJZKLctkeqT8s6/YH6cBPIat9bGTrslolU3AguiWC6M1sJ6id3/HlVjj2jkjXwX0oy5F9va/9Vz9L1Sc1mJe46C21LcJ49Ks0CB0hSy+qu0Fem6jRLEIE9dBx7LoGBrPJC/JccyVwcOXLkyLvShUy5y/IK9cmnT57wdSb9FiwsLM7aAxh7A+IDbqUv7aLzn1O/7DsqqslkLVyrUQ+2paXOTqDlWsmCCf0UgoxUw0Zpz1nL4myYxOBu0R6yu7QBz2rMCduzfml8G+efOkxMMgkhvaoxg+gYmk8m4290G9PTMQtjbpqgCAoEsW8UtOcAUeL9GeGg8GTkTfvBf+ExrHJW6daiNdGzNwovptHM2grfOGbyGKDJ2TI8FfBlTW+C61pu4n7BRh6kLoHfqo7AR2H0j7uQPwCNoPeo+t8NRaRvNo4dChL2vuPD5c/eSJjlql4LalS72zrjapaSHsVc/BqSwEGtZ1WrLMiEh/WgQTYZiQl9n3e6EuONKIQ12q+M5HRn6BvCwu/s4IDIHg39T78e9b6R/1pnqJVjdWqpI5qzH0S9+cJjLzQ8Pe9H567pa2t/tCCFkJEThXs5n5zczuDm/uJ6BjZ3KgsKH2BJgxSgAvq5Leo7E0Rjo46GM+iLRKLJA20Fhtv3MbqffFUXoAGJJ1ym15jcOtG+ZPTnZ3J09u/dOdDX/8NvTOKM9jHMnTUPk08drWHK6SO38MLC7t5B7CbnLvpG9APzb5jjs7vWzjz+lp1JTLzqjbsD9L1hmYeqb01tRavJLBbHGdr4/F0DjxGJ7NC/RmchNZeXpoqFH3ISe6v8AAo1lCQ== - - - - Query - Free Query Builder / Database Abstraction Layer - - - - - - - - Table_Builder_Interface - \Table_Builder_Interface - - Abstract class defining database / table creation methods - - - - - - __construct - \Table_Builder_Interface::__construct() - - Constructor - - - string - - - array - - - \Abstract_Driver - - - - $name - - string - - - $options - array() - array - - - $driver - null - \Abstract_Driver - - - - eJytUsluGzEMPUtfwYMPthFbSZBTF2RzC6TopUCAHgcciZ4RPCMNtBgYBPn3SrPYhs/VRRT5SD4+6ttjV3dcrNcc1vAnkuuTke2fjmh0wEvUjSIHAnYYsERP8Fz64FAGbQ38xp7clPXUoTxgRYzNteAJY6itY+xdtzbUPfzawl90jswQlbbrna7qwF5nC5ZyBfe3d/ewydfDgGu0OQBjdQid/yJEpUMdy620rcCjxvCQmIhzz0ZLMp5GfIJ3tW58iK4ia1LSNh6EtIqEKlFtJnBKFJwLAZv/dvis7KwXyAa9B0V7bbSpQM2CCkhGQyAd4aBqS0k15a90hfOIPpaz8z2nFtOahjG0CeT2KK9ixdvJ/8E5y+RYqvVqTaIXZbAuvwdf6uiwheTPPBcGW7r0pwViDwvbZbL+MjKPWuycPqZfs1DDnSGCsy6WSW7YRzN+nqKQc/Pl0OTmVBS+j12WqxsYa13Qn6omjIlNs/rK0/nMy/thFNj9qGZRTmOf5Njm3/4PewjmJg== - - - - Query - Free Query Builder / Database Abstraction Layer - - - - - - - - \PDO - \Driver_Interface - Abstract_Driver - \Abstract_Driver - - Base Database class - Extends PDO to simplify cross-database issues - - - - - $statement - - - Reference to the last executed query - - - \PDOStatement - - - - - $escape_char - '"' - - Character to escape indentifiers - - - string - - - - - $sql - - - Reference to sql class - - - \SQL_Interface - - - - - $util - - - Reference to util class - - - \DB_Util - - - - - $last_query - - - Last query executed - - - string - - - - - $table_prefix - '' - - Prefix to apply to table names - - - string - - - - - __construct - \Abstract_Driver::__construct() - - PDO constructor wrapper - - - string - - - string - - - string - - - array - - - - $dsn - - string - - - $username - NULL - string - - - $password - NULL - string - - - $driver_options - array() - array - - - - prepare_query - \Abstract_Driver::prepare_query() - - Simplifies prepared statements for database queries - - - string - - - array - - - \PDOStatement - - - \InvalidArgumentException - - - - $sql - - string - - - $data - - array - - - - prepare_execute - \Abstract_Driver::prepare_execute() - - Create and execute a prepared statement with the provided parameters - - - string - - - array - - - \PDOStatement - - - - $sql - - string - - - $params - - array - - - - affected_rows - \Abstract_Driver::affected_rows() - - Returns number of rows affected by an INSERT, UPDATE, DELETE type query - - - int - - - - - quote_table - \Abstract_Driver::quote_table() - - Quote database table name, and set prefix - - - string - - - string - - - - $table - - string - - - - _prefix - \Abstract_Driver::_prefix() - - Sets the table prefix on the passed string - - - string - - - string - - - - $str - - string - - - - quote_ident - \Abstract_Driver::quote_ident() - - Surrounds the string with the databases identifier escape characters - - - mixed - - - string - - - - $ident - - mixed - - - - _quote - \Abstract_Driver::_quote() - - Helper method for quote_ident - - - mixed - - - mixed - - - - $str - - mixed - - - - get_schemas - \Abstract_Driver::get_schemas() - - Return schemas for databases that list them - - - array - - - - - get_tables - \Abstract_Driver::get_tables() - - Return list of tables for the current database - - - array - - - - - get_dbs - \Abstract_Driver::get_dbs() - - Return list of dbs for the current connection, if possible - - - array - - - - - get_views - \Abstract_Driver::get_views() - - Return list of views for the current database - - - array - - - - - get_sequences - \Abstract_Driver::get_sequences() - - Return list of sequences for the current database, if they exist - - - array - - - - - get_functions - \Abstract_Driver::get_functions() - - Return list of function for the current database - - - array - - - - - get_procedures - \Abstract_Driver::get_procedures() - - Return list of stored procedures for the current database - - - array - - - - - get_triggers - \Abstract_Driver::get_triggers() - - Return list of triggers for the current database - - - array - - - - - get_system_tables - \Abstract_Driver::get_system_tables() - - Retreives an array of non-user-created tables for -the connection/database - - - array - - - - - get_columns - \Abstract_Driver::get_columns() - - Retrieve column information for the current database table - - - string - - - array - - - - $table - - string - - - - get_types - \Abstract_Driver::get_types() - - Retrieve list of data types for the database - - - array - - - - - driver_query - \Abstract_Driver::driver_query() - - Method to simplify retreiving db results for meta-data queries - - - string - - - bool - - - array - - - - $sql - - string - - - $filtered_index - TRUE - bool - - - - num_rows - \Abstract_Driver::num_rows() - - Return the number of rows returned for a SELECT query - - - - int - - - - - truncate - \Abstract_Driver::truncate() - - Empty the passed table - - - string - - - void - - - - $table - - string - - - - insert_batch - \Abstract_Driver::insert_batch() - - Create sql for batch insert - - - string - - - array - - - string - - - - $table - - string - - - $data - array() - array - - - - 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 - - - - Query - Free Query Builder / Database Abstraction Layer - - - - - - - - - \Table_Builder_Interface - Table_Builder - \Table_Builder - - Abstract class defining database / table creation methods - - - - - - $name - '' - - The name of the current table - - - string - - - - - $driver - NULL - - Driver for the current db - - - \Driver_Interface - - - - - $table_options - array() - - Options for the current table - - - array - - - - - __construct - \Table_Builder::__construct() - - Constructor - - - string - - - array - - - \Driver_Interface - - - \Table_Builder - - - - $name - - string - - - $options - array() - array - - - $driver - NULL - \Driver_Interface - - - - add_column - \Table_Builder::add_column() - - - - - - $column_name - - - - - $type - NULL - - - - $options - array() - - - - - remove_column - \Table_Builder::remove_column() - - - - - - $column_name - - - - - - rename_column - \Table_Builder::rename_column() - - - - - - $old_name - - - - - $new_name - - - - - - change_column - \Table_Builder::change_column() - - - - - - $column_name - - - - - $new_column_type - - - - - $options - array() - - - - - has_column - \Table_Builder::has_column() - - - - - - $column_name - - - - - $options - array() - - - - - add_index - \Table_Builder::add_index() - - - - - - $columns - - - - - $options - array() - - - - - remove_index - \Table_Builder::remove_index() - - - - - - $columns - - - - - $options - array() - - - - - remove_index_by_name - \Table_Builder::remove_index_by_name() - - - - - - $name - - - - - - has_index - \Table_Builder::has_index() - - - - - - $columns - - - - - $options - array() - - - - - add_foreign_key - \Table_Builder::add_foreign_key() - - - - - - $columns - - - - - $referenced_table - - - - - $referenced_columns - array('id') - - - - $options - array() - - - - - drop_foreign_key - \Table_Builder::drop_foreign_key() - - - - - - $columns - - - - - $constraint - NULL - - - - - has_foreign_key - \Table_Builder::has_foreign_key() - - - - - - $columns - - - - - $constraint - NULL - - - - - exists - \Table_Builder::exists() - - - - - - - drop - \Table_Builder::drop() - - - - - - - rename - \Table_Builder::rename() - - - - - - $new_table_name - - - - - - get_columns - \Table_Builder::get_columns() - - - - - - - create - \Table_Builder::create() - - - - - - - update - \Table_Builder::update() - - - - - - - save - \Table_Builder::save() - - - - - - - reset - \Table_Builder::reset() - - - - - - - eJy9V9tu2zgQfaa+YgIYiBzU0W7Rp+5mm16BtmmLBbLYR4EixxYRiRJIyo1Q5N/Lm2THsWOksOsXU8OZM8NzhiL196u2bJPs7CyBM/i3Q9XbgRt/UIjBAG86UXFUkME7amhBNcLrQhtFmRGNhCvao4pRly1lN3SBhAxYcEk7UzaKkGtRN6bs4dM5/E+VQulnWdP2SixKQ94OI0jZFJ7/8edzmLm/F96vEvIGCCmNafXLLFsIU3bFOWvqjC4FNS9sJdkqZyUYSo3B37q3pai06dQCG2mDzrubjDUcM15QPovONjBLkiyD2cF+ycDswBewimoNHOdCCrkAPhCagR1UCEwh9azWaFnjeoNXWC1Rd8VgvHaheZTJLyOkuWcHUbcV1ijNxkT+URpUc8oQfiQJcRUTm+C6RJC0RmjmYOyYdU4zE+r0HpdLqsCuyy7EPWcJaVVjkBnkMPGhF3B6+tca5jsllraSeaPuQfJihRdcVjWNyGJJDcKEB4gL+Prf1dU69rfW8aYfgG/UazuP9pug3idvIsJFcEqnHv6w/TCW+9ZmMqpjplHuORTYUkXrSGmgcN3uq4JJLHN9ZpO0gabgo9B2vtzokshAV9juh3knw17OczbUlfr8z8Z8K1qe7cwXZZkm5EdCyMSUQs/+iZ3g4RyjRMwhhRPAujV9OsBPbZCPGsK2apLXaPdwus1lVanVjZC7tUxC57KrqjRW+SDVWHx0GOMjc97NGu8O3g8O7sT2QtXVEr7ELX/wnttUmXJudXY500n4z6PWpm8xirhNeS9s4GETU2HdLHEb7KNBzmEMaio+FCLx+75gVlK52JoxxkeLW9MTF1NSvQP3MZRjtMZHyfH293aGcCmHdetfa4ODYeRF76kPb6M9kj0p6zHU+tAoFAsJn7H/vZrNQ+L8Bvv19Suco91jDHnu35X3TdFvZOdU8NPpE7Xiqml3ZQ9HCRX2EF47F3bL9wswxxDRn5Oz74LjeAk7uoZ4K7TR6R6iH5sPr9LUv/jCubhnwyzQDB2whnscSl+ze3fao9Ppb9H4GF1dy/d4aLqM84QMF45BJneBIK8gWldYhLwcjEMJ/sYTbQo1GmfaoaCfHSu6c98i7yX3F3CvaNFVtivVuftk+wnccskZ - - - - Query - Free Query Builder / Database Abstraction Layer - - - - - - - - \InvalidArgumentException - BadDBDriverException - \BadDBDriverException - - Generic exception for bad drivers - - - - - - - - Connection_Manager - \Connection_Manager - - Connection manager class to manage connections for the -Query method - - - - - - $connections - array() - - Map of named database connections - - - array - - - - - $instance - null - - Class instance variable - - - \Connection_Manager - - - - - __construct - \Connection_Manager::__construct() - - Private constructor to prevent multiple instances - - - - - - __clone - \Connection_Manager::__clone() - - Private clone method to prevent cloning - - - - - - __wakeup - \Connection_Manager::__wakeup() - - Make sure serialize/deseriaze doesn't work - - - - \DomainException - - - - - get_instance - \Connection_Manager::get_instance() - - Return a connection manager instance - - - - \Connection_Manager - - - - - get_connection - \Connection_Manager::get_connection() - - Returns the connection specified by the name given - - - mixed - - - \Query_Builder - - - \InvalidArgumentException - - - - $name - '' - mixed - - - - connect - \Connection_Manager::connect() - - Parse the passed parameters and return a connection - - - array - object - - - \Query_Builder - - - \BadConnectionException - - - - $params - - array|object - - - - parse_params - \Connection_Manager::parse_params() - - Parses params into a dsn and option array - - - \ArrayObject - - - \BadDBDriverException - - - - $params - - \ArrayObject - - - - create_dsn - \Connection_Manager::create_dsn() - - Create the dsn from the db type and params - - - string - - - array - object - - - string - - - - $dbtype - - string - - - $params - - array|object - - - - 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 - - - - Query - Free Query Builder / Database Abstraction Layer - - - - - - - - SQL_Interface - \SQL_Interface - - parent for database manipulation subclasses - - - - - - limit - \SQL_Interface::limit() - - Get database specific sql for limit clause - - - - string - - - int - - - int - - - string - - - - $sql - - string - - - $limit - - int - - - $offset - FALSE - int - - - - explain - \SQL_Interface::explain() - - Modify the query to get the query plan - - - string - - - string - - - - $sql - - string - - - - random - \SQL_Interface::random() - - Get the sql for random ordering - - - - string - - - - - db_list - \SQL_Interface::db_list() - - Returns sql to list other databases - - - string - - - - - table_list - \SQL_Interface::table_list() - - Returns sql to list tables - - - string - - - - - system_table_list - \SQL_Interface::system_table_list() - - Returns sql to list system tables - - - string - - - - - view_list - \SQL_Interface::view_list() - - Returns sql to list views - - - string - - - - - trigger_list - \SQL_Interface::trigger_list() - - Returns sql to list triggers - - - string - - - - - function_list - \SQL_Interface::function_list() - - Return sql to list functions - - - NULL - - - - - procedure_list - \SQL_Interface::procedure_list() - - Return sql to list stored procedures - - - string - - - - - sequence_list - \SQL_Interface::sequence_list() - - Return sql to list sequences - - - string - - - - - type_list - \SQL_Interface::type_list() - - Return sql to list database field types - - - string - array - - - - - column_list - \SQL_Interface::column_list() - - Get information about the columns in the -specified table - - - string - - - string - - - - $table - - string - - - - eJytVk1v1DAQPSe/Yg49bKt2A1VPfIgW+iHQglQK4rhynElibWK7/ihEwH9n7CS7rdoVWcRe1pmd997Msz3ZV290rdPs4CCFA7j2aDpahPWlQewD8NaLpkADGZwzx3JmEc5y6wzjTigJC9ahGVCnzLtamST5Ilrl6g4+zOEbMwZl/JUr3RlR1S55N65gxvfh+NnzYzgKXycxrxFyBUlSO6ftiyyrhKt9PueqzdidYO6EZLOx2JDNUVrs8yld16KxzpsKlSTQ3K8yrgrMipwVR0NyBGrGV6wi4MiVpWmWwdF/+6Sjs5qRBQ5KZaAYPWyZFNo3LJpofc4bZi3a0cmhONj0STlj8NyIOzQ2liykQ1MyjnBzvVi+Xz/9TNMkyCeEvUK3EbYauSgFB3vbxJIa0QoHpO/JGEqPkFM27HH/RB2wFigiZAV7hLwfphJgL7I8iqqytDiEDdKuyIEkhLI00T6nLYHSy/40RZZZEDgcKA9HkteXZ4ubi/2X9/r6qApRduBqhNt4Vp2CinrdBHTD5KanLV1MKQx/EJWQsbQHNVwNeqObhslCtaAM3ZmB7ilDp2j2VLMHcp8jzkY56rYR1gFdNdycLLuRnCJS5MtA8ncVYm92JY+Yify2sw7bf5Lpoctd1O4Eft9RJUCmekXDrQo3dDe3etRWjQcSI+qxxqevi8UWhXExTcI6ZbAAbRTHwptdd2WNm6iGdGUl33nvB9g0kfUULAU2BbhOb9X7RS8u1m3bKgI+oRiGgZA0Btp+rrNc+X48cNX4lk6JkOExJg+DmByOB3fbmFr/OM2PXqivrceGCn+HN9uFLECVwY/l+q0xpz8AfwATFHEP - - - - Query - Free Query Builder / Database Abstraction Layer - - - - - - - - - \Query_Builder_Interface - Query_Builder - \Query_Builder - - Convienience class for creating sql queries - also the class that -instantiates the specific db driver - - - - - - $select_string - '' - - Compiled 'select' clause - - - \type - - - - - $from_string - - - Compiled 'from' clause - - - \type - - - - - $set_string - - - Compiled arguments for insert / update - - - string - - - - - $order_string - - - Order by clause - - - string - - - - - $group_string - - - Group by clause - - - string - - - - - $set_array_keys - array() - - Keys for insert/update statement - - - array - - - - - $order_array - array() - - Key/val pairs for order by clause - - - array - - - - - $group_array - array() - - Key/val pairs for group by clause - - - array - - - - - $values - array() - - Values to apply to prepared statements - - - array - - - - - $where_values - array() - - Values to apply to where clauses in prepared statements - - - array - - - - - $limit - - - Value for limit string - - - \type - - - - - $offset - - - Value for offset in limit string - - - int - - - - - $query_map - array() - - Query component order mapping -for complex select queries - Format: -array( - 'type' => 'where', - 'conjunction' => ' AND ', - 'string' => 'k=?' -) - - array - - - - - $having_map - - - Map for having clause - - - array - - - - - $conn_name - "" - - Convenience property for connection management - - - string - - - - - $queries - - - List of queries executed - - - array - - - - - $explain - - - Whether to do only an explain on the query - - - bool - - - - - $db - - - The current database driver - - - \Driver_Interface - - - - - $parser - - - Query parser class instance - - - \Query_Parser - - - - - $util - - - Alias to $this->db->util - - - \DB_Util - - - - - $sql - - - Alias to $this->db->sql - - - \SQL_Interface - - - - - __construct - \Query_Builder::__construct() - - Constructor - - - \Abstract_driver - - - \ArrayObject - - - - $db - - \Abstract_driver - - - $params - - \ArrayObject - - - - __destruct - \Query_Builder::__destruct() - - Destructor - - - - - _select - \Query_Builder::_select() - - Method to simplify select_ methods - - - string - - - string - - - string - - - - $field - - string - - - $as - FALSE - string - - - - select - \Query_Builder::select() - - Specifies rows to select in a query - - - string - - - \Query_Builder - - - - $fields - - string - - - - select_max - \Query_Builder::select_max() - - Selects the maximum value of a field from a query - - - string - - - string - - - \Query_Builder - - - - $field - - string - - - $as - FALSE - string - - - - select_min - \Query_Builder::select_min() - - Selects the minimum value of a field from a query - - - string - - - string - - - \Query_Builder - - - - $field - - string - - - $as - FALSE - string - - - - select_avg - \Query_Builder::select_avg() - - Selects the average value of a field from a query - - - string - - - string - - - \Query_Builder - - - - $field - - string - - - $as - FALSE - string - - - - select_sum - \Query_Builder::select_sum() - - Selects the sum of a field from a query - - - string - - - string - - - \Query_Builder - - - - $field - - string - - - $as - FALSE - string - - - - distinct - \Query_Builder::distinct() - - Adds the 'distinct' keyword to a query - - - \Query_Builder - - - - - explain - \Query_Builder::explain() - - Tell the database to give you the query plan instead of result set - - - \Query_Builder - - - - - from - \Query_Builder::from() - - Specify the database table to select from - - - string - - - \Query_Builder - - - - $tblname - - string - - - - _like - \Query_Builder::_like() - - Simplify 'like' methods - - - string - - - mixed - - - string - - - string - - - string - - - \Query_Builder - - - - $field - - string - - - $val - - mixed - - - $pos - - string - - - $like - 'LIKE' - string - - - $conj - 'AND' - string - - - - like - \Query_Builder::like() - - Creates a Like clause in the sql statement - - - string - - - mixed - - - string - - - \Query_Builder - - - - $field - - string - - - $val - - mixed - - - $pos - 'both' - string - - - - or_like - \Query_Builder::or_like() - - Generates an OR Like clause - - - string - - - mixed - - - string - - - \Query_Builder - - - - $field - - string - - - $val - - mixed - - - $pos - 'both' - string - - - - not_like - \Query_Builder::not_like() - - Generates a NOT LIKE clause - - - string - - - mixed - - - string - - - \Query_Builder - - - - $field - - string - - - $val - - mixed - - - $pos - 'both' - string - - - - or_not_like - \Query_Builder::or_not_like() - - Generates a OR NOT LIKE clause - - - string - - - mixed - - - string - - - \Query_Builder - - - - $field - - string - - - $val - - mixed - - - $pos - 'both' - string - - - - _having - \Query_Builder::_having() - - Simplify building having clauses - - - mixed - - - mixed - - - string - - - \Query_Builder - - - - $key - - mixed - - - $val - array() - mixed - - - $conj - 'AND' - string - - - - having - \Query_Builder::having() - - Generates a 'Having' clause - - - mixed - - - mixed - - - \Query_Builder - - - - $key - - mixed - - - $val - array() - mixed - - - - or_having - \Query_Builder::or_having() - - Generates a 'Having' clause prefixed with 'OR' - - - mixed - - - mixed - - - \Query_Builder - - - - $key - - mixed - - - $val - array() - mixed - - - - _where - \Query_Builder::_where() - - Do all the repeditive stuff for where/having type methods - - - mixed - - - mixed - - - array - - - - $key - - mixed - - - $val - array() - mixed - - - - _where_string - \Query_Builder::_where_string() - - Simplify generating where string - - - mixed - - - mixed - - - string - - - \Query_Builder - - - - $key - - mixed - - - $val - array() - mixed - - - $conj - 'AND' - string - - - - _where_in - \Query_Builder::_where_in() - - Simplify where_in methods - - - mixed - - - mixed - - - string - - - string - - - \Query_Builder - - - - $key - - mixed - - - $val - array() - mixed - - - $in - 'IN' - string - - - $conj - 'AND' - string - - - - where - \Query_Builder::where() - - Specify condition(s) in the where clause of a query -Note: this function works with key / value, or a -passed array with key / value pairs - - - mixed - - - mixed - - - mixed - - - \Query_Builder - - - - $key - - mixed - - - $val - array() - mixed - - - $escape - NULL - mixed - - - - or_where - \Query_Builder::or_where() - - Where clause prefixed with "OR" - - - string - - - mixed - - - \Query_Builder - - - - $key - - string - - - $val - array() - mixed - - - - where_in - \Query_Builder::where_in() - - Where clause with 'IN' statement - - - mixed - - - mixed - - - \Query_Builder - - - - $field - - mixed - - - $val - array() - mixed - - - - or_where_in - \Query_Builder::or_where_in() - - Where in statement prefixed with "or" - - - string - - - mixed - - - \Query_Builder - - - - $field - - string - - - $val - array() - mixed - - - - where_not_in - \Query_Builder::where_not_in() - - WHERE NOT IN (FOO) clause - - - string - - - mixed - - - \Query_Builder - - - - $field - - string - - - $val - array() - mixed - - - - or_where_not_in - \Query_Builder::or_where_not_in() - - OR WHERE NOT IN (FOO) clause - - - string - - - mixed - - - \Query_Builder - - - - $field - - string - - - $val - array() - mixed - - - - set - \Query_Builder::set() - - Sets values for inserts / updates / deletes - - - mixed - - - mixed - - - \Query_Builder - - - - $key - - mixed - - - $val - NULL - mixed - - - - join - \Query_Builder::join() - - Creates a join phrase in a compiled query - - - string - - - string - - - string - - - \Query_Builder - - - - $table - - string - - - $condition - - string - - - $type - '' - string - - - - group_by - \Query_Builder::group_by() - - Group the results by the selected field(s) - - - mixed - - - \Query_Builder - - - - $field - - mixed - - - - order_by - \Query_Builder::order_by() - - Order the results by the selected field(s) - - - string - - - string - - - \Query_Builder - - - - $field - - string - - - $type - "" - string - - - - limit - \Query_Builder::limit() - - Set a limit on the current sql statement - - - int - - - int - - - \Query_Builder - - - - $limit - - int - - - $offset - FALSE - int - - - - group_start - \Query_Builder::group_start() - - Adds a paren to the current query for query grouping - - - \Query_Builder - - - - - or_group_start - \Query_Builder::or_group_start() - - Adds a paren to the current query for query grouping, -prefixed with 'OR' - - - \Query_Builder - - - - - or_not_group_start - \Query_Builder::or_not_group_start() - - Adds a paren to the current query for query grouping, -prefixed with 'OR NOT' - - - \Query_Builder - - - - - group_end - \Query_Builder::group_end() - - Ends a query group - - - \Query_Builder - - - - - get - \Query_Builder::get() - - Select and retrieve all records from the current table, and/or -execute current compiled query - - - - int - - - int - - - \PDOStatement - - - - $table - '' - mixed - - - $limit - FALSE - int - - - $offset - FALSE - int - - - - get_where - \Query_Builder::get_where() - - Convience method for get() with a where clause - - - string - - - array - - - int - - - int - - - \PDOStatement - - - - $table - - string - - - $where - array() - array - - - $limit - FALSE - int - - - $offset - FALSE - int - - - - count_all - \Query_Builder::count_all() - - Retreive the number of rows in the selected table - - - string - - - int - - - - $table - - string - - - - count_all_results - \Query_Builder::count_all_results() - - Retrieve the number of results for the generated query - used -in place of the get() method - - - string - - - int - - - - $table - '' - string - - - - insert - \Query_Builder::insert() - - Creates an insert clause, and executes it - - - string - - - mixed - - - \PDOStatement - - - - $table - - string - - - $data - array() - mixed - - - - insert_batch - \Query_Builder::insert_batch() - - Creates and executes a batch insertion query - - - string - - - array - - - \PDOStatement - - - - $table - - string - - - $data - array() - array - - - - update - \Query_Builder::update() - - Creates an update clause, and executes it - - - string - - - mixed - - - \PDOStatement - - - - $table - - string - - - $data - array() - mixed - - - - delete - \Query_Builder::delete() - - Deletes data from a table - - - string - - - mixed - - - \PDOStatement - - - - $table - - string - - - $where - '' - mixed - - - - _get_compile - \Query_Builder::_get_compile() - - Helper function for returning sql strings - - - string - - - string - - - bool - - - - - $type - - string - - - $table - - string - - - $reset - - bool - - - - get_compiled_select - \Query_Builder::get_compiled_select() - - Returns the generated 'select' sql query - - - string - - - bool - - - string - - - - $table - '' - string - - - $reset - TRUE - bool - - - - get_compiled_insert - \Query_Builder::get_compiled_insert() - - Returns the generated 'insert' sql query - - - string - - - bool - - - string - - - - $table - - string - - - $reset - TRUE - bool - - - - get_compiled_update - \Query_Builder::get_compiled_update() - - Returns the generated 'update' sql query - - - string - - - bool - - - string - - - - $table - '' - string - - - $reset - TRUE - bool - - - - get_compiled_delete - \Query_Builder::get_compiled_delete() - - Returns the generated 'delete' sql query - - - string - - - bool - - - string - - - - $table - "" - string - - - $reset - TRUE - bool - - - - reset_query - \Query_Builder::reset_query() - - Clear out the class variables, so the next query can be run - - - void - - - - - _run - \Query_Builder::_run() - - Executes the compiled query - - - string - - - string - - - string - - - array - null - - - \PDOStatement - - - - $type - - string - - - $table - - string - - - $sql - NULL - string - - - $vals - NULL - array|null - - - - __call - \Query_Builder::__call() - - Calls a function further down the inheritence chain - - - string - - - array - - - mixed - - - \BadMethodCallException - - - - $name - - string - - - $params - - array - - - - _append_query - \Query_Builder::_append_query() - - Convert the prepared statement into readable sql - - - array - - - string - - - string - - - void - - - - $vals - - array - - - $sql - - string - - - $total_time - - string - - - - _append_map - \Query_Builder::_append_map() - - Add an additional set of mapping pairs to a internal map - - - string - - - string - - - string - - - void - - - - $conjunction - '' - string - - - $string - '' - string - - - $type - '' - string - - - - _compile_type - \Query_Builder::_compile_type() - - Sub-method for generating sql strings - - - string - - - string - - - string - - - - $type - '' - string - - - $table - '' - string - - - - _compile - \Query_Builder::_compile() - - String together the sql statements for sending to the db - - - string - - - string - - - \$string - - - - $type - '' - string - - - $table - '' - string - - - - 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 - - - - Query - Free Query Builder / Database Abstraction Layer - - - - - - - - \Abstract_Driver - SQLite - \SQLite - - SQLite specific class - Extends PDO to simplify cross-database issues - - - - - $statement - - - Reference to the last executed sql query - - - \PDOStatement - - - - - __construct - \SQLite::__construct() - - Open SQLite Database - - - string - - - string - - - string - - - array - - - - $dsn - - string - - - $user - NULL - string - - - $pass - NULL - string - - - $driver_options - array() - array - - - - truncate - \SQLite::truncate() - - Empty a table - - - string - - - - $table - - string - - - - get_tables - \SQLite::get_tables() - - List tables for the current database - - - mixed - - - - - get_system_tables - \SQLite::get_system_tables() - - List system tables for the current database - - - string[] - - - - - insert_batch - \SQLite::insert_batch() - - Create sql for batch insert - - - string - - - array - - - string - - - - $table - - string - - - $data - array() - array - - - - eJy1VlFv4zYMfrZ/BVEEiFMk8Xa4p9zatUtSDEPW7poc9jAMPllWYqG2rEp0cV7R/z5KtpOul24YcM1LDIr8SH38SPuHH3Wuw/j0NIRT+FgL09CDe74yQrQG+KmWRSYMxLBgyFJmBVymFg3jKCsFK9YI00VdaMbv2E4EQY8FF6zGvDJBsJFlhXkDv0zhd2aMUP6UV7oxcpdjMO+fIOIjePfd9+9g4v7ee79CqjsIghxR21kc7yTmdTrlVRmzB8nwPVUSH3IWkgtlRetP7jqXhcXa7ESlKGha38W8ykScpSybdM4UGIdhHMPkm/3Cntn1x5VEAVYLLreSAy+YtS84g0P5tk5748LIB2GsL85H9VjiCwqV2X0rktYTHsMwcFkDAroVW0FEcwFYAeYCCAApUvAaRQb2voB7n5ScfcDFAzPw2+JmjQxFKRQ6axwG2lQouIsZ2P7ow7NEN1qovrBeJAdQzQwrgcqUageDzKpj5tqSio7YtWPqmZ2kwxpC8bdNKu00aPsy65SaCdtatdJMEk6HaGqOkcs7btOcXX9arcYtdPd8FPXMW6PRKAwewyAgaSzW1yAtWFnqooHPRCDdeBZrhnmMFcnpM/lRnUTPbPY8+0nn+ujKeDrpCulqGH0IgyfH5rfV3r47y1JjAwyoL8WrbdkfHuGR7qA4tT1qvQ58dC3PmSX4ze2n6/nlZgmOvlL+xVzsuHVMawRVga21rgzCtjJej6TbmhVAY1wylU3Jd+BEeQbDxXK1JKir25tf4WQ4bRNPhydDJ7tggLm0k/O9FimiM3k9Rw5l5D2NoLFX8DLgjRlfSZozX7Ld35XXbukhZF/NR1djKb+I7JUO7AQmLV7Usd8R1V/svpice4ekoNxRe/mBofzHqdkzk6XJVhYoTOS8J+dbgTy/LIqI1sBsdrXczH9OLtfrm/loDEPFSjF8a7l68mxjqVP/m8NWzX/8+S80tsgv2IzjTsqVosF2enbp2qFNStqatFm7CXH3xpyhWwTVFphqgNYBqZrRop0eiG2Xx/AfGG/O3dwIhr5wz1nKqJkg6e1m8D8H/+WGJY6PcPsKs22OxCfs1sS4xfh6i25Ijo49VSE8uC8MpjWBuZj+RbWVRqTSZM863fPqFrZn8Yle1kuVuSZ0JLfre0qfNH8DnkaIkg== - - - - Query - Free Query Builder / Database Abstraction Layer - - - - - - - - \Abstract_SQL - SQLite_SQL - \SQLite_SQL - - SQLite Specific SQL - - - - - - explain - \SQLite_SQL::explain() - - Get the query plan for the sql query - - - string - - - string - - - - $sql - - string - - - - random - \SQLite_SQL::random() - - Random ordering keyword - - - string - - - - - db_list - \SQLite_SQL::db_list() - - Returns sql to list other databases - - - NULL - - - - - table_list - \SQLite_SQL::table_list() - - Returns sql to list tables - - - string - - - - - system_table_list - \SQLite_SQL::system_table_list() - - Overridden in SQLite class - - - string - - - - - view_list - \SQLite_SQL::view_list() - - Returns sql to list views - - - string - - - - - trigger_list - \SQLite_SQL::trigger_list() - - Returns sql to list triggers - - - NULL - - - - - function_list - \SQLite_SQL::function_list() - - Return sql to list functions - - - NULL - - - - - procedure_list - \SQLite_SQL::procedure_list() - - Return sql to list stored procedures - - - NULL - - - - - sequence_list - \SQLite_SQL::sequence_list() - - Return sql to list sequences - - - NULL - - - - - type_list - \SQLite_SQL::type_list() - - SQL to show list of field types - - - string[] - - - - - column_list - \SQLite_SQL::column_list() - - SQL to show infromation about columns in a table - - - string - - - string - - - - $table - - string - - - - eJzNV21P2zAQ/uz8ilM0KQWNZkN82kCj0IwxlRZCEaBpQm7iNhaJHWwHqBD/fee8wGDtRCXe+sXO5Z7zPXe583X9W57kjr+87MAyHBRMTXFj998VY5UAtgqexkyBD11q6IhqBp2RNopGhksBPTplqkZt5jQ6pxNGSGMLNmlhEqkIGfJMmmQKP9twTJVionwbyXyq+CQxZLvZQStagtVPn1dhxS5rpV7KxTkQkhiT6y++P+EmKUbtSGY+veTUrKEn/v2ZKY+Y0KzSR/U84ak2hZowKRDULs79SMbMj0c0XqmVEeg7ju/DyrP9nCayhwc9bhgc5iziYx7Z50cRg3vndTFqhF3FL5nSpWtRSrWuLZ3hAuzaMBHru2SUwhvHIfZQgpZ2mAGTMLgo05inVMBYqlKkL9JKbBVLZXRE0QzQFBcT+IAKlVgxjJuo5VbkOyQvRhg0GBei+gTYNRrnomVRSw65cQipYW5wst/r7Pbh4CgITwH3fbixarfuV4fcWmefN+B35EMqYpmBVPjpWkbnbHqFD/d8n0JMlUZaDzl5EHb63cFea8l7aQ7lgbrMlpGQcm0AawhrMa4rUf/Dp3/U681hE4/OrIlHdCzgDXig/+kM9/+bjhIzi8P6+rotKULIYdALtofgCpox1wq+h4M9cPFkWzYZ1YapUn78IwgDcM00Z+6GV1r2rHwQdoMQtk5rE9ANDrcdNP7CIRpgnSsex0wAF02/KEt+sRDpKTLMzuZG6o2yfcnZ1YJMLGSBXMOsRMPfWYYN8KxR7xXSOfOLx9ttYrv5AiVbY940kw9INJ4txKLZvB8a2kjFYsiVjFhcqMX66B3qHfFheJuLaDEeDeiNaNhxBf3Xibyqr7YxjDlLY7DlOq9b/Po9r1QQNIsJzpp02vJ2+8NgJwi9j+CFQadn12FwMrTrVm+w5S29IlsuxkpmtHSbjmRhIJJpkWG/wN5Pq2tu3mB29/JpXbQyXMWlwj4aZvbDzs5ep75a0THZcr12pdn23GbEucXBOBCxTVHdYXFp43+HPxdyKDQ= - - - - Query - Free Query Builder / Database Abstraction Layer - - - - - - - - \DB_Util - SQLite_Util - \SQLite_Util - - SQLite-specific backup, import and creation methods - - - - - - create_table - \SQLite_Util::create_table() - - Convenience public function to create a new table - - - - string - - - array - - - array - - - array - - - string - - - - $name - - string - - - $columns - - array - - - $constraints - array() - array - - - $indexes - array() - array - - - - delete_table - \SQLite_Util::delete_table() - - SQL to drop the specified table - - - string - - - string - - - - $name - - string - - - - backup_data - \SQLite_Util::backup_data() - - Create an SQL backup file for the current database's data - - - - array - - - string - - - - $excluded - array() - array - - - - backup_structure - \SQLite_Util::backup_structure() - - Create an SQL backup file for the current database's structure - - - string - - - - - query - - - - - - - - - - - - quote - - - - - - - - - - - - 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 - - - - Query - Free Query Builder / Database Abstraction Layer - - - - - - - - \Abstract_SQL - Firebird_SQL - \Firebird_SQL - - Firebird Specific SQL - - - - - - limit - \Firebird_SQL::limit() - - Limit clause - - - string - - - int - - - int - - - string - - - - $sql - - string - - - $limit - - int - - - $offset - FALSE - int - - - - explain - \Firebird_SQL::explain() - - Get the query plan for the sql query - - - string - - - string - - - - $sql - - string - - - - random - \Firebird_SQL::random() - - Random ordering keyword - - - string - - - - - db_list - \Firebird_SQL::db_list() - - Returns sql to list other databases - - - NULL - - - - - table_list - \Firebird_SQL::table_list() - - Returns sql to list tables - - - string - - - - - system_table_list - \Firebird_SQL::system_table_list() - - Returns sql to list system tables - - - string - - - - - view_list - \Firebird_SQL::view_list() - - Returns sql to list views - - - string - - - - - trigger_list - \Firebird_SQL::trigger_list() - - Returns sql to list triggers - - - string - - - - - function_list - \Firebird_SQL::function_list() - - Return sql to list functions - - - string - - - - - procedure_list - \Firebird_SQL::procedure_list() - - Return sql to list stored procedures - - - string - - - - - sequence_list - \Firebird_SQL::sequence_list() - - Return sql to list sequences - - - string - - - - - column_list - \Firebird_SQL::column_list() - - Return sql to list columns of the specified table - - - string - - - string - - - - $table - - string - - - - type_list - \Firebird_SQL::type_list() - - SQL to show list of field types - - - string - - - - - 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 - - - - Query - Free Query Builder / Database Abstraction Layer - - - - - - - - \PDOStatement - Firebird_Result - \Firebird_Result - - Firebird result class to emulate PDOStatement Class - only implements -data-fetching methods - - - - - - $statement - - - Reference to fbird resource - - - resource - - - - - $row - - - Current row in result array - - - int - - - - - $result - array() - - Data pulled from query - - - mixed - - - - - __construct - \Firebird_Result::__construct() - - Create the object by passing the resource for -the query - - - resource - - - - $link - - resource - - - - bindColumn - \Firebird_Result::bindColumn() - - Invalidate method for data consistency - - - mixed - - - mixed - - - int - - - mixed - - - array - - - NULL - - - - $column - - mixed - - - $param - - mixed - - - $type - NULL - int - - - $maxlen - NULL - mixed - - - $driverdata - NULL - array - - - - bindParam - \Firebird_Result::bindParam() - - Invalidate method for data consistency - - - mixed - - - mixed - - - int - - - mixed - - - array - - - NULL - - - - $parameter - - mixed - - - $variable - - mixed - - - $data_type - NULL - int - - - $maxlen - NULL - mixed - - - $driverdata - NULL - array - - - - bindValue - \Firebird_Result::bindValue() - - Invalidate method for data consistency - - - mixed - - - mixed - - - int - - - NULL - - - - $parameter - - mixed - - - $variable - - mixed - - - $data_type - NULL - int - - - - execute - \Firebird_Result::execute() - - Run a prepared statement query - - - array - - - \Firebird_Result - - - - $args - NULL - array - - - - fetch - \Firebird_Result::fetch() - - Emulate PDO fetch public function - - - int - - - mixed - - - mixed - - - mixed - - - - $fetch_style - \PDO::FETCH_ASSOC - int - - - $cursor_orientation - \PDO::FETCH_ORI_NEXT - mixed - - - $cursor_offset - NULL - mixed - - - - fetchAll - \Firebird_Result::fetchAll() - - Emulate PDO fetchAll public function - - - int - - - mixed - - - mixed - - - mixed - - - - $fetch_style - \PDO::FETCH_ASSOC - int - - - $statement - NULL - mixed - - - $ctor_args - NULL - mixed - - - - fetchColumn - \Firebird_Result::fetchColumn() - - Emulate PDOStatement::fetchColumn - - - int - - - mixed - - - - $column_num - 0 - int - - - - fetchObject - \Firebird_Result::fetchObject() - - Emulate PDOStatement::fetchObject, but only for the default use - - - string - - - array - - - \stdClass - - - - $class_name - 'stdClass' - string - - - $ctor_args - array() - array - - - - rowCount - \Firebird_Result::rowCount() - - Return the number of rows affected by the previous query - - - int - - - - - errorCode - \Firebird_Result::errorCode() - - Method to emulate PDOStatement->errorCode - - - string - - - - - errorInfo - \Firebird_Result::errorInfo() - - Method to emulate PDO->errorInfo / PDOStatement->errorInfo - - - array - - - - - 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 - - - - Query - Free Query Builder / Database Abstraction Layer - - - - - - - - \Abstract_Driver - Firebird - \Firebird - - Firebird Database class - PDO-firebird isn't stable, so this is a wrapper of the fbird_ public functions. - - - - - $statement - NULL - - Reference to the last query executed - - - object - - - - - $statement_link - NULL - - Reference to the resource returned by -the last query executed - - - resource - - - - - $trans - NULL - - Reference to the current transaction - - - resource - - - - - $conn - NULL - - Reference to the connection resource - - - resource - - - - - __construct - \Firebird::__construct() - - Open the link to the database - - - string - - - string - - - string - - - array - - - - $dbpath - - string - - - $user - 'SYSDBA' - string - - - $pass - 'masterkey' - string - - - $options - array() - array - - - - truncate - \Firebird::truncate() - - Empty a database table - - - string - - - - $table - - string - - - - exec - \Firebird::exec() - - Execute an sql statement and return number of affected rows - - - string - - - int - - - - $sql - - string - - - - getAttribute - \Firebird::getAttribute() - - Implement for compatibility with PDO - - - int - - - mixed - - - - $attribute - - int - - - - inTransaction - \Firebird::inTransaction() - - Return whether the current statement is in a transaction - - - bool - - - - - lastInsertId - \Firebird::lastInsertId() - - Returns the last value of the specified generator - - - string - - - mixed - - - - $name - NULL - string - - - - query - \Firebird::query() - - Wrapper public function to better match PDO - - - string - - - \Firebird_Result - - - \PDOException - - - - $sql - '' - string - - - - prepare - \Firebird::prepare() - - Emulate PDO prepare - - - string - - - array - - - \Firebird_Result - - - \PDOException - - - - $query - - string - - - $options - array() - array - - - - beginTransaction - \Firebird::beginTransaction() - - Start a database transaction - - - boolean - null - - - - - commit - \Firebird::commit() - - Commit a database transaction - - - bool - - - - - rollBack - \Firebird::rollBack() - - Rollback a transaction - - - bool - - - - - setAttribute - \Firebird::setAttribute() - - Set a connection attribute - - - int - - - mixed - - - bool - - - - $attribute - - int - - - $value - - mixed - - - - prepare_execute - \Firebird::prepare_execute() - - Prepare and execute a query - - - string - - - array - - - \Firebird_Result - - - - $sql - - string - - - $args - - array - - - - quote - \Firebird::quote() - - Method to emulate PDO->quote - - - string - - - int - - - string - - - - $str - - string - - - $param_type - \PDO::PARAM_STR - int - - - - errorInfo - \Firebird::errorInfo() - - Method to emulate PDO->errorInfo / PDOStatement->errorInfo - - - array - - - - - errorCode - \Firebird::errorCode() - - Method to emulate PDO->errorCode - - - array - - - - - prepare_query - \Firebird::prepare_query() - - Bind a prepared query with arguments for executing - - - string - - - array - - - NULL - - - - $sql - - string - - - $params - - array - - - - insert_batch - \Firebird::insert_batch() - - Create sql for batch insert - - - string - - - array - - - string - - - - $table - - string - - - $data - array() - array - - - - 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 - - - - Query - Free Query Builder / Database Abstraction Layer - - - - - - - - \DB_Util - Firebird_Util - \Firebird_Util - - Firebird-specific backup, import and creation methods - - - - - - backup_structure - \Firebird_Util::backup_structure() - - Create an SQL backup file for the current database's structure - - - - string - - - - - backup_data - \Firebird_Util::backup_data() - - Create an SQL backup file for the current database's data - - - - array - - - bool - - - string - - - - $exclude - array() - array - - - $system_tables - FALSE - bool - - - - get_system_tables - - - - - - - - - - - - get_tables - - - - - - - - - - - - query - - - - - - - - - - - - - Implement Backup structure function - - eJytVlFz2kYQfpZ+xZZhKskDKMnkyQ6pMeCUDoba4PYhyTAn6UBXS3fy6WSHyfi/d+9OEtjjdqbT8ILY291vv/12T3z4pUgLNzw5ceEErisq9/igny8lpdYAFxXLEiohhAlRJCIlhVFUKklixQSHOdlTWUedFyS+IzvqOE0uOCeVSoV0nDXLhUr38NsA/iRSUm5OY1HsJdulyhk3T+DHAbx78/Yd9PXXe+OXMX4HjpMqVZSnYbhjKq2iQSzykDwwot5jJeEBM2Mx5SW1/uhepCwrVSV3VHAMGlR3YSwSGiYRSfq1MwaGrhuG0P9hH7fp7CWTNGIy6ZcFjdmWxRBho6qiBywvhFRAeAKxpMR0NKfYsaR80VM40CurqDFOJHugsjRmGwfYXLKHHVWbcl8qmm9QtIyWfvC602unIvqLxgruNaKPUjO+g255nwWmSXFGyrLltLlVLAP6TVGelDC5sL+/u66jyTuYdayJUeQIq+t5zRy2LKOwFRJUSiGu9EAoSOoB80pA1CpGyahJca7lGgukiqRnOy4au6Tow8HWqE2h6xRVhJrCtuJ2Qi3ips2IXJ3vruOg1uvlZAmzvMhorvEvbG2tZ5sDvWskzztznSfN7sdOyv/rln7U0f/erIJIktfSd+m3OKuSZyeREBnqfDw1/7nLuhK/ST40WH7Qe5F1eDmar6YHGSZUUZkzTuExZXEK1guUgAoX03HY1n+eAIZDWN/c6hQmh9Nt7JbeJqe47H5Xpazsf3xlF7Ciw1ljDFBa1NZxaGZgX2R+JcIGWBKXLEMWICplVKrD9qKCRHBPwSPhynKBn4Dmhdq3fQr+kUfCtsjdGnutaAfcLsIVFdK7zzBGD6ct5hO1VWg5zOBQgn21e40eaNGGJjOQEtkdiqizrabz6Xit76+b5RV0vAHqn2NMMPA6eg3QUx53xt4X5qKwp4i3qT3wq/9xS1WcjrLM/32yPD29nK7Hv25Gq9VyHJi6zSiYXpEk0eprBmb02fbQU2ClbZ+OwAM/FhVXfgMWwAd4G0AsuGK8om3iBYns9oisyjlwkmNhkbkDlb7f9Nkd3ZcgtjWuLBVI8WiY2CjN5NwKo11bzM9vvtYMugxfJVJtMK4V0T+wq5db57eOuFNo0JdPqV1aXZrOaWEwl5bGauPon+14PJCswjk0LhZEo1xXAkHsmc7AKU1oosmqfUGNF06h3uZCYLDqgXczueh6Aa7VEJrdbBGfQ+ak8C2tn43sGHyv8Ty9U7aO14M8PT3eM6cnt6W0qV8zOHazxWp6s4bZYr18MXTg4298ZWZ4wflep9fR6Wpp9HkAf4zmt9MV+EduvQZz4AVn3pl73MXF7XzeWI6U+/zVjGxblanWFnu8cIMhdL7wL3w1XeNtNFqsRuP1bLk4+8I7LTw6dBD/KHkwQNt4eXU1W5912kWur9ij9OY986T/kUzx3wFO5bZ541b4hh3gH7e/ASJv4eg= - - - - Query - Free Query Builder / Database Abstraction Layer - - - - - - - - \Abstract_Driver - PgSQL - \PgSQL - - PostgreSQL specifc class - Extends PDO to simplify cross-database issues - - - - - __construct - \PgSQL::__construct() - - Connect to a PosgreSQL database - - - string - - - string - - - string - - - array - - - - $dsn - - string - - - $username - null - string - - - $password - null - string - - - $options - array() - array - - - - truncate - \PgSQL::truncate() - - Empty a table - - - string - - - - $table - - string - - - - get_schemas - \PgSQL::get_schemas() - - Get a list of schemas for the current connection - - - array - - - - - eJy1VE1z2jAQPcu/YsukY8gE3GZyItCWgtOmpeQDOrl0xiNkYWtiS44kp2Uy+e9d2QaSTNJTygXJ+/bp7duVBh+LtPCC/X0P9uGi5HqNC7c+0ZzXH+BzKbKYawhgQi1dUsNhtDRWU2aFkjCla66brE8FZdc04YRsuOATLW2qNCELkSubruFbD66o1lxWUaaKtRZJasl4s4I268Dhu/eH0HV/RxUuE/IaCEmtLUw/CBJh03LZYyoP6K2g9giVBLszM8G4NLzGI7xIRWZsqROuJCb1yuuAqZgH8ZLG3QaMiYHnBQF0X+3nbZw9V8Ymms8vpmAKzsSKAcuoMU9sg10FplxuPk60uOXaVPqqLDhPHBP/Y7mMzbYZUQ2EO88j7lyCPGMlJWcWrALqVDQi4qaRDlPhUIGmOSCRkAnsxUY+97k0XEua8+diBQr7rXT8MIZtpmuAPVW4STEuFHikKJdoOaxKWQ9QFDEMWl0y23YnH+wOGsoyyw525M2+5t3QDqttu9PxyJ1HiFhBG9kKZRo2v0jMTeZ3YDgcwsloOg87VYUwbEJ9v+f2x+gbQeFc2n7/H6Ie6DnYiugce+TeGf+687NtZJgXdo09xL5lL7ZtG3zGZSxFMmp5u0Y1Zu1h+c6HxeXP2Xi0CKHlQ68hwoXf8o8dyqbCdD/cuOlsu5T/Xe0XbrHWTBgLagWGpTynBlZKg005sNI9HxZYPdxY3c4QzfGay3pCXnAi4TZqKNuPbRgMBng7cE/m4TQcL2ByOl+cznDRqhNc+1twcnn2A1pFElU2mZZLuPoaXoaPYbOzBUxPv4duyn5Fb30HG80mj0Fv0HwhsbKcOnGNMN9DHdU8NvU0HYirGx49bcQ9PluhjJ1X1UBHNa6Hb/tftUCs/w== - - - - Query - Free Query Builder / Database Abstraction Layer - - - - - - - \Abstract_SQL - PgSQL_SQL - \PgSQL_SQL - - PostgreSQL specifc SQL - - - - - - explain - \PgSQL_SQL::explain() - - Get the query plan for the sql query - - - string - - - string - - - - $sql - - string - - - - random - \PgSQL_SQL::random() - - Random ordering keyword - - - string - - - - - db_list - \PgSQL_SQL::db_list() - - Returns sql to list other databases - - - string - - - - - table_list - \PgSQL_SQL::table_list() - - Returns sql to list tables - - - string - - - - - system_table_list - \PgSQL_SQL::system_table_list() - - Returns sql to list system tables - - - string - - - - - view_list - \PgSQL_SQL::view_list() - - Returns sql to list views - - - string - - - - - trigger_list - \PgSQL_SQL::trigger_list() - - Returns sql to list triggers - - - string - - - - - function_list - \PgSQL_SQL::function_list() - - Return sql to list functions - - - NULL - - - - - procedure_list - \PgSQL_SQL::procedure_list() - - Return sql to list stored procedures - - - string - - - - - sequence_list - \PgSQL_SQL::sequence_list() - - Return sql to list sequences - - - string - - - - - column_list - \PgSQL_SQL::column_list() - - Return sql to list columns of the specified table - - - string - - - string - - - - $table - - string - - - - type_list - \PgSQL_SQL::type_list() - - SQL to show list of field types - - - string - - - - - eJzVV21v2zYQ/iz9ipsxQHaQWG3RT22GzU7UdYMbp3a2bl8m0BItEZYolqSSGFn223sUJfkl62oHnbPlS2jquTvecy88nn4vUuH6R0cuHMH7ksolLsz6jaTUbsCwZFlMJfhwTjSZEUVhMFNakkizgsOILKmspX4gpU4LCY5zxfJCp0v4uQ8fiJSUV5+jQiwlS1LtnDUr6EY9ePHs+Qs4Mf9eVriM8QUqSbUW6pXvJ0yn5awfFblPrhnRL9Gu35zWoCPK8VQVHuEiZZnSpUxowVGoXy78qIipH89IfFKDUdB3Xd+Hk6/25zY8XhZKJ5JO349ACRqxeQS4bigSJFqQhMLq/KqcNZvnkl1TqarTRRlRCi4TlA2NLnqrKY9VS361eee6jjHroKIfqQadUvhYhU1khMMcg2G21MfMbhtgBcZzSJIDqmI8gW8RYLclReZ4vW+2fNcR5Qxpg3nJbcjpLSpnvGukeq5z5zpOLdYJfrscDX66gF+DyXA8DeDOYO47r13n3pz06/Ldej4hPC5yKCTmqXFnQZc3+GPl7C5eyUpJd9MhDyaDi/Pxu27P+7d9qAyqKlS6gIwpDVhCWHhxXXZqP3/iWWiUbDl0enpqktFxnGkwCs6uoIPqOclpB95Mxu+gI5KwMdgxsA9vg0mwhroYXwEGuOtpmmMaaPrMO27Xz72ekRlPzoMJDH9fExtMz1w0/AQkoi/ZvtxVMrvRZ6GVk2bbksg4Vl5OjK5QRSnNSadvkWqdVCurlwIJ+g684QAr5mowHAWeAWHiNZBaR02++eh0PYxUhJHKisQ7Bu+hSa/3+okoV0uFGfEo5q1o+F8NwP+A/GtGb/Yk3Yj8I9nQsm2gW+2iMrjOqmVgvV3sTFpL+8rON3+B9wdKepudZQV4wtaCI0xi7uv9mouV2im7j76U0vUJNpK61v/IpnEwLjeobNh5yOXFL6PRZ5hsFn9HpRE7vBtKF5LGIGQR0biU+3a/Vm631ieLUjO+W/OrsZuFWo2nLHp0qrRNEjtoWMY6rEsWe2mdhd7h2uBmICjOuzza+/qpxXbjPzK80myLfsObmd07BrDGdo1eMB5Xt810q6M1mg7a0DZIi4qszLHHFXP7arDpgflcXYKfezu0H3ej2BqxBFvZL9CMkzzjJAtFoZjRcFzlZ63GMGY3zNRaXeUb32M6J2Wm7R5TIS+zzNisQSkxTylsljm5ZXmZhxnliU7tV17m+J6IQiGRB4WW2xg/LIZ+zd0q3qu5xAT7zrp6vxnzbdcOUSzm2YgBV2lxU78y5oBBzjDKSN6+d5kp/N3GtKXYmhvq5oJVgT+qGWz9EmvgzfX/Z+itt5t2ZpttVVEj2DJ5j8/8gMfGTZFgtmOoORN9kYpPj7yRSA== - - - - Query - Free Query Builder / Database Abstraction Layer - - - - - - - - \DB_Util - PgSQL_Util - \PgSQL_Util - - Posgres-specific backup, import and creation methods - - - - - - backup_structure - \PgSQL_Util::backup_structure() - - Create an SQL backup file for the current database's structure - - - string - - - - - backup_data - \PgSQL_Util::backup_data() - - Create an SQL backup file for the current database's data - - - array - - - string - - - - $exclude - array() - array - - - - query - - - - - - - - - - - - get_tables - - - - - - - - - - - - - Implement Backup function - - eJytVk1z2zYQPZO/YqPRlKRHEpNMTnac2pbk1h3VsiO5PSQZDUSCImqSoPHhWJPxf8/iQ5Tq9tJpfDEJ7L59+94C1Puf27IN06OjEI7gVlOxxQfzfCkodQtwoVmVUwEpTIgiayIpnK+lEiRTjDcwI1sqfNZZS7J7sqFBsMOCM6JVyUUQLFnNVbmF30bwJxGCNnY34+1WsE2pgvHuCeIsgbev37yFofn3zsZVrLmHICiVauVxmm6YKvV6lPE6JY+MqHfIJN3XrFhGG0ldPIa3Jauk0mJDeYNJI32fZjynab4m+dAHY2IahmkKwx/2F+6UveFyI6gcypZmrGAZrFEn3Q6A1S0XCkiTQyYosYLWFAXL5QtJYd+d1Ovd4kSwRyqkXXZ5ULMnmsODiY7RJdZsoC8fquQwBvUnW9hQtUJDKyrjxHafVURKuNksbmerO8UqoE+KNrmEyYV7/xaGgWkpQKyx4UuROmC4bwgKVlEouABVUsi0sVlB7scmkoCEdIZGUANhYc4ExfcGHFWzlIZBq9foChS6cTPm0FddNvINvoVBgG4t55M5XNVtRWtT68Lz8JkY4/Gj6CQMng3/H+vw/9PDPO6laIkgtTenT5+ySuf0P4tkIONd9qkFixOvV9/ZDafQVyWTww+HI3ASOkUvWaXwuHOtLGufsuUact5ECr6SRmEkK2J4BbRu1bYrZ+rYQgeVLINVzooi9ouDrjmsGVhTgj6Wa7Va4aRijjHLkfmFOhamKyskJVkJfP0XzQwJXDELO2QgEjvbk/Boi+lsOl6aW+3j/HfoRSOUscacZBT1zFhgpDhUxR0ee2rcLtZb+QhzjD8UVGXleVXFN5P58fHldDn+dXW+WMzHTkRDfGK1InkOitsO7CiwYq8pMOnkMxm4EWdcNyreFUvgPbxJIOONYo2mDtjzvL6bzbpK12TtxotXum6gITXGrO3xVub0m717upXAC09ESAWCf7WALsuAnjmnTGhH4tPrL76lPsM7UqgV5nWuxvt2/fQbfBeIs4oL5kxKE9IZtZPSOIVYxitnVmBeu3l5JJXGobQhroipcqs5FnF7BqGhNMfLDptV25b+E6UmbeyY/mStHUD0YCCiZAAe+l9zIjMgURcTdlErf6PiUF1dL6Yfl3B1vZy/GCmI8R1v9go/MXHUG/QMktfZ7Cfwx/nsbrqA+CBssCs3ipKT6CQ8JLa3+282fPpiB7JjZZt5Dl9M7D758IyNTqH3ufnc9DoG+NpDCgf4ycisdUfU30EHKPZGfTbfzCl+wHC82g2urjR+Kkbmd8V3GURxaA== - - - - Query - Free Query Builder / Database Abstraction Layer - - - - - - - - \Abstract_Driver - MySQL - \MySQL - - MySQL specific class - Extends PDO to simplify cross-database issues - - - - - $escape_char - '`' - - Set the backtick as the MySQL escape character - - - string - - - - - __construct - \MySQL::__construct() - - Connect to MySQL Database - - - string - - - string - - - string - - - array - - - - $dsn - - string - - - $username - null - string - - - $password - null - string - - - $options - array() - array - - - - truncate - \MySQL::truncate() - - Empty a table - - - string - - - - $table - - string - - - - eJytVFFv2jAQfnZ+xQlVClRAtqoPEx1dGVCpE9C1pJr2lBrHEIvgpLbTLar633d2Euimrk/NS3y+u+87f3f25y95knvB8bEHx3BTcFXiwq4vFefVBnwtRBpzBQFMqKErqjmMVtooyozIJMxoyVWddZFTtqUbTkiDBRe0MEmmCAnFLjNJCd/68IMqxaXzsiwvldgkhoybFbRZB04+fDyBnv2durhUyC0QkhiT60EQbIRJilWfZbuAPgpqTrGS4MCZCsal5lU8hueJSLUp1IZnEpP6xTZgWcyDeEXjXh2MiYHnBQH03u3zGmXn5fJmBjrnTKwFA5ZSrf+RDA7V62LVbE6UeORKu9pcVg3FfxsuY71vRFQFwpPnEctJEGfJDZiEwwqxjGBboNrZNYJmNOfAEmrzsYOY4tIuHqkCRBVyY+3AI7nKDMeYGI6qrMhmwRD8e//sBeE4kxLjwGQ1RzMvB+wc2XY1OhzFWr62XWiuJN3x13w5avArU/FLH04TLeEoy+086qboYoWNhXUhqzGNIoZOowpm2pa4e+AZyiJNuwfs2v4bdujMdqfjkSePEJyTRl8rhubu2HfhZe8TesUa2jFfC8njtv99cj0YzH+iINEoDG+jq8VVGI2v5/PRYuJbPAdIGiLU1VFFO47z2m6263raNpS8BQnDc2gtpyEsRvPpsioJxtez2Sicgu9Mv9W1MJ3OGf6evbpgFCfPdC2Ovyv1Q+p3YDgcwuVotpx2XL9s151r4PetbftPsA1cmsHgDY1fyNvda2r5Lf07X7r9QE53uSmBAk5h+t8h3DtfGRo8imTUYBdcVN37I5MI3Tt/sBe23Qpv7xZjq+39UxX1fN+qDvaMr8lUxpCtwUkWxe6S9vHJ/QP5G5Og - - - - Query - Free Query Builder / Database Abstraction Layer - - - - - - - - \Abstract_SQL - MySQL_SQL - \MySQL_SQL - - MySQL specifc SQL - - - - - - limit - \MySQL_SQL::limit() - - Limit clause - - - string - - - int - - - int - - - string - - - - $sql - - string - - - $limit - - int - - - $offset - FALSE - int - - - - explain - \MySQL_SQL::explain() - - Get the query plan for the sql query - - - string - - - string - - - - $sql - - string - - - - random - \MySQL_SQL::random() - - Random ordering keyword - - - string - - - - - db_list - \MySQL_SQL::db_list() - - Returns sql to list other databases - - - string - - - - - table_list - \MySQL_SQL::table_list() - - Returns sql to list tables - - - string - - - string - - - - $database - '' - string - - - - system_table_list - \MySQL_SQL::system_table_list() - - Overridden in MySQL class - - - string - - - - - view_list - \MySQL_SQL::view_list() - - Returns sql to list views - - - string - - - - - trigger_list - \MySQL_SQL::trigger_list() - - Returns sql to list triggers - - - string - - - - - function_list - \MySQL_SQL::function_list() - - Return sql to list functions - - - string - - - - - procedure_list - \MySQL_SQL::procedure_list() - - Return sql to list stored procedures - - - string - - - - - sequence_list - \MySQL_SQL::sequence_list() - - Return sql to list sequences - - - NULL - - - - - type_list - \MySQL_SQL::type_list() - - SQL to show list of field types - - - string - - - - - column_list - \MySQL_SQL::column_list() - - SQL to show infromation about columns in a table - - - string - - - string - - - - $table - - string - - - - eJzFV21v2kgQ/mz/imlUCYgSfFf1091FVxdMwslAio3SkyrhxV7wKn7r7jqphfjvN2sbAinkglSUfMkynpmd59nZZ+y//s7CTDfOz3U4hy855QUu1LrHKa0M8DlnUUA5GNAlksyIoGDOhOTElyxNwCYF5XXUp4z492RBNW2dCz6RXIYp1zSXxakMC/inDXeEc5qUT/00KzhbhFLrrFfQ9Fvw4bffP8Cl+vex9ItYcg+aFkqZiT8MY8FkmM/afhob5IER+RErMZ72jJhPE0Erf3TPQhYJmfMFTRMMauf3hp8G1AhmJLisnTHQ0HXDgMtf9qevmR0UzhcbREZ9NvcB18/4gqfSRT5bG7ucPVAuysL8iAhR5ZmqXPSHpEkgNidRGpe6rqkdNUxks5hJwLAcoaGhNOJ+nMSAISxZwHvxPdo2s0TC+0jF/WRN53NBazOnyGRSJ1EmQ9eyfIY0wjxPqqYoszTVBhd1yot1kqueaTtWS9eWuqaxOTThHTAxTfKYcuY3a68WOpQeWr2dytU+A7s/6LuwrHKuzv5EjxWiPuBV5Vpd7AQo/198zBvWr6kEGVL4Xt6cLCIJzFNemrCyyvy/p/EagukPTM6SkuKayzrszPp6a5v9IVhfXWvYtboIHp1ODn1MkiCNIeWoFQrPPS0e8ccT2tfA4mWS5i6iBozNYbfZapwaQbmdKE9KptjDQgJKFkpfUAufOA5NMJuqJM/gnDk3ozvomq752XQsB+5urLEF3lpcPXh31WAJtk1MVJap8EMak8bJz28Peqwo2ga927BrVl5PSJmv4mQTfdVo7IoBjTNZPD1vtWCHOKTNRtZ649EAvOXGbeUhQVs9s+V76r4ZoUpzFgQ0QbGstb7U6+O6RRRC0ni6xdGza+BYttVxwStRTYfmwPJqGn5uF69duTme0tC6xapAp3NjDUzv6tueLvvWeItL9sDo45FkqZAXSapoTEhMXySp3Np7C9CIbrFQ4/0o3HXUfuhly4/719fW+ORNP66L3UK0LvJISOvFYUy9ybDj9kdDcFzTnbwFNCFTTgPIeOrTIOfHDoJN3GGMt+NRx+pO8Jq+HUiK7yeJvwfccGLbh1SrDtqHTIWdGIbSWqxfhOljPbDnMGc0CkAW2bHHpEL2T+xKVLp9x+0Plbqo6T11/719WYE7I3syGDreqUf3NglYCE+rQoDM0hy/AdIoj1F8cDaRagIfGuibh6+jq0pcj/Mydt+LTg+bAGomKrKWlXP9RrrCby4rCdTBxQW241S9wuNX6X/Sl+AD - - - - Query - Free Query Builder / Database Abstraction Layer - - - - - - - - \DB_Util - MySQL_Util - \MySQL_Util - - MySQL-specific backup, import and creation methods - - - - - - create_table - \MySQL_Util::create_table() - - Convienience public function for creating a new MySQL table - - - - string - - - array - - - array - - - array - - - string - - - - $name - - string - - - $columns - - array - - - $constraints - array() - array - - - $indexes - array() - array - - - - delete_table - \MySQL_Util::delete_table() - - Convience public function for droping a table - - - string - - - string - - - - $name - - string - - - - backup_structure - \MySQL_Util::backup_structure() - - Create an SQL backup file for the current database's structure - - - string - - - - - backup_data - \MySQL_Util::backup_data() - - Create an SQL backup file for the current database's data - - - array - - - string - - - - $exclude - array() - array - - - - get_dbs - - - - - - - - - - - - driver_query - - - - - - - - - - - - get_system_tables - - - - - - - - - - - - get_tables - - - - - - - - - - - - query - - - - - - - - - - - - quote - - - - - - - - - - - - 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 - - - - Query - Free Query Builder / Database Abstraction Layer - - - - - - - - QBASE_PATH - \\QBASE_PATH - dirname(__FILE__) . '/' - - Reference to root path - - - - - - QDRIVER_PATH - \\QDRIVER_PATH - QBASE_PATH . 'drivers/' - - Path to driver classes - - - - - - query_autoload - \query_autoload() - - Load query classes - - - - string - - - - $class - - string - - - eJytVF1P3DAQfE5+xeqESILg3CKeaFE5uEOlQipfah8jJ9kkFkmc2g7tCd1/7zpO7gKV2peehM7COzuzs+P7+KktW58dHPhwAHcdqjUd7PlKIbp/wEUnqgwVMFhywxOuERaJNoqnRsgGbvga1YA6b3n6xAv0vLEXnPPOlFJ53qOopSnX8GUO37lS2PS3qWzXShSl8S7HE4RpBMfv3h/Dkf066esq0TyB55XGtPqUsUKYskvmqawZfxbcnJAStuOsRIqNRldP5W0pKm06VaBsCDTvnlgqM2RZwrOjoZiAzPcZg6P/9vFHZxedkZXk1sVcKrBH0RTAn7moeFIhZKOzacW1Rv3Gz+1q2LblPeZIJqYIRoKS0kDLTdmDdJeMuEup3GAZ5qLBMLi7WDys4tvF4+fgEDKhGl5jGMdX1zerOI7mAQuiD1uOW+po22dKPJP0nbZ/cCzvr7+t7keWHeU8cJ30wMJoih+dUAha1jS7rGsKVN41fbK0r9xtOO3giuYU26nSG3IUfvRxfePgn0Ktq4rXQBG2S9jrAf0AI7PrFPNha6ErifwX33NHOLNoe/sT1XhNajwaqZdyRbIToTLQaMkMVmvfEzmEI0WMv4Q2OgxyWxansmkwNUEE+/swcpydQZAPjYLI94jeo5fD13HN2zDIZCyatOoyJJOLSibh1Hha5YhlB84uUuh5CukdNHTa+OM0sU0OjbSzGeYwG3xkL65oY3vM7Ix7bolb1ITU4sb6vtaOLHSciwrDCVkUwbDbWFKEX12RNKw0DkiKaDgljAYfpnuIFbYVpzazljyZHcKM/iZLcSqauPdu4DqE2+XX09MCzWJ8hEuXzTCyHD3J392mSSfCNs7lmXN5Y/3d9BF/QANdC3z7E+Drttpmi7QXFARKUfA6dOMLWTUZyHwLtxy/AWGrwG4= - - - - Query - Free Query Builder / Database Abstraction Layer - - - - - - - - - do_include - \do_include() - - Bulk directory loading workaround for use -with array_map and glob - - - string - - - void - - - - $path - - string - - - - mb_trim - \mb_trim() - - Multibyte-safe trim function - - - string - - - string - - - - $string - - string - - - - db_filter - \db_filter() - - Filter out db rows into one array - - - array - - - mixed - - - array - - - - $array - - array - - - $index - - mixed - - - - Query - \Query() - - Connection function - - - mixed - - - \Query_Builder - - - - $params - '' - mixed - - - eJy9Vdtu00AQfba/YqgixSlNDahPLZdCoagIhBBIPHCxxvbEXsXeNXtpakH/nVlf4gbRN0qkZJ2ZOTNnz86OHz9ryiaM9/dD2IcPjnTLD/75XBP1BnjhRJWThhheosUUDcHz1FiNmRVKwltsSQ+o0wazNRYUBGMuODUuHa1nSlNnQ2dLpYPgk6iVLVt4cwifUWuSnTdTTatFUVoGDE8QZQt49ODhI1j65aiLq4RcQxCU1jbmOI4LYUuXHmaqjvFSoD1idvHEoxIZSUN9PIc3paiMdbogJRl06NZxpnKK8xTz5RDMwDgM4xiW/+wTjmq/rlSKFayc7HQ0YEu0kCs5t6AJq6qFlbCAst2UpAmouiM+YgUR3NsSSehKGGuiea4SIbPK5TRfLMKfYeCJB8z8havWkAtNmVXcH5XCXMgCNkqvUSsnc1gpDY7p+ugNHwvw4WKb1NjwfnIoeOve1/m5ZzTWwA3lk8watGVv18SnI+FSidwb4jAYKcJELeoAizBgfoGmH45pJUpmo+MkDK7D6/+mWZ0mvI/6D8HeucqKtLW0NLgi8BFb6G069OuOEpPpphZDyWhAbKXoII2mItHUVMiK7MXR96/m/uJXxL+zRezM3gHs8XeE3pFYQ8Ofi8ryGFGOuzwFrTYGhLQKlKS+P6Yh4oXoTDAbPaO5FleUw0zInK7CG+KMcXE4dUmarLqaUZ/lYIB1ZzOTtEn6Gk96cMT7Z115RmFWDhBAwxQGTSfIl28MmuGXPt+3Trdw1HwKO7k7Mc+UlNRvc9tJO/INOnV/zE2huomYDEN9V7DOFQ0Y3uF83kuV1Sh5fms2TXWTd73x+Lggy9fRWPTXrhOR93yxglY5VpaA/db3NPp2vBTKGZ5tGctsmWG2TRgG/lYJk5gMK9Qjj8VuR2/JLJ/6uhN8G9+dRuDH5XBLb03JNN9bHq4bYegAxkYCPr8dWn8pPbh3a3K6U/8KOVOXpDnuopDcTB8tahve5n0lc+/hBdSKq9Y1v434nfwbER8vog== - - - - - - - - - - - diff --git a/drivers/firebird/firebird_driver.php b/drivers/firebird/firebird_driver.php index f7d71c3..56e42f4 100644 --- a/drivers/firebird/firebird_driver.php +++ b/drivers/firebird/firebird_driver.php @@ -13,6 +13,8 @@ // -------------------------------------------------------------------------- +namespace Query\Driver; + /** * Firebird Database class * @@ -63,14 +65,14 @@ class Firebird extends Abstract_Driver { public function __construct($dbpath, $user='SYSDBA', $pass='masterkey', array $options = array()) { - $connect_function = (isset($options[PDO::ATTR_PERSISTENT]) && $options[PDO::ATTR_PERSISTENT] == TRUE) - ? 'fbird_pconnect' - : 'fbird_connect'; + $connect_function = (isset($options[\PDO::ATTR_PERSISTENT]) && $options[\PDO::ATTR_PERSISTENT] == TRUE) + ? '\\fbird_pconnect' + : '\\fbird_connect'; $this->conn = $connect_function($dbpath, $user, $pass, 'utf-8', 0); // Throw an exception to make this match other pdo classes - if ( ! is_resource($this->conn)) throw new PDOException(fbird_errmsg(), fbird_errcode(), NULL); + if ( ! \is_resource($this->conn)) throw new \PDOException(\fbird_errmsg(), \fbird_errcode(), NULL); // Load these classes here because this // driver does not call the constructor @@ -148,7 +150,7 @@ class Firebird extends Abstract_Driver { */ public function lastInsertId($name = NULL) { - return fbird_gen_id($name, 0, $this->conn); + return \fbird_gen_id($name, 0, $this->conn); } // -------------------------------------------------------------------------- @@ -163,15 +165,15 @@ class Firebird extends Abstract_Driver { public function query($sql = '') { - if (empty($sql)) throw new PDOException("Query method requires an sql query!", 0, NULL); + if (empty($sql)) throw new \PDOException("Query method requires an sql query!", 0, NULL); $this->statement_link = (isset($this->trans)) - ? fbird_query($this->trans, $sql) - : fbird_query($this->conn, $sql); + ? \fbird_query($this->trans, $sql) + : \fbird_query($this->conn, $sql); // Throw the error as a exception - $err_string = fbird_errmsg() . "Last query:" . $this->last_query; - if ($this->statement_link === FALSE) throw new PDOException($err_string, fbird_errcode(), NULL); + $err_string = \fbird_errmsg() . "Last query:" . $this->last_query; + if ($this->statement_link === FALSE) throw new \PDOException($err_string, \fbird_errcode(), NULL); $this->statement = new FireBird_Result($this->statement_link); @@ -190,10 +192,10 @@ class Firebird extends Abstract_Driver { */ public function prepare($query, $options=array()) { - $this->statement_link = fbird_prepare($this->conn, $query); + $this->statement_link = \fbird_prepare($this->conn, $query); // Throw the error as an exception - if ($this->statement_link === FALSE) throw new PDOException(fbird_errmsg(), fbird_errcode(), NULL); + if ($this->statement_link === FALSE) throw new \PDOException(\fbird_errmsg(), \fbird_errcode(), NULL); $this->statement = new FireBird_Result($this->statement_link); @@ -209,7 +211,7 @@ class Firebird extends Abstract_Driver { */ public function beginTransaction() { - return (($this->trans = fbird_trans($this->conn)) !== NULL) ? TRUE : NULL; + return (($this->trans = \fbird_trans($this->conn)) !== NULL) ? TRUE : NULL; } // -------------------------------------------------------------------------- @@ -221,7 +223,7 @@ class Firebird extends Abstract_Driver { */ public function commit() { - $res = fbird_commit($this->trans); + $res = \fbird_commit($this->trans); $this->trans = NULL; return $res; } @@ -235,7 +237,7 @@ class Firebird extends Abstract_Driver { */ public function rollBack() { - $res = fbird_rollback($this->trans); + $res = \fbird_rollback($this->trans); $this->trans = NULL; return $res; } @@ -281,7 +283,7 @@ class Firebird extends Abstract_Driver { * @param int $param_type * @return string */ - public function quote($str, $param_type = PDO::PARAM_STR) + public function quote($str, $param_type = \PDO::PARAM_STR) { if(is_numeric($str)) { @@ -300,8 +302,8 @@ class Firebird extends Abstract_Driver { */ public function errorInfo() { - $code = fbird_errcode(); - $msg = fbird_errmsg(); + $code = \fbird_errcode(); + $msg = \fbird_errmsg(); return array(0, $code, $msg); } diff --git a/drivers/firebird/firebird_result.php b/drivers/firebird/firebird_result.php index 8555492..980d471 100644 --- a/drivers/firebird/firebird_result.php +++ b/drivers/firebird/firebird_result.php @@ -13,6 +13,8 @@ // -------------------------------------------------------------------------- +namespace Query\Driver; + /** * Firebird result class to emulate PDOStatement Class - only implements * data-fetching methods @@ -20,7 +22,7 @@ * @package Query * @subpackage Drivers */ -class Firebird_Result extends PDOStatement { +class Firebird_Result extends \PDOStatement { /** * Reference to fbird resource @@ -52,22 +54,22 @@ class Firebird_Result extends PDOStatement { public function __construct($link) { $this->statement = $link; - $this->setFetchMode(PDO::FETCH_ASSOC); + $this->setFetchMode(\PDO::FETCH_ASSOC); $this->row = -1; $this->result = array(); // Create the result array, so that we can get row counts // Check the resource type, because prepared statements are "interbase query" // but we only want "interbase result" types when attempting to fetch data - if (is_resource($link) && get_resource_type($link) === "interbase result") + if (\is_resource($link) && \get_resource_type($link) === "interbase result") { - while($row = fbird_fetch_assoc($link, IBASE_FETCH_BLOBS)) + while($row = \fbird_fetch_assoc($link, \IBASE_FETCH_BLOBS)) { $this->result[] = $row; } // Free the result resource - fbird_free_result($link); + \fbird_free_result($link); } } @@ -131,12 +133,12 @@ class Firebird_Result extends PDOStatement { public function execute($args = NULL) { //Add the prepared statement as the first parameter - array_unshift($args, $this->statement); + \array_unshift($args, $this->statement); // Let php do all the hard stuff in converting // the array of arguments into a list of arguments // Then pass the resource to the constructor - $this->__construct(call_user_func_array('fbird_execute', $args)); + $this->__construct(\call_user_func_array('fbird_execute', $args)); return $this; } @@ -151,7 +153,7 @@ class Firebird_Result extends PDOStatement { * @param mixed $cursor_offset * @return mixed */ - public function fetch($fetch_style=PDO::FETCH_ASSOC, $cursor_orientation = PDO::FETCH_ORI_NEXT, $cursor_offset=NULL) + public function fetch($fetch_style=\PDO::FETCH_ASSOC, $cursor_orientation = \PDO::FETCH_ORI_NEXT, $cursor_offset=NULL) { // If there is no result, continue if (empty($this->result)) @@ -170,12 +172,12 @@ class Firebird_Result extends PDOStatement { switch($fetch_style) { - case PDO::FETCH_OBJ: + case \PDO::FETCH_OBJ: $row = (object) $this->result[$this->row]; break; - case PDO::FETCH_NUM: - $row = array_values($this->result[$this->row]); + case \PDO::FETCH_NUM: + $row = \array_values($this->result[$this->row]); break; default: @@ -196,7 +198,7 @@ class Firebird_Result extends PDOStatement { * @param mixed $ctor_args * @return mixed */ - public function fetchAll($fetch_style=PDO::FETCH_ASSOC, $statement=NULL, $ctor_args=NULL) + public function fetchAll($fetch_style=\PDO::FETCH_ASSOC, $statement=NULL, $ctor_args=NULL) { $all = array(); @@ -220,7 +222,7 @@ class Firebird_Result extends PDOStatement { */ public function fetchColumn($column_num=0) { - $row = $this->fetch(PDO::FETCH_NUM); + $row = $this->fetch(\PDO::FETCH_NUM); return $row[$column_num]; } @@ -235,7 +237,7 @@ class Firebird_Result extends PDOStatement { */ public function fetchObject($class_name='stdClass', $ctor_args=array()) { - return $this->fetch(PDO::FETCH_OBJ); + return $this->fetch(\PDO::FETCH_OBJ); } // -------------------------------------------------------------------------- @@ -247,12 +249,12 @@ class Firebird_Result extends PDOStatement { */ public function rowCount() { - $rows = fbird_affected_rows(); + $rows = \fbird_affected_rows(); // Get the number of rows for the select query if you can - if ($rows === 0 && is_resource($this->statement) && get_resource_type($this->statement) === "interbase result") + if ($rows === 0 && \is_resource($this->statement) && \get_resource_type($this->statement) === "interbase result") { - $rows = count($this->result); + $rows = \count($this->result); } return $rows; @@ -267,7 +269,7 @@ class Firebird_Result extends PDOStatement { */ public function errorCode() { - return fbird_errcode(); + return \fbird_errcode(); } // -------------------------------------------------------------------------- @@ -279,8 +281,8 @@ class Firebird_Result extends PDOStatement { */ public function errorInfo() { - $code = fbird_errcode(); - $msg = fbird_errmsg(); + $code = \fbird_errcode(); + $msg = \fbird_errmsg(); return array(0, $code, $msg); } diff --git a/drivers/firebird/firebird_sql.php b/drivers/firebird/firebird_sql.php index 24a0ea0..d477010 100644 --- a/drivers/firebird/firebird_sql.php +++ b/drivers/firebird/firebird_sql.php @@ -13,6 +13,8 @@ // -------------------------------------------------------------------------- +namespace Query\Driver; + /** * Firebird Specific SQL * diff --git a/drivers/firebird/firebird_util.php b/drivers/firebird/firebird_util.php index ea0836b..5ffd26c 100644 --- a/drivers/firebird/firebird_util.php +++ b/drivers/firebird/firebird_util.php @@ -13,6 +13,8 @@ // -------------------------------------------------------------------------- +namespace Query\Driver; + /** * Firebird-specific backup, import and creation methods * @@ -70,7 +72,7 @@ class Firebird_Util extends DB_Util { { $sql = 'SELECT * FROM "'.trim($t).'"'; $res = $this->query($sql); - $obj_res = $res->fetchAll(PDO::FETCH_ASSOC); + $obj_res = $res->fetchAll(\PDO::FETCH_ASSOC); // Don't add to the file if the table is empty if (count($obj_res) < 1) continue; diff --git a/drivers/mysql/mysql_driver.php b/drivers/mysql/mysql_driver.php index 75c36d0..8783730 100644 --- a/drivers/mysql/mysql_driver.php +++ b/drivers/mysql/mysql_driver.php @@ -13,6 +13,8 @@ // -------------------------------------------------------------------------- +namespace Query\Driver; + /** * MySQL specific class * @@ -39,10 +41,10 @@ class MySQL extends Abstract_Driver { public function __construct($dsn, $username=null, $password=null, array $options=array()) { // Set the charset to UTF-8 - if (defined('PDO::MYSQL_ATTR_INIT_COMMAND')) + if (defined('\\PDO::MYSQL_ATTR_INIT_COMMAND')) { $options = array_merge($options, array( - PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES UTF-8 COLLATE 'UTF-8'", + \PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES UTF-8 COLLATE 'UTF-8'", )); } diff --git a/drivers/mysql/mysql_sql.php b/drivers/mysql/mysql_sql.php index 182dc2a..7c6cff3 100644 --- a/drivers/mysql/mysql_sql.php +++ b/drivers/mysql/mysql_sql.php @@ -13,6 +13,8 @@ // -------------------------------------------------------------------------- +namespace Query\Driver; + /** * MySQL specifc SQL * diff --git a/drivers/mysql/mysql_util.php b/drivers/mysql/mysql_util.php index 627b745..449201c 100644 --- a/drivers/mysql/mysql_util.php +++ b/drivers/mysql/mysql_util.php @@ -13,6 +13,8 @@ // -------------------------------------------------------------------------- +namespace Query\Driver; + /** * MySQL-specific backup, import and creation methods * @@ -165,7 +167,7 @@ class MySQL_Util extends DB_Util { { $sql = "SELECT * FROM `{$t}`"; $res = $this->query($sql); - $rows = $res->fetchAll(PDO::FETCH_ASSOC); + $rows = $res->fetchAll(\PDO::FETCH_ASSOC); // Skip empty tables if (count($rows) < 1) continue; diff --git a/drivers/pgsql/pgsql_driver.php b/drivers/pgsql/pgsql_driver.php index 92aaf0a..7851e6a 100644 --- a/drivers/pgsql/pgsql_driver.php +++ b/drivers/pgsql/pgsql_driver.php @@ -13,6 +13,8 @@ // -------------------------------------------------------------------------- +namespace Query\Driver; + /** * PostgreSQL specifc class * diff --git a/drivers/pgsql/pgsql_sql.php b/drivers/pgsql/pgsql_sql.php index 7b82586..4937090 100644 --- a/drivers/pgsql/pgsql_sql.php +++ b/drivers/pgsql/pgsql_sql.php @@ -12,6 +12,8 @@ // -------------------------------------------------------------------------- +namespace Query\Driver; + /** * PostgreSQL specifc SQL * diff --git a/drivers/pgsql/pgsql_util.php b/drivers/pgsql/pgsql_util.php index 95c4417..3fdacca 100644 --- a/drivers/pgsql/pgsql_util.php +++ b/drivers/pgsql/pgsql_util.php @@ -13,6 +13,8 @@ // -------------------------------------------------------------------------- +namespace Query\Driver; + /** * Posgres-specific backup, import and creation methods * @@ -59,7 +61,7 @@ class PgSQL_Util extends DB_Util { { $sql = 'SELECT * FROM "'.trim($t).'"'; $res = $this->query($sql); - $obj_res = $res->fetchAll(PDO::FETCH_ASSOC); + $obj_res = $res->fetchAll(\PDO::FETCH_ASSOC); // Don't add to the file if the table is empty if (count($obj_res) < 1) continue; diff --git a/drivers/sqlite/sqlite_driver.php b/drivers/sqlite/sqlite_driver.php index ace0f3a..3148e50 100644 --- a/drivers/sqlite/sqlite_driver.php +++ b/drivers/sqlite/sqlite_driver.php @@ -13,6 +13,8 @@ // -------------------------------------------------------------------------- +namespace Query\Driver; + /** * SQLite specific class * @@ -72,7 +74,7 @@ class SQLite extends Abstract_Driver { $sql = $this->sql->table_list(); $res = $this->query($sql); - return db_filter($res->fetchAll(PDO::FETCH_ASSOC), 'name'); + return db_filter($res->fetchAll(\PDO::FETCH_ASSOC), 'name'); } // -------------------------------------------------------------------------- diff --git a/drivers/sqlite/sqlite_sql.php b/drivers/sqlite/sqlite_sql.php index c17a2f4..79ea158 100644 --- a/drivers/sqlite/sqlite_sql.php +++ b/drivers/sqlite/sqlite_sql.php @@ -13,6 +13,8 @@ // -------------------------------------------------------------------------- +namespace Query\Driver; + /** * SQLite Specific SQL * diff --git a/drivers/sqlite/sqlite_util.php b/drivers/sqlite/sqlite_util.php index 8dd5f60..633bed8 100644 --- a/drivers/sqlite/sqlite_util.php +++ b/drivers/sqlite/sqlite_util.php @@ -13,6 +13,8 @@ // -------------------------------------------------------------------------- +namespace Query\Driver; + /** * SQLite-specific backup, import and creation methods * @@ -114,7 +116,7 @@ class SQLite_Util extends DB_Util { } $res = $this->query($sql); - $result = $res->fetchAll(PDO::FETCH_ASSOC); + $result = $res->fetchAll(\PDO::FETCH_ASSOC); unset($res); @@ -125,7 +127,7 @@ class SQLite_Util extends DB_Util { { $sql = 'SELECT * FROM "'.$r['name'].'"'; $res = $this->query($sql); - $obj_res = $res->fetchAll(PDO::FETCH_ASSOC); + $obj_res = $res->fetchAll(\PDO::FETCH_ASSOC); unset($res); @@ -175,7 +177,7 @@ class SQLite_Util extends DB_Util { // Fairly easy for SQLite...just query the master table $sql = 'SELECT "sql" FROM "sqlite_master"'; $res = $this->query($sql); - $result = $res->fetchAll(PDO::FETCH_ASSOC); + $result = $res->fetchAll(\PDO::FETCH_ASSOC); $sql_array = array(); diff --git a/tests/bootstrap.php b/tests/bootstrap.php index 03a7e71..056a20c 100644 --- a/tests/bootstrap.php +++ b/tests/bootstrap.php @@ -13,6 +13,8 @@ // -------------------------------------------------------------------------- +use Query\Driver; + /** * Base class for TestCases */ diff --git a/tests/core/core.php b/tests/core/core.php index b3f0d83..134f131 100644 --- a/tests/core/core.php +++ b/tests/core/core.php @@ -11,6 +11,7 @@ */ // -------------------------------------------------------------------------- + /** * CoreTest class - Compatibility and core functionality tests * diff --git a/tests/core/db_qb_test.php b/tests/core/db_qb_test.php index 56c822a..2911716 100644 --- a/tests/core/db_qb_test.php +++ b/tests/core/db_qb_test.php @@ -765,9 +765,9 @@ abstract class QBTest extends Query_TestCase { { $this->db = Query($params); } - catch(BadDBDriverException $e) + catch(\Query\BadDBDriverException $e) { - $this->assertInstanceOf('BadDBDriverException', $e); + $this->assertInstanceOf('\\Query\\BadDBDriverException', $e); } } diff --git a/tests/databases/firebird/FirebirdQBTest.php b/tests/databases/firebird/FirebirdQBTest.php index 3c36da1..93a1f5c 100644 --- a/tests/databases/firebird/FirebirdQBTest.php +++ b/tests/databases/firebird/FirebirdQBTest.php @@ -23,7 +23,7 @@ class FirebirdQBTest extends QBTest { { $dbpath = QTEST_DIR.QDS.'db_files'.QDS.'FB_TEST_DB.FDB'; - if ( ! function_exists('fbird_connect')) + if ( ! function_exists('\\fbird_connect')) { $this->markTestSkipped('Firebird extension does not exist'); } @@ -76,8 +76,8 @@ class FirebirdQBTest extends QBTest { $qb_res = $this->db->get('create_test'); $sql_res = $this->db->query($sql); - $this->assertIsA($qb_res, 'Firebird_Result'); - $this->assertIsA($sql_res, 'Firebird_Result'); + $this->assertIsA($qb_res, '\\Query\\Driver\\Firebird_Result'); + $this->assertIsA($sql_res, '\\Query\\Driver\\Firebird_Result'); } public function testInsertBatch() diff --git a/tests/databases/firebird/FirebirdTest.php b/tests/databases/firebird/FirebirdTest.php index 3e9740f..e58d1a3 100644 --- a/tests/databases/firebird/FirebirdTest.php +++ b/tests/databases/firebird/FirebirdTest.php @@ -25,13 +25,13 @@ class FirebirdTest extends DBtest { { $dbpath = QTEST_DIR.QDS.'db_files'.QDS.'FB_TEST_DB.FDB'; - if ( ! function_exists('fbird_connect')) + if ( ! function_exists('\\fbird_connect')) { $this->markTestSkipped('Firebird extension does not exist'); } // test the db driver directly - $this->db = new Firebird('localhost:'.$dbpath); + $this->db = new \Query\Driver\Firebird('localhost:'.$dbpath); $this->tables = $this->db->get_tables(); } @@ -72,7 +72,7 @@ class FirebirdTest extends DBtest { public function testConnection() { - $this->assertIsA($this->db, 'Firebird'); + $this->assertIsA($this->db, '\\Query\\Driver\\Firebird'); } // -------------------------------------------------------------------------- diff --git a/tests/databases/mysql/MySQLQBTest.php b/tests/databases/mysql/MySQLQBTest.php index aeeca69..e024db3 100644 --- a/tests/databases/mysql/MySQLQBTest.php +++ b/tests/databases/mysql/MySQLQBTest.php @@ -21,11 +21,11 @@ class MySQLQBTest extends QBTest { public function setUp() { // If the database isn't installed, skip the tests - if ( ! class_exists("MySQL")) + if ( ! class_exists("\\Query\\Driver\\MySQL")) { $this->markTestSkipped("MySQL extension for PDO not loaded"); } - + // Attempt to connect, if there is a test config file if (is_file(QTEST_DIR . "/settings.json")) { @@ -56,9 +56,9 @@ class MySQLQBTest extends QBTest { { $this->assertTrue(in_array('mysql', PDO::getAvailableDrivers())); } - + // -------------------------------------------------------------------------- - + public function testQueryExplain() { $query = $this->db->select('id, key as k, val') @@ -66,9 +66,9 @@ class MySQLQBTest extends QBTest { ->where('id >', 1) ->where('id <', 900) ->get('test', 2, 1); - + $res = $query->fetchAll(PDO::FETCH_ASSOC); - + $expected = array ( array ( 'id' => '1', @@ -84,7 +84,7 @@ class MySQLQBTest extends QBTest { 'Extra' => 'Using where', ) ); - + $this->assertEqual($expected, $res); } } \ No newline at end of file diff --git a/tests/databases/mysql/MySQLTest.php b/tests/databases/mysql/MySQLTest.php index f45ce66..c64007e 100644 --- a/tests/databases/mysql/MySQLTest.php +++ b/tests/databases/mysql/MySQLTest.php @@ -24,24 +24,24 @@ class MySQLTest extends DBTest { public function setUp() { // If the database isn't installed, skip the tests - if ( ! class_exists("MySQL")) + if ( ! class_exists("\\Query\\Driver\\MySQL")) { $this->markTestSkipped("MySQL extension for PDO not loaded"); } - + // Attempt to connect, if there is a test config file if (is_file(QTEST_DIR . "/settings.json")) { $params = json_decode(file_get_contents(QTEST_DIR . "/settings.json")); $params = $params->mysql; - $this->db = new MySQL("mysql:host={$params->host};dbname={$params->database}", $params->user, $params->pass, array( + $this->db = new \Query\Driver\MySQL("mysql:host={$params->host};dbname={$params->database}", $params->user, $params->pass, array( PDO::ATTR_PERSISTENT => TRUE )); } elseif (($var = getenv('CI'))) { - $this->db = new MySQL('host=127.0.0.1;port=3306;dbname=test', 'root'); + $this->db = new \Query\Driver\MySQL('host=127.0.0.1;port=3306;dbname=test', 'root'); } } @@ -56,7 +56,7 @@ class MySQLTest extends DBTest { public function testConnection() { - $this->assertIsA($this->db, 'MySQL'); + $this->assertIsA($this->db, '\\Query\\Driver\\MySQL'); } // -------------------------------------------------------------------------- diff --git a/tests/databases/pgsql/PgSQLQBTest.php b/tests/databases/pgsql/PgSQLQBTest.php index bf6a1a2..4ca478e 100644 --- a/tests/databases/pgsql/PgSQLQBTest.php +++ b/tests/databases/pgsql/PgSQLQBTest.php @@ -20,7 +20,7 @@ class PgSQLQBTest extends QBTest { public function setUp() { // If the database isn't installed, skip the tests - if ( ! class_exists("PgSQL")) + if ( ! class_exists("\\Query\\Driver\\PgSQL")) { $this->markTestSkipped("Postgres extension for PDO not loaded"); } @@ -33,7 +33,7 @@ class PgSQLQBTest extends QBTest { $params->type = "pgsql"; $params->prefix = 'create_'; $params->options = array(); - $params->options[PDO::ATTR_PERSISTENT] = TRUE; + $params->options[\PDO::ATTR_PERSISTENT] = TRUE; } elseif (($var = getenv('CI'))) // Travis CI Connection Info { diff --git a/tests/databases/pgsql/PgSQLTest.php b/tests/databases/pgsql/PgSQLTest.php index 8d6c831..4b9dd0a 100644 --- a/tests/databases/pgsql/PgSQLTest.php +++ b/tests/databases/pgsql/PgSQLTest.php @@ -22,9 +22,10 @@ class PgTest extends DBTest { public function setUp() { + $class = "\\Query\\Driver\\PgSQL"; // If the database isn't installed, skip the tests - if ( ! class_exists("PgSQL")) + if ( ! class_exists($class)) { $this->markTestSkipped("Postgres extension for PDO not loaded"); } @@ -35,11 +36,11 @@ class PgTest extends DBTest { $params = json_decode(file_get_contents(QTEST_DIR . "/settings.json")); $params = $params->pgsql; - $this->db = new PgSQL("pgsql:dbname={$params->database}", $params->user, $params->pass); + $this->db = new $class("pgsql:dbname={$params->database}", $params->user, $params->pass); } elseif (($var = getenv('CI'))) { - $this->db = new PgSQL('host=127.0.0.1;port=5432;dbname=test', 'postgres'); + $this->db = new $class('host=127.0.0.1;port=5432;dbname=test', 'postgres'); } } @@ -56,7 +57,7 @@ class PgTest extends DBTest { { if (empty($this->db)) return; - $this->assertIsA($this->db, 'PgSQL'); + $this->assertIsA($this->db, '\\Query\\Driver\\PgSQL'); } // -------------------------------------------------------------------------- diff --git a/tests/databases/sqlite/SqliteTest.php b/tests/databases/sqlite/SqliteTest.php index c2d314f..73c34f8 100644 --- a/tests/databases/sqlite/SqliteTest.php +++ b/tests/databases/sqlite/SqliteTest.php @@ -134,10 +134,10 @@ SQL; public function testConnection() { - $db = new SQLite(QTEST_DIR.QDS.'db_files'.QDS.'test_sqlite.db'); + $db = new \Query\Driver\SQLite(QTEST_DIR.QDS.'db_files'.QDS.'test_sqlite.db'); - $this->assertIsA($db, 'SQLite'); - $this->assertIsA($this->db->db, 'SQLite'); + $this->assertIsA($db, '\\Query\\Driver\\SQLite'); + $this->assertIsA($this->db->db, '\\Query\\Driver\\SQLite'); unset($db); }