summaryrefslogtreecommitdiff
path: root/themes/wind
diff options
context:
space:
mode:
Diffstat (limited to 'themes/wind')
-rw-r--r--themes/wind/css/fix-ie.css37
-rw-r--r--themes/wind/css/screen.css1128
-rw-r--r--themes/wind/images/avatar.jpgbin0 -> 1172 bytes
-rw-r--r--themes/wind/images/ico-album.pngbin0 -> 397 bytes
-rw-r--r--themes/wind/images/ico-denied-gray.pngbin0 -> 604 bytes
-rw-r--r--themes/wind/images/ico-denied-pale.pngbin0 -> 916 bytes
-rw-r--r--themes/wind/images/ico-denied.pngbin0 -> 715 bytes
-rw-r--r--themes/wind/images/ico-error.pngbin0 -> 701 bytes
-rw-r--r--themes/wind/images/ico-help.pngbin0 -> 786 bytes
-rw-r--r--themes/wind/images/ico-info.pngbin0 -> 778 bytes
-rw-r--r--themes/wind/images/ico-lock.pngbin0 -> 749 bytes
-rw-r--r--themes/wind/images/ico-print.pngbin0 -> 989 bytes
-rw-r--r--themes/wind/images/ico-separator.gifbin0 -> 106 bytes
-rw-r--r--themes/wind/images/ico-success-gray.pngbin0 -> 476 bytes
-rw-r--r--themes/wind/images/ico-success-pale.pngbin0 -> 617 bytes
-rw-r--r--themes/wind/images/ico-success.pngbin0 -> 537 bytes
-rw-r--r--themes/wind/images/ico-view-comments.pngbin0 -> 768 bytes
-rw-r--r--themes/wind/images/ico-view-fullsize.pngbin0 -> 1046 bytes
-rw-r--r--themes/wind/images/ico-view-hybrid.pngbin0 -> 494 bytes
-rw-r--r--themes/wind/images/ico-view-slideshow.pngbin0 -> 960 bytes
-rw-r--r--themes/wind/images/ico-warning.pngbin0 -> 666 bytes
-rw-r--r--themes/wind/images/select-photos-backg.pngbin0 -> 1154 bytes
-rw-r--r--themes/wind/js/ui.init.js141
-rw-r--r--themes/wind/theme.info6
-rw-r--r--themes/wind/thumbnail.pngbin0 -> 26946 bytes
-rw-r--r--themes/wind/views/album.html.php41
-rw-r--r--themes/wind/views/block.html.php10
-rw-r--r--themes/wind/views/dynamic.html.php29
-rw-r--r--themes/wind/views/movie.html.php37
-rw-r--r--themes/wind/views/page.html.php142
-rw-r--r--themes/wind/views/pager.html.php44
-rw-r--r--themes/wind/views/photo.html.php59
-rw-r--r--themes/wind/views/sidebar.html.php18
33 files changed, 1692 insertions, 0 deletions
diff --git a/themes/wind/css/fix-ie.css b/themes/wind/css/fix-ie.css
new file mode 100644
index 00000000..eee88c15
--- /dev/null
+++ b/themes/wind/css/fix-ie.css
@@ -0,0 +1,37 @@
+/**
+ * Fix display in IE 6, 7
+ */
+
+#gBanner,
+.gBreadcrumbs,
+#gAlbumGrid,
+#gPager,
+#gViewMenu {
+ zoom: 1;
+}
+
+#gBanner {
+ z-index: 2;
+}
+
+input.submit {
+ clear: none !important;
+ display: inline !important;
+}
+
+#gAddTagForm input.textbox {
+ width: 110px;
+}
+
+#gDialog a.gCancel {
+ display: inline-block !important;
+ float: none !important;
+}
+
+.gPager .txtright {
+ width: 29%;
+}
+
+.gPager .ui-icon-right {
+ width: 60px;
+}
diff --git a/themes/wind/css/screen.css b/themes/wind/css/screen.css
new file mode 100644
index 00000000..64ecf775
--- /dev/null
+++ b/themes/wind/css/screen.css
@@ -0,0 +1,1128 @@
+/**
+ * Gallery 3 Default Theme Screen Styles
+ *
+ * @requires YUI reset, font, grids CSS
+ *
+ * Sheet organization:
+ * 1) Basic HTML elements
+ * 2) Reusable classes
+ * 3) Reusable content blocks
+ * 4) Page layout containers
+ * 5) Content blocks in specific layout containers
+ * 6) Navigation and menus
+ * 7) Browser hacks
+ * 8) jQuery and jQuery UI
+ * 9) Right-to-left language styles
+ */
+
+/** *******************************************************************
+ * 1) Basic HTML elements
+ **********************************************************************/
+
+body, html {
+ background-color: #ccc;
+ font-family: 'Lucida Grande', 'Lucida Sans', Arial, sans-serif;
+}
+
+p {
+ margin-bottom: 1em;
+}
+
+em {
+ font-style: oblique;
+}
+
+h1, h2, h3, h4, h5, strong, th {
+ font-weight: bold;
+}
+
+h1 {
+ font-size: 1.7em;
+}
+
+#gSearchResults h1 {
+ margin-bottom: 1em;
+}
+
+#gProgress h1 {
+ font-size: 1.1em;
+}
+
+h2 {
+ font-size: 1.4em;
+}
+
+#gSidebar .gBlock h2 {
+ font-size: 1.2em;
+}
+
+#gSidebar .gBlock li {
+ margin-bottom: .6em;
+}
+
+h3 {
+ font-size: 1.2em;
+}
+
+/* Links ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+
+a,
+.gMenu a,
+#gDialog a,
+.gButtonLink,
+.gButtonLink:hover,
+.gButtonLink:active,
+a.ui-state-hover,
+input.ui-state-hover,
+button.ui-state-hover {
+ color: #5382bf !important;
+ cursor: pointer !important;
+ text-decoration: none;
+ -moz-outline-style: none;
+}
+
+a:hover,
+#gDialog a:hover {
+ text-decoration: underline;
+}
+
+.gMenu a:hover {
+ text-decoration: none;
+}
+
+#gDialog .gCancel {
+ clear: none;
+ float: left;
+ margin: .3em 1em;
+}
+
+#gForgotPasswordLink {
+ float: right;
+ font-size: .9em;
+}
+
+#gDialog .gCancel {
+ float: left;
+}
+
+#gDialog #gMessage li {
+ width: 400px;
+ white-space: normal;
+ padding-left: 32px;
+}
+
+/* Tables ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+
+table {
+ width: 100%;
+}
+
+#gContent table {
+ margin: 1em 0;
+}
+
+caption,
+th {
+ text-align: left;
+}
+
+th,
+td {
+ border: none;
+ border-bottom: 1px solid #ccc;
+ padding: .5em;
+ vertical-align: top;
+}
+
+/* Forms ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+
+fieldset {
+ border: 1px solid #ccc;
+ padding-bottom: .8em;
+}
+
+#gBanner fieldset,
+#gSidebar fieldset,
+.gShortForm fieldset {
+ border: none;
+}
+
+legend {
+ font-weight: bold;
+ margin-left: 1em;
+}
+
+#gBanner legend,
+#gSidebar legend,
+#gContent #gSearchForm legend,
+input[type="hidden"],
+.gShortForm label {
+ display: none;
+}
+
+label {
+ cursor: help;
+}
+
+input[type="text"],
+input[type="password"] {
+ width: 50%;
+}
+
+input[type="text"],
+input[type="password"],
+textarea {
+ border: 1px solid #e8e8e8;
+ border-top-color: #ccc;
+ border-left-color: #ccc;
+ color: #333;
+}
+
+textarea {
+ width: 100%;
+ height: 12em;
+}
+
+input:focus,
+textarea:focus,
+option:focus {
+ background-color: #ffc;
+ color: #000;
+}
+
+/* Form layout ~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+
+form li {
+ margin: 0 !important;
+ padding: .3em 1.5em .3em 1em;
+}
+
+form ul ul {
+ clear: both;
+}
+
+form ul ul li {
+ float: left;
+}
+
+input,
+select,
+textarea {
+ display: block;
+ clear: both;
+ padding: .2em;
+}
+
+input[type="submit"],
+input[type="reset"] {
+ display: inline;
+ clear: none;
+ float: left;
+}
+
+/* Form validation ~~~~~~~~~~~~~~~~~~~~~~~ */
+
+.gValidationRule {
+ font-size: 80%;
+ margin-top: .5em;
+}
+
+form.gError input[type="text"],
+li.gError input[type="text"],
+form.gError input[type="password"],
+li.gError input[type="password"],
+form.gError input[type="checkbox"],
+li.gError input[type="checkbox"],
+form.gError input[type="radio"],
+li.gError input[type="radio"],
+form.gError textarea,
+li.gError textarea,
+form.gError select,
+li.gError select {
+ border: 2px solid red;
+}
+
+/** *******************************************************************
+ * 2) Reusable generic classes
+ *********************************************************************/
+
+.inactive, .understate {
+ color: #ccc;
+ font-weight: normal;
+}
+
+.left {
+ float: left;
+ margin: 1em 1em 1em 0;
+}
+
+.right {
+ float: right;
+ margin: 1em 0 1em 1em;
+}
+
+.txtright {
+ text-align: right;
+}
+
+/** *******************************************************************
+ * 3) Reusable content blocks
+ *********************************************************************/
+
+.gBlock {
+ clear: both;
+ margin-bottom: 2.5em;
+}
+
+.gBlock h2 {
+ background-color: #e8e8e8;
+ padding: .3em .8em;
+}
+
+.gBlockContent {
+ margin-top: 1em;
+}
+
+/* Status messages ~~~~~~~~~~~~~~~~~~~~~~~ */
+
+#gMessage {
+ width: 100%;
+}
+
+#gSiteStatus li,
+#gMessage li,
+.gModuleStatus {
+ border: 1px solid #ccc;
+ margin-bottom: .4em;
+}
+
+#gSiteStatus li {
+ margin-bottom: 0;
+ border: none;
+ border-bottom: 1px solid #ccc;
+}
+
+.gModuleStatus {
+ clear: both;
+ margin-bottom: 1em;
+}
+
+.gError,
+.gInfo,
+.gSuccess,
+.gWarning {
+ background-position: .4em 50%;
+ background-repeat: no-repeat;
+ padding: .4em .5em .4em 30px;
+}
+
+.gError {
+ background-color: #f6cbca;
+ background-image: url('../images/ico-error.png');
+}
+
+.gInfo {
+ background-color: #e8e8e8;
+ background-image: url('../images/ico-info.png');
+}
+
+.gSuccess {
+ background-color: #d9efc2;
+ background-image: url('../images/ico-success.png');
+}
+
+.gWarning {
+ background-color: #fcf9ce;
+ background-image: url('../images/ico-warning.png');
+}
+
+form .gError,
+.gPager .gInfo {
+ background-color: #fff !important;
+}
+
+.gPager .gInfo {
+ background-image: none !important;
+ padding: 0 !important;
+}
+
+/* Inline layout (forms, lists) ~~~~~~~~~~ */
+
+.gShortForm li {
+ float: left;
+ padding: .4em 0;
+}
+
+.gShortForm input[type="text"] {
+ color: #666;
+ padding: .3em .6em;
+ width: 11em;
+}
+
+/*** ******************************************************************
+ * 4) Page layout containers
+ *********************************************************************/
+
+/* View container ~~~~~~~~~~~~~~~~~~~~~~~~ */
+
+.gView {
+ background-color: #fff;
+ border: 1px solid #ccc;
+ border-bottom: none;
+}
+
+/* Layout containers ~~~~~~~~~~~~~~~~~~~~~ */
+
+#gHeader {
+ margin-bottom: 1em;
+}
+
+#gBanner {
+ background-color: #e8e8e8;
+ border-bottom: 1px solid #ccc;
+ font-size: .8em;
+ min-height: 5em;
+ padding: 1em 20px;
+ position: relative;
+}
+
+#gContent {
+ font-size: 1.2em;
+ padding-left: 20px;
+ position: relative;
+ width: 696px;
+}
+
+#gSidebar {
+ font-size: .9em;
+ padding: 0 20px;
+ width: 220px;
+}
+
+#gFooter {
+ background-color: #e8e8e8;
+ border-top: 1px solid #ccc;
+ font-size: .8em;
+ margin-top: 20px;
+ padding: 10px 20px;
+}
+
+/** *******************************************************************
+ * 5) Content blocks in specific layout containers
+ *********************************************************************/
+
+/* Header ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+
+#gBanner #gLogo img {
+ margin: 0;
+}
+
+#gBanner #gQuickSearchForm {
+ clear: right;
+ float: right;
+ margin-top: 1em;
+}
+
+#gBanner #gQuickSearchForm input[type='text'] {
+ width: 17em;
+}
+
+#gContent .gBlock h2 {
+ background-color: transparent;
+ padding-left: 0;
+}
+
+#gSidebar .gBlockContent {
+ padding-left: 1em;
+}
+
+/* Album content ~~~~~~~~~~~~~~~~~~~~~~~~~ */
+
+#gContent #gAlbumGrid {
+ margin: 1em 0;
+ position: relative;
+ z-index: 1;
+}
+
+#gContent #gAlbumGrid .gItem {
+ background-color: #fff;
+ border: 1px solid #fff;
+ float: left;
+ font-size: .7em;
+ height: 220px;
+ overflow: hidden;
+ padding: .6em 8px;
+ position: relative;
+ text-align: center;
+ width: 213px;
+ z-index: 1;
+}
+
+#gContent #gAlbumGrid .gItem h2 {
+ margin: 5px 0;
+}
+
+#gContent .gPhoto h2,
+#gContent .gItem .gMetadata {
+ display: none;
+}
+
+#gContent #gAlbumGrid .gAlbum {
+ background-color: #e8e8e8;
+}
+
+#gContent #gAlbumGrid .gAlbum h2 span {
+ background: transparent url('../images/ico-album.png') no-repeat top left;
+ display: inline-block;
+ height: 16px;
+ margin-right: 5px;
+ width: 16px;
+}
+
+#gContent #gAlbumGrid .gHoverItem {
+ background-color: #fff;
+ border: 1px solid #000;
+}
+
+#gContent .gHoverItem h2,
+#gContent .gHoverItem .gMetadata {
+ display: block;
+}
+
+/* Individual photo content ~~~~~~~~~~~~~~ */
+
+#gContent #gItem {
+ position: relative;
+ width: 99%;
+}
+
+#gContent #gPhoto {
+ position: relative;
+}
+
+#gContent #gItem .gFullSizeLink img {
+ display: block;
+ margin: 1em auto !important;
+}
+
+#gContent #gComments {
+ margin-top: 2em;
+ position: relative;
+}
+
+#gContent #gComments ul li {
+ margin: 1em 0;
+}
+
+#gContent #gComments .gAuthor {
+ border-bottom: 1px solid #ccc;
+ color: #999;
+ height: 32px;
+ line-height: 32px;
+}
+
+#gContent #gComments ul li div {
+ padding: 0 8px 8px 43px;
+}
+
+#gContent #gComments ul li #gRecaptcha {
+ padding: 0;
+}
+
+#gContent #gComments ul li #gRecaptcha div {
+ padding: 0;
+}
+
+#gContent #gComments .gAvatar {
+ height: 32px;
+ margin-right: .4em;
+ width: 32px;
+}
+
+#gAddCommentButton {
+ position: absolute;
+ right: 0;
+ top: 2px;
+}
+
+#gContent #gAddCommentForm {
+ margin-top: 2em;
+}
+
+/* Footer content ~~~~~~~~~~~~~~~~~~~~~~~~ */
+
+#gBanner #gLoginMenu li,
+#gFooter #gCredits li {
+ display: inline;
+}
+
+#gBanner #gLoginMenu li {
+ padding-left: 1.2em;
+}
+
+#gFooter #gCredits li {
+ padding-right: 1.2em;
+}
+
+#gContent #gSearchResults {
+ margin-top: 1em;
+ padding-top: 1em;
+}
+
+/** *******************************************************************
+ * 5) Navigation and menus
+ *********************************************************************/
+
+#gSiteMenu,
+#gTagCloud ul {
+ font-size: 1.2em;
+}
+
+/* Login menu ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+
+#gBanner #gLoginMenu {
+ color: #999;
+ float: right;
+}
+
+/* Site Menu ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+
+#gSiteMenu {
+ bottom: 0;
+ display: none;
+ left: 140px;
+ position: absolute;
+}
+
+#gSiteMenu ul {
+ margin-bottom: 0 !important;
+}
+
+/* Context Menu ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+
+.gContextMenu {
+ position: absolute;
+ bottom: 0;
+ left: 0;
+}
+
+.gItem .gContextMenu {
+ display: none;
+ margin-top: 2em;
+ width: 100%;
+}
+
+#gItem .gContextMenu {
+ font-size: .7em;
+}
+
+#gItem .gContextMenu ul {
+ display: none;
+}
+
+.gContextMenu li {
+ border-left: none;
+ border-right: none;
+ border-bottom: none;
+}
+
+.gContextMenu li a {
+ display: block;
+ line-height: 1.6em;
+}
+
+.gHoverItem .gContextMenu {
+ display: block;
+}
+
+.gHoverItem .gContextMenu li {
+ text-align: left;
+}
+
+.gHoverItem .gContextMenu a:hover {
+ text-decoration: none;
+}
+
+/* View Menu ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+
+#gViewMenu {
+ margin-bottom: 1em;
+}
+
+#gViewMenu a {
+ background-repeat: no-repeat;
+ background-position: 50% 50%;
+ height: 28px !important;
+ width: 43px !important;
+}
+
+#gViewMenu #gHybridLink {
+ background-image: url('../images/ico-view-hybrid.png');
+}
+
+#gViewMenu #gSlideshowLink {
+ background-image: url('../images/ico-view-slideshow.png');
+}
+
+#gViewMenu .gFullSizeLink {
+ background-image: url('../images/ico-view-fullsize.png');
+}
+
+#gViewMenu #gCommentsLink {
+ background-image: url('../images/ico-view-comments.png');
+}
+
+#gViewMenu #gDigibugLink {
+ background-image: url('../images/ico-print.png');
+}
+
+/* Breadcrumbs ~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+
+.gBreadcrumbs {
+ padding: 0 20px;
+}
+
+.gBreadcrumbs li {
+ background: transparent url('../images/ico-separator.gif') no-repeat scroll left center;
+ float: left;
+ padding: 10px 6px 10px 16px !important;
+}
+
+.gBreadcrumbs li.root {
+ background: transparent;
+}
+
+.gBreadcrumbs li a,
+.gBreadcrumbs li span {
+ display: block;
+}
+
+.gBreadcrumbs li.active,
+.gBreadcrumbs li.active span {
+ font-weight: bold;
+}
+
+#gDialog ul.gBreadcrumbs {
+ clear: both;
+ margin-left: 0;
+ padding-left: 0;
+}
+
+#gDialog .gBreadcrumbs li {
+ font-size: .9em;
+}
+
+/* Tags and cloud ~~~~~~~~~~~~~~~~~~~~~~~~ */
+
+#gTagCloud ul {
+ text-align: justify;
+}
+
+#gTagCloud ul li {
+ display: inline;
+ line-height: 1.5em;
+ text-align: justify;
+}
+
+#gTagCloud ul li a {
+ text-decoration: none;
+}
+
+#gTagCloud ul li span {
+ display: none;
+}
+
+#gTagCloud ul li.size1 a {
+ color: #9cf;
+ font-size: 80%;
+ font-weight: 100;
+}
+
+#gTagCloud ul li.size2 a {
+ color: #69f;
+ font-size: 90%;
+ font-weight: 300;
+}
+
+#gTagCloud ul li.size3 a {
+ color: #69c;
+ font-size: 100%;
+ font-weight: 500;
+}
+
+#gTagCloud ul li.size4 a {
+ color: #369;
+ font-size: 110%;
+ font-weight: 700;
+}
+
+#gTagCloud ul li.size5 a {
+ color: #0e2b52;
+ font-size: 120%;
+ font-weight: 900;
+}
+
+#gTagCloud ul li.size6 a {
+ color: #0e2b52;
+ font-size: 130%;
+ font-weight: 900;
+}
+
+#gTagCloud ul li.size7 a {
+ color: #0e2b52;
+ font-size: 140%;
+ font-weight: 900;
+}
+
+#gTagCloud ul li a:hover {
+ color: #f30;
+ text-decoration: underline;
+}
+
+#gWelcomeMessage p {
+ padding-bottom: 1em;
+}
+
+/* Pagination ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+
+.gPager {
+ clear: both;
+ margin: 0;
+ padding: 5px 0 !important;
+ width: 100%;
+}
+
+.gPager li {
+ float: left;
+ margin: 0;
+ width: 30%;
+}
+
+.gPager .gInfo {
+ text-align: center;
+ width: 40%;
+}
+
+/** *******************************************************************
+ * 6) Browser hacks
+ *********************************************************************/
+
+#gHeader:after,
+#gAlbumGrid:after,
+.gPager:after,
+#gViewMenu:after {
+ clear: both;
+ content: ".";
+ display: block;
+ height: 0;
+ visibility: hidden;
+}
+
+/** *******************************************************************
+ * 7) jQuery and jQuery UI
+ *********************************************************************/
+
+/* Superfish menu overrides ~~~~~~~~~~~~~~ */
+
+.sf-menu li li, .sf-menu li li ul li {
+ background-color: #bdd2ff;
+}
+
+.sf-menu li:hover {
+ background-color: #dfe9ff;
+}
+
+/* Ajax loading indicator ~~~~~~~~~~~~~~~~ */
+
+.gLoadingLarge {
+ background: #e8e8e8 url('../../../lib/images/loading-large.gif') no-repeat center center;
+ font-size: 0;
+}
+
+.gDialogLoadingLarge {
+ background: url('../../../lib/images/loading-large.gif') no-repeat center center !important;
+ font-size: 0;
+}
+
+.gLoadingSmall {
+ background: #e8e8e8 url('../../../lib/images/loading-small.gif') no-repeat center center;
+ font-size: 0;
+}
+
+.gDraggable {
+ cursor: move;
+}
+
+.gDropTarget {
+ background-color: #cfdeff;
+ border: 1px dotted #999;
+ height: 100px;
+ margin: 1em 0;
+}
+
+/* jQuery UI Dialog ~~~~~~~~~~~~~~~~~~~~~~ */
+
+.ui-widget-overlay {
+ background: #000;
+ opacity: .7;
+}
+
+#gDialog {
+ text-align: left;
+}
+
+#gDialog li {
+ padding-left: 0;
+}
+
+#gDialog form input[type="text"],
+#gDialog form input[type="password"] {
+ width: 100%;
+}
+
+#gDialog #gLoginForm,
+#gDialog #gAddUserForm,
+#gDialog #gAddGroupForm {
+ margin: 0 auto;
+ width: 270px;
+}
+
+#gDialog fieldset {
+ border: none;
+}
+
+#gDialog legend {
+ display: none;
+}
+
+#gDialog p {
+ margin: 0;
+}
+
+/* jQuery UI ThemeRoller buttons */
+
+.gButtonLink {
+ display: inline-block;
+ margin: 0 4px 0 0;
+ padding: .2em .4em;
+ outline: 0;
+}
+
+.gButtonSet {
+ padding-left: 1px;
+}
+
+.gButtonSet li {
+ float: left;
+}
+
+.gButtonSet .gButtonLink {
+ margin: 0;
+}
+
+.ui-icon-left .ui-icon {
+ float: left;
+ margin-right: .2em;
+}
+
+.ui-icon-right .ui-icon {
+ float: right;
+ margin-left: .2em;
+}
+
+.ui-icon-rotate-ccw {
+ background-position: -192px -64px;
+}
+
+.ui-icon-rotate-cw {
+ background-position: -208px -64px;
+}
+
+/* STUFF THAT NEEDS A HOME */
+
+#gMove ul {
+ padding-left: 1em;
+}
+
+#gMove .selected {
+ background: #999;
+}
+
+/* Server Add */
+
+#gServerAdd button {
+ margin-bottom: .5em;
+}
+
+#gServerAddTree {
+ cursor: pointer;
+ padding-left: 4px;
+ width: 95%;
+}
+
+#gServerAddTree li {
+ padding: 0;
+ float: none;
+}
+
+#gServerAddTree span.selected {
+ background: #ddd;
+}
+
+#gServerAddTree {
+ border: 1px solid #ccc;
+ height: 20em;
+ overflow: auto;
+ margin-bottom: .5em;
+ padding: .5em;
+}
+
+#gServerAdd ul ul li {
+ padding-left: 1.2em;
+}
+
+/* Permissions ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+
+#gEditPermissionForm {
+ clear: both;
+}
+#gEditPermissionForm fieldset {
+ border: 1px solid #cccccc;
+ padding: 0;
+}
+
+#gPermissions .gDenied,
+#gPermissions .gAllowed {
+ text-align: center;
+ vertical-align: middle;
+}
+#gPermissions .gDenied {
+ background-color: #fcc;
+}
+#gPermissions .gAllowed {
+ background-color: #cfc;
+}
+
+/*************** STUFF THAT NEEDS A HOME ****************/
+
+.gProgressBar {
+ height: 1em;
+ width: 100%;
+ margin-top: .5em;
+ display: inline-block;
+}
+
+#gAddPhotos span {
+ clear: both;
+ display: block;
+}
+
+#gAddPhotosCanvas {
+ height: 325px;
+ width: 450px;
+ overflow: auto;
+}
+
+#gAddPhotosQueue .progressbar {
+ height: 4px;
+}
+
+#gAddPhotosQueue .title {
+ font-size: 1.25em;
+}
+
+#gAddPhotosQueue .status {
+ font-size: .75em;
+}
+
+#gAddPhotosQueue .box {
+ margin-bottom: 8px;
+ padding: 4px;
+}
+
+#gAddPhotosQueue .pending {
+ background-color: #e8e8e8;
+ border: 1px solid #d7d7d7;
+}
+
+#gAddPhotosQueue .error {
+ background-color: #fcc;
+ border: 1px solid #ebb;
+}
+
+#gAddPhotosQueue .uploading {
+ background-color: #ff9;
+ border: 1px solid #ee8;
+}
+
+#gAddPhotosQueue .complete {
+ background-color: #cfc;
+ border: 1px solid #beb;
+}
+
+#gAdminG2ImportNotes {
+ padding-bottom: 20px;
+}
+
+#gAdminG2ImportDetails {
+ padding-top: 20px;
+}
+
+#gAdminG2ImportDetails .gWarning {
+ margin-top: 4px;
+}
+
+#gAdminG2ImportDetails .gInfo {
+ padding: 2px;
+ border: 1px solid #999;
+ margin-bottom: 10px;
+}
+
+#gAdminG2ImportNotes p,
+#gAdminG2ImportDetails .gInfo p {
+ padding: 0;
+ margin: 0;
+}
+
+#gAdminG2ImportNotes ul li,
+#gAdminG2Import .gInfo ul li {
+ padding-left: 0;
+ margin-left: 20px;
+ list-style-type: disc;
+}
+
+/* Right to left styles ~~~~~~~~~~~~~~~~~~~~ */
+
+.rtl {
+ direction: rtl;
+}
+
+.rtl caption,
+.rtl th,
+.rtl #gDialog {
+ text-align: right;
+}
+
+.rtl #gHeader #gQuickSearchForm,
+.rtl #gForgotPasswordLink,
+.rtl #gHeader #gLoginMenu,
+.rtl .ui-icon-right .ui-icon {
+ clear: left;
+ float: left;
+}
+
+.rtl #gDialog .gCancel,
+.rtl form ul ul li,
+.rtl input[type="submit"],
+.rtl input[type="reset"],
+.rtl .gShortForm li,
+.rtl #gHeader #gLogo img,
+.rtl #gContent #gAlbumGrid .gItem,
+.rtl #gSiteMenu,
+.rtl .gBreadcrumbs li,
+.rtl .gPager li,
+.rtl .gButtonSet li,
+.rtl .ui-icon-left .ui-icon {
+ float: right;
+}
+
diff --git a/themes/wind/images/avatar.jpg b/themes/wind/images/avatar.jpg
new file mode 100644
index 00000000..acad9314
--- /dev/null
+++ b/themes/wind/images/avatar.jpg
Binary files differ
diff --git a/themes/wind/images/ico-album.png b/themes/wind/images/ico-album.png
new file mode 100644
index 00000000..affa1b84
--- /dev/null
+++ b/themes/wind/images/ico-album.png
Binary files differ
diff --git a/themes/wind/images/ico-denied-gray.png b/themes/wind/images/ico-denied-gray.png
new file mode 100644
index 00000000..56db3ff5
--- /dev/null
+++ b/themes/wind/images/ico-denied-gray.png
Binary files differ
diff --git a/themes/wind/images/ico-denied-pale.png b/themes/wind/images/ico-denied-pale.png
new file mode 100644
index 00000000..1e992230
--- /dev/null
+++ b/themes/wind/images/ico-denied-pale.png
Binary files differ
diff --git a/themes/wind/images/ico-denied.png b/themes/wind/images/ico-denied.png
new file mode 100644
index 00000000..08f24936
--- /dev/null
+++ b/themes/wind/images/ico-denied.png
Binary files differ
diff --git a/themes/wind/images/ico-error.png b/themes/wind/images/ico-error.png
new file mode 100644
index 00000000..c37bd062
--- /dev/null
+++ b/themes/wind/images/ico-error.png
Binary files differ
diff --git a/themes/wind/images/ico-help.png b/themes/wind/images/ico-help.png
new file mode 100644
index 00000000..5c870176
--- /dev/null
+++ b/themes/wind/images/ico-help.png
Binary files differ
diff --git a/themes/wind/images/ico-info.png b/themes/wind/images/ico-info.png
new file mode 100644
index 00000000..12cd1aef
--- /dev/null
+++ b/themes/wind/images/ico-info.png
Binary files differ
diff --git a/themes/wind/images/ico-lock.png b/themes/wind/images/ico-lock.png
new file mode 100644
index 00000000..2ebc4f6f
--- /dev/null
+++ b/themes/wind/images/ico-lock.png
Binary files differ
diff --git a/themes/wind/images/ico-print.png b/themes/wind/images/ico-print.png
new file mode 100644
index 00000000..b82a8e1e
--- /dev/null
+++ b/themes/wind/images/ico-print.png
Binary files differ
diff --git a/themes/wind/images/ico-separator.gif b/themes/wind/images/ico-separator.gif
new file mode 100644
index 00000000..3de2d0d3
--- /dev/null
+++ b/themes/wind/images/ico-separator.gif
Binary files differ
diff --git a/themes/wind/images/ico-success-gray.png b/themes/wind/images/ico-success-gray.png
new file mode 100644
index 00000000..74b2032f
--- /dev/null
+++ b/themes/wind/images/ico-success-gray.png
Binary files differ
diff --git a/themes/wind/images/ico-success-pale.png b/themes/wind/images/ico-success-pale.png
new file mode 100644
index 00000000..dc8d1ded
--- /dev/null
+++ b/themes/wind/images/ico-success-pale.png
Binary files differ
diff --git a/themes/wind/images/ico-success.png b/themes/wind/images/ico-success.png
new file mode 100644
index 00000000..a9925a06
--- /dev/null
+++ b/themes/wind/images/ico-success.png
Binary files differ
diff --git a/themes/wind/images/ico-view-comments.png b/themes/wind/images/ico-view-comments.png
new file mode 100644
index 00000000..e5d3630f
--- /dev/null
+++ b/themes/wind/images/ico-view-comments.png
Binary files differ
diff --git a/themes/wind/images/ico-view-fullsize.png b/themes/wind/images/ico-view-fullsize.png
new file mode 100644
index 00000000..0be23e9b
--- /dev/null
+++ b/themes/wind/images/ico-view-fullsize.png
Binary files differ
diff --git a/themes/wind/images/ico-view-hybrid.png b/themes/wind/images/ico-view-hybrid.png
new file mode 100644
index 00000000..ee902e55
--- /dev/null
+++ b/themes/wind/images/ico-view-hybrid.png
Binary files differ
diff --git a/themes/wind/images/ico-view-slideshow.png b/themes/wind/images/ico-view-slideshow.png
new file mode 100644
index 00000000..82f61f63
--- /dev/null
+++ b/themes/wind/images/ico-view-slideshow.png
Binary files differ
diff --git a/themes/wind/images/ico-warning.png b/themes/wind/images/ico-warning.png
new file mode 100644
index 00000000..628cf2da
--- /dev/null
+++ b/themes/wind/images/ico-warning.png
Binary files differ
diff --git a/themes/wind/images/select-photos-backg.png b/themes/wind/images/select-photos-backg.png
new file mode 100644
index 00000000..81c2d616
--- /dev/null
+++ b/themes/wind/images/select-photos-backg.png
Binary files differ
diff --git a/themes/wind/js/ui.init.js b/themes/wind/js/ui.init.js
new file mode 100644
index 00000000..4eee1bb2
--- /dev/null
+++ b/themes/wind/js/ui.init.js
@@ -0,0 +1,141 @@
+/**
+ * Initialize jQuery UI and Gallery Plugin elements
+ */
+
+var short_forms = new Array(
+ "#gQuickSearchForm",
+ "#gAddTagForm",
+ "#gSearchForm"
+);
+
+$(document).ready(function() {
+
+ // Initialize Superfish menus
+ $("ul.gMenu").addClass("sf-menu");
+ $('ul.sf-menu').superfish({
+ delay: 500,
+ animation: {
+ opacity:'show',
+ height:'show'
+ },
+ speed: 'fast'
+ });
+ $("#gSiteMenu").css("display", "block");
+
+ // Initialize status message effects
+ $("#gMessage li").gallery_show_message();
+
+ // Initialize dialogs
+ $("#gLoginLink").addClass("gDialogLink");
+ $(".gDialogLink").gallery_dialog();
+
+ // Initialize view menu
+ if ($("#gViewMenu").length) {
+ $("#gViewMenu ul").removeClass("gMenu").removeClass("sf-menu");
+ $("#gViewMenu a").addClass("ui-icon");
+ }
+
+ // Initialize short forms
+ for (var i in short_forms) {
+ short_form_init(short_forms[i]);
+ $(short_forms[i]).addClass("gShortForm");
+ }
+ $(".gShortForm input[type=text]").addClass("ui-corner-left");
+ $(".gShortForm input[type=submit]").addClass("ui-state-default ui-corner-right");
+
+ // Apply jQuery UI button css to submit inputs
+ $("input[type=submit]:not(.gShortForm input)").addClass("ui-state-default ui-corner-all");
+
+ // Apply styles and icon classes to gContextMenu
+ if ($(".gContextMenu").length) {
+ $(".gContextMenu li").addClass("ui-state-default");
+ $(".gContextMenu a").addClass("gButtonLink ui-icon-left");
+ $(".gContextMenu a").prepend("<span class=\"ui-icon\"></span>");
+ $(".gContextMenu a span").each(function() {
+ var iconClass = $(this).parent().attr("class").match(/ui-icon-.[^\s]+/).toString();
+ $(this).addClass(iconClass);
+ });
+ }
+
+ // Album view only
+ if ($("#gAlbumGrid").length) {
+ // Vertical align thumbnails/metadata in album grid
+ $(".gItem").gallery_valign();
+
+ // Initialize thumbnail hover effect
+ $(".gItem").hover(
+ function() {
+ // Insert invisible placeholder to hold the item's position in the grid
+ var placeHolder = $(this).clone();
+ $(placeHolder).attr("id", "gPlaceHolder");
+ $(placeHolder).css("visibility", "hidden");
+ $(this).after($(placeHolder));
+ // Style and position the item
+ $(this).addClass("gHoverItem");
+ var position = $(this).position();
+ $(this).css("position", "absolute");
+ $(this).css("top", position.top);
+ $(this).css("left", position.left);
+ $(this).css("z-index", "1000");
+ // Initialize the contextual menu
+ $(this).gallery_context_menu();
+ // Set height based on height of descendents
+ var title = $(this).find("h2");
+ var meta = $(this).find(".gMetadata");
+ var item_ht = $(this).height();
+ var title_ht = $(title).gallery_height();
+ var meta_ht = $(meta).gallery_height();
+ var ht = item_ht + title_ht + meta_ht;
+ var context_label = $(this).find(".gContextMenu li:first");
+ var css_id = $(this).attr("id");
+ if ($("#" + css_id + " .gContextMenu li").length) {
+ var context_label_ht = $(context_label).gallery_height();
+ ht = ht + context_label_ht;
+ }
+ $(this).height(ht);
+ },
+ function() {
+ // Reset item height, position, and z-index
+ if ($(this).next().height()) {
+ var sib_height = $(this).next().height();
+ } else {
+ var sib_height = $(this).prev().height();
+ }
+ if ($.browser.msie && $.browser.version >= 8) {
+ sib_height = sib_height + 1;
+ }
+ $(this).css("height", sib_height);
+ $(this).css("position", "relative");
+ $(this).css("top", 0);
+ $(this).css("left", 0);
+ $(this).css("z-index", 1);
+ // Remove the placeholder and hover class from the item
+ $("#gPlaceHolder").remove();
+ $(this).removeClass("gHoverItem");
+ }
+ );
+ }
+
+ // Photo/Item item view
+ if ($("#gItem").length) {
+ // Ensure the resized image fits within its container
+ $("#gItem").gallery_fit_photo();
+
+ // Initialize context menus
+ var resize = $("#gItem").gallery_get_photo();
+ $(resize).hover(function(){
+ $(this).gallery_context_menu();
+ });
+
+ // Add scroll effect for links to named anchors
+ $.localScroll({
+ queue: true,
+ duration: 1000,
+ hash: true
+ });
+ }
+
+ // Initialize button hover effect
+ $.fn.gallery_hover_init();
+
+});
diff --git a/themes/wind/theme.info b/themes/wind/theme.info
new file mode 100644
index 00000000..17ea7c20
--- /dev/null
+++ b/themes/wind/theme.info
@@ -0,0 +1,6 @@
+name = "Gallery Wind"
+description = "A crisp and distinctive theme that uses large fonts and icons for easy navigation and an enjoyable browsing experience."
+version = 1
+author = "Gallery Team"
+site = 1
+admin = 0
diff --git a/themes/wind/thumbnail.png b/themes/wind/thumbnail.png
new file mode 100644
index 00000000..c0594db2
--- /dev/null
+++ b/themes/wind/thumbnail.png
Binary files differ
diff --git a/themes/wind/views/album.html.php b/themes/wind/views/album.html.php
new file mode 100644
index 00000000..01f7be50
--- /dev/null
+++ b/themes/wind/views/album.html.php
@@ -0,0 +1,41 @@
+<?php defined("SYSPATH") or die("No direct script access.") ?>
+<? // @todo Set hover on AlbumGrid list items for guest users ?>
+<div id="gInfo">
+ <?= $theme->album_top() ?>
+ <h1><?= html::purify($item->title) ?></h1>
+ <div class="gDescription"><?= nl2br(html::purify($item->description)) ?></div>
+</div>
+
+<ul id="gAlbumGrid">
+<? if (count($children)): ?>
+ <? foreach ($children as $i => $child): ?>
+ <? $item_class = "gPhoto"; ?>
+ <? if ($child->is_album()): ?>
+ <? $item_class = "gAlbum"; ?>
+ <? endif ?>
+ <li id="gItemId-<?= $child->id ?>" class="gItem <?= $item_class ?>">
+ <?= $theme->thumb_top($child) ?>
+ <a href="<?= $child->url() ?>">
+ <?= $child->thumb_img(array("class" => "gThumbnail")) ?>
+ </a>
+ <?= $theme->thumb_bottom($child) ?>
+ <?= $theme->context_menu($child, "#gItemId-{$child->id} .gThumbnail") ?>
+ <h2><span></span><a href="<?= $child->url() ?>"><?= html::purify($child->title) ?></a></h2>
+ <ul class="gMetadata">
+ <?= $theme->thumb_info($child) ?>
+ </ul>
+ </li>
+ <? endforeach ?>
+<? else: ?>
+ <? if ($user->admin || access::can("add", $item)): ?>
+ <? $addurl = url::file("index.php/simple_uploader/app/$item->id") ?>
+ <li><?= t("There aren't any photos here yet! <a %attrs>Add some</a>.",
+ array("attrs" => html::mark_clean("href=\"$addurl\" class=\"gDialogLink\""))) ?></li>
+ <? else: ?>
+ <li><?= t("There aren't any photos here yet!") ?></li>
+ <? endif; ?>
+<? endif; ?>
+</ul>
+<?= $theme->album_bottom() ?>
+
+<?= $theme->pager() ?>
diff --git a/themes/wind/views/block.html.php b/themes/wind/views/block.html.php
new file mode 100644
index 00000000..e8cff833
--- /dev/null
+++ b/themes/wind/views/block.html.php
@@ -0,0 +1,10 @@
+<?php defined("SYSPATH") or die("No direct script access.") ?>
+<? if ($anchor): ?>
+<a name="<?= $anchor ?>"></a>
+<? endif ?>
+<div id="<?= $css_id ?>" class="gBlock">
+ <h2><?= $title ?></h2>
+ <div class="gBlockContent">
+ <?= $content ?>
+ </div>
+</div>
diff --git a/themes/wind/views/dynamic.html.php b/themes/wind/views/dynamic.html.php
new file mode 100644
index 00000000..9ed9d69b
--- /dev/null
+++ b/themes/wind/views/dynamic.html.php
@@ -0,0 +1,29 @@
+<?php defined("SYSPATH") or die("No direct script access.") ?>
+<div id="gAlbumHeader">
+ <div id="gAlbumHeaderButtons">
+ <?= $theme->dynamic_top() ?>
+ </div>
+ <h1><?= html::clean($title) ?></h1>
+</div>
+
+<ul id="gAlbumGrid">
+ <? foreach ($children as $i => $child): ?>
+ <li class="gItem <?= $child->is_album() ? "gAlbum" : "" ?>">
+ <?= $theme->thumb_top($child) ?>
+ <a href="<?= $child->url() ?>">
+ <img id="gPhotoId-<?= $child->id ?>" class="gThumbnail"
+ alt="photo" src="<?= $child->thumb_url() ?>"
+ width="<?= $child->thumb_width ?>"
+ height="<?= $child->thumb_height ?>" />
+ </a>
+ <h2><?= html::purify($child->title) ?></h2>
+ <?= $theme->thumb_bottom($child) ?>
+ <ul class="gMetadata">
+ <?= $theme->thumb_info($child) ?>
+ </ul>
+ </li>
+ <? endforeach ?>
+</ul>
+<?= $theme->dynamic_bottom() ?>
+
+<?= $theme->pager() ?>
diff --git a/themes/wind/views/movie.html.php b/themes/wind/views/movie.html.php
new file mode 100644
index 00000000..910814dd
--- /dev/null
+++ b/themes/wind/views/movie.html.php
@@ -0,0 +1,37 @@
+<?php defined("SYSPATH") or die("No direct script access.") ?>
+<div id="gItem">
+ <?= $theme->photo_top() ?>
+
+ <ul class="gPager">
+ <li>
+ <? if ($previous_item): ?>
+ <a href="<?= $previous_item->url() ?>" class="gButtonLink ui-icon-left ui-state-default ui-corner-all">
+ <span class="ui-icon ui-icon-triangle-1-w"></span><?= t("previous") ?></a>
+ <? else: ?>
+ <a class="gButtonLink ui-icon-left ui-state-disabled ui-corner-all">
+ <span class="ui-icon ui-icon-triangle-1-w"></span><?= t("previous") ?></a>
+ <? endif; ?>
+ </li>
+ <li class="gInfo"><?= t("%position of %total", array("position" => $position, "total" => $sibling_count)) ?></li>
+ <li class="txtright">
+ <? if ($next_item): ?>
+ <a href="<?= $next_item->url() ?>" class="gButtonLink ui-icon-right ui-state-default ui-corner-all">
+ <span class="ui-icon ui-icon-triangle-1-e"></span><?= t("next") ?></a>
+ <? else: ?>
+ <a class="gButtonLink ui-icon-right ui-state-disabled ui-corner-all">
+ <span class="ui-icon ui-icon-triangle-1-e"></span><?= t("next") ?></a>
+ <? endif ?>
+ </li>
+ </ul>
+
+
+ <?= $item->movie_img(array("class" => "gMovie", "id" => "gMovieId-{$item->id}")) ?>
+
+ <div id="gInfo">
+ <h1><?= html::purify($item->title) ?></h1>
+ <div><?= nl2br(html::purify($item->description)) ?></div>
+ </div>
+
+ <?= $theme->photo_bottom() ?>
+ <?= $theme->context_menu($item, "#gMovieId-{$item->id}") ?>
+</div>
diff --git a/themes/wind/views/page.html.php b/themes/wind/views/page.html.php
new file mode 100644
index 00000000..19d8cc00
--- /dev/null
+++ b/themes/wind/views/page.html.php
@@ -0,0 +1,142 @@
+<?php defined("SYSPATH") or die("No direct script access.") ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+ <head>
+ <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+ <title>
+ <? if ($page_title): ?>
+ <?= $page_title ?>
+ <? else: ?>
+ <? if ($theme->item()): ?>
+ <? if ($theme->item()->is_album()): ?>
+ <?= t("Browse Album :: %album_title", array("album_title" => $theme->item()->title)) ?>
+ <? elseif ($theme->item()->is_photo()): ?>
+ <?= t("Photo :: %photo_title", array("photo_title" => $theme->item()->title)) ?>
+ <? else: ?>
+ <?= t("Movie :: %movie_title", array("movie_title" => $theme->item()->title)) ?>
+ <? endif ?>
+ <? elseif ($theme->tag()): ?>
+ <?= t("Browse Tag :: %tag_title", array("tag_title" => $theme->tag()->name)) ?>
+ <? else: /* Not an item, not a tag, no page_title specified. Help! */ ?>
+ <?= t("Gallery") ?>
+ <? endif ?>
+ <? endif ?>
+ </title>
+ <link rel="shortcut icon" href="<?= url::file("lib/images/favicon.ico") ?>" type="image/x-icon" />
+ <?= $theme->css("yui/reset-fonts-grids.css") ?>
+ <?= $theme->css("superfish/css/superfish.css") ?>
+ <?= $theme->css("themeroller/ui.base.css") ?>
+ <?= $theme->css("screen.css") ?>
+ <!--[if lt IE 8]>
+ <link rel="stylesheet" type="text/css" href="<?= $theme->url("css/fix-ie.css") ?>"
+ media="screen,print,projection" />
+ <![endif]-->
+ <? if ($theme->page_type == 'album'): ?>
+ <? if ($thumb_proportion != 1): ?>
+ <? $new_width = $thumb_proportion * 213 ?>
+ <? $new_height = $thumb_proportion * 240 ?>
+ <style type="text/css">
+ #gContent #gAlbumGrid .gItem {
+ width: <?= $new_width ?>px;
+ height: <?= $new_height ?>px;
+ /* <?= $thumb_proportion ?> */
+ }
+ </style>
+ <? endif ?>
+ <? endif ?>
+ <?= $theme->script("jquery.js") ?>
+ <?= $theme->script("jquery.form.js") ?>
+ <?= $theme->script("jquery-ui.js") ?>
+ <?= $theme->script("gallery.common.js") ?>
+ <? /* MSG_CANCEL is required by gallery.dialog.js */ ?>
+ <script type="text/javascript">
+ var MSG_CANCEL = <?= t('Cancel')->for_js() ?>;
+ </script>
+ <?= $theme->script("gallery.ajax.js") ?>
+ <?= $theme->script("gallery.dialog.js") ?>
+ <?= $theme->script("gallery.form.js") ?>
+ <?= $theme->script("superfish/js/superfish.js") ?>
+ <?= $theme->script("jquery.localscroll.js") ?>
+ <?= $theme->script("ui.init.js") ?>
+
+ <? /* These are page specific, but if we put them before $theme->head() they get combined */ ?>
+ <? if ($theme->page_type == "photo"): ?>
+ <?= $theme->script("jquery.scrollTo.js") ?>
+ <?= $theme->script("gallery.show_full_size.js") ?>
+ <? elseif ($theme->page_type == "movie"): ?>
+ <?= $theme->script("flowplayer.js") ?>
+ <? endif ?>
+
+ <?= $theme->head() ?>
+ </head>
+
+ <body <?= $theme->body_attributes() ?>>
+ <?= $theme->page_top() ?>
+ <div id="doc4" class="yui-t5 gView">
+ <?= $theme->site_status() ?>
+ <div id="gHeader">
+ <div id="gBanner">
+ <?= $theme->header_top() ?>
+ <? if ($header_text = module::get_var("gallery", "header_text")): ?>
+ <?= $header_text ?>
+ <? else: ?>
+ <a id="gLogo" href="<?= item::root()->url() ?>" title="<?= t("go back to the Gallery home")->for_html_attr() ?>">
+ <img width="107" height="48" alt="<?= t("Gallery logo: Your photos on your web site")->for_html_attr() ?>" src="<?= url::file("lib/images/logo.png") ?>" />
+ </a>
+ <? endif ?>
+ <div id="gSiteMenu">
+ <?= $theme->site_menu() ?>
+ </div>
+ <?= $theme->header_bottom() ?>
+ </div>
+
+ <? if (!empty($parents)): ?>
+ <ul class="gBreadcrumbs">
+ <? foreach ($parents as $parent): ?>
+ <li>
+ <!-- Adding ?show=<id> causes Gallery3 to display the page
+ containing that photo. For now, we just do it for
+ the immediate parent so that when you go back up a
+ level you're on the right page. -->
+ <a href="<?= $parent->url($parent == $theme->item()->parent() ?
+ "show={$theme->item()->id}" : null) ?>">
+ <?= html::purify($parent->title) ?>
+ </a>
+ </li>
+ <? endforeach ?>
+ <li class="active"><?= html::purify($theme->item()->title) ?></li>
+ </ul>
+ <? endif ?>
+ </div>
+ <div id="bd">
+ <div id="yui-main">
+ <div class="yui-b">
+ <div id="gContent" class="yui-g">
+ <?= $theme->messages() ?>
+ <?= $content ?>
+ </div>
+ </div>
+ </div>
+ <div id="gSidebar" class="yui-b">
+ <? if ($theme->page_type != "login"): ?>
+ <?= new View("sidebar.html") ?>
+ <? endif ?>
+ </div>
+ </div>
+ <div id="gFooter">
+ <?= $theme->footer() ?>
+ <? if ($footer_text = module::get_var("gallery", "footer_text")): ?>
+ <?= $footer_text ?>
+ <? endif ?>
+
+ <? if (module::get_var("gallery", "show_credits")): ?>
+ <ul id="gCredits">
+ <?= $theme->credits() ?>
+ </ul>
+ <? endif ?>
+ </div>
+ </div>
+ <?= $theme->page_bottom() ?>
+ </body>
+</html>
diff --git a/themes/wind/views/pager.html.php b/themes/wind/views/pager.html.php
new file mode 100644
index 00000000..7cdc9bb0
--- /dev/null
+++ b/themes/wind/views/pager.html.php
@@ -0,0 +1,44 @@
+<?php defined("SYSPATH") or die("No direct script access.") ?>
+<? // See http://docs.kohanaphp.com/libraries/pagination ?>
+<ul class="gPager">
+ <? /* @todo This message isn't easily localizable */
+ $from_to_msg = t2("Photo %from_number of %count",
+ "Photos %from_number - %to_number of %count",
+ $total_items,
+ array("from_number" => $current_first_item,
+ "to_number" => $current_last_item,
+ "count" => $total_items)) ?>
+ <li>
+ <? if ($first_page): ?>
+ <a href="<?= str_replace('{page}', 1, $url) ?>" class="gButtonLink ui-icon-left ui-state-default ui-corner-all">
+ <span class="ui-icon ui-icon-seek-first"></span><?= t("first") ?></a>
+ <? else: ?>
+ <a class="gButtonLink ui-icon-left ui-state-disabled ui-corner-all">
+ <span class="ui-icon ui-icon-seek-first"></span><?= t("first") ?></a>
+ <? endif ?>
+ <? if ($previous_page): ?>
+ <a href="<?= str_replace('{page}', $previous_page, $url) ?>" class="gButtonLink ui-icon-left ui-state-default ui-corner-all">
+ <span class="ui-icon ui-icon-seek-prev"></span><?= t("previous") ?></a>
+ <? else: ?>
+ <a class="gButtonLink ui-icon-left ui-state-disabled ui-corner-all">
+ <span class="ui-icon ui-icon-seek-prev"></span><?= t("previous") ?></a>
+ <? endif ?>
+ </li>
+ <li class="gInfo"><?= $from_to_msg ?></li>
+ <li class="txtright">
+ <? if ($next_page): ?>
+ <a href="<?= str_replace('{page}', $next_page, $url) ?>" class="gButtonLink ui-icon-right ui-state-default ui-corner-all">
+ <span class="ui-icon ui-icon-seek-next"></span><?= t("next") ?></a>
+ <? else: ?>
+ <a class="gButtonLink ui-state-disabled ui-icon-right ui-corner-all">
+ <span class="ui-icon ui-icon-seek-next"></span><?= t("next") ?></a>
+ <? endif ?>
+ <? if ($last_page): ?>
+ <a href="<?= str_replace('{page}', $last_page, $url) ?>" class="gButtonLink ui-icon-right ui-state-default ui-corner-all">
+ <span class="ui-icon ui-icon-seek-end"></span><?= t("last") ?></a>
+ <? else: ?>
+ <a class="gButtonLink ui-state-disabled ui-icon-right ui-corner-all">
+ <span class="ui-icon ui-icon-seek-end"></span><?= t("last") ?></a>
+ <? endif ?>
+ </li>
+</ul>
diff --git a/themes/wind/views/photo.html.php b/themes/wind/views/photo.html.php
new file mode 100644
index 00000000..b0096043
--- /dev/null
+++ b/themes/wind/views/photo.html.php
@@ -0,0 +1,59 @@
+<?php defined("SYSPATH") or die("No direct script access.") ?>
+
+<? if (access::can("view_full", $theme->item())): ?>
+<!-- Use javascript to show the full size as an overlay on the current page -->
+<script>
+ $(document).ready(function() {
+ $(".gFullSizeLink").click(function() {
+ $.gallery_show_full_size(<?= html::js_string($theme->item()->file_url()) ?>, "<?= $theme->item()->width ?>", "<?= $theme->item()->height ?>");
+ return false;
+ });
+ });
+</script>
+<? endif ?>
+
+<div id="gItem">
+ <?= $theme->photo_top() ?>
+
+ <ul class="gPager">
+ <li>
+ <? if ($previous_item): ?>
+ <a href="<?= $previous_item->url() ?>" class="gButtonLink ui-icon-left ui-state-default ui-corner-all">
+ <span class="ui-icon ui-icon-triangle-1-w"></span><?= t("previous") ?></a>
+ <? else: ?>
+ <a class="gButtonLink ui-icon-left ui-state-disabled ui-corner-all">
+ <span class="ui-icon ui-icon-triangle-1-w"></span><?= t("previous") ?></a>
+ <? endif; ?>
+ </li>
+ <li class="gInfo"><?= t("%position of %total", array("position" => $position, "total" => $sibling_count)) ?></li>
+ <li class="txtright">
+ <? if ($next_item): ?>
+ <a href="<?= $next_item->url() ?>" class="gButtonLink ui-icon-right ui-state-default ui-corner-all">
+ <span class="ui-icon ui-icon-triangle-1-e"></span><?= t("next") ?></a>
+ <? else: ?>
+ <a class="gButtonLink ui-icon-right ui-state-disabled ui-corner-all">
+ <span class="ui-icon ui-icon-triangle-1-e"></span><?= t("next") ?></a>
+ <? endif ?>
+ </li>
+ </ul>
+
+ <div id="gPhoto">
+ <?= $theme->resize_top($item) ?>
+ <? if (access::can("view_full", $item)): ?>
+ <a href="<?= $item->file_url() ?>" class="gFullSizeLink" title="<?= t("View full size")->for_html_attr() ?>">
+ <? endif ?>
+ <?= $item->resize_img(array("id" => "gPhotoId-{$item->id}", "class" => "gResize")) ?>
+ <? if (access::can("view_full", $item)): ?>
+ </a>
+ <? endif ?>
+ <?= $theme->resize_bottom($item) ?>
+ <?= $theme->context_menu($item, "#gPhotoId-{$item->id}") ?>
+ </div>
+
+ <div id="gInfo">
+ <h1><?= html::purify($item->title) ?></h1>
+ <div><?= nl2br(html::purify($item->description)) ?></div>
+ </div>
+
+ <?= $theme->photo_bottom() ?>
+</div>
diff --git a/themes/wind/views/sidebar.html.php b/themes/wind/views/sidebar.html.php
new file mode 100644
index 00000000..04379eb6
--- /dev/null
+++ b/themes/wind/views/sidebar.html.php
@@ -0,0 +1,18 @@
+<?php defined("SYSPATH") or die("No direct script access.") ?>
+<?= $theme->sidebar_top() ?>
+<div class="gToolbar">
+ <div id="gViewMenu" class="gButtonSet">
+ <? if ($page_type == "album"):?>
+ <?= $theme->album_menu() ?>
+ <? elseif ($page_type == "photo") : ?>
+ <?= $theme->photo_menu() ?>
+ <? elseif ($page_type == "movie") : ?>
+ <?= $theme->movie_menu() ?>
+ <? elseif ($page_type == "tag") : ?>
+ <?= $theme->tag_menu() ?>
+ <? endif ?>
+ </div>
+</div>
+
+<?= $theme->sidebar_blocks() ?>
+<?= $theme->sidebar_bottom() ?>