From d6e26148024e5c4d6040d45362e6efd7acbbeb30 Mon Sep 17 00:00:00 2001 From: Chad Kieffer Date: Fri, 2 Jan 2009 21:21:54 +0000 Subject: [PATCH] Added basic table styles. Fixed width issue on gContent in the admin theme. Only display background colors on gInfo, gError, gWarning, etc. if they appear in gSiteStatus or gMessage. Miscellaneous form style updates. --- themes/admin_default/css/screen.css | 14 +- themes/default/css/screen.css | 102 ++-- .../lightbox/css/jquery.lightbox-0.5.css | 101 ++++ .../lightbox/images/lightbox-blank.gif | Bin 0 -> 43 bytes .../lightbox/images/lightbox-btn-close.gif | Bin 0 -> 700 bytes .../lightbox/images/lightbox-btn-next.gif | Bin 0 -> 812 bytes .../lightbox/images/lightbox-btn-prev.gif | Bin 0 -> 832 bytes .../lightbox/images/lightbox-ico-loading.gif | Bin 0 -> 3990 bytes .../lightbox/js/jquery.lightbox-0.5.js | 472 ++++++++++++++++++ .../lightbox/js/jquery.lightbox-0.5.min.js | 42 ++ .../lightbox/js/jquery.lightbox-0.5.pack.js | 14 + 11 files changed, 698 insertions(+), 47 deletions(-) create mode 100644 themes/default/lightbox/css/jquery.lightbox-0.5.css create mode 100644 themes/default/lightbox/images/lightbox-blank.gif create mode 100644 themes/default/lightbox/images/lightbox-btn-close.gif create mode 100644 themes/default/lightbox/images/lightbox-btn-next.gif create mode 100644 themes/default/lightbox/images/lightbox-btn-prev.gif create mode 100644 themes/default/lightbox/images/lightbox-ico-loading.gif create mode 100644 themes/default/lightbox/js/jquery.lightbox-0.5.js create mode 100644 themes/default/lightbox/js/jquery.lightbox-0.5.min.js create mode 100644 themes/default/lightbox/js/jquery.lightbox-0.5.pack.js diff --git a/themes/admin_default/css/screen.css b/themes/admin_default/css/screen.css index 0ceef1dd..4ff093eb 100644 --- a/themes/admin_default/css/screen.css +++ b/themes/admin_default/css/screen.css @@ -37,6 +37,7 @@ #gContent { font-size: 1.1em; + width: 97%; } /** ******************************************************************* @@ -59,10 +60,6 @@ margin-bottom: 0; } -#gContent .gBlock { - margin-right: 1em; -} - #gContent .gBlock h2 { cursor: move; margin: -.8em -.3em 0 -.3em; @@ -74,14 +71,7 @@ } #gPhotoStream .gBlockContent { - overflow: scroll; -} - -.gBlockContent .gError, -.gBlockContent .gInfo, -.gBlockContent .gSuccess, -.gBlockContent .gWarning { - background-color: transparent; + overflow: auto; } /** ******************************************************************* diff --git a/themes/default/css/screen.css b/themes/default/css/screen.css index d7867df3..5eb5f700 100644 --- a/themes/default/css/screen.css +++ b/themes/default/css/screen.css @@ -13,6 +13,7 @@ * 7) Browser hacks * 8) jQuery and jQuery UI * + * @todo Default user icon (user w/ camera) * @todo Group Credits and gLoginMenu seperator styles * @todo Apply :hover bg image to #gViewMenu (will clear fix correct this?) * @todo Refactor form layout styles to reserve room for validation messages in default state. This @@ -77,13 +78,31 @@ a:hover { /* Tables ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ -caption { +table { + width: 100%; +} + +#gContent table { + margin: 1em 0; +} + +caption, +th { text-align: left; } th { font-weight: bold; - text-align: left; +} + +td { +} + +th, +td { + border: 1px solid #ccc; + padding: .3em; + vertical-align: top; } /* Forms ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ @@ -92,18 +111,27 @@ fieldset { border: 1px solid #ccc; } +#gHeader fieldset, +#gSidebar fieldset { + border: none; +} + legend { font-weight: bold; margin-left: 1em; } +#gHeader legend, +#gSidebar legend { + display: none; +} + label { cursor: help; } input[type="text"], input[type="password"], -textarea, select { width: 50%; } @@ -123,6 +151,10 @@ input[type="checkbox"] { input[type="file"] { } +input[type="hidden"] { + display: none; +} + input[type="password"] { } @@ -135,7 +167,9 @@ input[type="reset"] { input[type="submit"] { } -input[type="text"] { +#gHeader input[type="text"], +#gSidebar input[type="text"] { + color: #999; } option { @@ -148,7 +182,7 @@ select { } textarea { - width: 99%; + width: 100%; height: 12em; } @@ -159,6 +193,7 @@ input:focus, textarea:focus, option:focus { background-color: #ffc; + color: #000; } /* Form layout ~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ @@ -181,13 +216,11 @@ select, textarea { display: block; clear: both; + padding: .2em; } /* Form validation ~~~~~~~~~~~~~~~~~~~~~~~ */ -.gRequired { -} - .gValidationRule { font-size: 80%; margin-top: .5em; @@ -235,19 +268,6 @@ li.gError select { padding: .5em 1em; } -/* Metadata ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ - -.gMetadata td, -.gMetadata th { - padding: 0 1em .5em 0; - vertical-align: top; -} - -.gMetadata th, -.gMetadata td.toggle { - text-align: right; -} - /* Status messages ~~~~~~~~~~~~~~~~~~~~~~~ */ #gSiteStatus li, @@ -256,29 +276,48 @@ li.gError select { margin-bottom: .4em; } -.gError, .gInfo, .gSuccess, .gWarning { - background-color: #e8e8e8; +.gError, +.gInfo, +.gSuccess, +.gWarning { background-position: .4em 50%; background-repeat: no-repeat; padding: .4em .5em .4em 30px; } -.gError { +#gSiteStatus .gError, +#gMessage .gError { background-color: #fcc; +} + +.gError { background-image: url('../images/ico-error.png'); } +#gSiteStatus .gInfo, +#gMessage .gInfo { + background-color: #e8e8e8; +} + .gInfo { background-image: url('../images/ico-info.png'); } -.gSuccess { +#gSiteStatus .gSuccess, +#gMessage .gSuccess { background-color: #cfc; +} + +.gSuccess { background-image: url('../images/ico-success.png'); } -.gWarning { +#gSiteStatus .gWarning, +#gMessage .gWarning { background-color: #ff9; +} + +.gWarning { background-image: url('../images/ico-warning.png'); } @@ -290,18 +329,11 @@ li.gError select { padding: .4em .5em; } -#gHeader #gSearchForm legend, -#gHeader #gSearchForm label, -#gSidebar #gAddTagForm legend, -#gSidebar #gAddTagForm label { +#gHeader #gSearchForm label, +#gSidebar #gAddTagForm label { display: none; } -#gHeader #gSearchForm fieldset, -#gSidebar #gAddTagForm fieldset { - border: none; -} - #gHeader #gSearchForm input[type="text"], #gSidebar #gAddTagForm input[type="text"] { width: 10em; diff --git a/themes/default/lightbox/css/jquery.lightbox-0.5.css b/themes/default/lightbox/css/jquery.lightbox-0.5.css new file mode 100644 index 00000000..fea1a99e --- /dev/null +++ b/themes/default/lightbox/css/jquery.lightbox-0.5.css @@ -0,0 +1,101 @@ +/** + * jQuery lightBox plugin + * This jQuery plugin was inspired and based on Lightbox 2 by Lokesh Dhakar (http://www.huddletogether.com/projects/lightbox2/) + * and adapted to me for use like a plugin from jQuery. + * @name jquery-lightbox-0.5.css + * @author Leandro Vieira Pinho - http://leandrovieira.com + * @version 0.5 + * @date April 11, 2008 + * @category jQuery plugin + * @copyright (c) 2008 Leandro Vieira Pinho (leandrovieira.com) + * @license CC Attribution-No Derivative Works 2.5 Brazil - http://creativecommons.org/licenses/by-nd/2.5/br/deed.en_US + * @example Visit http://leandrovieira.com/projects/jquery/lightbox/ for more informations about this jQuery plugin + */ +#jquery-overlay { + position: absolute; + top: 0; + left: 0; + z-index: 90; + width: 100%; + height: 500px; +} +#jquery-lightbox { + position: absolute; + top: 0; + left: 0; + width: 100%; + z-index: 100; + text-align: center; + line-height: 0; +} +#jquery-lightbox a img { border: none; } +#lightbox-container-image-box { + position: relative; + background-color: #fff; + width: 250px; + height: 250px; + margin: 0 auto; +} +#lightbox-container-image { padding: 10px; } +#lightbox-loading { + position: absolute; + top: 40%; + left: 0%; + height: 25%; + width: 100%; + text-align: center; + line-height: 0; +} +#lightbox-nav { + position: absolute; + top: 0; + left: 0; + height: 100%; + width: 100%; + z-index: 10; +} +#lightbox-container-image-box > #lightbox-nav { left: 0; } +#lightbox-nav a { outline: none;} +#lightbox-nav-btnPrev, #lightbox-nav-btnNext { + width: 49%; + height: 100%; + zoom: 1; + display: block; +} +#lightbox-nav-btnPrev { + left: 0; + float: left; +} +#lightbox-nav-btnNext { + right: 0; + float: right; +} +#lightbox-container-image-data-box { + font: 10px Verdana, Helvetica, sans-serif; + background-color: #fff; + margin: 0 auto; + line-height: 1.4em; + overflow: auto; + width: 100%; + padding: 0 10px 0; +} +#lightbox-container-image-data { + padding: 0 10px; + color: #666; +} +#lightbox-container-image-data #lightbox-image-details { + width: 70%; + float: left; + text-align: left; +} +#lightbox-image-details-caption { font-weight: bold; } +#lightbox-image-details-currentNumber { + display: block; + clear: left; + padding-bottom: 1.0em; +} +#lightbox-secNav-btnClose { + width: 66px; + float: right; + padding-bottom: 0.7em; +} \ No newline at end of file diff --git a/themes/default/lightbox/images/lightbox-blank.gif b/themes/default/lightbox/images/lightbox-blank.gif new file mode 100644 index 0000000000000000000000000000000000000000..1d11fa9ada9e93505b3d736acb204083f45d5fbf GIT binary patch literal 43 scmZ?wbhEHbWMp7uX!y@?;J^U}1_s5SEQ~;kK?g*DWEhy3To@Uw0n;G|I{*Lx literal 0 HcmV?d00001 diff --git a/themes/default/lightbox/images/lightbox-btn-close.gif b/themes/default/lightbox/images/lightbox-btn-close.gif new file mode 100644 index 0000000000000000000000000000000000000000..33bcf517a35b72135b6a5b97bac72425762b8343 GIT binary patch literal 700 zcmZ?wbhEHbbYc)=xXQrr|NsBLfB*ja_3OuvA78(I{qW(#>({SezI^%Y*|R54p4`8G z|IVE|w{G3Ke*OB@t5+{wx^(*V=@TbT?Ay0*`}XZywrtt7Y18`k>sPE;v3T*~dGqGY zo;`cov}qG3PVDdR@9F7jZ*OmEYHDa`sI9FnD=RB5E-oxA%*)Hm%*;$rPftlnNlHqJ zkB^Uyjg5+m3Jnbn4h{|o2=Mds^Y-@k^z?Ldb7LR`6o0ZXurvH;&;cm~`H6w;ze7WT zhmKVLi6uoRbFAiHSg}QNM$~#2#^;SaIV^5XhYKa-WLTaw7EPSeoxUZ&W*tAf%&o4( zmMs}FnZ=U&t@`p#;`)5z0}*FgxG7?Q+eP>#}Q0kG{s^ou20;n;V<17z*6xlW|Jw?=bOR#PEpA zg=KOFx5Rw`%jtY|_3ZS` zqUjnN13nacHVT_2ml!nlJA2OW%MmP8S=ga0=sH=)An?>j$~+u1KUln%@oJ3-U|ygRY{{;{vyg#@ zVe7)XGmJPB4>%ce-gMSF@xfy;(;UM9kqL%E%RL+UjM8k(gB06(gljgeIR7Z|k07_Y Yz?%8?E)08>7@u6ee}4b|UkVJ?0I^^iLI3~& literal 0 HcmV?d00001 diff --git a/themes/default/lightbox/images/lightbox-btn-next.gif b/themes/default/lightbox/images/lightbox-btn-next.gif new file mode 100644 index 0000000000000000000000000000000000000000..a0d4fcf84a784f2cf44c33084145dde5df294ccf GIT binary patch literal 812 zcmZ?wbhEHbv}aIYc*el+|NsBLfB*je{rl(7pWnZK|N8ao=g*%%e*F0U{rk6X-@bnR z`sK@)&!0bk_Uze{Cr=(ddi3DIgM0Vx-MMq;#*G`-u3fuy>C%M@7tWnKck0xs6DLj_ zJ9g~Qp+g4_9N4pG&#qm&wr$(CWy_Y$n>TOVxN-gZ^=sFzUA=ns%9SgZFJHcN>C(lE z7tftLclPYrGiT16IB{Zse}8XpZ+CZhdwY9pYio0Jb7Ny;LqkJdU0qdGRYgTbSy@?0 zNl8ILL0(>7PEJl%R#rwvMp{~0N=iynQc^-fLR?&2OiWBvR8&MnL|9l@NJvOfP*6ZX zfS;eAudlDSx3{OKr@OnmtE;QCvop}+41)kD{$ycfX9#A{0l5VfCk*WW8-jxwT3XxM zJ370%dpeqXCrq3)dCJsj(`U?_HG9t7dGi-6T(o$}(q+q6EMSyU6K`dbQDR_IP*vNm z&M%^|u7yignomt{TLh9X-vlT%qa~3Xe4)wGVP;i|rWZ3pVTZ!3`iIq!%NnqiVmI=~4yG?*UBuy@#qi_9lOv%EOFWqjwm)IFQ?j)3`1T=zfmcO{foI3W6sLtd zS4F+)nC;}rU*j;#AyW5g3x|3eXP|{qRNj;|3pfM literal 0 HcmV?d00001 diff --git a/themes/default/lightbox/images/lightbox-btn-prev.gif b/themes/default/lightbox/images/lightbox-btn-prev.gif new file mode 100644 index 0000000000000000000000000000000000000000..040ee5992f7fdb9b51907cb4ba1c5570b1b5482a GIT binary patch literal 832 zcmZ?wbhEHbv}aIYc*el+|NsBLfB*je{rl(7pFe*5`1bAFmoHyFefsp_!-se8-o1MD z>gCIq&!0bk`t<4J$B!RAe0cx<{kwPX-oAbN)~#DNZrr$b?b?+qS1w$*aPHi>GiT16 zK7IP+$&<&AA3u8Z=;6bM4<0Ta{2P*ix)3mxNzb8`Sa(^n>T09oLRGG&6qJ`%9JS+CQRt>@9*vHZEbCBZf^0EX>c(&&|!v&d$!v%uG#9O-@cuN=iydNQjGz zi;0Peii(PehzJV{3keAc4h{|s4D|Q+_x1Jl_V)Jl^mKQ3cXD!aaBu(y1q0oI;!hSv zc7{j>9gxkSIALJ_-@wq++|t_C-qG3B78%*yKVf2j-=wM2rq7r;YxbPE^X4yDxM=Z` zrOTGDSUHZ{$*`cIU*V9G=mkL*$3~&B9F~NQE=O7f+$T8{d|+|! z5LB^I==tcv%)lM$(xcU&+%-wnv&x6z08`gQRsV((28G1VNlI>g4%W9mc+UCN{rKLQV#k0fcFk=e`pVK=5riUkZTAtTQ6isw#WRUmZ3z(a9R-j$e ze3FRFDrSywC%q{a3<^!By0Zf_LL_n(8yB!Rulm4I*~32ZbaR4DVcG)ssl5F2B6c2< z?&fr4Oo*`z)H=|_wuV)6!iF%%R#s*epBZ+t2Ny7lSgg8L*Lk3Uk?9ck4?hLV?=DPC dE8_S6+w=SThsUSq`|tm!>h(?3l#7MI8UW1vMEU># literal 0 HcmV?d00001 diff --git a/themes/default/lightbox/images/lightbox-ico-loading.gif b/themes/default/lightbox/images/lightbox-ico-loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..4f1429c06cb2ffd2910b038d06b01a4b3ee00a21 GIT binary patch literal 3990 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 +
+ + +
+ * + */ + function _set_interface() { + // Apply the HTML markup into body tag + $('body').append('
'); + // Get page sizes + var arrPageSizes = ___getPageSize(); + // Style overlay and show it + $('#jquery-overlay').css({ + backgroundColor: settings.overlayBgColor, + opacity: settings.overlayOpacity, + width: arrPageSizes[0], + height: arrPageSizes[1] + }).fadeIn(); + // Get page scroll + var arrPageScroll = ___getPageScroll(); + // Calculate top and left offset for the jquery-lightbox div object and show it + $('#jquery-lightbox').css({ + top: arrPageScroll[1] + (arrPageSizes[3] / 10), + left: arrPageScroll[0] + }).show(); + // Assigning click events in elements to close overlay + $('#jquery-overlay,#jquery-lightbox').click(function() { + _finish(); + }); + // Assign the _finish function to lightbox-loading-link and lightbox-secNav-btnClose objects + $('#lightbox-loading-link,#lightbox-secNav-btnClose').click(function() { + _finish(); + return false; + }); + // If window was resized, calculate the new overlay dimensions + $(window).resize(function() { + // Get page sizes + var arrPageSizes = ___getPageSize(); + // Style overlay and show it + $('#jquery-overlay').css({ + width: arrPageSizes[0], + height: arrPageSizes[1] + }); + // Get page scroll + var arrPageScroll = ___getPageScroll(); + // Calculate top and left offset for the jquery-lightbox div object and show it + $('#jquery-lightbox').css({ + top: arrPageScroll[1] + (arrPageSizes[3] / 10), + left: arrPageScroll[0] + }); + }); + } + /** + * Prepares image exibition; doing a imageīs preloader to calculate itīs size + * + */ + function _set_image_to_view() { // show the loading + // Show the loading + $('#lightbox-loading').show(); + if ( settings.fixedNavigation ) { + $('#lightbox-image,#lightbox-container-image-data-box,#lightbox-image-details-currentNumber').hide(); + } else { + // Hide some elements + $('#lightbox-image,#lightbox-nav,#lightbox-nav-btnPrev,#lightbox-nav-btnNext,#lightbox-container-image-data-box,#lightbox-image-details-currentNumber').hide(); + } + // Image preload process + var objImagePreloader = new Image(); + objImagePreloader.onload = function() { + $('#lightbox-image').attr('src',settings.imageArray[settings.activeImage][0]); + // Perfomance an effect in the image container resizing it + _resize_container_image_box(objImagePreloader.width,objImagePreloader.height); + // clear onLoad, IE behaves irratically with animated gifs otherwise + objImagePreloader.onload=function(){}; + }; + objImagePreloader.src = settings.imageArray[settings.activeImage][0]; + }; + /** + * Perfomance an effect in the image container resizing it + * + * @param integer intImageWidth The imageīs width that will be showed + * @param integer intImageHeight The imageīs height that will be showed + */ + function _resize_container_image_box(intImageWidth,intImageHeight) { + // Get current width and height + var intCurrentWidth = $('#lightbox-container-image-box').width(); + var intCurrentHeight = $('#lightbox-container-image-box').height(); + // Get the width and height of the selected image plus the padding + var intWidth = (intImageWidth + (settings.containerBorderSize * 2)); // Plus the imageīs width and the left and right padding value + var intHeight = (intImageHeight + (settings.containerBorderSize * 2)); // Plus the imageīs height and the left and right padding value + // Diferences + var intDiffW = intCurrentWidth - intWidth; + var intDiffH = intCurrentHeight - intHeight; + // Perfomance the effect + $('#lightbox-container-image-box').animate({ width: intWidth, height: intHeight },settings.containerResizeSpeed,function() { _show_image(); }); + if ( ( intDiffW == 0 ) && ( intDiffH == 0 ) ) { + if ( $.browser.msie ) { + ___pause(250); + } else { + ___pause(100); + } + } + $('#lightbox-container-image-data-box').css({ width: intImageWidth }); + $('#lightbox-nav-btnPrev,#lightbox-nav-btnNext').css({ height: intImageHeight + (settings.containerBorderSize * 2) }); + }; + /** + * Show the prepared image + * + */ + function _show_image() { + $('#lightbox-loading').hide(); + $('#lightbox-image').fadeIn(function() { + _show_image_data(); + _set_navigation(); + }); + _preload_neighbor_images(); + }; + /** + * Show the image information + * + */ + function _show_image_data() { + $('#lightbox-container-image-data-box').slideDown('fast'); + $('#lightbox-image-details-caption').hide(); + if ( settings.imageArray[settings.activeImage][1] ) { + $('#lightbox-image-details-caption').html(settings.imageArray[settings.activeImage][1]).show(); + } + // If we have a image set, display 'Image X of X' + if ( settings.imageArray.length > 1 ) { + $('#lightbox-image-details-currentNumber').html(settings.txtImage + ' ' + ( settings.activeImage + 1 ) + ' ' + settings.txtOf + ' ' + settings.imageArray.length).show(); + } + } + /** + * Display the button navigations + * + */ + function _set_navigation() { + $('#lightbox-nav').show(); + + // Instead to define this configuration in CSS file, we define here. And itīs need to IE. Just. + $('#lightbox-nav-btnPrev,#lightbox-nav-btnNext').css({ 'background' : 'transparent url(' + settings.imageBlank + ') no-repeat' }); + + // Show the prev button, if not the first image in set + if ( settings.activeImage != 0 ) { + if ( settings.fixedNavigation ) { + $('#lightbox-nav-btnPrev').css({ 'background' : 'url(' + settings.imageBtnPrev + ') left 15% no-repeat' }) + .unbind() + .bind('click',function() { + settings.activeImage = settings.activeImage - 1; + _set_image_to_view(); + return false; + }); + } else { + // Show the images button for Next buttons + $('#lightbox-nav-btnPrev').unbind().hover(function() { + $(this).css({ 'background' : 'url(' + settings.imageBtnPrev + ') left 15% no-repeat' }); + },function() { + $(this).css({ 'background' : 'transparent url(' + settings.imageBlank + ') no-repeat' }); + }).show().bind('click',function() { + settings.activeImage = settings.activeImage - 1; + _set_image_to_view(); + return false; + }); + } + } + + // Show the next button, if not the last image in set + if ( settings.activeImage != ( settings.imageArray.length -1 ) ) { + if ( settings.fixedNavigation ) { + $('#lightbox-nav-btnNext').css({ 'background' : 'url(' + settings.imageBtnNext + ') right 15% no-repeat' }) + .unbind() + .bind('click',function() { + settings.activeImage = settings.activeImage + 1; + _set_image_to_view(); + return false; + }); + } else { + // Show the images button for Next buttons + $('#lightbox-nav-btnNext').unbind().hover(function() { + $(this).css({ 'background' : 'url(' + settings.imageBtnNext + ') right 15% no-repeat' }); + },function() { + $(this).css({ 'background' : 'transparent url(' + settings.imageBlank + ') no-repeat' }); + }).show().bind('click',function() { + settings.activeImage = settings.activeImage + 1; + _set_image_to_view(); + return false; + }); + } + } + // Enable keyboard navigation + _enable_keyboard_navigation(); + } + /** + * Enable a support to keyboard navigation + * + */ + function _enable_keyboard_navigation() { + $(document).keydown(function(objEvent) { + _keyboard_action(objEvent); + }); + } + /** + * Disable the support to keyboard navigation + * + */ + function _disable_keyboard_navigation() { + $(document).unbind(); + } + /** + * Perform the keyboard actions + * + */ + function _keyboard_action(objEvent) { + // To ie + if ( objEvent == null ) { + keycode = event.keyCode; + escapeKey = 27; + // To Mozilla + } else { + keycode = objEvent.keyCode; + escapeKey = objEvent.DOM_VK_ESCAPE; + } + // Get the key in lower case form + key = String.fromCharCode(keycode).toLowerCase(); + // Verify the keys to close the ligthBox + if ( ( key == settings.keyToClose ) || ( key == 'x' ) || ( keycode == escapeKey ) ) { + _finish(); + } + // Verify the key to show the previous image + if ( ( key == settings.keyToPrev ) || ( keycode == 37 ) ) { + // If weīre not showing the first image, call the previous + if ( settings.activeImage != 0 ) { + settings.activeImage = settings.activeImage - 1; + _set_image_to_view(); + _disable_keyboard_navigation(); + } + } + // Verify the key to show the next image + if ( ( key == settings.keyToNext ) || ( keycode == 39 ) ) { + // If weīre not showing the last image, call the next + if ( settings.activeImage != ( settings.imageArray.length - 1 ) ) { + settings.activeImage = settings.activeImage + 1; + _set_image_to_view(); + _disable_keyboard_navigation(); + } + } + } + /** + * Preload prev and next images being showed + * + */ + function _preload_neighbor_images() { + if ( (settings.imageArray.length -1) > settings.activeImage ) { + objNext = new Image(); + objNext.src = settings.imageArray[settings.activeImage + 1][0]; + } + if ( settings.activeImage > 0 ) { + objPrev = new Image(); + objPrev.src = settings.imageArray[settings.activeImage -1][0]; + } + } + /** + * Remove jQuery lightBox plugin HTML markup + * + */ + function _finish() { + $('#jquery-lightbox').remove(); + $('#jquery-overlay').fadeOut(function() { $('#jquery-overlay').remove(); }); + // Show some elements to avoid conflict with overlay in IE. These elements appear above the overlay. + $('embed, object, select').css({ 'visibility' : 'visible' }); + } + /** + / THIRD FUNCTION + * getPageSize() by quirksmode.com + * + * @return Array Return an array with page width, height and window width, height + */ + function ___getPageSize() { + var xScroll, yScroll; + if (window.innerHeight && window.scrollMaxY) { + xScroll = window.innerWidth + window.scrollMaxX; + yScroll = window.innerHeight + window.scrollMaxY; + } else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac + xScroll = document.body.scrollWidth; + yScroll = document.body.scrollHeight; + } else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari + xScroll = document.body.offsetWidth; + yScroll = document.body.offsetHeight; + } + var windowWidth, windowHeight; + if (self.innerHeight) { // all except Explorer + if(document.documentElement.clientWidth){ + windowWidth = document.documentElement.clientWidth; + } else { + windowWidth = self.innerWidth; + } + windowHeight = self.innerHeight; + } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode + windowWidth = document.documentElement.clientWidth; + windowHeight = document.documentElement.clientHeight; + } else if (document.body) { // other Explorers + windowWidth = document.body.clientWidth; + windowHeight = document.body.clientHeight; + } + // for small pages with total height less then height of the viewport + if(yScroll < windowHeight){ + pageHeight = windowHeight; + } else { + pageHeight = yScroll; + } + // for small pages with total width less then width of the viewport + if(xScroll < windowWidth){ + pageWidth = xScroll; + } else { + pageWidth = windowWidth; + } + arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight); + return arrayPageSize; + }; + /** + / THIRD FUNCTION + * getPageScroll() by quirksmode.com + * + * @return Array Return an array with x,y page scroll values. + */ + function ___getPageScroll() { + var xScroll, yScroll; + if (self.pageYOffset) { + yScroll = self.pageYOffset; + xScroll = self.pageXOffset; + } else if (document.documentElement && document.documentElement.scrollTop) { // Explorer 6 Strict + yScroll = document.documentElement.scrollTop; + xScroll = document.documentElement.scrollLeft; + } else if (document.body) {// all other Explorers + yScroll = document.body.scrollTop; + xScroll = document.body.scrollLeft; + } + arrayPageScroll = new Array(xScroll,yScroll); + return arrayPageScroll; + }; + /** + * Stop the code execution from a escified time in milisecond + * + */ + function ___pause(ms) { + var date = new Date(); + curDate = null; + do { var curDate = new Date(); } + while ( curDate - date < ms); + }; + // Return the jQuery object for chaining. The unbind method is used to avoid click conflict when the plugin is called more than once + return this.unbind('click').click(_initialize); + }; +})(jQuery); // Call and execute the function immediately passing the jQuery object \ No newline at end of file diff --git a/themes/default/lightbox/js/jquery.lightbox-0.5.min.js b/themes/default/lightbox/js/jquery.lightbox-0.5.min.js new file mode 100644 index 00000000..7e771b45 --- /dev/null +++ b/themes/default/lightbox/js/jquery.lightbox-0.5.min.js @@ -0,0 +1,42 @@ +/** + * jQuery lightBox plugin + * This jQuery plugin was inspired and based on Lightbox 2 by Lokesh Dhakar (http://www.huddletogether.com/projects/lightbox2/) + * and adapted to me for use like a plugin from jQuery. + * @name jquery-lightbox-0.5.js + * @author Leandro Vieira Pinho - http://leandrovieira.com + * @version 0.5 + * @date April 11, 2008 + * @category jQuery plugin + * @copyright (c) 2008 Leandro Vieira Pinho (leandrovieira.com) + * @license CC Attribution-No Derivative Works 2.5 Brazil - http://creativecommons.org/licenses/by-nd/2.5/br/deed.en_US + * @example Visit http://leandrovieira.com/projects/jquery/lightbox/ for more informations about this jQuery plugin + */ +(function($){$.fn.lightBox=function(settings){settings=jQuery.extend({overlayBgColor:'#000',overlayOpacity:0.8,fixedNavigation:false,imageLoading:'images/lightbox-ico-loading.gif',imageBtnPrev:'images/lightbox-btn-prev.gif',imageBtnNext:'images/lightbox-btn-next.gif',imageBtnClose:'images/lightbox-btn-close.gif',imageBlank:'images/lightbox-blank.gif',containerBorderSize:10,containerResizeSpeed:400,txtImage:'Image',txtOf:'of',keyToClose:'c',keyToPrev:'p',keyToNext:'n',imageArray:[],activeImage:0},settings);var jQueryMatchedObj=this;function _initialize(){_start(this,jQueryMatchedObj);return false;} +function _start(objClicked,jQueryMatchedObj){$('embed, object, select').css({'visibility':'hidden'});_set_interface();settings.imageArray.length=0;settings.activeImage=0;if(jQueryMatchedObj.length==1){settings.imageArray.push(new Array(objClicked.getAttribute('href'),objClicked.getAttribute('title')));}else{for(var i=0;i
');var arrPageSizes=___getPageSize();$('#jquery-overlay').css({backgroundColor:settings.overlayBgColor,opacity:settings.overlayOpacity,width:arrPageSizes[0],height:arrPageSizes[1]}).fadeIn();var arrPageScroll=___getPageScroll();$('#jquery-lightbox').css({top:arrPageScroll[1]+(arrPageSizes[3]/10),left:arrPageScroll[0]}).show();$('#jquery-overlay,#jquery-lightbox').click(function(){_finish();});$('#lightbox-loading-link,#lightbox-secNav-btnClose').click(function(){_finish();return false;});$(window).resize(function(){var arrPageSizes=___getPageSize();$('#jquery-overlay').css({width:arrPageSizes[0],height:arrPageSizes[1]});var arrPageScroll=___getPageScroll();$('#jquery-lightbox').css({top:arrPageScroll[1]+(arrPageSizes[3]/10),left:arrPageScroll[0]});});} +function _set_image_to_view(){$('#lightbox-loading').show();if(settings.fixedNavigation){$('#lightbox-image,#lightbox-container-image-data-box,#lightbox-image-details-currentNumber').hide();}else{$('#lightbox-image,#lightbox-nav,#lightbox-nav-btnPrev,#lightbox-nav-btnNext,#lightbox-container-image-data-box,#lightbox-image-details-currentNumber').hide();} +var objImagePreloader=new Image();objImagePreloader.onload=function(){$('#lightbox-image').attr('src',settings.imageArray[settings.activeImage][0]);_resize_container_image_box(objImagePreloader.width,objImagePreloader.height);objImagePreloader.onload=function(){};};objImagePreloader.src=settings.imageArray[settings.activeImage][0];};function _resize_container_image_box(intImageWidth,intImageHeight){var intCurrentWidth=$('#lightbox-container-image-box').width();var intCurrentHeight=$('#lightbox-container-image-box').height();var intWidth=(intImageWidth+(settings.containerBorderSize*2));var intHeight=(intImageHeight+(settings.containerBorderSize*2));var intDiffW=intCurrentWidth-intWidth;var intDiffH=intCurrentHeight-intHeight;$('#lightbox-container-image-box').animate({width:intWidth,height:intHeight},settings.containerResizeSpeed,function(){_show_image();});if((intDiffW==0)&&(intDiffH==0)){if($.browser.msie){___pause(250);}else{___pause(100);}} +$('#lightbox-container-image-data-box').css({width:intImageWidth});$('#lightbox-nav-btnPrev,#lightbox-nav-btnNext').css({height:intImageHeight+(settings.containerBorderSize*2)});};function _show_image(){$('#lightbox-loading').hide();$('#lightbox-image').fadeIn(function(){_show_image_data();_set_navigation();});_preload_neighbor_images();};function _show_image_data(){$('#lightbox-container-image-data-box').slideDown('fast');$('#lightbox-image-details-caption').hide();if(settings.imageArray[settings.activeImage][1]){$('#lightbox-image-details-caption').html(settings.imageArray[settings.activeImage][1]).show();} +if(settings.imageArray.length>1){$('#lightbox-image-details-currentNumber').html(settings.txtImage+' '+(settings.activeImage+1)+' '+settings.txtOf+' '+settings.imageArray.length).show();}} +function _set_navigation(){$('#lightbox-nav').show();$('#lightbox-nav-btnPrev,#lightbox-nav-btnNext').css({'background':'transparent url('+settings.imageBlank+') no-repeat'});if(settings.activeImage!=0){if(settings.fixedNavigation){$('#lightbox-nav-btnPrev').css({'background':'url('+settings.imageBtnPrev+') left 15% no-repeat'}).unbind().bind('click',function(){settings.activeImage=settings.activeImage-1;_set_image_to_view();return false;});}else{$('#lightbox-nav-btnPrev').unbind().hover(function(){$(this).css({'background':'url('+settings.imageBtnPrev+') left 15% no-repeat'});},function(){$(this).css({'background':'transparent url('+settings.imageBlank+') no-repeat'});}).show().bind('click',function(){settings.activeImage=settings.activeImage-1;_set_image_to_view();return false;});}} +if(settings.activeImage!=(settings.imageArray.length-1)){if(settings.fixedNavigation){$('#lightbox-nav-btnNext').css({'background':'url('+settings.imageBtnNext+') right 15% no-repeat'}).unbind().bind('click',function(){settings.activeImage=settings.activeImage+1;_set_image_to_view();return false;});}else{$('#lightbox-nav-btnNext').unbind().hover(function(){$(this).css({'background':'url('+settings.imageBtnNext+') right 15% no-repeat'});},function(){$(this).css({'background':'transparent url('+settings.imageBlank+') no-repeat'});}).show().bind('click',function(){settings.activeImage=settings.activeImage+1;_set_image_to_view();return false;});}} +_enable_keyboard_navigation();} +function _enable_keyboard_navigation(){$(document).keydown(function(objEvent){_keyboard_action(objEvent);});} +function _disable_keyboard_navigation(){$(document).unbind();} +function _keyboard_action(objEvent){if(objEvent==null){keycode=event.keyCode;escapeKey=27;}else{keycode=objEvent.keyCode;escapeKey=objEvent.DOM_VK_ESCAPE;} +key=String.fromCharCode(keycode).toLowerCase();if((key==settings.keyToClose)||(key=='x')||(keycode==escapeKey)){_finish();} +if((key==settings.keyToPrev)||(keycode==37)){if(settings.activeImage!=0){settings.activeImage=settings.activeImage-1;_set_image_to_view();_disable_keyboard_navigation();}} +if((key==settings.keyToNext)||(keycode==39)){if(settings.activeImage!=(settings.imageArray.length-1)){settings.activeImage=settings.activeImage+1;_set_image_to_view();_disable_keyboard_navigation();}}} +function _preload_neighbor_images(){if((settings.imageArray.length-1)>settings.activeImage){objNext=new Image();objNext.src=settings.imageArray[settings.activeImage+1][0];} +if(settings.activeImage>0){objPrev=new Image();objPrev.src=settings.imageArray[settings.activeImage-1][0];}} +function _finish(){$('#jquery-lightbox').remove();$('#jquery-overlay').fadeOut(function(){$('#jquery-overlay').remove();});$('embed, object, select').css({'visibility':'visible'});} +function ___getPageSize(){var xScroll,yScroll;if(window.innerHeight&&window.scrollMaxY){xScroll=window.innerWidth+window.scrollMaxX;yScroll=window.innerHeight+window.scrollMaxY;}else if(document.body.scrollHeight>document.body.offsetHeight){xScroll=document.body.scrollWidth;yScroll=document.body.scrollHeight;}else{xScroll=document.body.offsetWidth;yScroll=document.body.offsetHeight;} +var windowWidth,windowHeight;if(self.innerHeight){if(document.documentElement.clientWidth){windowWidth=document.documentElement.clientWidth;}else{windowWidth=self.innerWidth;} +windowHeight=self.innerHeight;}else if(document.documentElement&&document.documentElement.clientHeight){windowWidth=document.documentElement.clientWidth;windowHeight=document.documentElement.clientHeight;}else if(document.body){windowWidth=document.body.clientWidth;windowHeight=document.body.clientHeight;} +if(yScroll35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(6($){$.2N.3g=6(4){4=23.2H({2B:\'#34\',2g:0.8,1d:F,1M:\'18/5-33-Y.16\',1v:\'18/5-1u-2Q.16\',1E:\'18/5-1u-2L.16\',1W:\'18/5-1u-2I.16\',19:\'18/5-2F.16\',1f:10,2A:3d,2s:\'1j\',2o:\'32\',2j:\'c\',2f:\'p\',2d:\'n\',h:[],9:0},4);f I=N;6 20(){1X(N,I);u F}6 1X(1e,I){$(\'1U, 1S, 1R\').l({\'1Q\':\'2E\'});1O();4.h.B=0;4.9=0;7(I.B==1){4.h.1J(v 1m(1e.17(\'J\'),1e.17(\'2v\')))}j{36(f i=0;i<1w g="5-b"><1w W="\'+4.1M+\'"><1i g="5-b-A-1t"><1i g="5-b-A-1g"><1w W="\'+4.1W+\'">\');f z=1D();$(\'#q-13\').l({2K:4.2B,2J:4.2g,S:z[0],P:z[1]}).1V();f R=1p();$(\'#q-5\').l({1T:R[1]+(z[3]/10),1c:R[0]}).E();$(\'#q-13,#q-5\').C(6(){1a()});$(\'#5-Y-29,#5-1s-22\').C(6(){1a();u F});$(G).2G(6(){f z=1D();$(\'#q-13\').l({S:z[0],P:z[1]});f R=1p();$(\'#q-5\').l({1T:R[1]+(z[3]/10),1c:R[0]})})}6 D(){$(\'#5-Y\').E();7(4.1d){$(\'#5-b,#5-s-b-T-w,#5-b-A-1g\').1b()}j{$(\'#5-b,#5-k,#5-k-V,#5-k-X,#5-s-b-T-w,#5-b-A-1g\').1b()}f Q=v 1j();Q.1P=6(){$(\'#5-b\').2D(\'W\',4.h[4.9][0]);1N(Q.S,Q.P);Q.1P=6(){}};Q.W=4.h[4.9][0]};6 1N(1o,1r){f 1L=$(\'#5-s-b-w\').S();f 1K=$(\'#5-s-b-w\').P();f 1n=(1o+(4.1f*2));f 1y=(1r+(4.1f*2));f 1I=1L-1n;f 2z=1K-1y;$(\'#5-s-b-w\').3f({S:1n,P:1y},4.2A,6(){2y()});7((1I==0)&&(2z==0)){7($.3e.3c){1H(3b)}j{1H(3a)}}$(\'#5-s-b-T-w\').l({S:1o});$(\'#5-k-V,#5-k-X\').l({P:1r+(4.1f*2)})};6 2y(){$(\'#5-Y\').1b();$(\'#5-b\').1V(6(){2u();2t()});2r()};6 2u(){$(\'#5-s-b-T-w\').38(\'35\');$(\'#5-b-A-1t\').1b();7(4.h[4.9][1]){$(\'#5-b-A-1t\').2p(4.h[4.9][1]).E()}7(4.h.B>1){$(\'#5-b-A-1g\').2p(4.2s+\' \'+(4.9+1)+\' \'+4.2o+\' \'+4.h.B).E()}}6 2t(){$(\'#5-k\').E();$(\'#5-k-V,#5-k-X\').l({\'K\':\'1C M(\'+4.19+\') L-O\'});7(4.9!=0){7(4.1d){$(\'#5-k-V\').l({\'K\':\'M(\'+4.1v+\') 1c 15% L-O\'}).11().1k(\'C\',6(){4.9=4.9-1;D();u F})}j{$(\'#5-k-V\').11().2m(6(){$(N).l({\'K\':\'M(\'+4.1v+\') 1c 15% L-O\'})},6(){$(N).l({\'K\':\'1C M(\'+4.19+\') L-O\'})}).E().1k(\'C\',6(){4.9=4.9-1;D();u F})}}7(4.9!=(4.h.B-1)){7(4.1d){$(\'#5-k-X\').l({\'K\':\'M(\'+4.1E+\') 2l 15% L-O\'}).11().1k(\'C\',6(){4.9=4.9+1;D();u F})}j{$(\'#5-k-X\').11().2m(6(){$(N).l({\'K\':\'M(\'+4.1E+\') 2l 15% L-O\'})},6(){$(N).l({\'K\':\'1C M(\'+4.19+\') L-O\'})}).E().1k(\'C\',6(){4.9=4.9+1;D();u F})}}2k()}6 2k(){$(d).30(6(12){2i(12)})}6 1G(){$(d).11()}6 2i(12){7(12==2h){U=2Z.2e;1x=27}j{U=12.2e;1x=12.2Y}14=2X.2W(U).2U();7((14==4.2j)||(14==\'x\')||(U==1x)){1a()}7((14==4.2f)||(U==37)){7(4.9!=0){4.9=4.9-1;D();1G()}}7((14==4.2d)||(U==39)){7(4.9!=(4.h.B-1)){4.9=4.9+1;D();1G()}}}6 2r(){7((4.h.B-1)>4.9){2c=v 1j();2c.W=4.h[4.9+1][0]}7(4.9>0){2b=v 1j();2b.W=4.h[4.9-1][0]}}6 1a(){$(\'#q-5\').2a();$(\'#q-13\').2T(6(){$(\'#q-13\').2a()});$(\'1U, 1S, 1R\').l({\'1Q\':\'2S\'})}6 1D(){f o,r;7(G.1h&&G.28){o=G.26+G.2R;r=G.1h+G.28}j 7(d.m.25>d.m.24){o=d.m.2P;r=d.m.25}j{o=d.m.2O;r=d.m.24}f y,H;7(Z.1h){7(d.t.1l){y=d.t.1l}j{y=Z.26}H=Z.1h}j 7(d.t&&d.t.1A){y=d.t.1l;H=d.t.1A}j 7(d.m){y=d.m.1l;H=d.m.1A}7(r