From 57f1c38bccd3d0d13d3926e80aa3e81a160176f5 Mon Sep 17 00:00:00 2001 From: "Timothy J. Warren" Date: Wed, 2 Apr 2014 17:09:34 -0400 Subject: [PATCH] Fix docs --- docs/classes.svg | 284 + docs/classes/Query.BadDBDriverException.html | 2 +- docs/classes/Query.Connection_Manager.html | 2 +- .../classes/Query.Driver.Abstract_Driver.html | 2 +- docs/classes/Query.Driver.Abstract_SQL.html | 2 +- docs/classes/Query.Driver.DB_Util.html | 2 +- .../Query.Driver.Driver_Interface.html | 2 +- docs/classes/Query.Driver.Firebird.html | 2 +- .../classes/Query.Driver.Firebird_Result.html | 2 +- docs/classes/Query.Driver.Firebird_SQL.html | 2 +- docs/classes/Query.Driver.Firebird_Util.html | 2 +- docs/classes/Query.Driver.MySQL.html | 2 +- docs/classes/Query.Driver.MySQL_SQL.html | 2 +- docs/classes/Query.Driver.MySQL_Util.html | 2 +- docs/classes/Query.Driver.PgSQL.html | 2 +- docs/classes/Query.Driver.PgSQL_SQL.html | 2 +- docs/classes/Query.Driver.PgSQL_Util.html | 2 +- docs/classes/Query.Driver.SQL_Interface.html | 2 +- docs/classes/Query.Driver.SQLite.html | 2 +- docs/classes/Query.Driver.SQLite_SQL.html | 2 +- docs/classes/Query.Driver.SQLite_Util.html | 2 +- docs/classes/Query.Query_Builder.html | 2 +- .../Query.Query_Builder_Interface.html | 2 +- docs/classes/Query.Query_Parser.html | 2 +- docs/classes/Query.Table_Builder.html | 2 +- .../Query.Table_Builder_Interface.html | 2 +- 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 | 75 + docs/errors.html | 104 + docs/graph_class.html | 72 + docs/img/apple-touch-icon-114x114.png | Bin 0 -> 28338 bytes docs/img/apple-touch-icon-72x72.png | Bin 0 -> 12751 bytes docs/img/apple-touch-icon.png | Bin 0 -> 8358 bytes docs/img/favicon.ico | Bin 0 -> 1150 bytes docs/img/glyphicons-halflings-white.png | Bin 0 -> 4352 bytes docs/img/glyphicons-halflings.png | Bin 0 -> 4352 bytes docs/img/icons/arrow_down.png | Bin 0 -> 606 bytes docs/img/icons/arrow_right.png | Bin 0 -> 628 bytes docs/img/icons/class.png | Bin 0 -> 395 bytes docs/img/icons/constant.png | Bin 0 -> 496 bytes docs/img/icons/favicon.ico | Bin 0 -> 1150 bytes docs/img/icons/file-php.png | Bin 0 -> 4017 bytes docs/img/icons/file.gif | Bin 0 -> 110 bytes docs/img/icons/folder.gif | Bin 0 -> 106 bytes docs/img/icons/function.png | Bin 0 -> 338 bytes docs/img/icons/icon-folder-open-big.png | Bin 0 -> 232 bytes docs/img/icons/icon-th-big.png | Bin 0 -> 106 bytes docs/img/icons/icon_template.svg | 93 + docs/img/icons/interface.png | Bin 0 -> 281 bytes docs/img/icons/method.png | Bin 0 -> 377 bytes docs/img/icons/ok.png | Bin 0 -> 3685 bytes docs/img/icons/property.png | Bin 0 -> 360 bytes docs/img/icons/search.gif | Bin 0 -> 152 bytes docs/img/icons/variable.png | Bin 0 -> 829 bytes docs/img/icons/view_source.png | Bin 0 -> 603 bytes docs/img/icons/visibility_private.png | Bin 0 -> 3433 bytes docs/img/icons/visibility_protected.png | Bin 0 -> 764 bytes docs/img/icons/visibility_public.png | Bin 0 -> 3451 bytes docs/img/iviewer/grab.cur | Bin 0 -> 1150 bytes docs/img/iviewer/hand.cur | Bin 0 -> 1150 bytes docs/img/iviewer/iviewer.rotate_left.png | Bin 0 -> 1493 bytes docs/img/iviewer/iviewer.rotate_right.png | Bin 0 -> 1482 bytes docs/img/iviewer/iviewer.zoom_fit.png | Bin 0 -> 1252 bytes docs/img/iviewer/iviewer.zoom_fit2.gif | Bin 0 -> 95 bytes docs/img/iviewer/iviewer.zoom_in.png | Bin 0 -> 1420 bytes docs/img/iviewer/iviewer.zoom_in2.gif | Bin 0 -> 90 bytes docs/img/iviewer/iviewer.zoom_out.png | Bin 0 -> 1416 bytes docs/img/iviewer/iviewer.zoom_out2.gif | Bin 0 -> 69 bytes docs/img/iviewer/iviewer.zoom_zero.png | Bin 0 -> 1091 bytes docs/img/iviewer/iviewer.zoom_zero2.gif | Bin 0 -> 98 bytes docs/img/loader.gif | Bin 0 -> 4726 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 | 111 + docs/namespaces/Query.Driver.html | 2 +- docs/namespaces/Query.html | 2 +- docs/namespaces/global.html | 88 + docs/packages/Default.html | 75 + docs/packages/Query.Core.html | 158 + docs/packages/Query.Drivers.html | 236 + docs/packages/Query.Query_Builder.html | 116 + docs/packages/Query.Table_Builder.html | 106 + docs/packages/Query.html | 430 + docs/structure.xml | 7301 +++++++++++++ 124 files changed, 29470 insertions(+), 27 deletions(-) create mode 100644 docs/classes.svg create mode 100644 docs/css/bootstrap-responsive.css create mode 100644 docs/css/bootstrap-responsive.min.css create mode 100644 docs/css/bootstrap.css create mode 100644 docs/css/bootstrap.min.css create mode 100644 docs/css/jquery.iviewer.css create mode 100644 docs/css/prettify.css create mode 100644 docs/css/template.css create mode 100644 docs/deprecated.html create mode 100644 docs/errors.html create mode 100644 docs/graph_class.html create mode 100644 docs/img/apple-touch-icon-114x114.png create mode 100644 docs/img/apple-touch-icon-72x72.png create mode 100644 docs/img/apple-touch-icon.png create mode 100644 docs/img/favicon.ico create mode 100644 docs/img/glyphicons-halflings-white.png create mode 100644 docs/img/glyphicons-halflings.png create mode 100644 docs/img/icons/arrow_down.png create mode 100644 docs/img/icons/arrow_right.png create mode 100644 docs/img/icons/class.png create mode 100644 docs/img/icons/constant.png create mode 100644 docs/img/icons/favicon.ico create mode 100644 docs/img/icons/file-php.png create mode 100644 docs/img/icons/file.gif create mode 100644 docs/img/icons/folder.gif create mode 100644 docs/img/icons/function.png create mode 100644 docs/img/icons/icon-folder-open-big.png create mode 100644 docs/img/icons/icon-th-big.png create mode 100644 docs/img/icons/icon_template.svg create mode 100644 docs/img/icons/interface.png create mode 100644 docs/img/icons/method.png create mode 100644 docs/img/icons/ok.png create mode 100644 docs/img/icons/property.png create mode 100644 docs/img/icons/search.gif create mode 100644 docs/img/icons/variable.png create mode 100644 docs/img/icons/view_source.png create mode 100644 docs/img/icons/visibility_private.png create mode 100644 docs/img/icons/visibility_protected.png create mode 100644 docs/img/icons/visibility_public.png create mode 100644 docs/img/iviewer/grab.cur create mode 100644 docs/img/iviewer/hand.cur create mode 100644 docs/img/iviewer/iviewer.rotate_left.png create mode 100644 docs/img/iviewer/iviewer.rotate_right.png create mode 100644 docs/img/iviewer/iviewer.zoom_fit.png create mode 100644 docs/img/iviewer/iviewer.zoom_fit2.gif create mode 100644 docs/img/iviewer/iviewer.zoom_in.png create mode 100644 docs/img/iviewer/iviewer.zoom_in2.gif create mode 100644 docs/img/iviewer/iviewer.zoom_out.png create mode 100644 docs/img/iviewer/iviewer.zoom_out2.gif create mode 100644 docs/img/iviewer/iviewer.zoom_zero.png create mode 100644 docs/img/iviewer/iviewer.zoom_zero2.gif create mode 100644 docs/img/loader.gif create mode 100644 docs/js/SVGPan.js create mode 100644 docs/js/bootstrap.js create mode 100644 docs/js/bootstrap.min.js create mode 100644 docs/js/jquery-1.4.2.min.js create mode 100644 docs/js/jquery-1.7.1.min.js create mode 100644 docs/js/jquery-ui-1.8.2.custom.min.js create mode 100644 docs/js/jquery.cookie.js create mode 100644 docs/js/jquery.iviewer.js create mode 100644 docs/js/jquery.iviewer.min.js create mode 100644 docs/js/jquery.mousewheel.min.js create mode 100644 docs/js/jquery.panzoom.js create mode 100644 docs/js/jquery.splitter.js create mode 100644 docs/js/jquery.tools.min.js create mode 100644 docs/js/jquery.treeview.js create mode 100644 docs/js/menu.js create mode 100644 docs/js/prettify/lang-apollo.js create mode 100644 docs/js/prettify/lang-clj.js create mode 100644 docs/js/prettify/lang-css.js create mode 100644 docs/js/prettify/lang-go.js create mode 100644 docs/js/prettify/lang-hs.js create mode 100644 docs/js/prettify/lang-lisp.js create mode 100644 docs/js/prettify/lang-lua.js create mode 100644 docs/js/prettify/lang-ml.js create mode 100644 docs/js/prettify/lang-n.js create mode 100644 docs/js/prettify/lang-proto.js create mode 100644 docs/js/prettify/lang-scala.js create mode 100644 docs/js/prettify/lang-sql.js create mode 100644 docs/js/prettify/lang-tex.js create mode 100644 docs/js/prettify/lang-vb.js create mode 100644 docs/js/prettify/lang-vhdl.js create mode 100644 docs/js/prettify/lang-wiki.js create mode 100644 docs/js/prettify/lang-xq.js create mode 100644 docs/js/prettify/lang-yaml.js create mode 100644 docs/js/prettify/prettify.min.js create mode 100644 docs/js/sidebar.js create mode 100644 docs/js/template.js create mode 100644 docs/markers.html create mode 100644 docs/namespaces/global.html create mode 100644 docs/packages/Default.html create mode 100644 docs/packages/Query.Core.html create mode 100644 docs/packages/Query.Drivers.html create mode 100644 docs/packages/Query.Query_Builder.html create mode 100644 docs/packages/Query.Table_Builder.html create mode 100644 docs/packages/Query.html create mode 100644 docs/structure.xml diff --git a/docs/classes.svg b/docs/classes.svg new file mode 100644 index 0000000..860b4d2 --- /dev/null +++ b/docs/classes.svg @@ -0,0 +1,284 @@ + + + + + + +G + +cluster_Global + + + + + + + + +\ + +cluster_\Query + + + + + + + + +Query + +cluster_\Query\Driver + + + + + + + + +Driver + + +\\Query\\Driver\\Firebird_Result + +Firebird_Result + + +\\PDOStatement + +\PDOStatement + + +\\Query\\Driver\\Firebird_Result->\\PDOStatement + + + + +\\Query\\Driver\\Firebird_Util + +Firebird_Util + + +\\Query\\Driver\\DB_Util + +«abstract» +DB_Util + + +\\Query\\Driver\\Firebird_Util->\\Query\\Driver\\DB_Util + + + + +\\Query\\Driver\\Firebird + +Firebird + + +\\Query\\Driver\\Abstract_Driver + +«abstract» +Abstract_Driver + + +\\Query\\Driver\\Firebird->\\Query\\Driver\\Abstract_Driver + + + + +\\Query\\Driver\\MySQL_Util + +MySQL_Util + + +\\Query\\Driver\\MySQL_Util->\\Query\\Driver\\DB_Util + + + + +\\Query\\Driver\\Driver_Interface + +Driver_Interface + + +\\Query\\Driver\\Abstract_Driver->\\Query\\Driver\\Driver_Interface + + + + +\\PDO + +\PDO + + +\\Query\\Driver\\Abstract_Driver->\\PDO + + + + +\\Query\\Driver\\SQLite_Util + +SQLite_Util + + +\\Query\\Driver\\SQLite_Util->\\Query\\Driver\\DB_Util + + + + +\\Query\\Driver\\PgSQL_Util + +PgSQL_Util + + +\\Query\\Driver\\PgSQL_Util->\\Query\\Driver\\DB_Util + + + + +\\Query\\Driver\\PgSQL_SQL + +PgSQL_SQL + + +\\Query\\Driver\\Abstract_SQL + +«abstract» +Abstract_SQL + + +\\Query\\Driver\\PgSQL_SQL->\\Query\\Driver\\Abstract_SQL + + + + +\\Query\\Driver\\MySQL_SQL + +MySQL_SQL + + +\\Query\\Driver\\MySQL_SQL->\\Query\\Driver\\Abstract_SQL + + + + +\\Query\\Driver\\Firebird_SQL + +Firebird_SQL + + +\\Query\\Driver\\Firebird_SQL->\\Query\\Driver\\Abstract_SQL + + + + +\\Query\\Driver\\SQLite + +SQLite + + +\\Query\\Driver\\SQLite->\\Query\\Driver\\Abstract_Driver + + + + +\\Query\\Driver\\SQLite_SQL + +SQLite_SQL + + +\\Query\\Driver\\SQLite_SQL->\\Query\\Driver\\Abstract_SQL + + + + +\\Query\\Driver\\SQL_Interface + +SQL_Interface + + +\\Query\\Driver\\Abstract_SQL->\\Query\\Driver\\SQL_Interface + + + + +\\Query\\Driver\\PgSQL + +PgSQL + + +\\Query\\Driver\\PgSQL->\\Query\\Driver\\Abstract_Driver + + + + +\\Query\\Driver\\MySQL + +MySQL + + +\\Query\\Driver\\MySQL->\\Query\\Driver\\Abstract_Driver + + + + +\\Query\\Query_Builder + +Query_Builder + + +\\Query\\Query_Builder_Interface + +Query_Builder_Interface + + +\\Query\\Query_Builder->\\Query\\Query_Builder_Interface + + + + +\\Query\\BadDBDriverException + +BadDBDriverException + + +\\InvalidArgumentException + +\InvalidArgumentException + + +\\Query\\BadDBDriverException->\\InvalidArgumentException + + + + +\\Query\\Connection_Manager + +Connection_Manager + + +\\Query\\Table_Builder + +Table_Builder + + +\\Query\\Table_Builder_Interface + +Table_Builder_Interface + + +\\Query\\Table_Builder->\\Query\\Table_Builder_Interface + + + + +\\Query\\Query_Parser + +Query_Parser + + + diff --git a/docs/classes/Query.BadDBDriverException.html b/docs/classes/Query.BadDBDriverException.html index b0ef339..99d5267 100644 --- a/docs/classes/Query.BadDBDriverException.html +++ b/docs/classes/Query.BadDBDriverException.html @@ -94,7 +94,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-02T17:05:03-04:00.
+ generated on 2014-04-02T17:09:12-04:00.
diff --git a/docs/classes/Query.Connection_Manager.html b/docs/classes/Query.Connection_Manager.html index 61442b6..b8633f8 100644 --- a/docs/classes/Query.Connection_Manager.html +++ b/docs/classes/Query.Connection_Manager.html @@ -279,7 +279,7 @@ Query method

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-02T17:05:03-04:00.
+ generated on 2014-04-02T17:09:12-04:00.
diff --git a/docs/classes/Query.Driver.Abstract_Driver.html b/docs/classes/Query.Driver.Abstract_Driver.html index 6ff854f..a3bd20e 100644 --- a/docs/classes/Query.Driver.Abstract_Driver.html +++ b/docs/classes/Query.Driver.Abstract_Driver.html @@ -529,7 +529,7 @@ the connection/database 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-02T17:05:03-04:00.
+ generated on 2014-04-02T17:09:12-04:00.
diff --git a/docs/classes/Query.Driver.Abstract_SQL.html b/docs/classes/Query.Driver.Abstract_SQL.html index 0c8bbf1..6168057 100644 --- a/docs/classes/Query.Driver.Abstract_SQL.html +++ b/docs/classes/Query.Driver.Abstract_SQL.html @@ -125,7 +125,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-02T17:05:03-04:00.
+ generated on 2014-04-02T17:09:12-04:00.
diff --git a/docs/classes/Query.Driver.DB_Util.html b/docs/classes/Query.Driver.DB_Util.html index 6e33321..c10d7c2 100644 --- a/docs/classes/Query.Driver.DB_Util.html +++ b/docs/classes/Query.Driver.DB_Util.html @@ -232,7 +232,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-02T17:05:03-04:00.
+ generated on 2014-04-02T17:09:12-04:00.
diff --git a/docs/classes/Query.Driver.Driver_Interface.html b/docs/classes/Query.Driver.Driver_Interface.html index 57082c3..4f455a3 100644 --- a/docs/classes/Query.Driver.Driver_Interface.html +++ b/docs/classes/Query.Driver.Driver_Interface.html @@ -238,7 +238,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-02T17:05:03-04:00.
+ generated on 2014-04-02T17:09:12-04:00.
diff --git a/docs/classes/Query.Driver.Firebird.html b/docs/classes/Query.Driver.Firebird.html index 65787f3..70a1ddd 100644 --- a/docs/classes/Query.Driver.Firebird.html +++ b/docs/classes/Query.Driver.Firebird.html @@ -463,7 +463,7 @@ the last query executed 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-02T17:05:04-04:00.
+ generated on 2014-04-02T17:09:12-04:00.
diff --git a/docs/classes/Query.Driver.Firebird_Result.html b/docs/classes/Query.Driver.Firebird_Result.html index 28fdf0a..c58e607 100644 --- a/docs/classes/Query.Driver.Firebird_Result.html +++ b/docs/classes/Query.Driver.Firebird_Result.html @@ -393,7 +393,7 @@ the query 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-02T17:05:03-04:00.
+ generated on 2014-04-02T17:09:12-04:00.
diff --git a/docs/classes/Query.Driver.Firebird_SQL.html b/docs/classes/Query.Driver.Firebird_SQL.html index 1a634c8..a5dd489 100644 --- a/docs/classes/Query.Driver.Firebird_SQL.html +++ b/docs/classes/Query.Driver.Firebird_SQL.html @@ -269,7 +269,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-02T17:05:03-04:00.
+ generated on 2014-04-02T17:09:12-04:00.
diff --git a/docs/classes/Query.Driver.Firebird_Util.html b/docs/classes/Query.Driver.Firebird_Util.html index ef72396..c33a46e 100644 --- a/docs/classes/Query.Driver.Firebird_Util.html +++ b/docs/classes/Query.Driver.Firebird_Util.html @@ -211,7 +211,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-02T17:05:04-04:00.
+ generated on 2014-04-02T17:09:12-04:00.
diff --git a/docs/classes/Query.Driver.MySQL.html b/docs/classes/Query.Driver.MySQL.html index d4678dd..0273a99 100644 --- a/docs/classes/Query.Driver.MySQL.html +++ b/docs/classes/Query.Driver.MySQL.html @@ -164,7 +164,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-02T17:05:04-04:00.
+ generated on 2014-04-02T17:09:12-04:00.
diff --git a/docs/classes/Query.Driver.MySQL_SQL.html b/docs/classes/Query.Driver.MySQL_SQL.html index 7a4d9ee..d7d1b61 100644 --- a/docs/classes/Query.Driver.MySQL_SQL.html +++ b/docs/classes/Query.Driver.MySQL_SQL.html @@ -274,7 +274,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-02T17:05:04-04:00.
+ generated on 2014-04-02T17:09:12-04:00.
diff --git a/docs/classes/Query.Driver.MySQL_Util.html b/docs/classes/Query.Driver.MySQL_Util.html index 0687334..1ac8145 100644 --- a/docs/classes/Query.Driver.MySQL_Util.html +++ b/docs/classes/Query.Driver.MySQL_Util.html @@ -316,7 +316,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-02T17:05:04-04:00.
+ generated on 2014-04-02T17:09:12-04:00.
diff --git a/docs/classes/Query.Driver.PgSQL.html b/docs/classes/Query.Driver.PgSQL.html index a8a7803..7f437a8 100644 --- a/docs/classes/Query.Driver.PgSQL.html +++ b/docs/classes/Query.Driver.PgSQL.html @@ -154,7 +154,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-02T17:05:04-04:00.
+ generated on 2014-04-02T17:09:12-04:00.
diff --git a/docs/classes/Query.Driver.PgSQL_SQL.html b/docs/classes/Query.Driver.PgSQL_SQL.html index afe0681..c19a13e 100644 --- a/docs/classes/Query.Driver.PgSQL_SQL.html +++ b/docs/classes/Query.Driver.PgSQL_SQL.html @@ -245,7 +245,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-02T17:05:04-04:00.
+ generated on 2014-04-02T17:09:12-04:00.
diff --git a/docs/classes/Query.Driver.PgSQL_Util.html b/docs/classes/Query.Driver.PgSQL_Util.html index fb9b658..33d469a 100644 --- a/docs/classes/Query.Driver.PgSQL_Util.html +++ b/docs/classes/Query.Driver.PgSQL_Util.html @@ -176,7 +176,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-02T17:05:04-04:00.
+ generated on 2014-04-02T17:09:12-04:00.
diff --git a/docs/classes/Query.Driver.SQL_Interface.html b/docs/classes/Query.Driver.SQL_Interface.html index bee0a0a..467867d 100644 --- a/docs/classes/Query.Driver.SQL_Interface.html +++ b/docs/classes/Query.Driver.SQL_Interface.html @@ -282,7 +282,7 @@ specified table 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-02T17:05:03-04:00.
+ generated on 2014-04-02T17:09:12-04:00.
diff --git a/docs/classes/Query.Driver.SQLite.html b/docs/classes/Query.Driver.SQLite.html index 9b1bfab..f85e8a0 100644 --- a/docs/classes/Query.Driver.SQLite.html +++ b/docs/classes/Query.Driver.SQLite.html @@ -206,7 +206,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-02T17:05:03-04:00.
+ generated on 2014-04-02T17:09:12-04:00.
diff --git a/docs/classes/Query.Driver.SQLite_SQL.html b/docs/classes/Query.Driver.SQLite_SQL.html index b77cb6b..02b2995 100644 --- a/docs/classes/Query.Driver.SQLite_SQL.html +++ b/docs/classes/Query.Driver.SQLite_SQL.html @@ -245,7 +245,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-02T17:05:03-04:00.
+ generated on 2014-04-02T17:09:12-04:00.
diff --git a/docs/classes/Query.Driver.SQLite_Util.html b/docs/classes/Query.Driver.SQLite_Util.html index b559f85..f7d209c 100644 --- a/docs/classes/Query.Driver.SQLite_Util.html +++ b/docs/classes/Query.Driver.SQLite_Util.html @@ -224,7 +224,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-02T17:05:03-04:00.
+ generated on 2014-04-02T17:09:12-04:00.
diff --git a/docs/classes/Query.Query_Builder.html b/docs/classes/Query.Query_Builder.html index 0d78dc4..05cba87 100644 --- a/docs/classes/Query.Query_Builder.html +++ b/docs/classes/Query.Query_Builder.html @@ -1494,7 +1494,7 @@ array( 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-02T17:05:03-04:00.
+ generated on 2014-04-02T17:09:12-04:00.
diff --git a/docs/classes/Query.Query_Builder_Interface.html b/docs/classes/Query.Query_Builder_Interface.html index 9b5ed5f..cc66c6c 100644 --- a/docs/classes/Query.Query_Builder_Interface.html +++ b/docs/classes/Query.Query_Builder_Interface.html @@ -904,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-02T17:05:03-04:00.
+ generated on 2014-04-02T17:09:12-04:00.
diff --git a/docs/classes/Query.Query_Parser.html b/docs/classes/Query.Query_Parser.html index e92d39b..648b054 100644 --- a/docs/classes/Query.Query_Parser.html +++ b/docs/classes/Query.Query_Parser.html @@ -208,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-02T17:05:03-04:00.
+ generated on 2014-04-02T17:09:12-04:00.
diff --git a/docs/classes/Query.Table_Builder.html b/docs/classes/Query.Table_Builder.html index e2fe9ff..401066b 100644 --- a/docs/classes/Query.Table_Builder.html +++ b/docs/classes/Query.Table_Builder.html @@ -417,7 +417,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-02T17:05:03-04:00.
+ generated on 2014-04-02T17:09:12-04:00.
diff --git a/docs/classes/Query.Table_Builder_Interface.html b/docs/classes/Query.Table_Builder_Interface.html index 3af882e..2a77720 100644 --- a/docs/classes/Query.Table_Builder_Interface.html +++ b/docs/classes/Query.Table_Builder_Interface.html @@ -120,7 +120,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-02T17:05:03-04:00.
+ generated on 2014-04-02T17:09:12-04:00.
diff --git a/docs/css/bootstrap-responsive.css b/docs/css/bootstrap-responsive.css new file mode 100644 index 0000000..4b032cd --- /dev/null +++ b/docs/css/bootstrap-responsive.css @@ -0,0 +1,567 @@ +/*! + * 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 new file mode 100644 index 0000000..bc3f2ab --- /dev/null +++ b/docs/css/bootstrap-responsive.min.css @@ -0,0 +1,3 @@ + +.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 new file mode 100644 index 0000000..563050c --- /dev/null +++ b/docs/css/bootstrap.css @@ -0,0 +1,3370 @@ +/*! + * 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 new file mode 100644 index 0000000..d522124 --- /dev/null +++ b/docs/css/bootstrap.min.css @@ -0,0 +1,611 @@ +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 new file mode 100644 index 0000000..d68c642 --- /dev/null +++ b/docs/css/jquery.iviewer.css @@ -0,0 +1,91 @@ +.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 new file mode 100644 index 0000000..d44b3a2 --- /dev/null +++ b/docs/css/prettify.css @@ -0,0 +1 @@ +.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 new file mode 100644 index 0000000..45d6196 --- /dev/null +++ b/docs/css/template.css @@ -0,0 +1,527 @@ +@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 new file mode 100644 index 0000000..824471c --- /dev/null +++ b/docs/deprecated.html @@ -0,0 +1,75 @@ + + + + + +Query + + + + + + + + + + +
+ +
+
+
+ +
No deprecated elements have been + found in this project. +
+
+
+
+
+
+ + diff --git a/docs/errors.html b/docs/errors.html new file mode 100644 index 0000000..98a7c01 --- /dev/null +++ b/docs/errors.html @@ -0,0 +1,104 @@ + + + + + +Query + + + + + + + + + + +
+ +
+
+
+ +
No errors have been found in this project.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + diff --git a/docs/graph_class.html b/docs/graph_class.html new file mode 100644 index 0000000..36b0c61 --- /dev/null +++ b/docs/graph_class.html @@ -0,0 +1,72 @@ + + + + + +Query + + + + + + + + + + +
+ +
+
+
+ + diff --git a/docs/img/apple-touch-icon-114x114.png b/docs/img/apple-touch-icon-114x114.png new file mode 100644 index 0000000000000000000000000000000000000000..1506f6a668fbb2837c06b561895da248c310ac53 GIT binary patch literal 28338 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�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 literal 0 HcmV?d00001 diff --git a/docs/img/apple-touch-icon.png b/docs/img/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..2d320cb5e1215894ef37cf8c6fd7a0085eba06f3 GIT binary patch literal 8358 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 LNHCv2rc(U_{c|km literal 0 HcmV?d00001 diff --git a/docs/img/glyphicons-halflings-white.png b/docs/img/glyphicons-halflings-white.png new file mode 100644 index 0000000000000000000000000000000000000000..a20760bfde58d1c92cee95116059fba03c68d689 GIT binary patch literal 4352 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 literal 0 HcmV?d00001 diff --git a/docs/img/icons/arrow_down.png b/docs/img/icons/arrow_down.png new file mode 100644 index 0000000000000000000000000000000000000000..61505adc46d8fa4156d9b31831ebe6770f0e2757 GIT binary patch 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 literal 0 HcmV?d00001 diff --git a/docs/img/icons/arrow_right.png b/docs/img/icons/arrow_right.png new file mode 100644 index 0000000000000000000000000000000000000000..60c5927ebf63f388b45315cbc4cc56a77b9f903c GIT binary patch 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;& literal 0 HcmV?d00001 diff --git a/docs/img/icons/constant.png b/docs/img/icons/constant.png new file mode 100644 index 0000000000000000000000000000000000000000..f5f180d5a9b09a19b5ae44ad64a1fdceb6a86d7c GIT binary patch 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 literal 0 HcmV?d00001 diff --git a/docs/img/icons/file-php.png b/docs/img/icons/file-php.png new file mode 100644 index 0000000000000000000000000000000000000000..c323f09f66241a28d61f1d2c8e90be0a68126bb6 GIT binary patch literal 4017 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 L;uWgGz+epk&R;19 literal 0 HcmV?d00001 diff --git a/docs/img/icons/folder.gif b/docs/img/icons/folder.gif new file mode 100644 index 0000000000000000000000000000000000000000..2b31631ca2bfec3a8afb1bfdd4f8ed4c5bcc3a18 GIT binary patch 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_ literal 0 HcmV?d00001 diff --git a/docs/img/icons/icon-folder-open-big.png b/docs/img/icons/icon-folder-open-big.png new file mode 100644 index 0000000000000000000000000000000000000000..fae384ef4df761b2d6cc250ed5787e430ae91663 GIT binary patch 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 literal 0 HcmV?d00001 diff --git a/docs/img/icons/icon-th-big.png b/docs/img/icons/icon-th-big.png new file mode 100644 index 0000000000000000000000000000000000000000..04b0ad872a98de63bc0e300e627ce69a2a209471 GIT binary patch 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 literal 0 HcmV?d00001 diff --git a/docs/img/icons/icon_template.svg b/docs/img/icons/icon_template.svg new file mode 100644 index 0000000..b0428aa --- /dev/null +++ b/docs/img/icons/icon_template.svg @@ -0,0 +1,93 @@ + + + + + + + + + + + + image/svg+xml + + + + + + + + + Co + + diff --git a/docs/img/icons/interface.png b/docs/img/icons/interface.png new file mode 100644 index 0000000000000000000000000000000000000000..51a3a1762db628e8cbbfb4d933a74b4d962d2d7e GIT binary patch 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 literal 0 HcmV?d00001 diff --git a/docs/img/icons/ok.png b/docs/img/icons/ok.png new file mode 100644 index 0000000000000000000000000000000000000000..39f287ab19b8bcdc156ea56355a95290d04f0ee8 GIT binary patch literal 3685 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 AIsgCw literal 0 HcmV?d00001 diff --git a/docs/img/icons/search.gif b/docs/img/icons/search.gif new file mode 100644 index 0000000000000000000000000000000000000000..eef46fc9ee10547bfa2da348f81b4c83f19e65a4 GIT binary patch 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 literal 0 HcmV?d00001 diff --git a/docs/img/icons/visibility_private.png b/docs/img/icons/visibility_private.png new file mode 100644 index 0000000000000000000000000000000000000000..386dc2d879d20cf85e4eeaaeb29e66bfe8398995 GIT binary patch literal 3433 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 literal 0 HcmV?d00001 diff --git a/docs/img/iviewer/grab.cur b/docs/img/iviewer/grab.cur new file mode 100644 index 0000000000000000000000000000000000000000..ef540be09383a215ba21287683ae956b74a6dbbf GIT binary patch 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 literal 0 HcmV?d00001 diff --git a/docs/img/iviewer/hand.cur b/docs/img/iviewer/hand.cur new file mode 100644 index 0000000000000000000000000000000000000000..1a5bafb5263fd4937dda4098b04aa5c70e2de924 GIT binary patch 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 literal 0 HcmV?d00001 diff --git a/docs/img/iviewer/iviewer.rotate_right.png b/docs/img/iviewer/iviewer.rotate_right.png new file mode 100644 index 0000000000000000000000000000000000000000..7a6c829871d058af5a5ca0ac67256c259f84c5ac GIT binary patch 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 literal 0 HcmV?d00001 diff --git a/docs/img/iviewer/iviewer.zoom_fit.png b/docs/img/iviewer/iviewer.zoom_fit.png new file mode 100644 index 0000000000000000000000000000000000000000..364e01d90eae19584713851314629f2468198e9e GIT binary patch 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|> literal 0 HcmV?d00001 diff --git a/docs/img/iviewer/iviewer.zoom_in.png b/docs/img/iviewer/iviewer.zoom_in.png new file mode 100644 index 0000000000000000000000000000000000000000..78993327c62ddd64e7fe33bc1b0d469ef9e17f30 GIT binary patch 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 literal 0 HcmV?d00001 diff --git a/docs/img/iviewer/iviewer.zoom_in2.gif b/docs/img/iviewer/iviewer.zoom_in2.gif new file mode 100644 index 0000000000000000000000000000000000000000..5d596181627a30344f9783d466ce0558279fe729 GIT binary patch literal 90 zcmZ?wbhEHblwpuzXkcUjg8%>j>wsvG2m_O4Pyfo(Z}}I`;fT1UbHL~G(^^jrxfIDc qOSLxju^l&BbLLyj{a>m(=kzlMwFoEmw|glD9`i8f>~-Q|um%7;9UyH0 literal 0 HcmV?d00001 diff --git a/docs/img/iviewer/iviewer.zoom_out.png b/docs/img/iviewer/iviewer.zoom_out.png new file mode 100644 index 0000000000000000000000000000000000000000..893f3502baaab667354fe8b560c1712b72630836 GIT binary patch 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 literal 0 HcmV?d00001 diff --git a/docs/img/iviewer/iviewer.zoom_out2.gif b/docs/img/iviewer/iviewer.zoom_out2.gif new file mode 100644 index 0000000000000000000000000000000000000000..77ec19af216c5525438e73e4fafef1ce08db3cf3 GIT binary patch literal 69 zcmZ?wbhEHblwpuzXkcUjg8%>j>wsvG2m_N!Pyfo(Z}}I`*>bCU^SwRQTrH10rZprj VQ(Lv|A^Y)9KG(nX7PB%~0{{a@8tMQ5 literal 0 HcmV?d00001 diff --git a/docs/img/iviewer/iviewer.zoom_zero.png b/docs/img/iviewer/iviewer.zoom_zero.png new file mode 100644 index 0000000000000000000000000000000000000000..c981db6d690774d0c2e67e21c9081d5c89b5fd2d GIT binary patch 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 literal 0 HcmV?d00001 diff --git a/docs/img/iviewer/iviewer.zoom_zero2.gif b/docs/img/iviewer/iviewer.zoom_zero2.gif new file mode 100644 index 0000000000000000000000000000000000000000..e56c670fe62062458276fab5512701433b37af4e GIT binary patch literal 98 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 literal 0 HcmV?d00001 diff --git a/docs/js/SVGPan.js b/docs/js/SVGPan.js new file mode 100644 index 0000000..4966b99 --- /dev/null +++ b/docs/js/SVGPan.js @@ -0,0 +1,232 @@ +/** + * 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 new file mode 100644 index 0000000..c832ccb --- /dev/null +++ b/docs/js/bootstrap.js @@ -0,0 +1,1722 @@ +/* =================================================== + * 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 = $(' diff --git a/docs/namespaces/Query.html b/docs/namespaces/Query.html index 99a64dc..42b49f2 100644 --- a/docs/namespaces/Query.html +++ b/docs/namespaces/Query.html @@ -286,7 +286,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-02T17:05:03-04:00.
+ generated on 2014-04-02T17:09:11-04:00.
diff --git a/docs/namespaces/global.html b/docs/namespaces/global.html new file mode 100644 index 0000000..734458b --- /dev/null +++ b/docs/namespaces/global.html @@ -0,0 +1,88 @@ + + + + + +Query » global + + + + + + + + + + +
+ + +
+
+ + diff --git a/docs/packages/Default.html b/docs/packages/Default.html new file mode 100644 index 0000000..0e99603 --- /dev/null +++ b/docs/packages/Default.html @@ -0,0 +1,75 @@ + + + + + +Query » Default + + + + + + + + + + +
+ +
+
+
+ +
+ +
+
+
+
+
+ + diff --git a/docs/packages/Query.Core.html b/docs/packages/Query.Core.html new file mode 100644 index 0000000..caa9e46 --- /dev/null +++ b/docs/packages/Query.Core.html @@ -0,0 +1,158 @@ + + + + + +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.Drivers.html b/docs/packages/Query.Drivers.html new file mode 100644 index 0000000..d64b835 --- /dev/null +++ b/docs/packages/Query.Drivers.html @@ -0,0 +1,236 @@ + + + + + +Query » Query\Drivers + + + + + + + + + + +
+ +
+ +
+ +
+

+ 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/packages/Query.Query_Builder.html b/docs/packages/Query.Query_Builder.html new file mode 100644 index 0000000..559591d --- /dev/null +++ b/docs/packages/Query.Query_Builder.html @@ -0,0 +1,116 @@ + + + + + +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 new file mode 100644 index 0000000..6513372 --- /dev/null +++ b/docs/packages/Query.Table_Builder.html @@ -0,0 +1,106 @@ + + + + + +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 new file mode 100644 index 0000000..ee75a32 --- /dev/null +++ b/docs/packages/Query.html @@ -0,0 +1,430 @@ + + + + + +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 new file mode 100644 index 0000000..87fd04f --- /dev/null +++ b/docs/structure.xml @@ -0,0 +1,7301 @@ + + + + + + Query + Free Query Builder / Database Abstraction Layer + + + + + + + + SQL_Interface + \Query\Driver\SQL_Interface + + parent for database manipulation subclasses + + + + + + limit + \Query\Driver\SQL_Interface::limit() + + Get database specific sql for limit clause + + + + string + + + int + + + int + + + string + + + + $sql + + string + + + $limit + + int + + + $offset + FALSE + int + + + + explain + \Query\Driver\SQL_Interface::explain() + + Modify the query to get the query plan + + + string + + + string + + + + $sql + + string + + + + random + \Query\Driver\SQL_Interface::random() + + Get the sql for random ordering + + + + string + + + + + db_list + \Query\Driver\SQL_Interface::db_list() + + Returns sql to list other databases + + + string + + + + + table_list + \Query\Driver\SQL_Interface::table_list() + + Returns sql to list tables + + + string + + + + + system_table_list + \Query\Driver\SQL_Interface::system_table_list() + + Returns sql to list system tables + + + string + + + + + view_list + \Query\Driver\SQL_Interface::view_list() + + Returns sql to list views + + + string + + + + + trigger_list + \Query\Driver\SQL_Interface::trigger_list() + + Returns sql to list triggers + + + string + + + + + function_list + \Query\Driver\SQL_Interface::function_list() + + Return sql to list functions + + + NULL + + + + + procedure_list + \Query\Driver\SQL_Interface::procedure_list() + + Return sql to list stored procedures + + + string + + + + + sequence_list + \Query\Driver\SQL_Interface::sequence_list() + + Return sql to list sequences + + + string + + + + + type_list + \Query\Driver\SQL_Interface::type_list() + + Return sql to list database field types + + + string + array + + + + + column_list + \Query\Driver\SQL_Interface::column_list() + + Get information about the columns in the +specified table + + + string + + + string + + + + $table + + string + + + + eJytVk1v1DAQPSe/Yg49tFW7gaonCqKFfgi0IJWCuCCtHGeSWE3s1B+FCPjvjO1kt6t2RRaxl3Vm570382xP9uXrru7SbH8/hX24dqh7Wvj1pUaMAXjjRFOghgzOmWU5MwhnubGacSuUhDnrUQ+oU+ZsrXSSfBatsnUP72fwlWmNMvzKVddrUdU2eTuuYJfvwdGz50dw6L+OQ14j5C0kSW1tZ15kWSVs7fIZV23G7gWzxySbjcX6bI7SYMyn9K4WjbFOV6gkgWbuNuOqwKzIWXE4JAdgx/gtqwg4cmVpmmVw+N8+aSpZi4Z0Bi+/nWtxj/okHS3vGHljoVQaitHclknRuYYFd43LecOMQTNaPFQNKwMoZwxGfhN6EdKiLr32zfV88W759DNNEy+fEPYK7UrYdMhFKTiYuyaU1IhWWCB9R45ReoCcsmHz4xN1wFqgiJAV7BDyYZhKgJ3A8iiqytLgENZI2yUHEh/K0qRzOe0VlE7GYxZYdr3AwUB5MJK8ujyb31zsnTzo64MqRNmDrRHuwiG2CirqdRXoGiZXPW3oYkph+IOohAylrdVwNeiNbmomC9WC0nSZBrqnDJ2iGal21+Q+BZwJctRtI4wFuoO4OllmJTlFpMgXnuTvKsTebEseMBP5TW8stv8kE6GLbdTuBX7fUsVDpnpFU6/yN3Q7tyJqo8aaxIh6rPHxy3y+QWFcTJMwVmksoNOKY+H0truyxE1UQ7qykm+99wNsmshyCpYCmwJs323U+0VvNNZv2ioCPqHoh4GQNAbaONdZrlwcD1w1rqVTIqR/DMnDICaHw8HdNKaWP07zIwrF2iLWV/jbv/IuZAGq9H4slm+NGf0z+APfNnoJ + + + + Query + Free Query Builder / Database Abstraction Layer + + + + + + + + \PDOStatement + Firebird_Result + \Query\Driver\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 + \Query\Driver\Firebird_Result::__construct() + + Create the object by passing the resource for +the query + + + resource + + + + $link + + resource + + + + bindColumn + \Query\Driver\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 + \Query\Driver\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 + \Query\Driver\Firebird_Result::bindValue() + + Invalidate method for data consistency + + + mixed + + + mixed + + + int + + + NULL + + + + $parameter + + mixed + + + $variable + + mixed + + + $data_type + NULL + int + + + + execute + \Query\Driver\Firebird_Result::execute() + + Run a prepared statement query + + + array + + + \Query\Driver\Firebird_Result + + + + $args + NULL + array + + + + fetch + \Query\Driver\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 + \Query\Driver\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 + \Query\Driver\Firebird_Result::fetchColumn() + + Emulate PDOStatement::fetchColumn + + + int + + + mixed + + + + $column_num + 0 + int + + + + fetchObject + \Query\Driver\Firebird_Result::fetchObject() + + Emulate PDOStatement::fetchObject, but only for the default use + + + string + + + array + + + \Query\Driver\stdClass + + + + $class_name + 'stdClass' + string + + + $ctor_args + array() + array + + + + rowCount + \Query\Driver\Firebird_Result::rowCount() + + Return the number of rows affected by the previous query + + + int + + + + + errorCode + \Query\Driver\Firebird_Result::errorCode() + + Method to emulate PDOStatement->errorCode + + + string + + + + + errorInfo + \Query\Driver\Firebird_Result::errorInfo() + + Method to emulate PDO->errorInfo / PDOStatement->errorInfo + + + array + + + + + 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 + + + + Query + Free Query Builder / Database Abstraction Layer + + + + + + + + \Query\Driver\DB_Util + Firebird_Util + \Query\Driver\Firebird_Util + + Firebird-specific backup, import and creation methods + + + + + + backup_structure + \Query\Driver\Firebird_Util::backup_structure() + + Create an SQL backup file for the current database's structure + + + + string + + + + + backup_data + \Query\Driver\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 + + eJytVt9v2zYQfpb+ipthTFLhWG3Rp7ju4thO58Gxl9jZHprCoCTa4iKJCkklNYr87zuSkuwE2YBh9Yul4919990v6uMvZVq64Zs3LryBq4qKPT7o5wtBqRXAecWyhAoIYUIUiYikMIqkEiRWjBcwJ3sqaquzksR3ZEcdp/EFZ6RSKReOs2Y5V+kefuvDn0QIWpjTmJd7wXapcsbNE/hxAO/fvnsPJ/rvg9HLWHEHjpMqVcrTMNwxlVZRP+Z5SB4YUR8wkvCAmbGYFpJafVQvU5ZJVYkd5QUa9au7MOYJDZOIJCe1MhqGrhuGcPLDfq5bkJxKTEqdy9uJYA9UDNwm5RdM0IiJ5ESWNGZbFkOEGazKHrC85EIBKRKIBSUm1TnFVCbyRbLhwFtWUSO0SNKIrR1g1skedlRt5F4qmm+wmhmVfvC60munPPqLxgruNaKPPcCKHXTlfRaY7MUZkbLltLlRLAP6TdEikTA5t+/fXdfR5B30OtbEKHKE1dW8Zg5bllHYcgEqpRBXulMUJHXneRIQtYqxltS4ONN1HHOkiqRnu4I3ckFRpwAboxaFrlNWERYbtlVhW9ciblqPyNX57joONsF6OVnCLC8zmmv8cxtbq9n6QO0ayfMGrvOk2f3YFvp/2dKP2vrfk1USQfK69F36Lc6q5NlJxHmGdT7umv+cZR2J3zgfGiw/6L3wOrwYzVfTQxkmVFGRs4LCY8riFKwWKA4VTqzjsK3/3AEMh7C+vtEujA+n28gtvU1OcQv4XZUyefLplVnAiA5njTDA0mJtHYdmBvaF51csrIElccEyZAG8UqZKtdmeV5DwwlPwSAplucBPQPNS7ds8Bf/II2Fb5G6FvbZoB9wuwpUV0rvP0EY3pw3mM7VR6HKYxqEE82rnGjVQogWNZyAS2R2CqL2tpvPpeK331/XyEjpeH+ufo03Q9zp6DFBTHGfG7guzKOwp4m1qDfw7+bSlKk5HWebf/j5Znp5eTNfjXzej1Wo5DkzgphdMskiS6PJrCqb32faQVGDS5k9b4IEf86pQfoMWwEd4F0DMC8WKiraOFySy48OzKi/A7GyIzBJUesHpszu6l8C3Na6QCgR/NFSslaZyZiujVVvML2+/1gy6DC8ZoTZo11bRP7Crp1v7t4o4VCjQ20dqlbYwTep0ZdCXro0tjqNf2/54IFmFjWhULIhGuao4gtgz7aGgNKGJJqv2JTVa2IZ6nEuOxqoH3vXkvOsFOFdDaIazRXwOmZPSt7R+NnVH43uN5+mhsnG8buTp9vGeKT25LaVNfc9g380Wq+n1GmaL9fJF14GP73hnZrjhfK/T62h3dWn0eQB/jOY30xX4R2q9BrPvBQNv4B5ncXEznzeSo8p9+Wp6to3KRGuDPZ64/hA6t8VtsZqucR2NFqvReD1bLga3RaeFR4UO4h85D/ooGy8vL2frQaed5HrHHrk3F82T/laZ4ucBduW2uXIrvGL7+En3N4MI6z4= + + + + Query + Free Query Builder / Database Abstraction Layer + + + + + + + + + \Query\Query_Builder_Interface + Query_Builder + \Query\Query_Builder + + Convienience class for creating sql queries - also the class that +instantiates the specific db driver + + + + + + $select_string + '' + + Compiled 'select' clause + + + \Query\type + + + + + $from_string + + + Compiled 'from' clause + + + \Query\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 + + + \Query\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 + + + \Query\Driver_Interface + + + + + $parser + + + Query parser class instance + + + \Query\Query_Parser + + + + + $util + + + Alias to $this->db->util + + + \Query\DB_Util + + + + + $sql + + + Alias to $this->db->sql + + + \Query\SQL_Interface + + + + + __construct + \Query\Query_Builder::__construct() + + Constructor + + + \Query\Driver\Driver_Interface + + + + $db + + \Query\Driver\Driver_Interface + + + + __destruct + \Query\Query_Builder::__destruct() + + Destructor + + + + + _select + \Query\Query_Builder::_select() + + Method to simplify select_ methods + + + string + + + string + + + string + + + + $field + + string + + + $as + FALSE + string + + + + select + \Query\Query_Builder::select() + + Specifies rows to select in a query + + + string + + + \Query\Query_Builder + + + + $fields + + string + + + + select_max + \Query\Query_Builder::select_max() + + Selects the maximum value of a field from a query + + + string + + + string + + + \Query\Query_Builder + + + + $field + + string + + + $as + FALSE + string + + + + select_min + \Query\Query_Builder::select_min() + + Selects the minimum value of a field from a query + + + string + + + string + + + \Query\Query_Builder + + + + $field + + string + + + $as + FALSE + string + + + + select_avg + \Query\Query_Builder::select_avg() + + Selects the average value of a field from a query + + + string + + + string + + + \Query\Query_Builder + + + + $field + + string + + + $as + FALSE + string + + + + select_sum + \Query\Query_Builder::select_sum() + + Selects the sum of a field from a query + + + string + + + string + + + \Query\Query_Builder + + + + $field + + string + + + $as + FALSE + string + + + + distinct + \Query\Query_Builder::distinct() + + Adds the 'distinct' keyword to a query + + + \Query\Query_Builder + + + + + explain + \Query\Query_Builder::explain() + + Tell the database to give you the query plan instead of result set + + + \Query\Query_Builder + + + + + from + \Query\Query_Builder::from() + + Specify the database table to select from + + + string + + + \Query\Query_Builder + + + + $tblname + + string + + + + _like + \Query\Query_Builder::_like() + + Simplify 'like' methods + + + string + + + mixed + + + string + + + string + + + string + + + \Query\Query_Builder + + + + $field + + string + + + $val + + mixed + + + $pos + + string + + + $like + 'LIKE' + string + + + $conj + 'AND' + string + + + + like + \Query\Query_Builder::like() + + Creates a Like clause in the sql statement + + + string + + + mixed + + + string + + + \Query\Query_Builder + + + + $field + + string + + + $val + + mixed + + + $pos + 'both' + string + + + + or_like + \Query\Query_Builder::or_like() + + Generates an OR Like clause + + + string + + + mixed + + + string + + + \Query\Query_Builder + + + + $field + + string + + + $val + + mixed + + + $pos + 'both' + string + + + + not_like + \Query\Query_Builder::not_like() + + Generates a NOT LIKE clause + + + string + + + mixed + + + string + + + \Query\Query_Builder + + + + $field + + string + + + $val + + mixed + + + $pos + 'both' + string + + + + or_not_like + \Query\Query_Builder::or_not_like() + + Generates a OR NOT LIKE clause + + + string + + + mixed + + + string + + + \Query\Query_Builder + + + + $field + + string + + + $val + + mixed + + + $pos + 'both' + string + + + + _having + \Query\Query_Builder::_having() + + Simplify building having clauses + + + mixed + + + mixed + + + string + + + \Query\Query_Builder + + + + $key + + mixed + + + $val + array() + mixed + + + $conj + 'AND' + string + + + + having + \Query\Query_Builder::having() + + Generates a 'Having' clause + + + mixed + + + mixed + + + \Query\Query_Builder + + + + $key + + mixed + + + $val + array() + mixed + + + + or_having + \Query\Query_Builder::or_having() + + Generates a 'Having' clause prefixed with 'OR' + + + mixed + + + mixed + + + \Query\Query_Builder + + + + $key + + mixed + + + $val + array() + mixed + + + + _where + \Query\Query_Builder::_where() + + Do all the repeditive stuff for where/having type methods + + + mixed + + + mixed + + + array + + + + $key + + mixed + + + $val + array() + mixed + + + + _where_string + \Query\Query_Builder::_where_string() + + Simplify generating where string + + + mixed + + + mixed + + + string + + + \Query\Query_Builder + + + + $key + + mixed + + + $val + array() + mixed + + + $conj + 'AND' + string + + + + _where_in + \Query\Query_Builder::_where_in() + + Simplify where_in methods + + + mixed + + + mixed + + + string + + + string + + + \Query\Query_Builder + + + + $key + + mixed + + + $val + array() + mixed + + + $in + 'IN' + string + + + $conj + 'AND' + string + + + + where + \Query\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\Query_Builder + + + + $key + + mixed + + + $val + array() + mixed + + + $escape + NULL + mixed + + + + or_where + \Query\Query_Builder::or_where() + + Where clause prefixed with "OR" + + + string + + + mixed + + + \Query\Query_Builder + + + + $key + + string + + + $val + array() + mixed + + + + where_in + \Query\Query_Builder::where_in() + + Where clause with 'IN' statement + + + mixed + + + mixed + + + \Query\Query_Builder + + + + $field + + mixed + + + $val + array() + mixed + + + + or_where_in + \Query\Query_Builder::or_where_in() + + Where in statement prefixed with "or" + + + string + + + mixed + + + \Query\Query_Builder + + + + $field + + string + + + $val + array() + mixed + + + + where_not_in + \Query\Query_Builder::where_not_in() + + WHERE NOT IN (FOO) clause + + + string + + + mixed + + + \Query\Query_Builder + + + + $field + + string + + + $val + array() + mixed + + + + or_where_not_in + \Query\Query_Builder::or_where_not_in() + + OR WHERE NOT IN (FOO) clause + + + string + + + mixed + + + \Query\Query_Builder + + + + $field + + string + + + $val + array() + mixed + + + + set + \Query\Query_Builder::set() + + Sets values for inserts / updates / deletes + + + mixed + + + mixed + + + \Query\Query_Builder + + + + $key + + mixed + + + $val + NULL + mixed + + + + join + \Query\Query_Builder::join() + + Creates a join phrase in a compiled query + + + string + + + string + + + string + + + \Query\Query_Builder + + + + $table + + string + + + $condition + + string + + + $type + '' + string + + + + group_by + \Query\Query_Builder::group_by() + + Group the results by the selected field(s) + + + mixed + + + \Query\Query_Builder + + + + $field + + mixed + + + + order_by + \Query\Query_Builder::order_by() + + Order the results by the selected field(s) + + + string + + + string + + + \Query\Query_Builder + + + + $field + + string + + + $type + "" + string + + + + limit + \Query\Query_Builder::limit() + + Set a limit on the current sql statement + + + int + + + int + + + \Query\Query_Builder + + + + $limit + + int + + + $offset + FALSE + int + + + + group_start + \Query\Query_Builder::group_start() + + Adds a paren to the current query for query grouping + + + \Query\Query_Builder + + + + + or_group_start + \Query\Query_Builder::or_group_start() + + Adds a paren to the current query for query grouping, +prefixed with 'OR' + + + \Query\Query_Builder + + + + + or_not_group_start + \Query\Query_Builder::or_not_group_start() + + Adds a paren to the current query for query grouping, +prefixed with 'OR NOT' + + + \Query\Query_Builder + + + + + group_end + \Query\Query_Builder::group_end() + + Ends a query group + + + \Query\Query_Builder + + + + + get + \Query\Query_Builder::get() + + Select and retrieve all records from the current table, and/or +execute current compiled query + + + + int + + + int + + + \Query\PDOStatement + + + + $table + '' + mixed + + + $limit + FALSE + int + + + $offset + FALSE + int + + + + get_where + \Query\Query_Builder::get_where() + + Convience method for get() with a where clause + + + string + + + array + + + int + + + int + + + \Query\PDOStatement + + + + $table + + string + + + $where + array() + array + + + $limit + FALSE + int + + + $offset + FALSE + int + + + + count_all + \Query\Query_Builder::count_all() + + Retreive the number of rows in the selected table + + + string + + + int + + + + $table + + string + + + + count_all_results + \Query\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\Query_Builder::insert() + + Creates an insert clause, and executes it + + + string + + + mixed + + + \Query\PDOStatement + + + + $table + + string + + + $data + array() + mixed + + + + insert_batch + \Query\Query_Builder::insert_batch() + + Creates and executes a batch insertion query + + + string + + + array + + + \Query\PDOStatement + + + + $table + + string + + + $data + array() + array + + + + update + \Query\Query_Builder::update() + + Creates an update clause, and executes it + + + string + + + mixed + + + \Query\PDOStatement + + + + $table + + string + + + $data + array() + mixed + + + + delete + \Query\Query_Builder::delete() + + Deletes data from a table + + + string + + + mixed + + + \Query\PDOStatement + + + + $table + + string + + + $where + '' + mixed + + + + _get_compile + \Query\Query_Builder::_get_compile() + + Helper function for returning sql strings + + + string + + + string + + + bool + + + + + $type + + string + + + $table + + string + + + $reset + + bool + + + + get_compiled_select + \Query\Query_Builder::get_compiled_select() + + Returns the generated 'select' sql query + + + string + + + bool + + + string + + + + $table + '' + string + + + $reset + TRUE + bool + + + + get_compiled_insert + \Query\Query_Builder::get_compiled_insert() + + Returns the generated 'insert' sql query + + + string + + + bool + + + string + + + + $table + + string + + + $reset + TRUE + bool + + + + get_compiled_update + \Query\Query_Builder::get_compiled_update() + + Returns the generated 'update' sql query + + + string + + + bool + + + string + + + + $table + '' + string + + + $reset + TRUE + bool + + + + get_compiled_delete + \Query\Query_Builder::get_compiled_delete() + + Returns the generated 'delete' sql query + + + string + + + bool + + + string + + + + $table + "" + string + + + $reset + TRUE + bool + + + + reset_query + \Query\Query_Builder::reset_query() + + Clear out the class variables, so the next query can be run + + + void + + + + + _run + \Query\Query_Builder::_run() + + Executes the compiled query + + + string + + + string + + + string + + + array + null + + + \Query\PDOStatement + + + + $type + + string + + + $table + + string + + + $sql + NULL + string + + + $vals + NULL + array|null + + + + __call + \Query\Query_Builder::__call() + + Calls a function further down the inheritence chain + + + string + + + array + + + mixed + + + \Query\BadMethodCallException + + + + $name + + string + + + $params + + array + + + + _append_query + \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\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\Query_Builder::_compile_type() + + Sub-method for generating sql strings + + + string + + + string + + + string + + + + $type + '' + string + + + $table + '' + string + + + + _compile + \Query\Query_Builder::_compile() + + String together the sql statements for sending to the db + + + string + + + string + + + \Query\$string + + + + $type + '' + string + + + $table + '' + string + + + + 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 + + + + Query + Free Query Builder / Database Abstraction Layer + + + + + + + + \Query\Driver\Abstract_Driver + Firebird + \Query\Driver\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 + \Query\Driver\Firebird::__construct() + + Open the link to the database + + + string + + + string + + + string + + + array + + + + $dbpath + + string + + + $user + 'SYSDBA' + string + + + $pass + 'masterkey' + string + + + $options + array() + array + + + + truncate + \Query\Driver\Firebird::truncate() + + Empty a database table + + + string + + + + $table + + string + + + + exec + \Query\Driver\Firebird::exec() + + Execute an sql statement and return number of affected rows + + + string + + + int + + + + $sql + + string + + + + getAttribute + \Query\Driver\Firebird::getAttribute() + + Implement for compatibility with PDO + + + int + + + mixed + + + + $attribute + + int + + + + inTransaction + \Query\Driver\Firebird::inTransaction() + + Return whether the current statement is in a transaction + + + bool + + + + + lastInsertId + \Query\Driver\Firebird::lastInsertId() + + Returns the last value of the specified generator + + + string + + + mixed + + + + $name + NULL + string + + + + query + \Query\Driver\Firebird::query() + + Wrapper public function to better match PDO + + + string + + + \Query\Driver\Firebird_Result + + + \Query\Driver\PDOException + + + + $sql + '' + string + + + + prepare + \Query\Driver\Firebird::prepare() + + Emulate PDO prepare + + + string + + + array + + + \Query\Driver\Firebird_Result + + + \Query\Driver\PDOException + + + + $query + + string + + + $options + array() + array + + + + beginTransaction + \Query\Driver\Firebird::beginTransaction() + + Start a database transaction + + + boolean + null + + + + + commit + \Query\Driver\Firebird::commit() + + Commit a database transaction + + + bool + + + + + rollBack + \Query\Driver\Firebird::rollBack() + + Rollback a transaction + + + bool + + + + + setAttribute + \Query\Driver\Firebird::setAttribute() + + Set a connection attribute + + + int + + + mixed + + + bool + + + + $attribute + + int + + + $value + + mixed + + + + prepare_execute + \Query\Driver\Firebird::prepare_execute() + + Prepare and execute a query + + + string + + + array + + + \Query\Driver\Firebird_Result + + + + $sql + + string + + + $args + + array + + + + quote + \Query\Driver\Firebird::quote() + + Method to emulate PDO->quote + + + string + + + int + + + string + + + + $str + + string + + + $param_type + \PDO::PARAM_STR + int + + + + errorInfo + \Query\Driver\Firebird::errorInfo() + + Method to emulate PDO->errorInfo / PDOStatement->errorInfo + + + array + + + + + errorCode + \Query\Driver\Firebird::errorCode() + + Method to emulate PDO->errorCode + + + array + + + + + prepare_query + \Query\Driver\Firebird::prepare_query() + + Bind a prepared query with arguments for executing + + + string + + + array + + + NULL + + + + $sql + + string + + + $params + + array + + + + insert_batch + \Query\Driver\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 + + + + + + + + \Query\Driver\DB_Util + MySQL_Util + \Query\Driver\MySQL_Util + + MySQL-specific backup, import and creation methods + + + + + + create_table + \Query\Driver\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 + \Query\Driver\MySQL_Util::delete_table() + + Convience public function for droping a table + + + string + + + string + + + + $name + + string + + + + backup_structure + \Query\Driver\MySQL_Util::backup_structure() + + Create an SQL backup file for the current database's structure + + + string + + + + + backup_data + \Query\Driver\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 + + + + + + + + \PDO + \Query\Driver\Driver_Interface + Abstract_Driver + \Query\Driver\Abstract_Driver + + Base Database class + Extends PDO to simplify cross-database issues + + + + + $statement + + + Reference to the last executed query + + + \Query\Driver\PDOStatement + + + + + $escape_char + '"' + + Character to escape indentifiers + + + string + + + + + $sql + + + Reference to sql class + + + \Query\Driver\SQL_Interface + + + + + $util + + + Reference to util class + + + \Query\Driver\DB_Util + + + + + $last_query + + + Last query executed + + + string + + + + + $table_prefix + '' + + Prefix to apply to table names + + + string + + + + + __construct + \Query\Driver\Abstract_Driver::__construct() + + PDO constructor wrapper + + + string + + + string + + + string + + + array + + + + $dsn + + string + + + $username + NULL + string + + + $password + NULL + string + + + $driver_options + array() + array + + + + prepare_query + \Query\Driver\Abstract_Driver::prepare_query() + + Simplifies prepared statements for database queries + + + string + + + array + + + \Query\Driver\PDOStatement + + + \Query\Driver\InvalidArgumentException + + + + $sql + + string + + + $data + + array + + + + prepare_execute + \Query\Driver\Abstract_Driver::prepare_execute() + + Create and execute a prepared statement with the provided parameters + + + string + + + array + + + \Query\Driver\PDOStatement + + + + $sql + + string + + + $params + + array + + + + affected_rows + \Query\Driver\Abstract_Driver::affected_rows() + + Returns number of rows affected by an INSERT, UPDATE, DELETE type query + + + int + + + + + quote_table + \Query\Driver\Abstract_Driver::quote_table() + + Quote database table name, and set prefix + + + string + + + string + + + + $table + + string + + + + _prefix + \Query\Driver\Abstract_Driver::_prefix() + + Sets the table prefix on the passed string + + + string + + + string + + + + $str + + string + + + + quote_ident + \Query\Driver\Abstract_Driver::quote_ident() + + Surrounds the string with the databases identifier escape characters + + + mixed + + + string + + + + $ident + + mixed + + + + _quote + \Query\Driver\Abstract_Driver::_quote() + + Helper method for quote_ident + + + mixed + + + mixed + + + + $str + + mixed + + + + get_schemas + \Query\Driver\Abstract_Driver::get_schemas() + + Return schemas for databases that list them + + + array + + + + + get_tables + \Query\Driver\Abstract_Driver::get_tables() + + Return list of tables for the current database + + + array + + + + + get_dbs + \Query\Driver\Abstract_Driver::get_dbs() + + Return list of dbs for the current connection, if possible + + + array + + + + + get_views + \Query\Driver\Abstract_Driver::get_views() + + Return list of views for the current database + + + array + + + + + get_sequences + \Query\Driver\Abstract_Driver::get_sequences() + + Return list of sequences for the current database, if they exist + + + array + + + + + get_functions + \Query\Driver\Abstract_Driver::get_functions() + + Return list of function for the current database + + + array + + + + + get_procedures + \Query\Driver\Abstract_Driver::get_procedures() + + Return list of stored procedures for the current database + + + array + + + + + get_triggers + \Query\Driver\Abstract_Driver::get_triggers() + + Return list of triggers for the current database + + + array + + + + + get_system_tables + \Query\Driver\Abstract_Driver::get_system_tables() + + Retreives an array of non-user-created tables for +the connection/database + + + array + + + + + get_columns + \Query\Driver\Abstract_Driver::get_columns() + + Retrieve column information for the current database table + + + string + + + array + + + + $table + + string + + + + get_types + \Query\Driver\Abstract_Driver::get_types() + + Retrieve list of data types for the database + + + array + + + + + driver_query + \Query\Driver\Abstract_Driver::driver_query() + + Method to simplify retreiving db results for meta-data queries + + + string + array + null + + + bool + + + array + + + + $sql + + string|array|null + + + $filtered_index + TRUE + bool + + + + num_rows + \Query\Driver\Abstract_Driver::num_rows() + + Return the number of rows returned for a SELECT query + + + + int + + + + + truncate + \Query\Driver\Abstract_Driver::truncate() + + Empty the passed table + + + string + + + void + + + + $table + + string + + + + insert_batch + \Query\Driver\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 + + + + + + + + Query_Builder_Interface + \Query\Query_Builder_Interface + + Interface defining the Query Builder class + + + + + + select + \Query\Query_Builder_Interface::select() + + Specifies rows to select in a query + + + string + + + \Query\Query_Builder + + + + $fields + + string + + + + select_max + \Query\Query_Builder_Interface::select_max() + + Selects the maximum value of a field from a query + + + string + + + string + + + \Query\Query_Builder + + + + $field + + string + + + $as + FALSE + string + + + + select_min + \Query\Query_Builder_Interface::select_min() + + Selects the minimum value of a field from a query + + + string + + + string + + + \Query\Query_Builder + + + + $field + + string + + + $as + FALSE + string + + + + select_avg + \Query\Query_Builder_Interface::select_avg() + + Selects the average value of a field from a query + + + string + + + string + + + \Query\Query_Builder + + + + $field + + string + + + $as + FALSE + string + + + + select_sum + \Query\Query_Builder_Interface::select_sum() + + Selects the sum of a field from a query + + + string + + + string + + + \Query\Query_Builder + + + + $field + + string + + + $as + FALSE + string + + + + distinct + \Query\Query_Builder_Interface::distinct() + + Adds the 'distinct' keyword to a query + + + \Query\Query_Builder + + + + + explain + \Query\Query_Builder_Interface::explain() + + Shows the query plan for the query + + + \Query\Query_Builder + + + + + from + \Query\Query_Builder_Interface::from() + + Specify the database table to select from + + + string + + + \Query\Query_Builder + + + + $tblname + + string + + + + like + \Query\Query_Builder_Interface::like() + + Creates a Like clause in the sql statement + + + string + + + mixed + + + string + + + \Query\Query_Builder + + + + $field + + string + + + $val + + mixed + + + $pos + 'both' + string + + + + or_like + \Query\Query_Builder_Interface::or_like() + + Generates an OR Like clause + + + string + + + mixed + + + string + + + \Query\Query_Builder + + + + $field + + string + + + $val + + mixed + + + $pos + 'both' + string + + + + not_like + \Query\Query_Builder_Interface::not_like() + + Generates a NOT LIKE clause + + + string + + + mixed + + + string + + + \Query\Query_Builder + + + + $field + + string + + + $val + + mixed + + + $pos + 'both' + string + + + + or_not_like + \Query\Query_Builder_Interface::or_not_like() + + Generates a OR NOT LIKE clause + + + string + + + mixed + + + string + + + \Query\Query_Builder + + + + $field + + string + + + $val + + mixed + + + $pos + 'both' + string + + + + having + \Query\Query_Builder_Interface::having() + + Generates a 'Having' clause + + + mixed + + + mixed + + + \Query\Query_Builder + + + + $key + + mixed + + + $val + array() + mixed + + + + or_having + \Query\Query_Builder_Interface::or_having() + + Generates a 'Having' clause prefixed with 'OR' + + + mixed + + + mixed + + + \Query\Query_Builder + + + + $key + + mixed + + + $val + array() + mixed + + + + where + \Query\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\Query_Builder + + + + $key + + mixed + + + $val + array() + mixed + + + $escape + NULL + bool + + + + or_where + \Query\Query_Builder_Interface::or_where() + + Where clause prefixed with "OR" + + + string + + + mixed + + + \Query\Query_Builder + + + + $key + + string + + + $val + array() + mixed + + + + where_in + \Query\Query_Builder_Interface::where_in() + + Where clause with 'IN' statement + + + mixed + + + mixed + + + \Query\Query_Builder + + + + $field + + mixed + + + $val + array() + mixed + + + + or_where_in + \Query\Query_Builder_Interface::or_where_in() + + Where in statement prefixed with "or" + + + string + + + mixed + + + \Query\Query_Builder + + + + $field + + string + + + $val + array() + mixed + + + + where_not_in + \Query\Query_Builder_Interface::where_not_in() + + WHERE NOT IN (FOO) clause + + + string + + + mixed + + + \Query\Query_Builder + + + + $field + + string + + + $val + array() + mixed + + + + or_where_not_in + \Query\Query_Builder_Interface::or_where_not_in() + + OR WHERE NOT IN (FOO) clause + + + string + + + mixed + + + \Query\Query_Builder + + + + $field + + string + + + $val + array() + mixed + + + + set + \Query\Query_Builder_Interface::set() + + Sets values for inserts / updates / deletes + + + mixed + + + mixed + + + \Query\Query_Builder + + + + $key + + mixed + + + $val + NULL + mixed + + + + join + \Query\Query_Builder_Interface::join() + + Creates a join phrase in a compiled query + + + string + + + string + + + string + + + \Query\Query_Builder + + + + $table + + string + + + $condition + + string + + + $type + '' + string + + + + group_by + \Query\Query_Builder_Interface::group_by() + + Group the results by the selected field(s) + + + mixed + + + \Query\Query_Builder + + + + $field + + mixed + + + + order_by + \Query\Query_Builder_Interface::order_by() + + Order the results by the selected field(s) + + + string + + + string + + + \Query\Query_Builder + + + + $field + + string + + + $type + "" + string + + + + limit + \Query\Query_Builder_Interface::limit() + + Set a limit on the current sql statement + + + int + + + int + + + string + + + + $limit + + int + + + $offset + FALSE + int + + + + group_start + \Query\Query_Builder_Interface::group_start() + + Adds a paren to the current query for query grouping + + + \Query\Query_Builder + + + + + or_group_start + \Query\Query_Builder_Interface::or_group_start() + + Adds a paren to the current query for query grouping, +prefixed with 'OR' + + + \Query\Query_Builder + + + + + or_not_group_start + \Query\Query_Builder_Interface::or_not_group_start() + + Adds a paren to the current query for query grouping, +prefixed with 'OR NOT' + + + \Query\Query_Builder + + + + + group_end + \Query\Query_Builder_Interface::group_end() + + Ends a query group + + + \Query\Query_Builder + + + + + get + \Query\Query_Builder_Interface::get() + + Select and retrieve all records from the current table, and/or +execute current compiled query + + + + int + + + int + + + \Query\PDOStatement + + + + $table + '' + mixed + + + $limit + FALSE + int + + + $offset + FALSE + int + + + + get_where + \Query\Query_Builder_Interface::get_where() + + Convience method for get() with a where clause + + + string + + + array + + + int + + + int + + + \Query\PDOStatement + + + + $table + + string + + + $where + array() + array + + + $limit + FALSE + int + + + $offset + FALSE + int + + + + count_all + \Query\Query_Builder_Interface::count_all() + + Retreive the number of rows in the selected table + + + string + + + int + + + + $table + + string + + + + count_all_results + \Query\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\Query_Builder_Interface::insert() + + Creates an insert clause, and executes it + + + string + + + mixed + + + \Query\PDOStatement + + + + $table + + string + + + $data + array() + mixed + + + + insert_batch + \Query\Query_Builder_Interface::insert_batch() + + Creates and executes a batch insertion query + + + string + + + array + + + \Query\PDOStatement + + + + $table + + string + + + $data + array() + array + + + + update + \Query\Query_Builder_Interface::update() + + Creates an update clause, and executes it + + + string + + + mixed + + + \Query\PDOStatement + + + + $table + + string + + + $data + array() + mixed + + + + delete + \Query\Query_Builder_Interface::delete() + + Deletes data from a table + + + string + + + mixed + + + \Query\PDOStatement + + + + $table + + string + + + $where + '' + mixed + + + + get_compiled_select + \Query\Query_Builder_Interface::get_compiled_select() + + Returns the generated 'select' sql query + + + string + + + bool + + + string + + + + $table + '' + string + + + $reset + TRUE + bool + + + + get_compiled_insert + \Query\Query_Builder_Interface::get_compiled_insert() + + Returns the generated 'insert' sql query + + + string + + + bool + + + string + + + + $table + + string + + + $reset + TRUE + bool + + + + get_compiled_update + \Query\Query_Builder_Interface::get_compiled_update() + + Returns the generated 'update' sql query + + + string + + + bool + + + string + + + + $table + '' + string + + + $reset + TRUE + bool + + + + get_compiled_delete + \Query\Query_Builder_Interface::get_compiled_delete() + + Returns the generated 'delete' sql query + + + string + + + bool + + + string + + + + $table + "" + string + + + $reset + TRUE + bool + + + + reset_query + \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 + + + + + + + + \InvalidArgumentException + BadDBDriverException + \Query\BadDBDriverException + + Generic exception for bad drivers + + + + + + + + Connection_Manager + \Query\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 + + + \Query\Connection_Manager + + + + + __construct + \Query\Connection_Manager::__construct() + + Private constructor to prevent multiple instances + + + + + + __clone + \Query\Connection_Manager::__clone() + + Private clone method to prevent cloning + + + + + + __wakeup + \Query\Connection_Manager::__wakeup() + + Make sure serialize/deseriaze doesn't work + + + + \Query\DomainException + + + + + get_instance + \Query\Connection_Manager::get_instance() + + Return a connection manager instance + + + + \Query\Connection_Manager + + + + + get_connection + \Query\Connection_Manager::get_connection() + + Returns the connection specified by the name given + + + mixed + + + \Query\Query_Builder + + + \Query\InvalidArgumentException + + + + $name + '' + mixed + + + + connect + \Query\Connection_Manager::connect() + + Parse the passed parameters and return a connection + + + array + object + + + \Query\Query_Builder + + + \Query\BadConnectionException + + + + $params + + array|object + + + + parse_params + \Query\Connection_Manager::parse_params() + + Parses params into a dsn and option array + + + \Query\ArrayObject + + + \Query\BadDBDriverException + + + + $params + + \Query\ArrayObject + + + + create_dsn + \Query\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 + + + + + + + + + DB_Util + \Query\Driver\DB_Util + + Abstract class defining database / table creation methods + + + + + + $conn + + + Reference to the current connection object + + + + + __construct + \Query\Driver\DB_Util::__construct() + + Save a reference to the connection object for later use + + + object + + + + $conn + + object + + + + __call + \Query\Driver\DB_Util::__call() + + Enable calling driver methods + + + string + + + array + + + mixed + + + + $method + + string + + + $args + + array + + + + create_table + \Query\Driver\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 + \Query\Driver\DB_Util::delete_table() + + Drop the selected table + + + string + + + string + + + + $name + + string + + + + backup_structure + \Query\Driver\DB_Util::backup_structure() + + Return an SQL file with the database table structure + + + + string + + + + + backup_data + \Query\Driver\DB_Util::backup_data() + + Return an SQL file with the database data as insert statements + + + + string + + + + + eJy1Vltv2zYUfpZ+xalhQHLgSFvRp2Zum4s3oMiw1c2wh7QwaOnY4iJTGkll9YL89x2Soiw79tYBaWDENHku3/nOhfzhbV3UYXpyEsIJfGhQbmhh1j9KRLcBFw0vc5SQwhXTbMEUwvlCackyzSsB12yDstV6V7Psjq0wCLwteMcaXVQyCG74utLFBt4n8DuTEoU9zap6I/mq0MGlX0GcjeDld9+/hFPz9crKlVzcQRAUWtfqdZquuC6aRZJV65Tdc6ZfEZJ067PkGQqFTp7E64KXSjdyhZUgpaS5S7MqxzRfsPy0FSbFNAzTFE6f7S8MBVujIlJaLj9dSX6P8iwMG2Lxk92jHy3/nlXISqYU5LjkgosV5J72FGhRImQSmeV+jcRtrvbYhy0Rqln4Teda2TDZrqeri/lvmpfwEIaBwRKQ6gyXSEki5LoCXZDTxiSNVCoh0KW+WvxBKyOehkFN9plGGBqBs56lj+wegYF8YnDfECwrCSXZkED0GF2rT2FJtvYy1rx32SwoebBshDMzn9MhRdZkOrZyozB4CINgqAuuTt+YHZh4gMGjwfi86e5ingqXKFaWNoOW+y5de5ERYiM0dMf9E+oTtoEhkyvltiVSFVPe+RfMj5NAXuPW2thpt0S06kZgThTLudGaWy+x+9+jauwRjbyRb0KaMfdiW/s/e46+VWouK3HPUXBbivvkUWmuUKA0haz+LG1Fum6jBDHIF64Dj2XQtPuB/C05lrk6cODKlXGhD51ykeMX7JVLmz7n7Uj6LVqcW5ixBTT2AMYH3E5c2kfjPad+33dQVpXNWrhSoR5qT02bm0TNsJIrJvjfCGS0AiZac85aDn/RvAZng/aI1bUdYE57uoId+7fml0H+ufPkBIMg0psaI5i8gSRJxt3uNqCnZxbC3jZFFRAIZFkRt+QAU+D9GuGh8WTkTPjBf+EzrXFU6tahNtKxNQsvJpPO2QjeOmfwGqLI2DE9FvBlTG2B61pv4n7CRh2mLoDeqY/CRmD3jbiTPwCPoPWo+9wOR6VtNI8eChH2vuLC58/dS5rkqF1W1K50/XfG1S4lPYy9+jEghYVYy6pWW5YJCelHgygZioS+zrrdhLjjSiENdqvjOR0Z+gbwsLv7OCAyB4N/U+/HvW+kf9aZ6iVY3VqqSOasx9FPfnCYy80PD3vR+eu6Wtrf7QghZCRE4V7Opuc3U7g5v7iego2dyoLCh9gSYMUoAL6uS3q0xNEY6OOhjPoi0SiyQNtBYbb9zG6n3xVF6ABiSdcpteZXDrSvmT052dydPbv3TnQ1++XXp3FGexhnTpqGyMcP17DkdJHa+WFgd28h9xJyl30jewH4t81x2N3rZx//gp5KTT3vjLoB979gmYWpb04vSqnJLxXEGtv5/lwAjROL7dG8V6ciN5WVL+YNPeISetD/A2b8cjE= + + + + Query + Free Query Builder / Database Abstraction Layer + + + + + + + + \Query\Driver\DB_Util + SQLite_Util + \Query\Driver\SQLite_Util + + SQLite-specific backup, import and creation methods + + + + + + create_table + \Query\Driver\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 + \Query\Driver\SQLite_Util::delete_table() + + SQL to drop the specified table + + + string + + + string + + + + $name + + string + + + + backup_data + \Query\Driver\SQLite_Util::backup_data() + + Create an SQL backup file for the current database's data + + + + array + + + string + + + + $excluded + array() + array + + + + backup_structure + \Query\Driver\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 + + + + + + + + \Query\Driver\DB_Util + PgSQL_Util + \Query\Driver\PgSQL_Util + + Posgres-specific backup, import and creation methods + + + + + + backup_structure + \Query\Driver\PgSQL_Util::backup_structure() + + Create an SQL backup file for the current database's structure + + + string + + + + + backup_data + \Query\Driver\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/YqvRlKRHEpNMTnac2pbk1h3VsiO5PcQZDkRCImqSoPHhWJPxf+/iQ5Tq9tJpfDEJ7L59+94C1Ief2rIN06OjEI7gVlOxxQfzfCkodQtwoVlVUAEpTIgiKyIpnK+kEiRXjDcwI1sqfNZZS/IHsqFBsMOCM6JVyUUQLFnNVbmFX0fwBxGCNnY35+1WsE2pgvHuCeI8gXdv3r6Dofn33sZVrHmAICiVauVxmm6YKvVqlPM6JU+MqPfIJN3XrFhOG0ldPIa3Jauk0mJDeYNJI/2Q5rygabEixdAHY2IahmkKw+/2F4YNqalEUbyW9xPBnqg4CXeS33C5EVQOZUtztmY5rFBA3Q6A1S0XCkhTQC4osUrXFJUs5CutYd+21Kvdoisk7bLLg5o90wIeTXSM9rFmA335WCWHMWgM2cKGqgydrqiMEytLXhEp4WazuJ1ld4pVQJ8VbQoJkwv3/i0MA9NSgFhjw5cidcBw3xCsWUVhzQWokkKujf8KCj9PkQQkpHN0iBoIC3MmKL434KiapTQMWr1Cu2CtGzd8Dj3rspFv8C0MArRxOZ/M4apuK1qbWheeh8/EGI8fRSdh8GL4f1/r/58e5nEvRUsEqb05ffqcV7qg/1kkAxnvsk8tWJx4vfrObjiFviqZHH48HAEcV6voJasU3gNcK8vap2y5hoI3kYKvpFEYydYx/AC0btW2K2fq2EIHlSyDrGDrdewXB11zWDOwpgR9LNdqleGkYo4xy5H5mToWpisrJCV5CXz1J80NCVwxCztkIBI725PwaIvpbDpemuvu0/w36EUjlLHGnGQU9cxYYKQ4VMUdHntq3C7Wy3yEOcYf11Tl5XlVxfc3k/nx8eV0Of4lO18s5mOnomE+sWKRogDFbQt2Fth6Lyow6fQzGbgR51w3Kt5VS+ADvE0g541ijaYO2BO9vpvNukrXZOXmi1e6bsBeRrCy51uZ42/2HuhWAl97IkIqEPyrBXRZBvTMWWVCOxKf33zxLfUZ3p5CZZjX2Rrv2/Xjb/BdIA4rLphDKU1I59ROS2MVYhmznFuBee0G5olUGqfShrgipsqt5ljE7RmEhtICbztsVm1b+k+UmrSxY/qj9XYA0aOBiJIBeOh/zYnMhERdTNhFZf5Kxam6ul5MPy3h6no5fzVTEOM7Xu0VfnziqDfoGSSvs9lP4Pfz2d10AfFB2GBXbhQlJ9FJeEhsb/ffbPj8xU5kx8o28xK+Gtl98uEhG51C7765b3odA3ztIYUD/GRk1roz6i+hAxR7pb6Yr+kUv2A4Xu0GVzON34qR+cXxF6zQer4= + + + + Query + Free Query Builder / Database Abstraction Layer + + + + + + + \Query\Driver\Abstract_SQL + PgSQL_SQL + \Query\Driver\PgSQL_SQL + + PostgreSQL specifc SQL + + + + + + explain + \Query\Driver\PgSQL_SQL::explain() + + Get the query plan for the sql query + + + string + + + string + + + + $sql + + string + + + + random + \Query\Driver\PgSQL_SQL::random() + + Random ordering keyword + + + string + + + + + db_list + \Query\Driver\PgSQL_SQL::db_list() + + Returns sql to list other databases + + + string + + + + + table_list + \Query\Driver\PgSQL_SQL::table_list() + + Returns sql to list tables + + + string + + + + + system_table_list + \Query\Driver\PgSQL_SQL::system_table_list() + + Returns sql to list system tables + + + string + + + + + view_list + \Query\Driver\PgSQL_SQL::view_list() + + Returns sql to list views + + + string + + + + + trigger_list + \Query\Driver\PgSQL_SQL::trigger_list() + + Returns sql to list triggers + + + string + + + + + function_list + \Query\Driver\PgSQL_SQL::function_list() + + Return sql to list functions + + + NULL + + + + + procedure_list + \Query\Driver\PgSQL_SQL::procedure_list() + + Return sql to list stored procedures + + + string + + + + + sequence_list + \Query\Driver\PgSQL_SQL::sequence_list() + + Return sql to list sequences + + + string + + + + + column_list + \Query\Driver\PgSQL_SQL::column_list() + + Return sql to list columns of the specified table + + + string + + + string + + + + $table + + string + + + + type_list + \Query\Driver\PgSQL_SQL::type_list() + + SQL to show list of field types + + + string + + + + + eJzVV21v2zYQ/iz9ipsxQHaQWG3RT0uGzU7UvcCNUztbN2CYQEu0RFiiVJJKYmTZb99RpOSXrKsddM6WL6Gp5+54z73wePZNmZauf3TkwhG8q6hY4kKv3whKzQYMK5bFVIAPF0SRGZEUBjOpBIkUKziMyJIKK/UtqVRaCHCca5YXKl3Cj314T4SgvP4cFeVSsCRVznmzgm7Ug1cvXr6CE/3vdY3LGF+gklSpUn7l+wlTaTXrR0XukxtG1Gu06zen1eiIcjxVjUd4mbJMqkoktOAo1K8WflTE1I9nJD6xYBT0Xdf34eSz/bkuJzmVJYksc79dCHZDxanbEHxVSJUIOn03AlnSiM0jwHXDHQouSEJh5ZisZs2mUSXrY0cZkRKuEpQNtS56pyiPZRuVevPedR1t1kFF31EFKqXwoY5nmREOc4yS3pIfMrOtgTUYzyFIDqiK8QS+RIDZFhQp5XZfb/muU1Yz5BPmFTe5QO9QOeNdLdVznXvXcaxYJ/jlajT44RJ+DibD8TSAe4156Jy6zoM+6ecNROv5hPC4yKEQmMDanQVd3uKPlbO7eCVqJd1NhzyYDC4vxm+7Pe/f9qE2KOtQqQIyJhVgbWFFxrYe5X7+xLNQK9ly6OzsTCej4zjTYBScX0MH1euM7sCbyfgtdMokbAx2NOz998EkWENdjq8BA9z1FM0xDRR94R2365deT8uMJxfBBIa/rokNpucuGn4GEtGXbF/uapnd6DPQ2km9bUhkHCsvJ1pXKKOU5qTTN0i5TqqRVcsSCfoavOEAK+Z6MBwFngZh4jUQq8OSrz86XQ8jFWGksiLxjsF7bNLrnT4T5XIpMSOexLwRDf+rAfgfkH/D6O2epGuRfyQbWrY1dKtd1AbXWTUMrLeLnUlraV/Z+eJP8H5HSW+zs6wAz9hacLZJ9H29X3MxUjtl99GnUtqeYCOprf4nNo2DcblBZcPOYy4vfxqNPsJks/g7KrXY4d2QqhA0hlIUEY0rsW/3a+V2a32iqBTjuzU/i90s1Ho8ZdGTU6VtkthBwypWoS1Z7KU2C73DtcHNQFCcd3m09/VjxXbjP9K80myLfs2bnt07GrDGtkUvGI/r22a61dEaTQdtaBukRUVW5djjirl5NZj0wHyuL8GPvR3aj7tRbIwYgo3sJ2jGSZ5xkoVlIZnWcFznp1WjGTMbemqtr/KN7zGdkypTZo/JkFdZpm1aUEr0UwqbZU7uWF7lYUZ5olLzlVc5vieisBTIg0TLbYwfF0PfcreK92ou0cG+N64+bMZ827VDFIt+NmLAZVrc2lfGHDDIGUYZydv3LtOFv9uYtiy35gbbXLAq8Ec9g61fYg28uf7/CL31dtPObLOtKmoEWyYf8P0f8Fi7WSaY7Rhqzsp+mZZ/AfxYmkI= + + + + Query + Free Query Builder / Database Abstraction Layer + + + + + + + + + \Query\Table_Builder_Interface + Table_Builder + \Query\Table_Builder + + Abstract class defining database / table creation methods + + + + + + $name + '' + + The name of the current table + + + string + + + + + $driver + NULL + + Driver for the current db + + + \Query\Driver_Interface + + + + + $table_options + array() + + Options for the current table + + + array + + + + + __construct + \Query\Table_Builder::__construct() + + Constructor + + + string + + + array + + + \Query\Driver_Interface + + + \Query\Table_Builder + + + + $name + + string + + + $options + array() + array + + + $driver + NULL + \Query\Driver_Interface + + + + add_column + \Query\Table_Builder::add_column() + + + + + + $column_name + + + + + $type + NULL + + + + $options + array() + + + + + remove_column + \Query\Table_Builder::remove_column() + + + + + + $column_name + + + + + + rename_column + \Query\Table_Builder::rename_column() + + + + + + $old_name + + + + + $new_name + + + + + + change_column + \Query\Table_Builder::change_column() + + + + + + $column_name + + + + + $new_column_type + + + + + $options + array() + + + + + has_column + \Query\Table_Builder::has_column() + + + + + + $column_name + + + + + $options + array() + + + + + add_index + \Query\Table_Builder::add_index() + + + + + + $columns + + + + + $options + array() + + + + + remove_index + \Query\Table_Builder::remove_index() + + + + + + $columns + + + + + $options + array() + + + + + remove_index_by_name + \Query\Table_Builder::remove_index_by_name() + + + + + + $name + + + + + + has_index + \Query\Table_Builder::has_index() + + + + + + $columns + + + + + $options + array() + + + + + add_foreign_key + \Query\Table_Builder::add_foreign_key() + + + + + + $columns + + + + + $referenced_table + + + + + $referenced_columns + array('id') + + + + $options + array() + + + + + drop_foreign_key + \Query\Table_Builder::drop_foreign_key() + + + + + + $columns + + + + + $constraint + NULL + + + + + has_foreign_key + \Query\Table_Builder::has_foreign_key() + + + + + + $columns + + + + + $constraint + NULL + + + + + exists + \Query\Table_Builder::exists() + + + + + + + drop + \Query\Table_Builder::drop() + + + + + + + rename + \Query\Table_Builder::rename() + + + + + + $new_table_name + + + + + + get_columns + \Query\Table_Builder::get_columns() + + + + + + + create + \Query\Table_Builder::create() + + + + + + + update + \Query\Table_Builder::update() + + + + + + + save + \Query\Table_Builder::save() + + + + + + + reset + \Query\Table_Builder::reset() + + + + + + + eJy9V12P0zoQfXZ+xSBV2nRFN/cinnZZWC5cJGABIe3VfYyceNpYmziR7RQitP8df6bd0m61qKUvdcYzZ8bnjGPnxauu6pLs9DSBU/jaoxzMwI7fSURvgH96XjOUkMFbqmlBFcLrQmlJS81bAdd0QBmirjpa3tIFEhKx4Ir2umolITe8aXU1wIcz+J9KicLNlm03SL6oNHkTR5CWU3j219/PYGb/nju/motbIKTSulPnWbbguuqLs7JtMrrkVD83lWSrnDUvUSj0/sa9q3itdC8X2AoTdNbfZmXLMGMFZbPgbAKzJMkymB3slySCNqgMKYHLiyRyHRmEsqZKAcM5F1wsgEWKMzCDGqGUSB3PDRoemdpgGlaLVn0RjTc2NA/CuYX5NPfswJuuxgaF3pjI3wuNcm6r/pEkxFZMTIKbCsGuB9o5aDMue6ui9nU6j6sllWDWZRZin7OEdLLVWGpkMHGhl3BycrGG+Vbypalk3sp7kKxY4XmXVU0jMl9SjTBhHuISPv93fb2O/aWzvKlfwDfqNb1Ih01Q55O3AeHSO6VTB3/YDhnLfWMyadmXupX22RfYUUmbQKmncN3uqoJJKHN9ZpO0SJP3kWj2gtjoksBAX5j9APNe+N2d52WsK3X5n475VrQ83ZkvyDJNyI+EkImuuJq9DJ3g4CyjhM8hhSeATaeHNMJPTZCLimFbNckbNLs63eayqtToRsjdWiauctHXdRqq/CXVWHxwGOMDc87NGO8O3g8W7onphbpvBHwKW/7gPbepMmXM6GxzphP/nwet9dBhEHGb8k5Yz8MmpsSmXeI22AeDrMMY1NYsFiLw277gsqJisTVjiA8Wu6ZHLqaiagfuQyjHaI33guH3P9sZ3KaM61a/1wYHw8iLwVHv30Z7JHtU1mOo9a6VyBcCPuLwZzWb+8T5LQ7r65c4R7PHSmS5e1feNwW/kZ0Tzk6mj9SKybbbld0fJZSbQ3jtXNgt32/AHENEd07OvnGG4yXs6Brid660SvcQ/dC8f5Wm7sXnz8U9G2aBOnbAGu5xKH1d3rvTHp1Od4vGh+jqO7bHQ9FlmCckXjiiTPYCQV5BsK6wCDmPxliCu/EEm0SF2pp2KOhmx4ru7NfJv4K5C7hTtOhr05XyzH7E/QSNxc9L + + + + Query + Free Query Builder / Database Abstraction Layer + + + + + + + + Driver_Interface + \Query\Driver\Driver_Interface + + PDO Interface to implement for database drivers + + + + + + __construct + \Query\Driver\Driver_Interface::__construct() + + Constructor/Connection method + + + string + + + \Query\Driver\[string] + + + \Query\Driver\[string] + + + \Query\Driver\[array] + + + void + + + + $dsn + + string + + + $username + NULL + \Query\Driver\[string] + + + $password + NULL + \Query\Driver\[string] + + + $driver_options + array() + \Query\Driver\[array] + + + + beginTransaction + \Query\Driver\Driver_Interface::beginTransaction() + + Begin a transaction + + + bool + + + + + commit + \Query\Driver\Driver_Interface::commit() + + Commit a transaction + + + bool + + + + + errorCode + \Query\Driver\Driver_Interface::errorCode() + + Return the current error code + + + mixed + + + + + errorInfo + \Query\Driver\Driver_Interface::errorInfo() + + Return information about the current error + + + array + + + + + exec + \Query\Driver\Driver_Interface::exec() + + Execute an SQL statement and return the number of affected rows + + + string + + + int + + + + $statement + + string + + + + getAttribute + \Query\Driver\Driver_Interface::getAttribute() + + Get a connection attribute for the current db driver + + + int + + + + + $attribute + + int + + + + rollback + \Query\Driver\Driver_Interface::rollback() + + Rollback a transaction + + + bool + + + + + setAttribute + \Query\Driver\Driver_Interface::setAttribute() + + Set a connection attribute + + + int + + + mixed + + + bool + + + + $attribute + + int + + + $value + + mixed + + + + eJytVU1P20AQPRuJ/zCHHAKCuEWcSlGBhFZUES2Fqoe2inbtib3C3rX2IxBV/e+d9TpxgpOiiuYSe2fevDdf67fvqrza3Yn393d3YB9uHOq5f6rf3mvEcAQXThQpaohhxCzjzCCcc2M1S6xQEsZsjnqJO6tYcs8yjKJlPDhjzuZKR9GdKJXN5/BxAN+Y1iiDOVHVXIsst9Fw8QT9ZA+OXr0+gkP/dxwcCyHvIYpyayvzJo4zYXPHB4kqYzYTzB6TnHiFthAJSoMBQP5VLgpjnc5QSUIN3H2cqBTjlLP0sHH2yHh3h8oSw+F/+/mAkpVoqDpNWX+MtJihPqm5mhZ8Hn2CK2lRT72bVSDKqsASpYWp0pAuyp/WUNMpOqwkbxxfnI5ad0pNLAnC+aRl/OXFRLWaiGIMlaQ2u8QqHdOzxNDwEqmbae0S/IhesxLIV8gMeqmRa+ffg+En9JxB7cuwxVwxYx6UTtfNNChsTtaQ9ERVXoRpfDRSPyXMlAgoyi+qHKdmwtTJoHcySRaJ9L24g1bI6fXX8figZW7ea8qnjHAazvt7eyfrdbrATEhgQCshTdiK1eo0GrlSxVaN3Ie4a/H9pxxDVZbCvowkqWN0Qn8JUJsjJM5vpQXUmubNL8cGjlI84vZq19AhIbfxCEmzXLLamXHlbJd5A2ld+r+TXlHgDunlIybOIjAJtzdjmlFmw0IxmYJuM5eu5HTHqSmw6ZQGHcmqHsz2KV9GWtcpmoONKklLvwU+lQof0Dc4aTeNWSLjXr5f/9Uypby5BLoCSQH0lshVdeUzrcvQni9w/TZEp4+qKDhdLS8bRt1E6XTsdmsVnk8zmOosoTdjhcN/UGQ2p3/QRPI6f9ffhUsaHRqU5npY3qeD+nP6BwBIKpQ= + + + + Query + Free Query Builder / Database Abstraction Layer + + + + + + + + \Query\Driver\Abstract_SQL + MySQL_SQL + \Query\Driver\MySQL_SQL + + MySQL specifc SQL + + + + + + limit + \Query\Driver\MySQL_SQL::limit() + + Limit clause + + + string + + + int + + + int + + + string + + + + $sql + + string + + + $limit + + int + + + $offset + FALSE + int + + + + explain + \Query\Driver\MySQL_SQL::explain() + + Get the query plan for the sql query + + + string + + + string + + + + $sql + + string + + + + random + \Query\Driver\MySQL_SQL::random() + + Random ordering keyword + + + string + + + + + db_list + \Query\Driver\MySQL_SQL::db_list() + + Returns sql to list other databases + + + string + + + + + table_list + \Query\Driver\MySQL_SQL::table_list() + + Returns sql to list tables + + + string + + + string + + + + $database + '' + string + + + + system_table_list + \Query\Driver\MySQL_SQL::system_table_list() + + Overridden in MySQL class + + + string + + + + + view_list + \Query\Driver\MySQL_SQL::view_list() + + Returns sql to list views + + + string + + + + + trigger_list + \Query\Driver\MySQL_SQL::trigger_list() + + Returns sql to list triggers + + + string + + + + + function_list + \Query\Driver\MySQL_SQL::function_list() + + Return sql to list functions + + + string + + + + + procedure_list + \Query\Driver\MySQL_SQL::procedure_list() + + Return sql to list stored procedures + + + string + + + + + sequence_list + \Query\Driver\MySQL_SQL::sequence_list() + + Return sql to list sequences + + + NULL + + + + + type_list + \Query\Driver\MySQL_SQL::type_list() + + SQL to show list of field types + + + string + + + + + column_list + \Query\Driver\MySQL_SQL::column_list() + + SQL to show infromation about columns in a table + + + string + + + string + + + + $table + + string + + + + eJzFV21v2kgQ/mz/imlUCYgSfK366XrR1QUn4WQgxaD0pEh4sRe8it+6u06KEP/9Zu2FQAq5IBUlX7KMZ56d59nZGfuvv/MoN63TUxNO4VtB+RwXan3JKa0M8LVgcUg5WNAmkkyIoGBPhOQkkCxLwSVzynXUl5wE92RGDWOFBV9IIaOMG8aQJZmM5vBPE24J5zQtnwZZPudsFkmjtVpBPWjAxz8+fIRz9e9T6Rez9B4MI5IyF39a1ozJqJg0gyyxyAMj8hNmYj3tGbOApoJW/uieRywWsuAzmqUY1CzurSALqRVOSHiunTHQMk3LgvPf9meaKUmoQFG0lndtzh4o/2yuJO/OvW8uiJwGbBoArp8JCU+cRDFZGSsUUWYcxESICmessOhPSdNQrI+oNC5M01A7GgjksoRJwLACOaOhNOJ+nCSAISydwXvxI940s1TC+1jF/WLNplNBtZlTlDjVIMpkmUZeTFBfmBZpVS0lSl1tcKYhz1YgF5e26zkN01iYhsGmUId3wMQ4LRLKWVDXXg10KD0MvZ3Cap6A2+l2hrCoMJcnn9Fjiaz3eFVYy7OtAOX/m89/rfoVlSAjCj/KK5XHJIVpxksTZlaZ//c0XiMw/YngLC0l1lrqsBPn+41rd3rgfB86vbbTRvLodHTqA5KGWQIZxyai+NzT+SP+eGL7Glq8BKlvM6rBwO61643asRmU24nypGSGNSwkYC/DnhjqjigOYxNOxgrkGZ0T77p/C217aH+1PceD22tn4IC/6ro+vLuosRTLJiEKZSyCiCakdvTz28EeM4o3SW8X7EqV1wtS4lWarKMvarXtZkCTXM6fnjcasCUcyuaiapeDfhf8xdpt6aNAGzWz4Xvsuuljl+YsDGmKzVL3+rJfH1YtYi4kTcYbGj27Bp7jOq0h+CWrcc/uOr6W4ddy8ZuVm+erHqpLrAr0WtdO1/Yv7nZU2V3tLS7ZA6OPB4qlQl4UqZJRDeYXRSq39t+CNLKbzdR4P4i3jtpNvSz5QefqyhkcvegHOtkNRqskD6S0WuzndDnqtYadfg+8oT0cvQU1ITNOQ8h5FtCw4IcOgnXcfo43g37LaY/wmr4dSYrvJ2mwg1xv5Lr7upYO2sVMhR2Zhuq1mL+Iskc9sKcwZTQOQc7zQ49Jheye2FVTaXe8Yaenuoua3uPhvzcvd+BW3x11e55/7NG9KQImwrMqESCTrMBvgCwuEmw+OJtINYH3DfT1w9fJVQHrcV7G7nrRucQiAK1EJdaictZvpEv8GHPSUB1cMsdyHKtXePxc/Q+3v+j9 + + + + Query + Free Query Builder / Database Abstraction Layer + + + + + + + + \Query\Driver\Abstract_SQL + Firebird_SQL + \Query\Driver\Firebird_SQL + + Firebird Specific SQL + + + + + + limit + \Query\Driver\Firebird_SQL::limit() + + Limit clause + + + string + + + int + + + int + + + string + + + + $sql + + string + + + $limit + + int + + + $offset + FALSE + int + + + + explain + \Query\Driver\Firebird_SQL::explain() + + Get the query plan for the sql query + + + string + + + string + + + + $sql + + string + + + + random + \Query\Driver\Firebird_SQL::random() + + Random ordering keyword + + + string + + + + + db_list + \Query\Driver\Firebird_SQL::db_list() + + Returns sql to list other databases + + + NULL + + + + + table_list + \Query\Driver\Firebird_SQL::table_list() + + Returns sql to list tables + + + string + + + + + system_table_list + \Query\Driver\Firebird_SQL::system_table_list() + + Returns sql to list system tables + + + string + + + + + view_list + \Query\Driver\Firebird_SQL::view_list() + + Returns sql to list views + + + string + + + + + trigger_list + \Query\Driver\Firebird_SQL::trigger_list() + + Returns sql to list triggers + + + string + + + + + function_list + \Query\Driver\Firebird_SQL::function_list() + + Return sql to list functions + + + string + + + + + procedure_list + \Query\Driver\Firebird_SQL::procedure_list() + + Return sql to list stored procedures + + + string + + + + + sequence_list + \Query\Driver\Firebird_SQL::sequence_list() + + Return sql to list sequences + + + string + + + + + column_list + \Query\Driver\Firebird_SQL::column_list() + + Return sql to list columns of the specified table + + + string + + + string + + + + $table + + string + + + + type_list + \Query\Driver\Firebird_SQL::type_list() + + SQL to show list of field types + + + string + + + + + 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 + + + + Query + Free Query Builder / Database Abstraction Layer + + + + + + + + \Query\Driver\Abstract_Driver + SQLite + \Query\Driver\SQLite + + SQLite specific class + Extends PDO to simplify cross-database issues + + + + + $statement + + + Reference to the last executed sql query + + + \Query\Driver\PDOStatement + + + + + __construct + \Query\Driver\SQLite::__construct() + + Open SQLite Database + + + string + + + string + + + string + + + array + + + + $dsn + + string + + + $user + NULL + string + + + $pass + NULL + string + + + $driver_options + array() + array + + + + truncate + \Query\Driver\SQLite::truncate() + + Empty a table + + + string + + + + $table + + string + + + + get_tables + \Query\Driver\SQLite::get_tables() + + List tables for the current database + + + mixed + + + + + get_system_tables + \Query\Driver\SQLite::get_system_tables() + + List system tables for the current database + + + string[] + + + + + insert_batch + \Query\Driver\SQLite::insert_batch() + + Create sql for batch insert + + + string + + + array + + + string + + + + $table + + string + + + $data + array() + array + + + + eJy1VlFv2zYQfpZ+xSEwYDuwra3ok7OkyWwHw+Ala+xiD2uhUhJtEZEohjwF1YL89x1Jyc5SZ0WBxi8Wjnff3X338aRf3qlchdHxcQjH8L7muqEH+3ypOfcG+LUWRcY1RDBnyBJmOFwkBjVLUVQSlqzhuo06Vyy9ZVseBB0WnLMa80oHwVqUFeYN/D6Bv5jWXLrTtFKNFtscg1n3BIN0CG9++vkNjO3fW+dXCHkLQZAjKjONoq3AvE4maVVG7F4wfEuVRPuchUi5NNz7k7vKRWGw1lteSQqa1LdRWmU8yhKWjVtnCozCMIpg/MN+YShZyQ2R0nL5ca7FPdcnYUf56v1SIAejeCo2IoW0YMY8IxP2fZk66YweybiqXVSHxb8gl5nZzSj2nvAQhoHNGhDQDd9wmgCVhRVgzoEAkCJ5WiPPwNwVcOeSkrMLOL9nGv6cX6+QIS+5RGuNwkDpCnlqY3qmOzp5kuhacdkV1qlnD6qYZiVQmUJuoZcZechcG5LXAbuyTD2xk6ZYQyiu27hSVpymK7NOaMqwqaXXbByndIi6TnFg8458mtOrD8vlyEO3zwdRT511MByGwUMYBKSZ+eoKhAEjSlU08JkIpI6nkWKYR1iRzj6TH9VJ9EynT7Mfta4PtozHo7aQtobhSRg8WjZ/rCh301mUChtgQHMpXhzL7vAAj9SDTGnsA++156Mdec4Mwa9vPlzNLtYLsPSV4h9mY0feMakRZAWmVqrSCJtKOz2SbmtWAN3vkslsQr49K8pT6M8XywVBXd5c/wFH/YlPPOkf9a3sgh7mwozPdlqkiNbk9DywKEPnqTntAwnPA16Z8aWge+ZKNrte09puQ4Tsq/vR1liKLzx7YQJbjrHHG7Tst0R1jd0V4zPnEBeUe+Cb72nKf5iaHTNZEm9EgVwPrPf4bMMxzS+KYvCR9sB0erlYz36LL1ar69lwBH276PqvrVfHnmkMjeq7SfRy/vvT//DokZ/RGUWtlitJN9sK2qbztzYuaW3Sam2viO0bc4Z2E1QbYLIB2gcka0abdrJn1m+P/n8wXp27meYMXeGOs4TRNEHQe0/jN2/+8xVLHB/g9gVmfY7YJWz3xMhjfL1G16RHy56sEO7ttwdTisBsTPem2gjNE6GzJ5PueLUb27H4SK/xhczsEFqS/f6e0MfOv4/Jkeg= + + + + Query + Free Query Builder / Database Abstraction Layer + + + + + + + + \Query\Driver\Abstract_SQL + SQLite_SQL + \Query\Driver\SQLite_SQL + + SQLite Specific SQL + + + + + + explain + \Query\Driver\SQLite_SQL::explain() + + Get the query plan for the sql query + + + string + + + string + + + + $sql + + string + + + + random + \Query\Driver\SQLite_SQL::random() + + Random ordering keyword + + + string + + + + + db_list + \Query\Driver\SQLite_SQL::db_list() + + Returns sql to list other databases + + + NULL + + + + + table_list + \Query\Driver\SQLite_SQL::table_list() + + Returns sql to list tables + + + string + + + + + system_table_list + \Query\Driver\SQLite_SQL::system_table_list() + + Overridden in SQLite class + + + string + + + + + view_list + \Query\Driver\SQLite_SQL::view_list() + + Returns sql to list views + + + string + + + + + trigger_list + \Query\Driver\SQLite_SQL::trigger_list() + + Returns sql to list triggers + + + NULL + + + + + function_list + \Query\Driver\SQLite_SQL::function_list() + + Return sql to list functions + + + NULL + + + + + procedure_list + \Query\Driver\SQLite_SQL::procedure_list() + + Return sql to list stored procedures + + + NULL + + + + + sequence_list + \Query\Driver\SQLite_SQL::sequence_list() + + Return sql to list sequences + + + NULL + + + + + type_list + \Query\Driver\SQLite_SQL::type_list() + + SQL to show list of field types + + + string[] + + + + + column_list + \Query\Driver\SQLite_SQL::column_list() + + SQL to show infromation about columns in a table + + + string + + + string + + + + $table + + string + + + + eJzNV21v0zAQ/uz8ilOElG5iDaB9gk7QrmEMdS1LO20ToMlN3MZqYgfb2VZN+++c87Kx0SIqAaNf7FzuHt9zlztfO2/zJHf87W0HtuG4YGqJG7t/rxirBNAreBozBT70qaFTqhl0p9ooGhkuBQzokqna6l1OowWdM0IaLHhHC5NIRciEZ9IkS/jYhlOqFBPl20jmS8XniSH7zQ5a0Ra8evHyFezYZbfUS7lYACGJMbl+7ftzbpJi2o5k5tNLTs0ueuLfn5nyiAnNKn1UzxOealOoOZMCjdrFwo9kzPx4SuOdWhkNfcfxfdj5Yz/HETRjGoNSx/JLX/FLpt44TcjHxwNuGIxzFvEZj+zzo1DCPStdTBthhaNLn6OUal0jXeAC7NowEeu7LJXCG8ch9lCCSAfMgEkYfCvzm6dUwEyqUqS/pZXYKpbK6IiiGSAUF3N4hgqVWDEMqKjlVuQ7JC+mGE2YFaL6Ntg1gnPRslZbDrlxCKnN3ODs06B7OITjkyA8B9wP4caq3bpvHHJrnf2zmbgjH1IRywykwm/aMlqw5RU+3PP9HWKqBGk95ORB2B32R0etLe9vcygP1GW2jISUawNYXFikcV2i+ic+w5PBYA2beHphIR7RsQZPwAP9T1e4/8t0lDarOHQ6HVtShJBxMAj2J+DainSt4H04OgIXT7Zlk1FtmCrlpx+CMADXLHPm7nklsmflo7AfhNA7ryGgH4z3HQT/yyEaYZ0rHsdMABdNvyhLfrMQ6SUyzC7WRuqJsn3J2dWGTKzJBrmGVYmGH7MMe+BZUO8fpHPlF4/X3tx28w1KtrZ50kw+INF4thGLZvP/0NBGKhZDrmTE4kJt1kfvrP4jPgxvcxFtxqMxeiIadlxB/3Uir+qrbQYzztIYbLmu6xafv64rFTRaxQSHULpseYfDSXAQhN5z8MKgO7DrJDib2LU3GPW8rX/IlouZkhkt3aZTWRiIZFpk2C+w99Pqmls3mN29/L0uWgFXcalsHw0zn8LuwVG3vlrRMdlyvXal2fbcZsS5xYk5ELFNUd1hcWnjn4rv32wxLg== + + + + Query + Free Query Builder / Database Abstraction Layer + + + + + + + + + \Query\Driver\SQL_Interface + Abstract_SQL + \Query\Driver\Abstract_SQL + + parent for database manipulation subclasses + + + + + + limit + \Query\Driver\Abstract_SQL::limit() + + Limit clause + + + string + + + int + + + int + + + string + + + + $sql + + string + + + $limit + + int + + + $offset + FALSE + int + + + + eJytU11r2zAUfVYg/+FS+pCEJtpKn7aVrVsTyPAYJYW9FIJsy7aILWn6KISS/96rD6cbe51fLB2fe+7RufKnz7rT0wldLKYTWMCD5+YYVnG3MZwnCL560dfcAIV75ljJLIe70jrDKieUhIIduTnXfWHedcoQ8igG5bojfF/BL2YMl+lzpfTRiLZz5Nu4glk1h+t3769hGV43idgLeQBCOue0/UBpK1zny1WlBsqeBXM32JqeLQd6xaXlqQD5uhO9dd60XEmsWvkDrVTNaV2yepnJqVKz6sBarDyr0ekEY6Gw/G9PEJRs4Bab5Vif7o145uZj7JVHoBnm5KBRBuox6oFJoX3PYtbWl1XPrOX2LfDsH/4IA2kjmrrYfCyW5wZR5TzG/e6hADHong/Y3wJu91vpuGmC3ZdgkUSPBNULMYgo4EOCBDKMPgwbAAWFbOHS/u7/wgWe67IPpf/CqmksH3HDcWoy60QMfRPtSxwaNF6mSxeVZqHLVZa9GnVuN3fFbj3HIjROSODA6hYunmSx/bF9hJfEP13E6AkRDcyE3Us/cCOqWVaZB4Gk8CYBPzeb3TpIJFLUIOSUhLLzwA5wRE/xIq1lDaqBMf09Mlbx33sFPFj+zw== + + + + Query + Free Query Builder / Database Abstraction Layer + + + + + + + + \Query\Driver\Abstract_Driver + PgSQL + \Query\Driver\PgSQL + + PostgreSQL specifc class + Extends PDO to simplify cross-database issues + + + + + __construct + \Query\Driver\PgSQL::__construct() + + Connect to a PosgreSQL database + + + string + + + string + + + string + + + array + + + + $dsn + + string + + + $username + null + string + + + $password + null + string + + + $options + array() + array + + + + truncate + \Query\Driver\PgSQL::truncate() + + Empty a table + + + string + + + + $table + + string + + + + get_schemas + \Query\Driver\PgSQL::get_schemas() + + Get a list of schemas for the current connection + + + array + + + + + eJy1VE1z2jAQPcu/YsukY8gE3GZyItCGgmnTUvIBnVwy4xGysDUxkiPJaZlM/ntXtoEkk/SUckHyvl29fW+l3uc8zb1gf9+DfbgouF7jwq3HmvPqA3wpRBZzDQGMqKULajgMFsZqyqxQEiZ0zXWddZJTdkMTTsimFpzQwqZKEzIXK2XTNXzvwBXVmssyylS+1iJJLRluVtBkLTj88PEQ2u7vqMRlQt4AIam1uekGQSJsWiw6TK0CeieoPUImwe7MTDAuDa/wCM9TkRlb6IQriUmd4iZgKuZBvKBxuwZjYuB5QQDtN/t5nqQrblCUWsvrkRZ3XB97G8nPlbGJ5rOLCZicM7FkwDJqzDM9YdeaKRabj1UxUxIvs+A8cZX4H8tlbLYuRRUQ7j2PuHMJ1hkqKTmzYBVQx6ImEdcOO0yJQwaargALCZnAXmzkS58Lw7Vr9aVYjsR+Kx0/jqH/dA2wp3I3QsaFAo/kxQK9gGUhq8mKIoZBqwtmm+7kg91BfVlk2cGueL2v6m7K9stts9XyyL1HiFhCE6vlytTV/Dwxt5nfgn6/D+PBZBa2yg6hX4e6fsft0S5CkDiXttv9B6lHfA62JFrHHnlwwr/tYG2NDFe5XaOH6Fv2qm3b4AsqYyuSUcubFaoWaw/bdzrML39Nh4N5CA0fOnUhXPgN/9ihbCpM+9Otm86mS/nf3X7lFnvNhLGglmBYylfUwFJpsCkHVrh3xQKrhhu72wmiOd5/WU3IK0ok3EZ1yeZTGXq9Ht4O3JNZOAmHcxidzuanU1w0qgRnfwPGl2c/oZEnUSmTabiEq2/hZfgUNj2bw+T0R+im7Dp67zvYYDp6CnqH4guJna2oI1cT8z3kUc5j3U/tQFze8Oi5EQ/4noUydlqVAx1VuA4++n8BQDK1+Q== + + + + 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 + + + eJy9VW1v00gQ/mz/irkqUpzS1BziUzmgUF7ECYTQIfGBctbYntir2LtmX5pawH9ndm3HDaLfrhcpWWdmnplnn50d//W0q7s4PT6O4Rg+ONI9P/jnV5poMMBzJ5qSNKTwAi3maAie5cZqLKxQEt5iT3pEnXdYbLGiKJpywblx+WS9UJqCDZ2tlY6ij6JVtu7h71P4hFqTDN5Cdb0WVW0ZMD5BUqzgwf0/H8DaLw9DXCPkFqKotrYzZ2laCVu7/LRQbYpXAu1DZpfOPBpRkDQ0xHN4V4vGWKcrUpJBp26bFqqktMyxXI/BDEzjOE1h/Z994knt143KsYGNk0FHA7ZGC6WSSwuasGl62AgLKPtdTZqAmjviIzaQwB97IhldC2NNsixVJmTRuJKWq1X8LY488YiZP3fNFkqhqbCK+6NRWApZwU7pLWrlZAkbpcExXR+942MBPlzssxY73k8JFW/d+4Kfe0ZjC9xQPsmiQ1sPdk18OhKulCi9IY2jiSLM1JIAWMUR84s0fXVMK1OymByP4uhH/ON/06zNM95H+4tg71xjRd5bWhvcEPiIPfQ2HYb1QInZdFOLsWQyIvZSBEinqco0dQ2yIkdp8u+lubf6nvDvYpU6c3QCR/ydoHck1tjwr0RjeYwox12eg1Y7A0JaBUrS0B/zEPFCBBMsJs9kbsU1lbAQsqTr+IY4U1waz12SZ5tQMxmynIywcDYLSbtsqPF4ACe8f9aVZxQW9QgBNExh1HSGfP7CoAV+HvJ9CbrFk+Zz2KO7E/NCSUnDNveddCDfqFP4Y24KFSZiNg71Q8GCKxkxvMPlcpCqaFHy/NZsugwxl3P57N3gOzuryPKtNBb97Qta8tbfbKBXjgUmYL/1rY2+K6+EcoZHXMFqWyZa7BPGkb9cwmSmwAb1RGd12Nh7Tusnvu4M38eHQ4n81Bwv660pmeZ7yzN2JwydwNRPwMd4QOs3pUf3YU1Od+7fJBfqijTHvakk99Q/FrWNb/O+lKX38AJqw1Xbll9K/Gr+CQvrMnA= + + + + Query + Free Query Builder / Database Abstraction Layer + + + + + + + + Table_Builder_Interface + \Query\Table_Builder_Interface + + Abstract class defining database / table creation methods + + + + + + __construct + \Query\Table_Builder_Interface::__construct() + + Constructor + + + string + + + array + + + \Query\Abstract_Driver + + + + $name + + string + + + $options + array() + array + + + $driver + null + \Query\Abstract_Driver + + + + eJytUktv2zAMPku/gocckqCJtqKnPbBu7QZs2GVAgR0NWmJsIbZk6FHAGPbfR/mRZjvPF9HkR/LjR777MLSDVPu9hD38yBRGNor9JRDNDviUbWcogIJHTFhjJPhYxxRQJ+sdfMeRwpJ1P6A+Y0NCrLXgHnNqfRDiyfY+tSN8O8JPDIHcFNV+GINt2iQeVgu2ege3r17fwqE8dxOus+4MQrQpDfGNUo1Nba6P2vcKny2mO2aiXnp2VpOLNOMZPrS2iymHhrzjpGM+K+0NKVOjOSxgTlRSKgWH//ZJ6bCnyKIsWr6Vq9argqA7jBEMnayzrgGzSqyAjY5AB8JJ555YRxP/URpeho65Xp1PJbVaFjcNZl2icCpE/opVXy/+X1KKQk5wrQfvmF7WyYfyP/m4Y8Ae2F94bspk135eKY6w8UMhG68j66jVY7DPfEcbM70FoqQYcs0LgFN28zlVlV6bb6cmN5ei8H7ust3dwFzriv5SlTEud92OlZbyd1nnZ2fAn2Y1q3oZ+yLHsdz/H2/07Fg= + + + + 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 + + + eJytVE1P20AQPdu/YhQhbCOIW8QJikogQaVCKl9qL0jW2h7bK+xdd3dNiVD+e2f9FUOl9tJcssq+eW/mzdt8+lwXtRvu7bmwB7cNqjUd7PlSIXY/wHnDyxQVhLBkhsVMIyxibRRLDJcCrtkaVV91VrPkieXoOAMXnLHGFFI5zgOvpCnW8HUOP5hSKNrbRNZrxfPCOBfDCfwkgMMPHw/hwH4dtbiSiydwnMKYWh+HYc5N0cTzRFYhe+bMHFEn4Vaz5AkKjR2e4HXBS20alaMUVDRvnsJEphimMUsPejAVhq4bhnDw3z7u4OyiMbKUzLqYSQX2yEUO7JnxksUlQjo4m5RMa9Tv/BxXE46Ud5ghmZggGAlKSgM1M0VbpJt4qLuQqhssxYwL9L3b88X9KrpZPHzx9iHlSrAK/Si6vLpeRVEw90IvOBk1bojR0qeKP1Pr297+obG8u/q+uhtUtpJzr2PSvUpIU/xsuELQsqLZZVVRoLJGtMnSrupu/SlDB5pTbKedXpOj8LON6zsH/2zUuqpYBRRhu4SdtqAdYFDumCLWb83vIIH76jrdMdKYVyiMhlPAl7qkLPne4yMN20NPBiQBSMfy/ELlU+7ZOqpl7b/jCewsDhnSDnJJQ8dcpaDRtmqwXLsOz8AfGozwhWujfS+zsCiRQmBivAB2d2HQPT0FL+uJvMB1qHmn069Y7XupjLhIyiZF6jovZexP10ZBGGrDvc5sO5OjkF6RoNPGHb2wuaMxt0uCOcz6LYSvHWhjOWZ2xp0uAmPVRNTWDfgWa0fmOsp4if5ELAigT0Yk6QG8uaLWsNTYV1LA/alg0Psw3U2ksC4Z0cxq8mS2D7PZZI0EbrlE1HrXa+3DzfLb8XGOZjE84WWXbD+wGq3I392mSSeNbTqXZ53LG+vvpn0g92igqYGNfyCurssxmdR7TkGgZHlvIzu8r5VIQWZjudX4Dctt1ek= + + + + Query + Free Query Builder / Database Abstraction Layer + + + + + + + + + Query_Parser + \Query\Query_Parser + + Utility Class to parse sql clauses for properly escaping identifiers + + + + + + $db + + + DB Driver + + + \Query\Driver\Driver_Interface + + + + + $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\Query_Parser::__construct() + + Constructor/entry point into parser + + + string + + + + $sql + '' + string + + + + parse_join + \Query\Query_Parser::parse_join() + + Public parser method for seting the parse string + + + string + + + + $sql + + string + + + + compile_join + \Query\Query_Parser::compile_join() + + Compiles a join condition after parsing + + + string + + + string + + + + $condition + + string + + + + filter_array + \Query\Query_Parser::filter_array() + + Returns a more useful match array + + + array + + + array + + + + $array + + array + + + + eJy1V21T20YQ/iz9is2MiySMLZrJlwaMSYBk2ukE6tJpp5gqZ+lsX5B1yt2JxI3ob+/enV5sYyidpjBG1t7evjz77N5xOMznuRvu7rqwCz8VVCzxi/7+RlBqBfC6YGlCBYRwShSZEEnh1UQqQWLFeAY/kiUV1a7jnMQ3ZEYdp7YFx6RQcy4c55ItuJov4Yc+/EqEoJlZjXm+FGw2V85J/Q38OIDn+98+h55+vDB6KctuwHHmSuXyZRjOmJoXk37MFyG5ZUS9wEjC1mfKYppJavVRPZ+zVKpCzCjPcFO/uAljntAwmZCkVynjxtB1wxB6X+3HdTOyoBJBqbA8cGusf1EsZWoJJymREhSHnAgEVn5MIU5JIamEKReQC55TkS6BypjkLJsBS2im2JRRITdAhzZ/WUzWhFFVQ5NjbFxa+YX2KuCL6zo6MAc3n76GU8FuURnfjOT4lggYmw1ju1Q9ou8zRcUU09N6oevkKCaKQieZHKyYHNEZ/YwZKtTObGJokvFCglxminwGLGTOM8xMrntFopDlpvEFUfE8aswNrJbvOo43LTLDSg8GR+D5V6T356ve7/u976Lr7tj3+7vDYBwE3p7WbZG8r91D9f4w6FpNXQOieKU3KF+9Oy13doblX+UYf4fl+I8yLI8Gw/IQP73ym/J8VI675bvzy3L8TIuPyt/OR57rBPdRMcnQx9IuJsjQKmu6PV1pIrPyYCO5+2t1OvdXsAwTltFkY2Et7BN0p0QRo4EQfeCAyDnLFOCnYvEKc/CdLAD1NXU7yO71pOr4IYri2qyv1TBLzwtc5wtGxabgMxnxyQdarQa4Ypacjpoz2TtKJrhBrxwYYW1Av91h6A529VuqVrprjXDILDqLLKtImvree69fGV6n2lXLr+s+au0Zn/h3RZmuaEnveg8uRmdvo5/PLqPz0enZKDj4V/5WOPqox9Vy/1efDdsf9diSaJu/FnOKc2KJe7H+RAHPcBTq/ucCxxEKUbEzLdK09q/r9jT4u+UTUSv9J6UadN8zbwtSa+E9hEbTOI+AwUHNBS9mc3zSuu/3gGQJzBAoI+RSgaApvSXYUc1ocNbd1SMAg8x926VGYQ+8KUsxzMgIvWAzTk0E3Q9f+ZBrRsOF7Wo7BGBB8eBPTLUlVZoAOsXqnFO2+P84JwRX2PU0aUeFMRB9wJljZ4EdElWim3PEUF9QPPqzDSz+ZyhOcL6wFGtFQIeK8yZLmImfTLFCJotHEGjU7WKVQYvalhEaW48VMo2BGh+0rzRzKhRWUWx1NVr4WiD5BmCevt24MWG2kVrz+GOB5TJlXr2mOA5ywO+wwf4BdBgcDsD60G/dbjPLzZzPoorQldu2sa46DJtreziwswPPAA+JrFjgWIkf2G7ODevM2a7RApRMekcmnci4esiiOXDu6nOmqhNb5CleL33PawNu9zVd2NwD9CbNlAUXFPB0woljm7+9CKySxAih06w1/Fi/Ld3rnNXh4NvtNTsy+snKm+uFLTEWjpJ4XmkDkdAR/FN7/Db7rjR05pyuzGu1AIZG/2r/Gl6abwcbSLUGLCh35gZ+hlTiU2STvqLaadLH/1P+BgFB1EE= + + + + Query + Free Query Builder / Database Abstraction Layer + + + + + + + + \Query\Driver\Abstract_Driver + MySQL + \Query\Driver\MySQL + + MySQL specific class + Extends PDO to simplify cross-database issues + + + + + $escape_char + '`' + + Set the backtick as the MySQL escape character + + + string + + + + + __construct + \Query\Driver\MySQL::__construct() + + Connect to MySQL Database + + + string + + + string + + + string + + + array + + + + $dsn + + string + + + $username + null + string + + + $password + null + string + + + $options + array() + array + + + + truncate + \Query\Driver\MySQL::truncate() + + Empty a table + + + string + + + + $table + + string + + + + eJytVFFv2jAQfnZ+xQkhJVRAtqoPEx1dGVCpE9C1pJomVUpNYohFcFLb6RZV/e87Owl0U9en5iU+39135+8++/OXPMkd/+jIgSO4LpgscWHWF5KxagO+FjyNmQQfJlTTFVUMRiulJY00zwTMaMlknXWe02hLN4yQBgvOaaGTTBIS8F2mkxK+9eEHlZIJ642yvJR8k2gyblbgRR04/vDxGHrmd2LjUi62QEiida4Gvr/hOilW/Sjb+fSRU32CnfiHmimPmFCsisfwPOGp0oXcsExgUr/Y+lEWMz9e0bhXB2Oi7zi+D713+xxH0B1TSErN5d1E8kcmT52G8nm5vJ6BylnE1zyCKKVK/cMlHI6lilWzWQEp27TNqqHYb81ErPYTCqtAeHIcYmoSxFkyDTphsEIszaMtUGXtGkFFNGcQJdTk42gxxaadP1IJiMrFxti+Q3KZaYYxMbSrrNBkwRDce/f0RcFxJgTGgc7qGo2QDtg5VtvV6NCOlXhtu1BMGkZf8+XIwa9Mxi99KDNaQjvLjVBV03SxwonDuhCVfsMwQqeWRaQ9U7h7qDMURZp2D9i1/Tfs0Jpep+OQJ4cQFFDDryFDMXvs2+Ci9wm9fA1ezNZcsNhz7+6+T64Gg/lPpCQcBcFNeLm4DMLx1Xw+Wkxcg2ghSVMKmbXFwh1DKXvNdt2RZ0LJm5gwPIPWchrAYjSfLquuYHw1m42CKbjWdFtdg9PpnOLv2al7Rn7yTNX8uLtSPaRuB4bDIVyMZstpx47MDN66Bm7f2EYCBCfBhB4M3qD5BcPdPa2mvin/zhdyr8npLtclUEAhpv/V4d75im7wKCKiGsdgo+rxt3XCVe/swdxZrxXc3C7Ghtv7pyrq+b5VHewZX5qpiCFbg6UsjO097eNz/Acy5J2u + + + + + + + + + + + + + +