Index: tags/extensions/GeeQuBox/REL_0_2/GeeQuBox.i18n.php |
— | — | @@ -0,0 +1,19 @@ |
| 2 | +<?php |
| 3 | + |
| 4 | +/** |
| 5 | + * Internationalization file for the GeeQuBox extension. |
| 6 | + * |
| 7 | + * @file GeeQuBox.i18n.php |
| 8 | + * |
| 9 | + * @author David Raison |
| 10 | + */ |
| 11 | + |
| 12 | +$messages = array(); |
| 13 | + |
| 14 | +/** English |
| 15 | + * @author David Raison |
| 16 | + */ |
| 17 | +$messages['en'] = array( |
| 18 | + 'geequbox-desc' => 'Generates lightbox effects using the jquery lightbox plugin' |
| 19 | +); |
| 20 | + |
Property changes on: tags/extensions/GeeQuBox/REL_0_2/GeeQuBox.i18n.php |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 21 | + native |
Index: tags/extensions/GeeQuBox/REL_0_2/GeeQuBox.php |
— | — | @@ -0,0 +1,156 @@ |
| 2 | +<?php |
| 3 | +/** |
| 4 | + * GeeQuBox.php |
| 5 | + * Written by David Raison |
| 6 | + * @license: CC-BY-SA 3.0 http://creativecommons.org/licenses/by-sa/3.0/lu/ |
| 7 | + * |
| 8 | + * @file GeeQuBox.php |
| 9 | + * @ingroup GeeQuBox |
| 10 | + * |
| 11 | + * @author David Raison |
| 12 | + * |
| 13 | + * Uses the lightbox jquery plugin written by Leandro Vieira Pinho (CC-BY-SA) 2007, |
| 14 | + * http://creativecommons.org/licenses/by-sa/2.5/br/ |
| 15 | + * http://leandrovieira.com/projects/jquery/lightbox/ |
| 16 | + */ |
| 17 | + |
| 18 | +if ( !defined( 'MEDIAWIKI' ) ) { |
| 19 | + die( 'This is a MediaWiki extension, and must be run from within MediaWiki.' ); |
| 20 | +} |
| 21 | + |
| 22 | +$wgExtensionCredits['parserhook'][] = array( |
| 23 | + 'path' => __FILE__, |
| 24 | + 'name' => 'GeeQuBox', |
| 25 | + 'version' => '0.01', |
| 26 | + 'author' => array( '[http://www.mediawiki.org/wiki/User:Clausekwis David Raison]' ), |
| 27 | + 'url' => 'http://www.mediawiki.org/wiki/Extension:GeeQuBox', |
| 28 | + 'descriptionmsg' => 'geequbox-desc' |
| 29 | +); |
| 30 | + |
| 31 | +// defaults |
| 32 | +$wgGqbDefaultWidth = 640; |
| 33 | + |
| 34 | +$wgExtensionMessagesFiles['GeeQuBox'] = dirname(__FILE__) .'/GeeQuBox.i18n.php'; |
| 35 | +$wgHooks['LanguageGetMagic'][] = 'wfGeeQuBoxLanguageGetMagic'; |
| 36 | + |
| 37 | +$gqb = new GeeQuBox; |
| 38 | +$wgHooks['BeforeParserrenderImageGallery'][] = array($gqb,'gqbAnalyse'); |
| 39 | +$wgHooks['BeforePageDisplay'][] = array($gqb,'gqbAddLightbox'); |
| 40 | + |
| 41 | +function wfGeeQuBoxLanguageGetMagic( &$magicWords, $langCode = 'en' ) { |
| 42 | + $magicWords['geequbox'] = array( 0, 'geequbox' ); |
| 43 | + return true; |
| 44 | +} |
| 45 | + |
| 46 | +/** |
| 47 | + * Class that handles all GeeQuBox operations. |
| 48 | + */ |
| 49 | +class GeeQuBox { |
| 50 | + |
| 51 | + private static $_page; |
| 52 | + private $_hasGallery; |
| 53 | + |
| 54 | + public function gqbAddLightBox( $page ) { |
| 55 | + if ( !$this->_hasGallery ) |
| 56 | + return false; |
| 57 | + |
| 58 | + try { |
| 59 | + self::$_page = $page; |
| 60 | + $this->_gqbReplaceHref( $page ); |
| 61 | + $this->_gqbAddScripts( $page ); |
| 62 | + return true; |
| 63 | + } catch ( Exception $e ) { |
| 64 | + wfDebug('GeeQuBox::'.$e->getMessage()); |
| 65 | + return false; |
| 66 | + } |
| 67 | + } |
| 68 | + |
| 69 | + /** |
| 70 | + * See http://svn.wikimedia.org/doc/classImageGallery.html |
| 71 | + */ |
| 72 | + public function gqbAnalyse( Parser &$parser, &$gallery ) { |
| 73 | + // It seems that the file objects are only added to the imagegallery object after the |
| 74 | + // BeforeParserrenderImageGallery hook is run. Thus it will always be empty here. |
| 75 | + // var_dump($gallery->isEmpty(),$gallery->count(),$gallery InstanceOf ImageGallery); |
| 76 | + if ( $gallery InstanceOf ImageGallery ) { |
| 77 | + $this->_hasGallery = true; |
| 78 | + return true; |
| 79 | + } else return false; |
| 80 | + } |
| 81 | + |
| 82 | + |
| 83 | + private function _gqbAddScripts() { |
| 84 | + global $wgExtensionAssetsPath; |
| 85 | + |
| 86 | + $eDir = $wgExtensionAssetsPath . '/' . basename(dirname(__FILE__)); |
| 87 | + self::$_page->includeJQuery(); |
| 88 | + self::$_page->addScript( '<script type="text/javascript" src="' |
| 89 | + . $eDir . '/js/jquery.lightbox-0.5.min.js"></script>' . PHP_EOL ); |
| 90 | + self::$_page->addExtensionStyle( $eDir . '/css/jquery.lightbox-0.5.css', 'screen' ); |
| 91 | + self::$_page->addInlineScript('$j(document).ready(function(){ |
| 92 | + $j("div.gallerybox").each(function(el){ |
| 93 | + var _a = $j("div.thumb a", this); |
| 94 | + var title = _a.attr("title"); |
| 95 | + var caption = $j("div.gallerytext > p", this).text(); |
| 96 | + if ( caption != "" ) |
| 97 | + _a.attr("title", title + caption); |
| 98 | + }); |
| 99 | + $j("div.gallerybox a.image").lightBox({ |
| 100 | + imageLoading: "'. $eDir .'images/lightbox-ico-loading.gif", |
| 101 | + imageBtnClose: "'. $eDir .'images/lightbox-btn-close.gif", |
| 102 | + imageBtnPrev: "'. $eDir .'images/lightbox-btn-prev.gif", |
| 103 | + imageBtnNext: "'. $eDir .'images/lightbox-btn-next.gif" |
| 104 | + }); |
| 105 | + })'); |
| 106 | + /* See _gqbreplaceHref() |
| 107 | + var boxWidth = ($j(window).width() - 20); |
| 108 | + var rxp = new RegExp(/([0-9]{2,})$/); |
| 109 | + $j("div.gallerybox a.image").each(function(el){ |
| 110 | + if(boxWidth < Number(this.search.match(rxp)[0])){ |
| 111 | + this.href = this.pathname+this.search.replace(rxp,boxWidth); |
| 112 | + } |
| 113 | + }); |
| 114 | + */ |
| 115 | + return true; |
| 116 | + } |
| 117 | + |
| 118 | + /** |
| 119 | + * We need to change this: <a href="https://www.mediawiki.org/wiki/File:8734_f8db_390.jpeg"> into |
| 120 | + * the href of the actual image file (i.e. $file->getURL()) because that |
| 121 | + * is what Lightbox expects. (Note that this is not too different from the SlimboxThumbs |
| 122 | + * approach but there doesn't seem to be an alternative approach.) |
| 123 | + */ |
| 124 | + private function _gqbReplaceHref() { |
| 125 | + // determine path info |
| 126 | + global $wgArticlePath; |
| 127 | + $articlePath = substr( $wgArticlePath, 0, strpos( $wgArticlePath, '$1' ) ); |
| 128 | + $pattern = '~href="'.$articlePath.'([^"]+)"\s*class="image"~'; |
| 129 | + $replaced = preg_replace_callback($pattern,'GeeQuBox::_gqbReplaceMatches',self::$_page->getHTML()); |
| 130 | + |
| 131 | + self::$_page->clearHTML(); |
| 132 | + self::$_page->addHTML( $replaced ); |
| 133 | + } |
| 134 | + |
| 135 | + private static function _gqbReplaceMatches( $matches ) { |
| 136 | + global $wgGqbDefaultWidth; |
| 137 | + $titleObj = Title::newFromText( rawurldecode( $matches[1] ) ); |
| 138 | + $image = wfFindFile( $titleObj, false, false, true ); |
| 139 | + $realwidth = (Integer) $image->getWidth(); |
| 140 | + $width = ( $realwidth > $wgGqbDefaultWidth ) ? $wgGqbDefaultWidth : $realwidth; |
| 141 | + $iPath = ( $realwidth < $wgGqbDefaultWidth ) ? $image->getURL() : $image->createThumb($width); |
| 142 | + $title = self::$_page->parse( "'''[[:" . $titleObj->getFullText() . "|" . $titleObj->getText() . "]]'''" ); |
| 143 | + |
| 144 | + return 'href="'. $iPath .'" title="'. htmlspecialchars( $title ) .'" class="image"'; |
| 145 | + } |
| 146 | + |
| 147 | + /* |
| 148 | + * Code used also in SlimboxThumbs to set the size of the displayed images |
| 149 | + * This can only be done in js where the window.width is known. |
| 150 | + $out->addInlineScript( $jQ.'(document).ready(function(){ |
| 151 | + if('.$jQ.'("table.gallery").val() != undefined){ |
| 152 | + })' ); |
| 153 | + |
| 154 | + */ |
| 155 | + |
| 156 | +} |
| 157 | + |
Property changes on: tags/extensions/GeeQuBox/REL_0_2/GeeQuBox.php |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 158 | + native |
Index: tags/extensions/GeeQuBox/REL_0_2/images/lightbox-btn-prev.gif |
Cannot display: file marked as a binary type. |
svn:mime-type = image/gif |
Property changes on: tags/extensions/GeeQuBox/REL_0_2/images/lightbox-btn-prev.gif |
___________________________________________________________________ |
Added: svn:mime-type |
2 | 159 | + image/gif |
Index: tags/extensions/GeeQuBox/REL_0_2/images/lightbox-btn-next.gif |
Cannot display: file marked as a binary type. |
svn:mime-type = image/gif |
Property changes on: tags/extensions/GeeQuBox/REL_0_2/images/lightbox-btn-next.gif |
___________________________________________________________________ |
Added: svn:mime-type |
3 | 160 | + image/gif |
Index: tags/extensions/GeeQuBox/REL_0_2/images/lightbox-ico-loading.gif |
Cannot display: file marked as a binary type. |
svn:mime-type = image/gif |
Property changes on: tags/extensions/GeeQuBox/REL_0_2/images/lightbox-ico-loading.gif |
___________________________________________________________________ |
Added: svn:mime-type |
4 | 161 | + image/gif |
Index: tags/extensions/GeeQuBox/REL_0_2/images/lightbox-btn-close.gif |
Cannot display: file marked as a binary type. |
svn:mime-type = image/gif |
Property changes on: tags/extensions/GeeQuBox/REL_0_2/images/lightbox-btn-close.gif |
___________________________________________________________________ |
Added: svn:mime-type |
5 | 162 | + image/gif |
Index: tags/extensions/GeeQuBox/REL_0_2/images/lightbox-blank.gif |
Cannot display: file marked as a binary type. |
svn:mime-type = image/gif |
Property changes on: tags/extensions/GeeQuBox/REL_0_2/images/lightbox-blank.gif |
___________________________________________________________________ |
Added: svn:mime-type |
6 | 163 | + image/gif |
Index: tags/extensions/GeeQuBox/REL_0_2/css/jquery.lightbox-0.5.css |
— | — | @@ -0,0 +1,101 @@ |
| 2 | +/** |
| 3 | + * jQuery lightBox plugin |
| 4 | + * This jQuery plugin was inspired and based on Lightbox 2 by Lokesh Dhakar (http://www.huddletogether.com/projects/lightbox2/) |
| 5 | + * and adapted to me for use like a plugin from jQuery. |
| 6 | + * @name jquery-lightbox-0.5.css |
| 7 | + * @author Leandro Vieira Pinho - http://leandrovieira.com |
| 8 | + * @version 0.5 |
| 9 | + * @date April 11, 2008 |
| 10 | + * @category jQuery plugin |
| 11 | + * @copyright (c) 2008 Leandro Vieira Pinho (leandrovieira.com) |
| 12 | + * @license CCAttribution-ShareAlike 2.5 Brazil - http://creativecommons.org/licenses/by-sa/2.5/br/deed.en_US |
| 13 | + * @example Visit http://leandrovieira.com/projects/jquery/lightbox/ for more informations about this jQuery plugin |
| 14 | + */ |
| 15 | +#jquery-overlay { |
| 16 | + position: absolute; |
| 17 | + top: 0; |
| 18 | + left: 0; |
| 19 | + z-index: 90; |
| 20 | + width: 100%; |
| 21 | + height: 500px; |
| 22 | +} |
| 23 | +#jquery-lightbox { |
| 24 | + position: absolute; |
| 25 | + top: 0; |
| 26 | + left: 0; |
| 27 | + width: 100%; |
| 28 | + z-index: 100; |
| 29 | + text-align: center; |
| 30 | + line-height: 0; |
| 31 | +} |
| 32 | +#jquery-lightbox a img { border: none; } |
| 33 | +#lightbox-container-image-box { |
| 34 | + position: relative; |
| 35 | + background-color: #fff; |
| 36 | + width: 250px; |
| 37 | + height: 250px; |
| 38 | + margin: 0 auto; |
| 39 | +} |
| 40 | +#lightbox-container-image { padding: 10px; } |
| 41 | +#lightbox-loading { |
| 42 | + position: absolute; |
| 43 | + top: 40%; |
| 44 | + left: 0%; |
| 45 | + height: 25%; |
| 46 | + width: 100%; |
| 47 | + text-align: center; |
| 48 | + line-height: 0; |
| 49 | +} |
| 50 | +#lightbox-nav { |
| 51 | + position: absolute; |
| 52 | + top: 0; |
| 53 | + left: 0; |
| 54 | + height: 100%; |
| 55 | + width: 100%; |
| 56 | + z-index: 10; |
| 57 | +} |
| 58 | +#lightbox-container-image-box > #lightbox-nav { left: 0; } |
| 59 | +#lightbox-nav a { outline: none;} |
| 60 | +#lightbox-nav-btnPrev, #lightbox-nav-btnNext { |
| 61 | + width: 49%; |
| 62 | + height: 100%; |
| 63 | + zoom: 1; |
| 64 | + display: block; |
| 65 | +} |
| 66 | +#lightbox-nav-btnPrev { |
| 67 | + left: 0; |
| 68 | + float: left; |
| 69 | +} |
| 70 | +#lightbox-nav-btnNext { |
| 71 | + right: 0; |
| 72 | + float: right; |
| 73 | +} |
| 74 | +#lightbox-container-image-data-box { |
| 75 | + font: 10px Verdana, Helvetica, sans-serif; |
| 76 | + background-color: #fff; |
| 77 | + margin: 0 auto; |
| 78 | + line-height: 1.4em; |
| 79 | + overflow: auto; |
| 80 | + width: 100%; |
| 81 | + padding: 0 10px 0; |
| 82 | +} |
| 83 | +#lightbox-container-image-data { |
| 84 | + padding: 0 10px; |
| 85 | + color: #666; |
| 86 | +} |
| 87 | +#lightbox-container-image-data #lightbox-image-details { |
| 88 | + width: 70%; |
| 89 | + float: left; |
| 90 | + text-align: left; |
| 91 | +} |
| 92 | +#lightbox-image-details-caption { font-weight: bold; } |
| 93 | +#lightbox-image-details-currentNumber { |
| 94 | + display: block; |
| 95 | + clear: left; |
| 96 | + padding-bottom: 1.0em; |
| 97 | +} |
| 98 | +#lightbox-secNav-btnClose { |
| 99 | + width: 66px; |
| 100 | + float: right; |
| 101 | + padding-bottom: 0.7em; |
| 102 | +} |
\ No newline at end of file |
Index: tags/extensions/GeeQuBox/REL_0_2/js/jquery.lightbox-0.5.min.js |
— | — | @@ -0,0 +1,42 @@ |
| 2 | +/** |
| 3 | + * jQuery lightBox plugin |
| 4 | + * This jQuery plugin was inspired and based on Lightbox 2 by Lokesh Dhakar (http://www.huddletogether.com/projects/lightbox2/) |
| 5 | + * and adapted to me for use like a plugin from jQuery. |
| 6 | + * @name jquery-lightbox-0.5.js |
| 7 | + * @author Leandro Vieira Pinho - http://leandrovieira.com |
| 8 | + * @version 0.5 |
| 9 | + * @date April 11, 2008 |
| 10 | + * @category jQuery plugin |
| 11 | + * @copyright (c) 2008 Leandro Vieira Pinho (leandrovieira.com) |
| 12 | + * @license CCAttribution-ShareAlike 2.5 Brazil - http://creativecommons.org/licenses/by-sa/2.5/br/deed.en_US |
| 13 | + * @example Visit http://leandrovieira.com/projects/jquery/lightbox/ for more informations about this jQuery plugin |
| 14 | + */ |
| 15 | +(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;} |
| 16 | +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<jQueryMatchedObj.length;i++){settings.imageArray.push(new Array(jQueryMatchedObj[i].getAttribute('href'),jQueryMatchedObj[i].getAttribute('title')));}} |
| 17 | +while(settings.imageArray[settings.activeImage][0]!=objClicked.getAttribute('href')){settings.activeImage++;} |
| 18 | +_set_image_to_view();} |
| 19 | +function _set_interface(){$('body').append('<div id="jquery-overlay"></div><div id="jquery-lightbox"><div id="lightbox-container-image-box"><div id="lightbox-container-image"><img id="lightbox-image"><div style="" id="lightbox-nav"><a href="#" id="lightbox-nav-btnPrev"></a><a href="#" id="lightbox-nav-btnNext"></a></div><div id="lightbox-loading"><a href="#" id="lightbox-loading-link"><img src="'+settings.imageLoading+'"></a></div></div></div><div id="lightbox-container-image-data-box"><div id="lightbox-container-image-data"><div id="lightbox-image-details"><span id="lightbox-image-details-caption"></span><span id="lightbox-image-details-currentNumber"></span></div><div id="lightbox-secNav"><a href="#" id="lightbox-secNav-btnClose"><img src="'+settings.imageBtnClose+'"></a></div></div></div></div>');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]});});} |
| 20 | +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();} |
| 21 | +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);}} |
| 22 | +$('#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();} |
| 23 | +if(settings.imageArray.length>1){$('#lightbox-image-details-currentNumber').html(settings.txtImage+' '+(settings.activeImage+1)+' '+settings.txtOf+' '+settings.imageArray.length).show();}} |
| 24 | +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;});}} |
| 25 | +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;});}} |
| 26 | +_enable_keyboard_navigation();} |
| 27 | +function _enable_keyboard_navigation(){$(document).keydown(function(objEvent){_keyboard_action(objEvent);});} |
| 28 | +function _disable_keyboard_navigation(){$(document).unbind();} |
| 29 | +function _keyboard_action(objEvent){if(objEvent==null){keycode=event.keyCode;escapeKey=27;}else{keycode=objEvent.keyCode;escapeKey=objEvent.DOM_VK_ESCAPE;} |
| 30 | +key=String.fromCharCode(keycode).toLowerCase();if((key==settings.keyToClose)||(key=='x')||(keycode==escapeKey)){_finish();} |
| 31 | +if((key==settings.keyToPrev)||(keycode==37)){if(settings.activeImage!=0){settings.activeImage=settings.activeImage-1;_set_image_to_view();_disable_keyboard_navigation();}} |
| 32 | +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();}}} |
| 33 | +function _preload_neighbor_images(){if((settings.imageArray.length-1)>settings.activeImage){objNext=new Image();objNext.src=settings.imageArray[settings.activeImage+1][0];} |
| 34 | +if(settings.activeImage>0){objPrev=new Image();objPrev.src=settings.imageArray[settings.activeImage-1][0];}} |
| 35 | +function _finish(){$('#jquery-lightbox').remove();$('#jquery-overlay').fadeOut(function(){$('#jquery-overlay').remove();});$('embed, object, select').css({'visibility':'visible'});} |
| 36 | +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;} |
| 37 | +var windowWidth,windowHeight;if(self.innerHeight){if(document.documentElement.clientWidth){windowWidth=document.documentElement.clientWidth;}else{windowWidth=self.innerWidth;} |
| 38 | +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;} |
| 39 | +if(yScroll<windowHeight){pageHeight=windowHeight;}else{pageHeight=yScroll;} |
| 40 | +if(xScroll<windowWidth){pageWidth=xScroll;}else{pageWidth=windowWidth;} |
| 41 | +arrayPageSize=new Array(pageWidth,pageHeight,windowWidth,windowHeight);return arrayPageSize;};function ___getPageScroll(){var xScroll,yScroll;if(self.pageYOffset){yScroll=self.pageYOffset;xScroll=self.pageXOffset;}else if(document.documentElement&&document.documentElement.scrollTop){yScroll=document.documentElement.scrollTop;xScroll=document.documentElement.scrollLeft;}else if(document.body){yScroll=document.body.scrollTop;xScroll=document.body.scrollLeft;} |
| 42 | +arrayPageScroll=new Array(xScroll,yScroll);return arrayPageScroll;};function ___pause(ms){var date=new Date();curDate=null;do{var curDate=new Date();} |
| 43 | +while(curDate-date<ms);};return this.unbind('click').click(_initialize);};})(jQuery); |
\ No newline at end of file |
Property changes on: tags/extensions/GeeQuBox/REL_0_2/js/jquery.lightbox-0.5.min.js |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 44 | + native |