Index: trunk/extensions/GeeQuBox/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 | + |
Index: trunk/extensions/GeeQuBox/GeeQuBox.php |
— | — | @@ -0,0 +1,139 @@ |
| 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( 'David Raison' ), |
| 27 | + 'url' => 'http://www.mediawiki.org/wiki/Extension:GeeQuBox', |
| 28 | + 'descriptionmsg' => 'geequbox-desc' |
| 29 | +); |
| 30 | + |
| 31 | +$wgExtensionMessagesFiles['GeeQuBox'] = dirname(__FILE__) .'/GeeQuBox.i18n.php'; |
| 32 | +$wgHooks['LanguageGetMagic'][] = 'wfGeeQuBoxLanguageGetMagic'; |
| 33 | + |
| 34 | +$gqb = new GeeQuBox; |
| 35 | +$wgHooks['BeforeParserrenderImageGallery'][] = array($gqb,'gqbAnalyse'); |
| 36 | +$wgHooks['BeforePageDisplay'][] = array($gqb,'gqbAddLightbox'); |
| 37 | + |
| 38 | +function wfGeeQuBoxLanguageGetMagic( &$magicWords, $langCode = 'en' ) { |
| 39 | + $magicWords['geequbox'] = array( 0, 'geequbox' ); |
| 40 | + return true; |
| 41 | +} |
| 42 | + |
| 43 | +/** |
| 44 | + * Class that handles all GeeQuBox operations. |
| 45 | + */ |
| 46 | +class GeeQuBox { |
| 47 | + |
| 48 | + private $_page; |
| 49 | + private $_hasGallery; |
| 50 | + |
| 51 | + public function gqbAddLightBox( $page ) { |
| 52 | + if ( !$this->_hasGallery ) |
| 53 | + return false; |
| 54 | + |
| 55 | + try { |
| 56 | + $this->_page = $page; |
| 57 | + $this->_gqbReplaceHref( $page ); |
| 58 | + $this->_gqbAddScripts( $page ); |
| 59 | + return true; |
| 60 | + } catch ( Exception $e ) { |
| 61 | + wfDebug('GeeQuBox::'.$e->getMessage()); |
| 62 | + return false; |
| 63 | + } |
| 64 | + } |
| 65 | + |
| 66 | + /** |
| 67 | + * See http://svn.wikimedia.org/doc/classImageGallery.html |
| 68 | + */ |
| 69 | + public function gqbAnalyse( Parser &$parser, &$gallery ) { |
| 70 | + // It seems that the file objects are only added to the imagegallery object after the |
| 71 | + // BeforeParserrenderImageGallery hook is run. Thus it will always be empty here. |
| 72 | + // var_dump($gallery->isEmpty(),$gallery->count(),$gallery InstanceOf ImageGallery); |
| 73 | + if ( $gallery InstanceOf ImageGallery ) { |
| 74 | + $this->_hasGallery = true; |
| 75 | + return true; |
| 76 | + } else return false; |
| 77 | + } |
| 78 | + |
| 79 | + |
| 80 | + private function _gqbAddScripts() { |
| 81 | + global $wgExtensionAssetsPath; |
| 82 | + |
| 83 | + $eDir = $wgExtensionAssetsPath .'/GeeQuBox/'; |
| 84 | + $this->_page->includeJQuery(); |
| 85 | + $this->_page->addScript( '<script type="text/javascript" src="'. $eDir .'js/jquery.lightbox-0.5.min.js"></script>' . PHP_EOL ); |
| 86 | + $this->_page->addExtensionStyle( $eDir . '/css/jquery.lightbox-0.5.css', 'screen' ); |
| 87 | + $this->_page->addInlineScript('$j(document).ready(function(){ |
| 88 | + $j("div.gallerybox a.image").lightBox({ |
| 89 | + imageLoading: "'. $eDir .'images/lightbox-ico-loading.gif", |
| 90 | + imageBtnClose: "'. $eDir .'images/lightbox-btn-close.gif", |
| 91 | + imageBtnPrev: "'. $eDir .'images/lightbox-btn-prev.gif", |
| 92 | + imageBtnNext: "'. $eDir .'images/lightbox-btn-next.gif" |
| 93 | + }); |
| 94 | + })'); |
| 95 | + return true; |
| 96 | + } |
| 97 | + |
| 98 | + /** |
| 99 | + * We need to change this: <a href="https://www.mediawiki.org/wiki/File:8734_f8db_390.jpeg"> into |
| 100 | + * the href of the actual image file (i.e. $file->getURL()) because that |
| 101 | + * is what Lightbox expects. (Note that this is not too different from the SlimboxThumbs |
| 102 | + * approach but there doesn't seem to be an alternative approach.) |
| 103 | + */ |
| 104 | + private function _gqbReplaceHref() { |
| 105 | + $page = $this->_page->getHTML(); |
| 106 | + $pattern = '~href="https://www.mediawiki.org/wiki/([^"]+)"~'; |
| 107 | + $replaced = preg_replace_callback($pattern,'self::_gqbReplaceMatches',$page); |
| 108 | + |
| 109 | + $this->_page->clearHTML(); |
| 110 | + $this->_page->addHTML( $replaced ); |
| 111 | + } |
| 112 | + |
| 113 | + private static function _gqbReplaceMatches( $matches ) { |
| 114 | + $titleObj = Title::newFromText( rawurldecode( $matches[1] ) ); |
| 115 | + $image = wfFindFile( $titleObj, false, false, true ); |
| 116 | + //$realwidth = (Integer) $image->getWidth(); |
| 117 | + //$width = ( $realwidth > $defaultWidth ) ? $defaultWidth : $realwidth -1; |
| 118 | + //$image->createThumb($width) |
| 119 | + return 'href="'.$image->getURL().'"'; |
| 120 | + } |
| 121 | + |
| 122 | + /* |
| 123 | + * Code used also in SlimboxThumbs to set the size of the displayed images |
| 124 | + * This can only be done in js where the window.width is known. |
| 125 | + $out->addInlineScript( $jQ.'(document).ready(function(){ |
| 126 | + if('.$jQ.'("table.gallery").val() != undefined){ |
| 127 | + var boxWidth = ('.$jQ.'(window).width() - 20); |
| 128 | + var rxp = new RegExp(/([0-9]{2,})$/); |
| 129 | + '.$jQ.'("a[rel=\'lightbox[gallery]\']").each(function(el){ |
| 130 | + if(boxWidth < Number(this.search.match(rxp)[0])){ |
| 131 | + this.href = this.pathname+this.search.replace(rxp,boxWidth); |
| 132 | + } |
| 133 | + }); |
| 134 | + } |
| 135 | + })' ); |
| 136 | + |
| 137 | + */ |
| 138 | + |
| 139 | +} |
| 140 | + |
Index: trunk/extensions/GeeQuBox/images/lightbox-btn-prev.gif |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes on: trunk/extensions/GeeQuBox/images/lightbox-btn-prev.gif |
___________________________________________________________________ |
Added: svn:mime-type |
1 | 141 | + application/octet-stream |
Index: trunk/extensions/GeeQuBox/images/lightbox-btn-next.gif |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes on: trunk/extensions/GeeQuBox/images/lightbox-btn-next.gif |
___________________________________________________________________ |
Added: svn:mime-type |
2 | 142 | + application/octet-stream |
Index: trunk/extensions/GeeQuBox/images/lightbox-ico-loading.gif |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes on: trunk/extensions/GeeQuBox/images/lightbox-ico-loading.gif |
___________________________________________________________________ |
Added: svn:mime-type |
3 | 143 | + application/octet-stream |
Index: trunk/extensions/GeeQuBox/images/lightbox-btn-close.gif |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes on: trunk/extensions/GeeQuBox/images/lightbox-btn-close.gif |
___________________________________________________________________ |
Added: svn:mime-type |
4 | 144 | + application/octet-stream |
Index: trunk/extensions/GeeQuBox/images/lightbox-blank.gif |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes on: trunk/extensions/GeeQuBox/images/lightbox-blank.gif |
___________________________________________________________________ |
Added: svn:mime-type |
5 | 145 | + application/octet-stream |
Index: trunk/extensions/GeeQuBox/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: trunk/extensions/GeeQuBox/js/jquery.lightbox-0.5.pack.js |
— | — | @@ -0,0 +1,14 @@ |
| 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 | +eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?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<I.B;i++){4.h.1J(v 1m(I[i].17(\'J\'),I[i].17(\'2v\')))}}2n(4.h[4.9][0]!=1e.17(\'J\')){4.9++}D()}6 1O(){$(\'m\').31(\'<e g="q-13"></e><e g="q-5"><e g="5-s-b-w"><e g="5-s-b"><1w g="5-b"><e 2V="" g="5-k"><a J="#" g="5-k-V"></a><a J="#" g="5-k-X"></a></e><e g="5-Y"><a J="#" g="5-Y-29"><1w W="\'+4.1M+\'"></a></e></e></e><e g="5-s-b-T-w"><e g="5-s-b-T"><e g="5-b-A"><1i g="5-b-A-1t"></1i><1i g="5-b-A-1g"></1i></e><e g="5-1s"><a J="#" g="5-1s-22"><1w W="\'+4.1W+\'"></a></e></e></e></e>\');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<H){1z=H}j{1z=r}7(o<y){1B=o}j{1B=y}21=v 1m(1B,1z,y,H);u 21};6 1p(){f o,r;7(Z.1Z){r=Z.1Z;o=Z.2M}j 7(d.t&&d.t.1F){r=d.t.1F;o=d.t.1Y}j 7(d.m){r=d.m.1F;o=d.m.1Y}2q=v 1m(o,r);u 2q};6 1H(2C){f 2x=v 2w();1q=2h;3h{f 1q=v 2w()}2n(1q-2x<2C)};u N.11(\'C\').C(20)}})(23);',62,204,'||||settings|lightbox|function|if||activeImage||image||document|div|var|id|imageArray||else|nav|css|body||xScroll||jquery|yScroll|container|documentElement|return|new|box||windowWidth|arrPageSizes|details|length|click|_set_image_to_view|show|false|window|windowHeight|jQueryMatchedObj|href|background|no|url|this|repeat|height|objImagePreloader|arrPageScroll|width|data|keycode|btnPrev|src|btnNext|loading|self||unbind|objEvent|overlay|key||gif|getAttribute|images|imageBlank|_finish|hide|left|fixedNavigation|objClicked|containerBorderSize|currentNumber|innerHeight|span|Image|bind|clientWidth|Array|intWidth|intImageWidth|___getPageScroll|curDate|intImageHeight|secNav|caption|btn|imageBtnPrev|img|escapeKey|intHeight|pageHeight|clientHeight|pageWidth|transparent|___getPageSize|imageBtnNext|scrollTop|_disable_keyboard_navigation|___pause|intDiffW|push|intCurrentHeight|intCurrentWidth|imageLoading|_resize_container_image_box|_set_interface|onload|visibility|select|object|top|embed|fadeIn|imageBtnClose|_start|scrollLeft|pageYOffset|_initialize|arrayPageSize|btnClose|jQuery|offsetHeight|scrollHeight|innerWidth||scrollMaxY|link|remove|objPrev|objNext|keyToNext|keyCode|keyToPrev|overlayOpacity|null|_keyboard_action|keyToClose|_enable_keyboard_navigation|right|hover|while|txtOf|html|arrayPageScroll|_preload_neighbor_images|txtImage|_set_navigation|_show_image_data|title|Date|date|_show_image|intDiffH|containerResizeSpeed|overlayBgColor|ms|attr|hidden|blank|resize|extend|close|opacity|backgroundColor|next|pageXOffset|fn|offsetWidth|scrollWidth|prev|scrollMaxX|visible|fadeOut|toLowerCase|style|fromCharCode|String|DOM_VK_ESCAPE|event|keydown|append|of|ico|000|fast|for||slideDown||100|250|msie|400|browser|animate|lightBox|do'.split('|'),0,{})) |
\ No newline at end of file |
Index: trunk/extensions/GeeQuBox/js/jquery.lightbox-0.5.js |
— | — | @@ -0,0 +1,472 @@ |
| 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 | +
|
| 16 | +// Offering a Custom Alias suport - More info: http://docs.jquery.com/Plugins/Authoring#Custom_Alias
|
| 17 | +(function($) {
|
| 18 | + /**
|
| 19 | + * $ is an alias to jQuery object
|
| 20 | + *
|
| 21 | + */
|
| 22 | + $.fn.lightBox = function(settings) {
|
| 23 | + // Settings to configure the jQuery lightBox plugin how you like
|
| 24 | + settings = jQuery.extend({
|
| 25 | + // Configuration related to overlay
|
| 26 | + overlayBgColor: '#000', // (string) Background color to overlay; inform a hexadecimal value like: #RRGGBB. Where RR, GG, and BB are the hexadecimal values for the red, green, and blue values of the color.
|
| 27 | + overlayOpacity: 0.8, // (integer) Opacity value to overlay; inform: 0.X. Where X are number from 0 to 9
|
| 28 | + // Configuration related to navigation
|
| 29 | + fixedNavigation: false, // (boolean) Boolean that informs if the navigation (next and prev button) will be fixed or not in the interface.
|
| 30 | + // Configuration related to images
|
| 31 | + imageLoading: 'images/lightbox-ico-loading.gif', // (string) Path and the name of the loading icon
|
| 32 | + imageBtnPrev: 'images/lightbox-btn-prev.gif', // (string) Path and the name of the prev button image
|
| 33 | + imageBtnNext: 'images/lightbox-btn-next.gif', // (string) Path and the name of the next button image
|
| 34 | + imageBtnClose: 'images/lightbox-btn-close.gif', // (string) Path and the name of the close btn
|
| 35 | + imageBlank: 'images/lightbox-blank.gif', // (string) Path and the name of a blank image (one pixel)
|
| 36 | + // Configuration related to container image box
|
| 37 | + containerBorderSize: 10, // (integer) If you adjust the padding in the CSS for the container, #lightbox-container-image-box, you will need to update this value
|
| 38 | + containerResizeSpeed: 400, // (integer) Specify the resize duration of container image. These number are miliseconds. 400 is default.
|
| 39 | + // Configuration related to texts in caption. For example: Image 2 of 8. You can alter either "Image" and "of" texts.
|
| 40 | + txtImage: 'Image', // (string) Specify text "Image"
|
| 41 | + txtOf: 'of', // (string) Specify text "of"
|
| 42 | + // Configuration related to keyboard navigation
|
| 43 | + keyToClose: 'c', // (string) (c = close) Letter to close the jQuery lightBox interface. Beyond this letter, the letter X and the SCAPE key is used to.
|
| 44 | + keyToPrev: 'p', // (string) (p = previous) Letter to show the previous image
|
| 45 | + keyToNext: 'n', // (string) (n = next) Letter to show the next image.
|
| 46 | + // Don�t alter these variables in any way
|
| 47 | + imageArray: [],
|
| 48 | + activeImage: 0
|
| 49 | + },settings);
|
| 50 | + // Caching the jQuery object with all elements matched
|
| 51 | + var jQueryMatchedObj = this; // This, in this context, refer to jQuery object
|
| 52 | + /**
|
| 53 | + * Initializing the plugin calling the start function
|
| 54 | + *
|
| 55 | + * @return boolean false
|
| 56 | + */
|
| 57 | + function _initialize() {
|
| 58 | + _start(this,jQueryMatchedObj); // This, in this context, refer to object (link) which the user have clicked
|
| 59 | + return false; // Avoid the browser following the link
|
| 60 | + }
|
| 61 | + /**
|
| 62 | + * Start the jQuery lightBox plugin
|
| 63 | + *
|
| 64 | + * @param object objClicked The object (link) whick the user have clicked
|
| 65 | + * @param object jQueryMatchedObj The jQuery object with all elements matched
|
| 66 | + */
|
| 67 | + function _start(objClicked,jQueryMatchedObj) {
|
| 68 | + // Hime some elements to avoid conflict with overlay in IE. These elements appear above the overlay.
|
| 69 | + $('embed, object, select').css({ 'visibility' : 'hidden' });
|
| 70 | + // Call the function to create the markup structure; style some elements; assign events in some elements.
|
| 71 | + _set_interface();
|
| 72 | + // Unset total images in imageArray
|
| 73 | + settings.imageArray.length = 0;
|
| 74 | + // Unset image active information
|
| 75 | + settings.activeImage = 0;
|
| 76 | + // We have an image set? Or just an image? Let�s see it.
|
| 77 | + if ( jQueryMatchedObj.length == 1 ) {
|
| 78 | + settings.imageArray.push(new Array(objClicked.getAttribute('href'),objClicked.getAttribute('title')));
|
| 79 | + } else {
|
| 80 | + // Add an Array (as many as we have), with href and title atributes, inside the Array that storage the images references
|
| 81 | + for ( var i = 0; i < jQueryMatchedObj.length; i++ ) {
|
| 82 | + settings.imageArray.push(new Array(jQueryMatchedObj[i].getAttribute('href'),jQueryMatchedObj[i].getAttribute('title')));
|
| 83 | + }
|
| 84 | + }
|
| 85 | + while ( settings.imageArray[settings.activeImage][0] != objClicked.getAttribute('href') ) {
|
| 86 | + settings.activeImage++;
|
| 87 | + }
|
| 88 | + // Call the function that prepares image exibition
|
| 89 | + _set_image_to_view();
|
| 90 | + }
|
| 91 | + /**
|
| 92 | + * Create the jQuery lightBox plugin interface
|
| 93 | + *
|
| 94 | + * The HTML markup will be like that:
|
| 95 | + <div id="jquery-overlay"></div>
|
| 96 | + <div id="jquery-lightbox">
|
| 97 | + <div id="lightbox-container-image-box">
|
| 98 | + <div id="lightbox-container-image">
|
| 99 | + <img src="../fotos/XX.jpg" id="lightbox-image">
|
| 100 | + <div id="lightbox-nav">
|
| 101 | + <a href="#" id="lightbox-nav-btnPrev"></a>
|
| 102 | + <a href="#" id="lightbox-nav-btnNext"></a>
|
| 103 | + </div>
|
| 104 | + <div id="lightbox-loading">
|
| 105 | + <a href="#" id="lightbox-loading-link">
|
| 106 | + <img src="../images/lightbox-ico-loading.gif">
|
| 107 | + </a>
|
| 108 | + </div>
|
| 109 | + </div>
|
| 110 | + </div>
|
| 111 | + <div id="lightbox-container-image-data-box">
|
| 112 | + <div id="lightbox-container-image-data">
|
| 113 | + <div id="lightbox-image-details">
|
| 114 | + <span id="lightbox-image-details-caption"></span>
|
| 115 | + <span id="lightbox-image-details-currentNumber"></span>
|
| 116 | + </div>
|
| 117 | + <div id="lightbox-secNav">
|
| 118 | + <a href="#" id="lightbox-secNav-btnClose">
|
| 119 | + <img src="../images/lightbox-btn-close.gif">
|
| 120 | + </a>
|
| 121 | + </div>
|
| 122 | + </div>
|
| 123 | + </div>
|
| 124 | + </div>
|
| 125 | + *
|
| 126 | + */
|
| 127 | + function _set_interface() {
|
| 128 | + // Apply the HTML markup into body tag
|
| 129 | + $('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>');
|
| 130 | + // Get page sizes
|
| 131 | + var arrPageSizes = ___getPageSize();
|
| 132 | + // Style overlay and show it
|
| 133 | + $('#jquery-overlay').css({
|
| 134 | + backgroundColor: settings.overlayBgColor,
|
| 135 | + opacity: settings.overlayOpacity,
|
| 136 | + width: arrPageSizes[0],
|
| 137 | + height: arrPageSizes[1]
|
| 138 | + }).fadeIn();
|
| 139 | + // Get page scroll
|
| 140 | + var arrPageScroll = ___getPageScroll();
|
| 141 | + // Calculate top and left offset for the jquery-lightbox div object and show it
|
| 142 | + $('#jquery-lightbox').css({
|
| 143 | + top: arrPageScroll[1] + (arrPageSizes[3] / 10),
|
| 144 | + left: arrPageScroll[0]
|
| 145 | + }).show();
|
| 146 | + // Assigning click events in elements to close overlay
|
| 147 | + $('#jquery-overlay,#jquery-lightbox').click(function() {
|
| 148 | + _finish();
|
| 149 | + });
|
| 150 | + // Assign the _finish function to lightbox-loading-link and lightbox-secNav-btnClose objects
|
| 151 | + $('#lightbox-loading-link,#lightbox-secNav-btnClose').click(function() {
|
| 152 | + _finish();
|
| 153 | + return false;
|
| 154 | + });
|
| 155 | + // If window was resized, calculate the new overlay dimensions
|
| 156 | + $(window).resize(function() {
|
| 157 | + // Get page sizes
|
| 158 | + var arrPageSizes = ___getPageSize();
|
| 159 | + // Style overlay and show it
|
| 160 | + $('#jquery-overlay').css({
|
| 161 | + width: arrPageSizes[0],
|
| 162 | + height: arrPageSizes[1]
|
| 163 | + });
|
| 164 | + // Get page scroll
|
| 165 | + var arrPageScroll = ___getPageScroll();
|
| 166 | + // Calculate top and left offset for the jquery-lightbox div object and show it
|
| 167 | + $('#jquery-lightbox').css({
|
| 168 | + top: arrPageScroll[1] + (arrPageSizes[3] / 10),
|
| 169 | + left: arrPageScroll[0]
|
| 170 | + });
|
| 171 | + });
|
| 172 | + }
|
| 173 | + /**
|
| 174 | + * Prepares image exibition; doing a image�s preloader to calculate it�s size
|
| 175 | + *
|
| 176 | + */
|
| 177 | + function _set_image_to_view() { // show the loading
|
| 178 | + // Show the loading
|
| 179 | + $('#lightbox-loading').show();
|
| 180 | + if ( settings.fixedNavigation ) {
|
| 181 | + $('#lightbox-image,#lightbox-container-image-data-box,#lightbox-image-details-currentNumber').hide();
|
| 182 | + } else {
|
| 183 | + // Hide some elements
|
| 184 | + $('#lightbox-image,#lightbox-nav,#lightbox-nav-btnPrev,#lightbox-nav-btnNext,#lightbox-container-image-data-box,#lightbox-image-details-currentNumber').hide();
|
| 185 | + }
|
| 186 | + // Image preload process
|
| 187 | + var objImagePreloader = new Image();
|
| 188 | + objImagePreloader.onload = function() {
|
| 189 | + $('#lightbox-image').attr('src',settings.imageArray[settings.activeImage][0]);
|
| 190 | + // Perfomance an effect in the image container resizing it
|
| 191 | + _resize_container_image_box(objImagePreloader.width,objImagePreloader.height);
|
| 192 | + // clear onLoad, IE behaves irratically with animated gifs otherwise
|
| 193 | + objImagePreloader.onload=function(){};
|
| 194 | + };
|
| 195 | + objImagePreloader.src = settings.imageArray[settings.activeImage][0];
|
| 196 | + };
|
| 197 | + /**
|
| 198 | + * Perfomance an effect in the image container resizing it
|
| 199 | + *
|
| 200 | + * @param integer intImageWidth The image�s width that will be showed
|
| 201 | + * @param integer intImageHeight The image�s height that will be showed
|
| 202 | + */
|
| 203 | + function _resize_container_image_box(intImageWidth,intImageHeight) {
|
| 204 | + // Get current width and height
|
| 205 | + var intCurrentWidth = $('#lightbox-container-image-box').width();
|
| 206 | + var intCurrentHeight = $('#lightbox-container-image-box').height();
|
| 207 | + // Get the width and height of the selected image plus the padding
|
| 208 | + var intWidth = (intImageWidth + (settings.containerBorderSize * 2)); // Plus the image�s width and the left and right padding value
|
| 209 | + var intHeight = (intImageHeight + (settings.containerBorderSize * 2)); // Plus the image�s height and the left and right padding value
|
| 210 | + // Diferences
|
| 211 | + var intDiffW = intCurrentWidth - intWidth;
|
| 212 | + var intDiffH = intCurrentHeight - intHeight;
|
| 213 | + // Perfomance the effect
|
| 214 | + $('#lightbox-container-image-box').animate({ width: intWidth, height: intHeight },settings.containerResizeSpeed,function() { _show_image(); });
|
| 215 | + if ( ( intDiffW == 0 ) && ( intDiffH == 0 ) ) {
|
| 216 | + if ( $.browser.msie ) {
|
| 217 | + ___pause(250);
|
| 218 | + } else {
|
| 219 | + ___pause(100);
|
| 220 | + }
|
| 221 | + }
|
| 222 | + $('#lightbox-container-image-data-box').css({ width: intImageWidth });
|
| 223 | + $('#lightbox-nav-btnPrev,#lightbox-nav-btnNext').css({ height: intImageHeight + (settings.containerBorderSize * 2) });
|
| 224 | + };
|
| 225 | + /**
|
| 226 | + * Show the prepared image
|
| 227 | + *
|
| 228 | + */
|
| 229 | + function _show_image() {
|
| 230 | + $('#lightbox-loading').hide();
|
| 231 | + $('#lightbox-image').fadeIn(function() {
|
| 232 | + _show_image_data();
|
| 233 | + _set_navigation();
|
| 234 | + });
|
| 235 | + _preload_neighbor_images();
|
| 236 | + };
|
| 237 | + /**
|
| 238 | + * Show the image information
|
| 239 | + *
|
| 240 | + */
|
| 241 | + function _show_image_data() {
|
| 242 | + $('#lightbox-container-image-data-box').slideDown('fast');
|
| 243 | + $('#lightbox-image-details-caption').hide();
|
| 244 | + if ( settings.imageArray[settings.activeImage][1] ) {
|
| 245 | + $('#lightbox-image-details-caption').html(settings.imageArray[settings.activeImage][1]).show();
|
| 246 | + }
|
| 247 | + // If we have a image set, display 'Image X of X'
|
| 248 | + if ( settings.imageArray.length > 1 ) {
|
| 249 | + $('#lightbox-image-details-currentNumber').html(settings.txtImage + ' ' + ( settings.activeImage + 1 ) + ' ' + settings.txtOf + ' ' + settings.imageArray.length).show();
|
| 250 | + }
|
| 251 | + }
|
| 252 | + /**
|
| 253 | + * Display the button navigations
|
| 254 | + *
|
| 255 | + */
|
| 256 | + function _set_navigation() {
|
| 257 | + $('#lightbox-nav').show();
|
| 258 | +
|
| 259 | + // Instead to define this configuration in CSS file, we define here. And it�s need to IE. Just.
|
| 260 | + $('#lightbox-nav-btnPrev,#lightbox-nav-btnNext').css({ 'background' : 'transparent url(' + settings.imageBlank + ') no-repeat' });
|
| 261 | +
|
| 262 | + // Show the prev button, if not the first image in set
|
| 263 | + if ( settings.activeImage != 0 ) {
|
| 264 | + if ( settings.fixedNavigation ) {
|
| 265 | + $('#lightbox-nav-btnPrev').css({ 'background' : 'url(' + settings.imageBtnPrev + ') left 15% no-repeat' })
|
| 266 | + .unbind()
|
| 267 | + .bind('click',function() {
|
| 268 | + settings.activeImage = settings.activeImage - 1;
|
| 269 | + _set_image_to_view();
|
| 270 | + return false;
|
| 271 | + });
|
| 272 | + } else {
|
| 273 | + // Show the images button for Next buttons
|
| 274 | + $('#lightbox-nav-btnPrev').unbind().hover(function() {
|
| 275 | + $(this).css({ 'background' : 'url(' + settings.imageBtnPrev + ') left 15% no-repeat' });
|
| 276 | + },function() {
|
| 277 | + $(this).css({ 'background' : 'transparent url(' + settings.imageBlank + ') no-repeat' });
|
| 278 | + }).show().bind('click',function() {
|
| 279 | + settings.activeImage = settings.activeImage - 1;
|
| 280 | + _set_image_to_view();
|
| 281 | + return false;
|
| 282 | + });
|
| 283 | + }
|
| 284 | + }
|
| 285 | +
|
| 286 | + // Show the next button, if not the last image in set
|
| 287 | + if ( settings.activeImage != ( settings.imageArray.length -1 ) ) {
|
| 288 | + if ( settings.fixedNavigation ) {
|
| 289 | + $('#lightbox-nav-btnNext').css({ 'background' : 'url(' + settings.imageBtnNext + ') right 15% no-repeat' })
|
| 290 | + .unbind()
|
| 291 | + .bind('click',function() {
|
| 292 | + settings.activeImage = settings.activeImage + 1;
|
| 293 | + _set_image_to_view();
|
| 294 | + return false;
|
| 295 | + });
|
| 296 | + } else {
|
| 297 | + // Show the images button for Next buttons
|
| 298 | + $('#lightbox-nav-btnNext').unbind().hover(function() {
|
| 299 | + $(this).css({ 'background' : 'url(' + settings.imageBtnNext + ') right 15% no-repeat' });
|
| 300 | + },function() {
|
| 301 | + $(this).css({ 'background' : 'transparent url(' + settings.imageBlank + ') no-repeat' });
|
| 302 | + }).show().bind('click',function() {
|
| 303 | + settings.activeImage = settings.activeImage + 1;
|
| 304 | + _set_image_to_view();
|
| 305 | + return false;
|
| 306 | + });
|
| 307 | + }
|
| 308 | + }
|
| 309 | + // Enable keyboard navigation
|
| 310 | + _enable_keyboard_navigation();
|
| 311 | + }
|
| 312 | + /**
|
| 313 | + * Enable a support to keyboard navigation
|
| 314 | + *
|
| 315 | + */
|
| 316 | + function _enable_keyboard_navigation() {
|
| 317 | + $(document).keydown(function(objEvent) {
|
| 318 | + _keyboard_action(objEvent);
|
| 319 | + });
|
| 320 | + }
|
| 321 | + /**
|
| 322 | + * Disable the support to keyboard navigation
|
| 323 | + *
|
| 324 | + */
|
| 325 | + function _disable_keyboard_navigation() {
|
| 326 | + $(document).unbind();
|
| 327 | + }
|
| 328 | + /**
|
| 329 | + * Perform the keyboard actions
|
| 330 | + *
|
| 331 | + */
|
| 332 | + function _keyboard_action(objEvent) {
|
| 333 | + // To ie
|
| 334 | + if ( objEvent == null ) {
|
| 335 | + keycode = event.keyCode;
|
| 336 | + escapeKey = 27;
|
| 337 | + // To Mozilla
|
| 338 | + } else {
|
| 339 | + keycode = objEvent.keyCode;
|
| 340 | + escapeKey = objEvent.DOM_VK_ESCAPE;
|
| 341 | + }
|
| 342 | + // Get the key in lower case form
|
| 343 | + key = String.fromCharCode(keycode).toLowerCase();
|
| 344 | + // Verify the keys to close the ligthBox
|
| 345 | + if ( ( key == settings.keyToClose ) || ( key == 'x' ) || ( keycode == escapeKey ) ) {
|
| 346 | + _finish();
|
| 347 | + }
|
| 348 | + // Verify the key to show the previous image
|
| 349 | + if ( ( key == settings.keyToPrev ) || ( keycode == 37 ) ) {
|
| 350 | + // If we�re not showing the first image, call the previous
|
| 351 | + if ( settings.activeImage != 0 ) {
|
| 352 | + settings.activeImage = settings.activeImage - 1;
|
| 353 | + _set_image_to_view();
|
| 354 | + _disable_keyboard_navigation();
|
| 355 | + }
|
| 356 | + }
|
| 357 | + // Verify the key to show the next image
|
| 358 | + if ( ( key == settings.keyToNext ) || ( keycode == 39 ) ) {
|
| 359 | + // If we�re not showing the last image, call the next
|
| 360 | + if ( settings.activeImage != ( settings.imageArray.length - 1 ) ) {
|
| 361 | + settings.activeImage = settings.activeImage + 1;
|
| 362 | + _set_image_to_view();
|
| 363 | + _disable_keyboard_navigation();
|
| 364 | + }
|
| 365 | + }
|
| 366 | + }
|
| 367 | + /**
|
| 368 | + * Preload prev and next images being showed
|
| 369 | + *
|
| 370 | + */
|
| 371 | + function _preload_neighbor_images() {
|
| 372 | + if ( (settings.imageArray.length -1) > settings.activeImage ) {
|
| 373 | + objNext = new Image();
|
| 374 | + objNext.src = settings.imageArray[settings.activeImage + 1][0];
|
| 375 | + }
|
| 376 | + if ( settings.activeImage > 0 ) {
|
| 377 | + objPrev = new Image();
|
| 378 | + objPrev.src = settings.imageArray[settings.activeImage -1][0];
|
| 379 | + }
|
| 380 | + }
|
| 381 | + /**
|
| 382 | + * Remove jQuery lightBox plugin HTML markup
|
| 383 | + *
|
| 384 | + */
|
| 385 | + function _finish() {
|
| 386 | + $('#jquery-lightbox').remove();
|
| 387 | + $('#jquery-overlay').fadeOut(function() { $('#jquery-overlay').remove(); });
|
| 388 | + // Show some elements to avoid conflict with overlay in IE. These elements appear above the overlay.
|
| 389 | + $('embed, object, select').css({ 'visibility' : 'visible' });
|
| 390 | + }
|
| 391 | + /**
|
| 392 | + / THIRD FUNCTION
|
| 393 | + * getPageSize() by quirksmode.com
|
| 394 | + *
|
| 395 | + * @return Array Return an array with page width, height and window width, height
|
| 396 | + */
|
| 397 | + function ___getPageSize() {
|
| 398 | + var xScroll, yScroll;
|
| 399 | + if (window.innerHeight && window.scrollMaxY) {
|
| 400 | + xScroll = window.innerWidth + window.scrollMaxX;
|
| 401 | + yScroll = window.innerHeight + window.scrollMaxY;
|
| 402 | + } else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
|
| 403 | + xScroll = document.body.scrollWidth;
|
| 404 | + yScroll = document.body.scrollHeight;
|
| 405 | + } else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
|
| 406 | + xScroll = document.body.offsetWidth;
|
| 407 | + yScroll = document.body.offsetHeight;
|
| 408 | + }
|
| 409 | + var windowWidth, windowHeight;
|
| 410 | + if (self.innerHeight) { // all except Explorer
|
| 411 | + if(document.documentElement.clientWidth){
|
| 412 | + windowWidth = document.documentElement.clientWidth;
|
| 413 | + } else {
|
| 414 | + windowWidth = self.innerWidth;
|
| 415 | + }
|
| 416 | + windowHeight = self.innerHeight;
|
| 417 | + } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
|
| 418 | + windowWidth = document.documentElement.clientWidth;
|
| 419 | + windowHeight = document.documentElement.clientHeight;
|
| 420 | + } else if (document.body) { // other Explorers
|
| 421 | + windowWidth = document.body.clientWidth;
|
| 422 | + windowHeight = document.body.clientHeight;
|
| 423 | + }
|
| 424 | + // for small pages with total height less then height of the viewport
|
| 425 | + if(yScroll < windowHeight){
|
| 426 | + pageHeight = windowHeight;
|
| 427 | + } else {
|
| 428 | + pageHeight = yScroll;
|
| 429 | + }
|
| 430 | + // for small pages with total width less then width of the viewport
|
| 431 | + if(xScroll < windowWidth){
|
| 432 | + pageWidth = xScroll;
|
| 433 | + } else {
|
| 434 | + pageWidth = windowWidth;
|
| 435 | + }
|
| 436 | + arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight);
|
| 437 | + return arrayPageSize;
|
| 438 | + };
|
| 439 | + /**
|
| 440 | + / THIRD FUNCTION
|
| 441 | + * getPageScroll() by quirksmode.com
|
| 442 | + *
|
| 443 | + * @return Array Return an array with x,y page scroll values.
|
| 444 | + */
|
| 445 | + function ___getPageScroll() {
|
| 446 | + var xScroll, yScroll;
|
| 447 | + if (self.pageYOffset) {
|
| 448 | + yScroll = self.pageYOffset;
|
| 449 | + xScroll = self.pageXOffset;
|
| 450 | + } else if (document.documentElement && document.documentElement.scrollTop) { // Explorer 6 Strict
|
| 451 | + yScroll = document.documentElement.scrollTop;
|
| 452 | + xScroll = document.documentElement.scrollLeft;
|
| 453 | + } else if (document.body) {// all other Explorers
|
| 454 | + yScroll = document.body.scrollTop;
|
| 455 | + xScroll = document.body.scrollLeft;
|
| 456 | + }
|
| 457 | + arrayPageScroll = new Array(xScroll,yScroll);
|
| 458 | + return arrayPageScroll;
|
| 459 | + };
|
| 460 | + /**
|
| 461 | + * Stop the code execution from a escified time in milisecond
|
| 462 | + *
|
| 463 | + */
|
| 464 | + function ___pause(ms) {
|
| 465 | + var date = new Date();
|
| 466 | + curDate = null;
|
| 467 | + do { var curDate = new Date(); }
|
| 468 | + while ( curDate - date < ms);
|
| 469 | + };
|
| 470 | + // Return the jQuery object for chaining. The unbind method is used to avoid click conflict when the plugin is called more than once
|
| 471 | + return this.unbind('click').click(_initialize);
|
| 472 | + };
|
| 473 | +})(jQuery); // Call and execute the function immediately passing the jQuery object |
\ No newline at end of file |
Index: trunk/extensions/GeeQuBox/js/jquery.js |
— | — | @@ -0,0 +1,32 @@ |
| 2 | +/* |
| 3 | + * jQuery 1.2.3 - New Wave Javascript |
| 4 | + * |
| 5 | + * Copyright (c) 2008 John Resig (jquery.com) |
| 6 | + * Dual licensed under the MIT (MIT-LICENSE.txt) |
| 7 | + * and GPL (GPL-LICENSE.txt) licenses. |
| 8 | + * |
| 9 | + * $Date: 2008-02-06 00:21:25 -0500 (Wed, 06 Feb 2008) $ |
| 10 | + * $Rev: 4663 $ |
| 11 | + */ |
| 12 | +(function(){if(window.jQuery)var _jQuery=window.jQuery;var jQuery=window.jQuery=function(selector,context){return new jQuery.prototype.init(selector,context);};if(window.$)var _$=window.$;window.$=jQuery;var quickExpr=/^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/;var isSimple=/^.[^:#\[\.]*$/;jQuery.fn=jQuery.prototype={init:function(selector,context){selector=selector||document;if(selector.nodeType){this[0]=selector;this.length=1;return this;}else if(typeof selector=="string"){var match=quickExpr.exec(selector);if(match&&(match[1]||!context)){if(match[1])selector=jQuery.clean([match[1]],context);else{var elem=document.getElementById(match[3]);if(elem)if(elem.id!=match[3])return jQuery().find(selector);else{this[0]=elem;this.length=1;return this;}else |
| 13 | +selector=[];}}else |
| 14 | +return new jQuery(context).find(selector);}else if(jQuery.isFunction(selector))return new jQuery(document)[jQuery.fn.ready?"ready":"load"](selector);return this.setArray(selector.constructor==Array&&selector||(selector.jquery||selector.length&&selector!=window&&!selector.nodeType&&selector[0]!=undefined&&selector[0].nodeType)&&jQuery.makeArray(selector)||[selector]);},jquery:"1.2.3",size:function(){return this.length;},length:0,get:function(num){return num==undefined?jQuery.makeArray(this):this[num];},pushStack:function(elems){var ret=jQuery(elems);ret.prevObject=this;return ret;},setArray:function(elems){this.length=0;Array.prototype.push.apply(this,elems);return this;},each:function(callback,args){return jQuery.each(this,callback,args);},index:function(elem){var ret=-1;this.each(function(i){if(this==elem)ret=i;});return ret;},attr:function(name,value,type){var options=name;if(name.constructor==String)if(value==undefined)return this.length&&jQuery[type||"attr"](this[0],name)||undefined;else{options={};options[name]=value;}return this.each(function(i){for(name in options)jQuery.attr(type?this.style:this,name,jQuery.prop(this,options[name],type,i,name));});},css:function(key,value){if((key=='width'||key=='height')&&parseFloat(value)<0)value=undefined;return this.attr(key,value,"curCSS");},text:function(text){if(typeof text!="object"&&text!=null)return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(text));var ret="";jQuery.each(text||this,function(){jQuery.each(this.childNodes,function(){if(this.nodeType!=8)ret+=this.nodeType!=1?this.nodeValue:jQuery.fn.text([this]);});});return ret;},wrapAll:function(html){if(this[0])jQuery(html,this[0].ownerDocument).clone().insertBefore(this[0]).map(function(){var elem=this;while(elem.firstChild)elem=elem.firstChild;return elem;}).append(this);return this;},wrapInner:function(html){return this.each(function(){jQuery(this).contents().wrapAll(html);});},wrap:function(html){return this.each(function(){jQuery(this).wrapAll(html);});},append:function(){return this.domManip(arguments,true,false,function(elem){if(this.nodeType==1)this.appendChild(elem);});},prepend:function(){return this.domManip(arguments,true,true,function(elem){if(this.nodeType==1)this.insertBefore(elem,this.firstChild);});},before:function(){return this.domManip(arguments,false,false,function(elem){this.parentNode.insertBefore(elem,this);});},after:function(){return this.domManip(arguments,false,true,function(elem){this.parentNode.insertBefore(elem,this.nextSibling);});},end:function(){return this.prevObject||jQuery([]);},find:function(selector){var elems=jQuery.map(this,function(elem){return jQuery.find(selector,elem);});return this.pushStack(/[^+>] [^+>]/.test(selector)||selector.indexOf("..")>-1?jQuery.unique(elems):elems);},clone:function(events){var ret=this.map(function(){if(jQuery.browser.msie&&!jQuery.isXMLDoc(this)){var clone=this.cloneNode(true),container=document.createElement("div");container.appendChild(clone);return jQuery.clean([container.innerHTML])[0];}else |
| 15 | +return this.cloneNode(true);});var clone=ret.find("*").andSelf().each(function(){if(this[expando]!=undefined)this[expando]=null;});if(events===true)this.find("*").andSelf().each(function(i){if(this.nodeType==3)return;var events=jQuery.data(this,"events");for(var type in events)for(var handler in events[type])jQuery.event.add(clone[i],type,events[type][handler],events[type][handler].data);});return ret;},filter:function(selector){return this.pushStack(jQuery.isFunction(selector)&&jQuery.grep(this,function(elem,i){return selector.call(elem,i);})||jQuery.multiFilter(selector,this));},not:function(selector){if(selector.constructor==String)if(isSimple.test(selector))return this.pushStack(jQuery.multiFilter(selector,this,true));else |
| 16 | +selector=jQuery.multiFilter(selector,this);var isArrayLike=selector.length&&selector[selector.length-1]!==undefined&&!selector.nodeType;return this.filter(function(){return isArrayLike?jQuery.inArray(this,selector)<0:this!=selector;});},add:function(selector){return!selector?this:this.pushStack(jQuery.merge(this.get(),selector.constructor==String?jQuery(selector).get():selector.length!=undefined&&(!selector.nodeName||jQuery.nodeName(selector,"form"))?selector:[selector]));},is:function(selector){return selector?jQuery.multiFilter(selector,this).length>0:false;},hasClass:function(selector){return this.is("."+selector);},val:function(value){if(value==undefined){if(this.length){var elem=this[0];if(jQuery.nodeName(elem,"select")){var index=elem.selectedIndex,values=[],options=elem.options,one=elem.type=="select-one";if(index<0)return null;for(var i=one?index:0,max=one?index+1:options.length;i<max;i++){var option=options[i];if(option.selected){value=jQuery.browser.msie&&!option.attributes.value.specified?option.text:option.value;if(one)return value;values.push(value);}}return values;}else |
| 17 | +return(this[0].value||"").replace(/\r/g,"");}return undefined;}return this.each(function(){if(this.nodeType!=1)return;if(value.constructor==Array&&/radio|checkbox/.test(this.type))this.checked=(jQuery.inArray(this.value,value)>=0||jQuery.inArray(this.name,value)>=0);else if(jQuery.nodeName(this,"select")){var values=value.constructor==Array?value:[value];jQuery("option",this).each(function(){this.selected=(jQuery.inArray(this.value,values)>=0||jQuery.inArray(this.text,values)>=0);});if(!values.length)this.selectedIndex=-1;}else |
| 18 | +this.value=value;});},html:function(value){return value==undefined?(this.length?this[0].innerHTML:null):this.empty().append(value);},replaceWith:function(value){return this.after(value).remove();},eq:function(i){return this.slice(i,i+1);},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments));},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem);}));},andSelf:function(){return this.add(this.prevObject);},data:function(key,value){var parts=key.split(".");parts[1]=parts[1]?"."+parts[1]:"";if(value==null){var data=this.triggerHandler("getData"+parts[1]+"!",[parts[0]]);if(data==undefined&&this.length)data=jQuery.data(this[0],key);return data==null&&parts[1]?this.data(parts[0]):data;}else |
| 19 | +return this.trigger("setData"+parts[1]+"!",[parts[0],value]).each(function(){jQuery.data(this,key,value);});},removeData:function(key){return this.each(function(){jQuery.removeData(this,key);});},domManip:function(args,table,reverse,callback){var clone=this.length>1,elems;return this.each(function(){if(!elems){elems=jQuery.clean(args,this.ownerDocument);if(reverse)elems.reverse();}var obj=this;if(table&&jQuery.nodeName(this,"table")&&jQuery.nodeName(elems[0],"tr"))obj=this.getElementsByTagName("tbody")[0]||this.appendChild(this.ownerDocument.createElement("tbody"));var scripts=jQuery([]);jQuery.each(elems,function(){var elem=clone?jQuery(this).clone(true)[0]:this;if(jQuery.nodeName(elem,"script")){scripts=scripts.add(elem);}else{if(elem.nodeType==1)scripts=scripts.add(jQuery("script",elem).remove());callback.call(obj,elem);}});scripts.each(evalScript);});}};jQuery.prototype.init.prototype=jQuery.prototype;function evalScript(i,elem){if(elem.src)jQuery.ajax({url:elem.src,async:false,dataType:"script"});else |
| 20 | +jQuery.globalEval(elem.text||elem.textContent||elem.innerHTML||"");if(elem.parentNode)elem.parentNode.removeChild(elem);}jQuery.extend=jQuery.fn.extend=function(){var target=arguments[0]||{},i=1,length=arguments.length,deep=false,options;if(target.constructor==Boolean){deep=target;target=arguments[1]||{};i=2;}if(typeof target!="object"&&typeof target!="function")target={};if(length==1){target=this;i=0;}for(;i<length;i++)if((options=arguments[i])!=null)for(var name in options){if(target===options[name])continue;if(deep&&options[name]&&typeof options[name]=="object"&&target[name]&&!options[name].nodeType)target[name]=jQuery.extend(target[name],options[name]);else if(options[name]!=undefined)target[name]=options[name];}return target;};var expando="jQuery"+(new Date()).getTime(),uuid=0,windowData={};var exclude=/z-?index|font-?weight|opacity|zoom|line-?height/i;jQuery.extend({noConflict:function(deep){window.$=_$;if(deep)window.jQuery=_jQuery;return jQuery;},isFunction:function(fn){return!!fn&&typeof fn!="string"&&!fn.nodeName&&fn.constructor!=Array&&/function/i.test(fn+"");},isXMLDoc:function(elem){return elem.documentElement&&!elem.body||elem.tagName&&elem.ownerDocument&&!elem.ownerDocument.body;},globalEval:function(data){data=jQuery.trim(data);if(data){var head=document.getElementsByTagName("head")[0]||document.documentElement,script=document.createElement("script");script.type="text/javascript";if(jQuery.browser.msie)script.text=data;else |
| 21 | +script.appendChild(document.createTextNode(data));head.appendChild(script);head.removeChild(script);}},nodeName:function(elem,name){return elem.nodeName&&elem.nodeName.toUpperCase()==name.toUpperCase();},cache:{},data:function(elem,name,data){elem=elem==window?windowData:elem;var id=elem[expando];if(!id)id=elem[expando]=++uuid;if(name&&!jQuery.cache[id])jQuery.cache[id]={};if(data!=undefined)jQuery.cache[id][name]=data;return name?jQuery.cache[id][name]:id;},removeData:function(elem,name){elem=elem==window?windowData:elem;var id=elem[expando];if(name){if(jQuery.cache[id]){delete jQuery.cache[id][name];name="";for(name in jQuery.cache[id])break;if(!name)jQuery.removeData(elem);}}else{try{delete elem[expando];}catch(e){if(elem.removeAttribute)elem.removeAttribute(expando);}delete jQuery.cache[id];}},each:function(object,callback,args){if(args){if(object.length==undefined){for(var name in object)if(callback.apply(object[name],args)===false)break;}else |
| 22 | +for(var i=0,length=object.length;i<length;i++)if(callback.apply(object[i],args)===false)break;}else{if(object.length==undefined){for(var name in object)if(callback.call(object[name],name,object[name])===false)break;}else |
| 23 | +for(var i=0,length=object.length,value=object[0];i<length&&callback.call(value,i,value)!==false;value=object[++i]){}}return object;},prop:function(elem,value,type,i,name){if(jQuery.isFunction(value))value=value.call(elem,i);return value&&value.constructor==Number&&type=="curCSS"&&!exclude.test(name)?value+"px":value;},className:{add:function(elem,classNames){jQuery.each((classNames||"").split(/\s+/),function(i,className){if(elem.nodeType==1&&!jQuery.className.has(elem.className,className))elem.className+=(elem.className?" ":"")+className;});},remove:function(elem,classNames){if(elem.nodeType==1)elem.className=classNames!=undefined?jQuery.grep(elem.className.split(/\s+/),function(className){return!jQuery.className.has(classNames,className);}).join(" "):"";},has:function(elem,className){return jQuery.inArray(className,(elem.className||elem).toString().split(/\s+/))>-1;}},swap:function(elem,options,callback){var old={};for(var name in options){old[name]=elem.style[name];elem.style[name]=options[name];}callback.call(elem);for(var name in options)elem.style[name]=old[name];},css:function(elem,name,force){if(name=="width"||name=="height"){var val,props={position:"absolute",visibility:"hidden",display:"block"},which=name=="width"?["Left","Right"]:["Top","Bottom"];function getWH(){val=name=="width"?elem.offsetWidth:elem.offsetHeight;var padding=0,border=0;jQuery.each(which,function(){padding+=parseFloat(jQuery.curCSS(elem,"padding"+this,true))||0;border+=parseFloat(jQuery.curCSS(elem,"border"+this+"Width",true))||0;});val-=Math.round(padding+border);}if(jQuery(elem).is(":visible"))getWH();else |
| 24 | +jQuery.swap(elem,props,getWH);return Math.max(0,val);}return jQuery.curCSS(elem,name,force);},curCSS:function(elem,name,force){var ret;function color(elem){if(!jQuery.browser.safari)return false;var ret=document.defaultView.getComputedStyle(elem,null);return!ret||ret.getPropertyValue("color")=="";}if(name=="opacity"&&jQuery.browser.msie){ret=jQuery.attr(elem.style,"opacity");return ret==""?"1":ret;}if(jQuery.browser.opera&&name=="display"){var save=elem.style.outline;elem.style.outline="0 solid black";elem.style.outline=save;}if(name.match(/float/i))name=styleFloat;if(!force&&elem.style&&elem.style[name])ret=elem.style[name];else if(document.defaultView&&document.defaultView.getComputedStyle){if(name.match(/float/i))name="float";name=name.replace(/([A-Z])/g,"-$1").toLowerCase();var getComputedStyle=document.defaultView.getComputedStyle(elem,null);if(getComputedStyle&&!color(elem))ret=getComputedStyle.getPropertyValue(name);else{var swap=[],stack=[];for(var a=elem;a&&color(a);a=a.parentNode)stack.unshift(a);for(var i=0;i<stack.length;i++)if(color(stack[i])){swap[i]=stack[i].style.display;stack[i].style.display="block";}ret=name=="display"&&swap[stack.length-1]!=null?"none":(getComputedStyle&&getComputedStyle.getPropertyValue(name))||"";for(var i=0;i<swap.length;i++)if(swap[i]!=null)stack[i].style.display=swap[i];}if(name=="opacity"&&ret=="")ret="1";}else if(elem.currentStyle){var camelCase=name.replace(/\-(\w)/g,function(all,letter){return letter.toUpperCase();});ret=elem.currentStyle[name]||elem.currentStyle[camelCase];if(!/^\d+(px)?$/i.test(ret)&&/^\d/.test(ret)){var style=elem.style.left,runtimeStyle=elem.runtimeStyle.left;elem.runtimeStyle.left=elem.currentStyle.left;elem.style.left=ret||0;ret=elem.style.pixelLeft+"px";elem.style.left=style;elem.runtimeStyle.left=runtimeStyle;}}return ret;},clean:function(elems,context){var ret=[];context=context||document;if(typeof context.createElement=='undefined')context=context.ownerDocument||context[0]&&context[0].ownerDocument||document;jQuery.each(elems,function(i,elem){if(!elem)return;if(elem.constructor==Number)elem=elem.toString();if(typeof elem=="string"){elem=elem.replace(/(<(\w+)[^>]*?)\/>/g,function(all,front,tag){return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?all:front+"></"+tag+">";});var tags=jQuery.trim(elem).toLowerCase(),div=context.createElement("div");var wrap=!tags.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!tags.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||tags.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!tags.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!tags.indexOf("<td")||!tags.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!tags.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||jQuery.browser.msie&&[1,"div<div>","</div>"]||[0,"",""];div.innerHTML=wrap[1]+elem+wrap[2];while(wrap[0]--)div=div.lastChild;if(jQuery.browser.msie){var tbody=!tags.indexOf("<table")&&tags.indexOf("<tbody")<0?div.firstChild&&div.firstChild.childNodes:wrap[1]=="<table>"&&tags.indexOf("<tbody")<0?div.childNodes:[];for(var j=tbody.length-1;j>=0;--j)if(jQuery.nodeName(tbody[j],"tbody")&&!tbody[j].childNodes.length)tbody[j].parentNode.removeChild(tbody[j]);if(/^\s/.test(elem))div.insertBefore(context.createTextNode(elem.match(/^\s*/)[0]),div.firstChild);}elem=jQuery.makeArray(div.childNodes);}if(elem.length===0&&(!jQuery.nodeName(elem,"form")&&!jQuery.nodeName(elem,"select")))return;if(elem[0]==undefined||jQuery.nodeName(elem,"form")||elem.options)ret.push(elem);else |
| 25 | +ret=jQuery.merge(ret,elem);});return ret;},attr:function(elem,name,value){if(!elem||elem.nodeType==3||elem.nodeType==8)return undefined;var fix=jQuery.isXMLDoc(elem)?{}:jQuery.props;if(name=="selected"&&jQuery.browser.safari)elem.parentNode.selectedIndex;if(fix[name]){if(value!=undefined)elem[fix[name]]=value;return elem[fix[name]];}else if(jQuery.browser.msie&&name=="style")return jQuery.attr(elem.style,"cssText",value);else if(value==undefined&&jQuery.browser.msie&&jQuery.nodeName(elem,"form")&&(name=="action"||name=="method"))return elem.getAttributeNode(name).nodeValue;else if(elem.tagName){if(value!=undefined){if(name=="type"&&jQuery.nodeName(elem,"input")&&elem.parentNode)throw"type property can't be changed";elem.setAttribute(name,""+value);}if(jQuery.browser.msie&&/href|src/.test(name)&&!jQuery.isXMLDoc(elem))return elem.getAttribute(name,2);return elem.getAttribute(name);}else{if(name=="opacity"&&jQuery.browser.msie){if(value!=undefined){elem.zoom=1;elem.filter=(elem.filter||"").replace(/alpha\([^)]*\)/,"")+(parseFloat(value).toString()=="NaN"?"":"alpha(opacity="+value*100+")");}return elem.filter&&elem.filter.indexOf("opacity=")>=0?(parseFloat(elem.filter.match(/opacity=([^)]*)/)[1])/100).toString():"";}name=name.replace(/-([a-z])/ig,function(all,letter){return letter.toUpperCase();});if(value!=undefined)elem[name]=value;return elem[name];}},trim:function(text){return(text||"").replace(/^\s+|\s+$/g,"");},makeArray:function(array){var ret=[];if(typeof array!="array")for(var i=0,length=array.length;i<length;i++)ret.push(array[i]);else |
| 26 | +ret=array.slice(0);return ret;},inArray:function(elem,array){for(var i=0,length=array.length;i<length;i++)if(array[i]==elem)return i;return-1;},merge:function(first,second){if(jQuery.browser.msie){for(var i=0;second[i];i++)if(second[i].nodeType!=8)first.push(second[i]);}else |
| 27 | +for(var i=0;second[i];i++)first.push(second[i]);return first;},unique:function(array){var ret=[],done={};try{for(var i=0,length=array.length;i<length;i++){var id=jQuery.data(array[i]);if(!done[id]){done[id]=true;ret.push(array[i]);}}}catch(e){ret=array;}return ret;},grep:function(elems,callback,inv){var ret=[];for(var i=0,length=elems.length;i<length;i++)if(!inv&&callback(elems[i],i)||inv&&!callback(elems[i],i))ret.push(elems[i]);return ret;},map:function(elems,callback){var ret=[];for(var i=0,length=elems.length;i<length;i++){var value=callback(elems[i],i);if(value!==null&&value!=undefined){if(value.constructor!=Array)value=[value];ret=ret.concat(value);}}return ret;}});var userAgent=navigator.userAgent.toLowerCase();jQuery.browser={version:(userAgent.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[])[1],safari:/webkit/.test(userAgent),opera:/opera/.test(userAgent),msie:/msie/.test(userAgent)&&!/opera/.test(userAgent),mozilla:/mozilla/.test(userAgent)&&!/(compatible|webkit)/.test(userAgent)};var styleFloat=jQuery.browser.msie?"styleFloat":"cssFloat";jQuery.extend({boxModel:!jQuery.browser.msie||document.compatMode=="CSS1Compat",props:{"for":"htmlFor","class":"className","float":styleFloat,cssFloat:styleFloat,styleFloat:styleFloat,innerHTML:"innerHTML",className:"className",value:"value",disabled:"disabled",checked:"checked",readonly:"readOnly",selected:"selected",maxlength:"maxLength",selectedIndex:"selectedIndex",defaultValue:"defaultValue",tagName:"tagName",nodeName:"nodeName"}});jQuery.each({parent:function(elem){return elem.parentNode;},parents:function(elem){return jQuery.dir(elem,"parentNode");},next:function(elem){return jQuery.nth(elem,2,"nextSibling");},prev:function(elem){return jQuery.nth(elem,2,"previousSibling");},nextAll:function(elem){return jQuery.dir(elem,"nextSibling");},prevAll:function(elem){return jQuery.dir(elem,"previousSibling");},siblings:function(elem){return jQuery.sibling(elem.parentNode.firstChild,elem);},children:function(elem){return jQuery.sibling(elem.firstChild);},contents:function(elem){return jQuery.nodeName(elem,"iframe")?elem.contentDocument||elem.contentWindow.document:jQuery.makeArray(elem.childNodes);}},function(name,fn){jQuery.fn[name]=function(selector){var ret=jQuery.map(this,fn);if(selector&&typeof selector=="string")ret=jQuery.multiFilter(selector,ret);return this.pushStack(jQuery.unique(ret));};});jQuery.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(name,original){jQuery.fn[name]=function(){var args=arguments;return this.each(function(){for(var i=0,length=args.length;i<length;i++)jQuery(args[i])[original](this);});};});jQuery.each({removeAttr:function(name){jQuery.attr(this,name,"");if(this.nodeType==1)this.removeAttribute(name);},addClass:function(classNames){jQuery.className.add(this,classNames);},removeClass:function(classNames){jQuery.className.remove(this,classNames);},toggleClass:function(classNames){jQuery.className[jQuery.className.has(this,classNames)?"remove":"add"](this,classNames);},remove:function(selector){if(!selector||jQuery.filter(selector,[this]).r.length){jQuery("*",this).add(this).each(function(){jQuery.event.remove(this);jQuery.removeData(this);});if(this.parentNode)this.parentNode.removeChild(this);}},empty:function(){jQuery(">*",this).remove();while(this.firstChild)this.removeChild(this.firstChild);}},function(name,fn){jQuery.fn[name]=function(){return this.each(fn,arguments);};});jQuery.each(["Height","Width"],function(i,name){var type=name.toLowerCase();jQuery.fn[type]=function(size){return this[0]==window?jQuery.browser.opera&&document.body["client"+name]||jQuery.browser.safari&&window["inner"+name]||document.compatMode=="CSS1Compat"&&document.documentElement["client"+name]||document.body["client"+name]:this[0]==document?Math.max(Math.max(document.body["scroll"+name],document.documentElement["scroll"+name]),Math.max(document.body["offset"+name],document.documentElement["offset"+name])):size==undefined?(this.length?jQuery.css(this[0],type):null):this.css(type,size.constructor==String?size:size+"px");};});var chars=jQuery.browser.safari&&parseInt(jQuery.browser.version)<417?"(?:[\\w*_-]|\\\\.)":"(?:[\\w\u0128-\uFFFF*_-]|\\\\.)",quickChild=new RegExp("^>\\s*("+chars+"+)"),quickID=new RegExp("^("+chars+"+)(#)("+chars+"+)"),quickClass=new RegExp("^([#.]?)("+chars+"*)");jQuery.extend({expr:{"":function(a,i,m){return m[2]=="*"||jQuery.nodeName(a,m[2]);},"#":function(a,i,m){return a.getAttribute("id")==m[2];},":":{lt:function(a,i,m){return i<m[3]-0;},gt:function(a,i,m){return i>m[3]-0;},nth:function(a,i,m){return m[3]-0==i;},eq:function(a,i,m){return m[3]-0==i;},first:function(a,i){return i==0;},last:function(a,i,m,r){return i==r.length-1;},even:function(a,i){return i%2==0;},odd:function(a,i){return i%2;},"first-child":function(a){return a.parentNode.getElementsByTagName("*")[0]==a;},"last-child":function(a){return jQuery.nth(a.parentNode.lastChild,1,"previousSibling")==a;},"only-child":function(a){return!jQuery.nth(a.parentNode.lastChild,2,"previousSibling");},parent:function(a){return a.firstChild;},empty:function(a){return!a.firstChild;},contains:function(a,i,m){return(a.textContent||a.innerText||jQuery(a).text()||"").indexOf(m[3])>=0;},visible:function(a){return"hidden"!=a.type&&jQuery.css(a,"display")!="none"&&jQuery.css(a,"visibility")!="hidden";},hidden:function(a){return"hidden"==a.type||jQuery.css(a,"display")=="none"||jQuery.css(a,"visibility")=="hidden";},enabled:function(a){return!a.disabled;},disabled:function(a){return a.disabled;},checked:function(a){return a.checked;},selected:function(a){return a.selected||jQuery.attr(a,"selected");},text:function(a){return"text"==a.type;},radio:function(a){return"radio"==a.type;},checkbox:function(a){return"checkbox"==a.type;},file:function(a){return"file"==a.type;},password:function(a){return"password"==a.type;},submit:function(a){return"submit"==a.type;},image:function(a){return"image"==a.type;},reset:function(a){return"reset"==a.type;},button:function(a){return"button"==a.type||jQuery.nodeName(a,"button");},input:function(a){return/input|select|textarea|button/i.test(a.nodeName);},has:function(a,i,m){return jQuery.find(m[3],a).length;},header:function(a){return/h\d/i.test(a.nodeName);},animated:function(a){return jQuery.grep(jQuery.timers,function(fn){return a==fn.elem;}).length;}}},parse:[/^(\[) *@?([\w-]+) *([!*$^~=]*) *('?"?)(.*?)\4 *\]/,/^(:)([\w-]+)\("?'?(.*?(\(.*?\))?[^(]*?)"?'?\)/,new RegExp("^([:.#]*)("+chars+"+)")],multiFilter:function(expr,elems,not){var old,cur=[];while(expr&&expr!=old){old=expr;var f=jQuery.filter(expr,elems,not);expr=f.t.replace(/^\s*,\s*/,"");cur=not?elems=f.r:jQuery.merge(cur,f.r);}return cur;},find:function(t,context){if(typeof t!="string")return[t];if(context&&context.nodeType!=1&&context.nodeType!=9)return[];context=context||document;var ret=[context],done=[],last,nodeName;while(t&&last!=t){var r=[];last=t;t=jQuery.trim(t);var foundToken=false;var re=quickChild;var m=re.exec(t);if(m){nodeName=m[1].toUpperCase();for(var i=0;ret[i];i++)for(var c=ret[i].firstChild;c;c=c.nextSibling)if(c.nodeType==1&&(nodeName=="*"||c.nodeName.toUpperCase()==nodeName))r.push(c);ret=r;t=t.replace(re,"");if(t.indexOf(" ")==0)continue;foundToken=true;}else{re=/^([>+~])\s*(\w*)/i;if((m=re.exec(t))!=null){r=[];var merge={};nodeName=m[2].toUpperCase();m=m[1];for(var j=0,rl=ret.length;j<rl;j++){var n=m=="~"||m=="+"?ret[j].nextSibling:ret[j].firstChild;for(;n;n=n.nextSibling)if(n.nodeType==1){var id=jQuery.data(n);if(m=="~"&&merge[id])break;if(!nodeName||n.nodeName.toUpperCase()==nodeName){if(m=="~")merge[id]=true;r.push(n);}if(m=="+")break;}}ret=r;t=jQuery.trim(t.replace(re,""));foundToken=true;}}if(t&&!foundToken){if(!t.indexOf(",")){if(context==ret[0])ret.shift();done=jQuery.merge(done,ret);r=ret=[context];t=" "+t.substr(1,t.length);}else{var re2=quickID;var m=re2.exec(t);if(m){m=[0,m[2],m[3],m[1]];}else{re2=quickClass;m=re2.exec(t);}m[2]=m[2].replace(/\\/g,"");var elem=ret[ret.length-1];if(m[1]=="#"&&elem&&elem.getElementById&&!jQuery.isXMLDoc(elem)){var oid=elem.getElementById(m[2]);if((jQuery.browser.msie||jQuery.browser.opera)&&oid&&typeof oid.id=="string"&&oid.id!=m[2])oid=jQuery('[@id="'+m[2]+'"]',elem)[0];ret=r=oid&&(!m[3]||jQuery.nodeName(oid,m[3]))?[oid]:[];}else{for(var i=0;ret[i];i++){var tag=m[1]=="#"&&m[3]?m[3]:m[1]!=""||m[0]==""?"*":m[2];if(tag=="*"&&ret[i].nodeName.toLowerCase()=="object")tag="param";r=jQuery.merge(r,ret[i].getElementsByTagName(tag));}if(m[1]==".")r=jQuery.classFilter(r,m[2]);if(m[1]=="#"){var tmp=[];for(var i=0;r[i];i++)if(r[i].getAttribute("id")==m[2]){tmp=[r[i]];break;}r=tmp;}ret=r;}t=t.replace(re2,"");}}if(t){var val=jQuery.filter(t,r);ret=r=val.r;t=jQuery.trim(val.t);}}if(t)ret=[];if(ret&&context==ret[0])ret.shift();done=jQuery.merge(done,ret);return done;},classFilter:function(r,m,not){m=" "+m+" ";var tmp=[];for(var i=0;r[i];i++){var pass=(" "+r[i].className+" ").indexOf(m)>=0;if(!not&&pass||not&&!pass)tmp.push(r[i]);}return tmp;},filter:function(t,r,not){var last;while(t&&t!=last){last=t;var p=jQuery.parse,m;for(var i=0;p[i];i++){m=p[i].exec(t);if(m){t=t.substring(m[0].length);m[2]=m[2].replace(/\\/g,"");break;}}if(!m)break;if(m[1]==":"&&m[2]=="not")r=isSimple.test(m[3])?jQuery.filter(m[3],r,true).r:jQuery(r).not(m[3]);else if(m[1]==".")r=jQuery.classFilter(r,m[2],not);else if(m[1]=="["){var tmp=[],type=m[3];for(var i=0,rl=r.length;i<rl;i++){var a=r[i],z=a[jQuery.props[m[2]]||m[2]];if(z==null||/href|src|selected/.test(m[2]))z=jQuery.attr(a,m[2])||'';if((type==""&&!!z||type=="="&&z==m[5]||type=="!="&&z!=m[5]||type=="^="&&z&&!z.indexOf(m[5])||type=="$="&&z.substr(z.length-m[5].length)==m[5]||(type=="*="||type=="~=")&&z.indexOf(m[5])>=0)^not)tmp.push(a);}r=tmp;}else if(m[1]==":"&&m[2]=="nth-child"){var merge={},tmp=[],test=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(m[3]=="even"&&"2n"||m[3]=="odd"&&"2n+1"||!/\D/.test(m[3])&&"0n+"+m[3]||m[3]),first=(test[1]+(test[2]||1))-0,last=test[3]-0;for(var i=0,rl=r.length;i<rl;i++){var node=r[i],parentNode=node.parentNode,id=jQuery.data(parentNode);if(!merge[id]){var c=1;for(var n=parentNode.firstChild;n;n=n.nextSibling)if(n.nodeType==1)n.nodeIndex=c++;merge[id]=true;}var add=false;if(first==0){if(node.nodeIndex==last)add=true;}else if((node.nodeIndex-last)%first==0&&(node.nodeIndex-last)/first>=0)add=true;if(add^not)tmp.push(node);}r=tmp;}else{var fn=jQuery.expr[m[1]];if(typeof fn=="object")fn=fn[m[2]];if(typeof fn=="string")fn=eval("false||function(a,i){return "+fn+";}");r=jQuery.grep(r,function(elem,i){return fn(elem,i,m,r);},not);}}return{r:r,t:t};},dir:function(elem,dir){var matched=[];var cur=elem[dir];while(cur&&cur!=document){if(cur.nodeType==1)matched.push(cur);cur=cur[dir];}return matched;},nth:function(cur,result,dir,elem){result=result||1;var num=0;for(;cur;cur=cur[dir])if(cur.nodeType==1&&++num==result)break;return cur;},sibling:function(n,elem){var r=[];for(;n;n=n.nextSibling){if(n.nodeType==1&&(!elem||n!=elem))r.push(n);}return r;}});jQuery.event={add:function(elem,types,handler,data){if(elem.nodeType==3||elem.nodeType==8)return;if(jQuery.browser.msie&&elem.setInterval!=undefined)elem=window;if(!handler.guid)handler.guid=this.guid++;if(data!=undefined){var fn=handler;handler=function(){return fn.apply(this,arguments);};handler.data=data;handler.guid=fn.guid;}var events=jQuery.data(elem,"events")||jQuery.data(elem,"events",{}),handle=jQuery.data(elem,"handle")||jQuery.data(elem,"handle",function(){var val;if(typeof jQuery=="undefined"||jQuery.event.triggered)return val;val=jQuery.event.handle.apply(arguments.callee.elem,arguments);return val;});handle.elem=elem;jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];handler.type=parts[1];var handlers=events[type];if(!handlers){handlers=events[type]={};if(!jQuery.event.special[type]||jQuery.event.special[type].setup.call(elem)===false){if(elem.addEventListener)elem.addEventListener(type,handle,false);else if(elem.attachEvent)elem.attachEvent("on"+type,handle);}}handlers[handler.guid]=handler;jQuery.event.global[type]=true;});elem=null;},guid:1,global:{},remove:function(elem,types,handler){if(elem.nodeType==3||elem.nodeType==8)return;var events=jQuery.data(elem,"events"),ret,index;if(events){if(types==undefined||(typeof types=="string"&&types.charAt(0)=="."))for(var type in events)this.remove(elem,type+(types||""));else{if(types.type){handler=types.handler;types=types.type;}jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];if(events[type]){if(handler)delete events[type][handler.guid];else |
| 28 | +for(handler in events[type])if(!parts[1]||events[type][handler].type==parts[1])delete events[type][handler];for(ret in events[type])break;if(!ret){if(!jQuery.event.special[type]||jQuery.event.special[type].teardown.call(elem)===false){if(elem.removeEventListener)elem.removeEventListener(type,jQuery.data(elem,"handle"),false);else if(elem.detachEvent)elem.detachEvent("on"+type,jQuery.data(elem,"handle"));}ret=null;delete events[type];}}});}for(ret in events)break;if(!ret){var handle=jQuery.data(elem,"handle");if(handle)handle.elem=null;jQuery.removeData(elem,"events");jQuery.removeData(elem,"handle");}}},trigger:function(type,data,elem,donative,extra){data=jQuery.makeArray(data||[]);if(type.indexOf("!")>=0){type=type.slice(0,-1);var exclusive=true;}if(!elem){if(this.global[type])jQuery("*").add([window,document]).trigger(type,data);}else{if(elem.nodeType==3||elem.nodeType==8)return undefined;var val,ret,fn=jQuery.isFunction(elem[type]||null),event=!data[0]||!data[0].preventDefault;if(event)data.unshift(this.fix({type:type,target:elem}));data[0].type=type;if(exclusive)data[0].exclusive=true;if(jQuery.isFunction(jQuery.data(elem,"handle")))val=jQuery.data(elem,"handle").apply(elem,data);if(!fn&&elem["on"+type]&&elem["on"+type].apply(elem,data)===false)val=false;if(event)data.shift();if(extra&&jQuery.isFunction(extra)){ret=extra.apply(elem,val==null?data:data.concat(val));if(ret!==undefined)val=ret;}if(fn&&donative!==false&&val!==false&&!(jQuery.nodeName(elem,'a')&&type=="click")){this.triggered=true;try{elem[type]();}catch(e){}}this.triggered=false;}return val;},handle:function(event){var val;event=jQuery.event.fix(event||window.event||{});var parts=event.type.split(".");event.type=parts[0];var handlers=jQuery.data(this,"events")&&jQuery.data(this,"events")[event.type],args=Array.prototype.slice.call(arguments,1);args.unshift(event);for(var j in handlers){var handler=handlers[j];args[0].handler=handler;args[0].data=handler.data;if(!parts[1]&&!event.exclusive||handler.type==parts[1]){var ret=handler.apply(this,args);if(val!==false)val=ret;if(ret===false){event.preventDefault();event.stopPropagation();}}}if(jQuery.browser.msie)event.target=event.preventDefault=event.stopPropagation=event.handler=event.data=null;return val;},fix:function(event){var originalEvent=event;event=jQuery.extend({},originalEvent);event.preventDefault=function(){if(originalEvent.preventDefault)originalEvent.preventDefault();originalEvent.returnValue=false;};event.stopPropagation=function(){if(originalEvent.stopPropagation)originalEvent.stopPropagation();originalEvent.cancelBubble=true;};if(!event.target)event.target=event.srcElement||document;if(event.target.nodeType==3)event.target=originalEvent.target.parentNode;if(!event.relatedTarget&&event.fromElement)event.relatedTarget=event.fromElement==event.target?event.toElement:event.fromElement;if(event.pageX==null&&event.clientX!=null){var doc=document.documentElement,body=document.body;event.pageX=event.clientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc.clientLeft||0);event.pageY=event.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc.clientTop||0);}if(!event.which&&((event.charCode||event.charCode===0)?event.charCode:event.keyCode))event.which=event.charCode||event.keyCode;if(!event.metaKey&&event.ctrlKey)event.metaKey=event.ctrlKey;if(!event.which&&event.button)event.which=(event.button&1?1:(event.button&2?3:(event.button&4?2:0)));return event;},special:{ready:{setup:function(){bindReady();return;},teardown:function(){return;}},mouseenter:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseover",jQuery.event.special.mouseenter.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseover",jQuery.event.special.mouseenter.handler);return true;},handler:function(event){if(withinElement(event,this))return true;arguments[0].type="mouseenter";return jQuery.event.handle.apply(this,arguments);}},mouseleave:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseout",jQuery.event.special.mouseleave.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseout",jQuery.event.special.mouseleave.handler);return true;},handler:function(event){if(withinElement(event,this))return true;arguments[0].type="mouseleave";return jQuery.event.handle.apply(this,arguments);}}}};jQuery.fn.extend({bind:function(type,data,fn){return type=="unload"?this.one(type,data,fn):this.each(function(){jQuery.event.add(this,type,fn||data,fn&&data);});},one:function(type,data,fn){return this.each(function(){jQuery.event.add(this,type,function(event){jQuery(this).unbind(event);return(fn||data).apply(this,arguments);},fn&&data);});},unbind:function(type,fn){return this.each(function(){jQuery.event.remove(this,type,fn);});},trigger:function(type,data,fn){return this.each(function(){jQuery.event.trigger(type,data,this,true,fn);});},triggerHandler:function(type,data,fn){if(this[0])return jQuery.event.trigger(type,data,this[0],false,fn);return undefined;},toggle:function(){var args=arguments;return this.click(function(event){this.lastToggle=0==this.lastToggle?1:0;event.preventDefault();return args[this.lastToggle].apply(this,arguments)||false;});},hover:function(fnOver,fnOut){return this.bind('mouseenter',fnOver).bind('mouseleave',fnOut);},ready:function(fn){bindReady();if(jQuery.isReady)fn.call(document,jQuery);else |
| 29 | +jQuery.readyList.push(function(){return fn.call(this,jQuery);});return this;}});jQuery.extend({isReady:false,readyList:[],ready:function(){if(!jQuery.isReady){jQuery.isReady=true;if(jQuery.readyList){jQuery.each(jQuery.readyList,function(){this.apply(document);});jQuery.readyList=null;}jQuery(document).triggerHandler("ready");}}});var readyBound=false;function bindReady(){if(readyBound)return;readyBound=true;if(document.addEventListener&&!jQuery.browser.opera)document.addEventListener("DOMContentLoaded",jQuery.ready,false);if(jQuery.browser.msie&&window==top)(function(){if(jQuery.isReady)return;try{document.documentElement.doScroll("left");}catch(error){setTimeout(arguments.callee,0);return;}jQuery.ready();})();if(jQuery.browser.opera)document.addEventListener("DOMContentLoaded",function(){if(jQuery.isReady)return;for(var i=0;i<document.styleSheets.length;i++)if(document.styleSheets[i].disabled){setTimeout(arguments.callee,0);return;}jQuery.ready();},false);if(jQuery.browser.safari){var numStyles;(function(){if(jQuery.isReady)return;if(document.readyState!="loaded"&&document.readyState!="complete"){setTimeout(arguments.callee,0);return;}if(numStyles===undefined)numStyles=jQuery("style, link[rel=stylesheet]").length;if(document.styleSheets.length!=numStyles){setTimeout(arguments.callee,0);return;}jQuery.ready();})();}jQuery.event.add(window,"load",jQuery.ready);}jQuery.each(("blur,focus,load,resize,scroll,unload,click,dblclick,"+"mousedown,mouseup,mousemove,mouseover,mouseout,change,select,"+"submit,keydown,keypress,keyup,error").split(","),function(i,name){jQuery.fn[name]=function(fn){return fn?this.bind(name,fn):this.trigger(name);};});var withinElement=function(event,elem){var parent=event.relatedTarget;while(parent&&parent!=elem)try{parent=parent.parentNode;}catch(error){parent=elem;}return parent==elem;};jQuery(window).bind("unload",function(){jQuery("*").add(document).unbind();});jQuery.fn.extend({load:function(url,params,callback){if(jQuery.isFunction(url))return this.bind("load",url);var off=url.indexOf(" ");if(off>=0){var selector=url.slice(off,url.length);url=url.slice(0,off);}callback=callback||function(){};var type="GET";if(params)if(jQuery.isFunction(params)){callback=params;params=null;}else{params=jQuery.param(params);type="POST";}var self=this;jQuery.ajax({url:url,type:type,dataType:"html",data:params,complete:function(res,status){if(status=="success"||status=="notmodified")self.html(selector?jQuery("<div/>").append(res.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(selector):res.responseText);self.each(callback,[res.responseText,status,res]);}});return this;},serialize:function(){return jQuery.param(this.serializeArray());},serializeArray:function(){return this.map(function(){return jQuery.nodeName(this,"form")?jQuery.makeArray(this.elements):this;}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password/i.test(this.type));}).map(function(i,elem){var val=jQuery(this).val();return val==null?null:val.constructor==Array?jQuery.map(val,function(val,i){return{name:elem.name,value:val};}):{name:elem.name,value:val};}).get();}});jQuery.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(i,o){jQuery.fn[o]=function(f){return this.bind(o,f);};});var jsc=(new Date).getTime();jQuery.extend({get:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data=null;}return jQuery.ajax({type:"GET",url:url,data:data,success:callback,dataType:type});},getScript:function(url,callback){return jQuery.get(url,null,callback,"script");},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json");},post:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data={};}return jQuery.ajax({type:"POST",url:url,data:data,success:callback,dataType:type});},ajaxSetup:function(settings){jQuery.extend(jQuery.ajaxSettings,settings);},ajaxSettings:{global:true,type:"GET",timeout:0,contentType:"application/x-www-form-urlencoded",processData:true,async:true,data:null,username:null,password:null,accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(s){var jsonp,jsre=/=\?(&|$)/g,status,data;s=jQuery.extend(true,s,jQuery.extend(true,{},jQuery.ajaxSettings,s));if(s.data&&s.processData&&typeof s.data!="string")s.data=jQuery.param(s.data);if(s.dataType=="jsonp"){if(s.type.toLowerCase()=="get"){if(!s.url.match(jsre))s.url+=(s.url.match(/\?/)?"&":"?")+(s.jsonp||"callback")+"=?";}else if(!s.data||!s.data.match(jsre))s.data=(s.data?s.data+"&":"")+(s.jsonp||"callback")+"=?";s.dataType="json";}if(s.dataType=="json"&&(s.data&&s.data.match(jsre)||s.url.match(jsre))){jsonp="jsonp"+jsc++;if(s.data)s.data=(s.data+"").replace(jsre,"="+jsonp+"$1");s.url=s.url.replace(jsre,"="+jsonp+"$1");s.dataType="script";window[jsonp]=function(tmp){data=tmp;success();complete();window[jsonp]=undefined;try{delete window[jsonp];}catch(e){}if(head)head.removeChild(script);};}if(s.dataType=="script"&&s.cache==null)s.cache=false;if(s.cache===false&&s.type.toLowerCase()=="get"){var ts=(new Date()).getTime();var ret=s.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+ts+"$2");s.url=ret+((ret==s.url)?(s.url.match(/\?/)?"&":"?")+"_="+ts:"");}if(s.data&&s.type.toLowerCase()=="get"){s.url+=(s.url.match(/\?/)?"&":"?")+s.data;s.data=null;}if(s.global&&!jQuery.active++)jQuery.event.trigger("ajaxStart");if((!s.url.indexOf("http")||!s.url.indexOf("//"))&&s.dataType=="script"&&s.type.toLowerCase()=="get"){var head=document.getElementsByTagName("head")[0];var script=document.createElement("script");script.src=s.url;if(s.scriptCharset)script.charset=s.scriptCharset;if(!jsonp){var done=false;script.onload=script.onreadystatechange=function(){if(!done&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){done=true;success();complete();head.removeChild(script);}};}head.appendChild(script);return undefined;}var requestDone=false;var xml=window.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest();xml.open(s.type,s.url,s.async,s.username,s.password);try{if(s.data)xml.setRequestHeader("Content-Type",s.contentType);if(s.ifModified)xml.setRequestHeader("If-Modified-Since",jQuery.lastModified[s.url]||"Thu, 01 Jan 1970 00:00:00 GMT");xml.setRequestHeader("X-Requested-With","XMLHttpRequest");xml.setRequestHeader("Accept",s.dataType&&s.accepts[s.dataType]?s.accepts[s.dataType]+", */*":s.accepts._default);}catch(e){}if(s.beforeSend)s.beforeSend(xml);if(s.global)jQuery.event.trigger("ajaxSend",[xml,s]);var onreadystatechange=function(isTimeout){if(!requestDone&&xml&&(xml.readyState==4||isTimeout=="timeout")){requestDone=true;if(ival){clearInterval(ival);ival=null;}status=isTimeout=="timeout"&&"timeout"||!jQuery.httpSuccess(xml)&&"error"||s.ifModified&&jQuery.httpNotModified(xml,s.url)&&"notmodified"||"success";if(status=="success"){try{data=jQuery.httpData(xml,s.dataType);}catch(e){status="parsererror";}}if(status=="success"){var modRes;try{modRes=xml.getResponseHeader("Last-Modified");}catch(e){}if(s.ifModified&&modRes)jQuery.lastModified[s.url]=modRes;if(!jsonp)success();}else |
| 30 | +jQuery.handleError(s,xml,status);complete();if(s.async)xml=null;}};if(s.async){var ival=setInterval(onreadystatechange,13);if(s.timeout>0)setTimeout(function(){if(xml){xml.abort();if(!requestDone)onreadystatechange("timeout");}},s.timeout);}try{xml.send(s.data);}catch(e){jQuery.handleError(s,xml,null,e);}if(!s.async)onreadystatechange();function success(){if(s.success)s.success(data,status);if(s.global)jQuery.event.trigger("ajaxSuccess",[xml,s]);}function complete(){if(s.complete)s.complete(xml,status);if(s.global)jQuery.event.trigger("ajaxComplete",[xml,s]);if(s.global&&!--jQuery.active)jQuery.event.trigger("ajaxStop");}return xml;},handleError:function(s,xml,status,e){if(s.error)s.error(xml,status,e);if(s.global)jQuery.event.trigger("ajaxError",[xml,s,e]);},active:0,httpSuccess:function(r){try{return!r.status&&location.protocol=="file:"||(r.status>=200&&r.status<300)||r.status==304||r.status==1223||jQuery.browser.safari&&r.status==undefined;}catch(e){}return false;},httpNotModified:function(xml,url){try{var xmlRes=xml.getResponseHeader("Last-Modified");return xml.status==304||xmlRes==jQuery.lastModified[url]||jQuery.browser.safari&&xml.status==undefined;}catch(e){}return false;},httpData:function(r,type){var ct=r.getResponseHeader("content-type");var xml=type=="xml"||!type&&ct&&ct.indexOf("xml")>=0;var data=xml?r.responseXML:r.responseText;if(xml&&data.documentElement.tagName=="parsererror")throw"parsererror";if(type=="script")jQuery.globalEval(data);if(type=="json")data=eval("("+data+")");return data;},param:function(a){var s=[];if(a.constructor==Array||a.jquery)jQuery.each(a,function(){s.push(encodeURIComponent(this.name)+"="+encodeURIComponent(this.value));});else |
| 31 | +for(var j in a)if(a[j]&&a[j].constructor==Array)jQuery.each(a[j],function(){s.push(encodeURIComponent(j)+"="+encodeURIComponent(this));});else |
| 32 | +s.push(encodeURIComponent(j)+"="+encodeURIComponent(a[j]));return s.join("&").replace(/%20/g,"+");}});jQuery.fn.extend({show:function(speed,callback){return speed?this.animate({height:"show",width:"show",opacity:"show"},speed,callback):this.filter(":hidden").each(function(){this.style.display=this.oldblock||"";if(jQuery.css(this,"display")=="none"){var elem=jQuery("<"+this.tagName+" />").appendTo("body");this.style.display=elem.css("display");if(this.style.display=="none")this.style.display="block";elem.remove();}}).end();},hide:function(speed,callback){return speed?this.animate({height:"hide",width:"hide",opacity:"hide"},speed,callback):this.filter(":visible").each(function(){this.oldblock=this.oldblock||jQuery.css(this,"display");this.style.display="none";}).end();},_toggle:jQuery.fn.toggle,toggle:function(fn,fn2){return jQuery.isFunction(fn)&&jQuery.isFunction(fn2)?this._toggle(fn,fn2):fn?this.animate({height:"toggle",width:"toggle",opacity:"toggle"},fn,fn2):this.each(function(){jQuery(this)[jQuery(this).is(":hidden")?"show":"hide"]();});},slideDown:function(speed,callback){return this.animate({height:"show"},speed,callback);},slideUp:function(speed,callback){return this.animate({height:"hide"},speed,callback);},slideToggle:function(speed,callback){return this.animate({height:"toggle"},speed,callback);},fadeIn:function(speed,callback){return this.animate({opacity:"show"},speed,callback);},fadeOut:function(speed,callback){return this.animate({opacity:"hide"},speed,callback);},fadeTo:function(speed,to,callback){return this.animate({opacity:to},speed,callback);},animate:function(prop,speed,easing,callback){var optall=jQuery.speed(speed,easing,callback);return this[optall.queue===false?"each":"queue"](function(){if(this.nodeType!=1)return false;var opt=jQuery.extend({},optall);var hidden=jQuery(this).is(":hidden"),self=this;for(var p in prop){if(prop[p]=="hide"&&hidden||prop[p]=="show"&&!hidden)return jQuery.isFunction(opt.complete)&&opt.complete.apply(this);if(p=="height"||p=="width"){opt.display=jQuery.css(this,"display");opt.overflow=this.style.overflow;}}if(opt.overflow!=null)this.style.overflow="hidden";opt.curAnim=jQuery.extend({},prop);jQuery.each(prop,function(name,val){var e=new jQuery.fx(self,opt,name);if(/toggle|show|hide/.test(val))e[val=="toggle"?hidden?"show":"hide":val](prop);else{var parts=val.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),start=e.cur(true)||0;if(parts){var end=parseFloat(parts[2]),unit=parts[3]||"px";if(unit!="px"){self.style[name]=(end||1)+unit;start=((end||1)/e.cur(true))*start;self.style[name]=start+unit;}if(parts[1])end=((parts[1]=="-="?-1:1)*end)+start;e.custom(start,end,unit);}else |
| 33 | +e.custom(start,val,"");}});return true;});},queue:function(type,fn){if(jQuery.isFunction(type)||(type&&type.constructor==Array)){fn=type;type="fx";}if(!type||(typeof type=="string"&&!fn))return queue(this[0],type);return this.each(function(){if(fn.constructor==Array)queue(this,type,fn);else{queue(this,type).push(fn);if(queue(this,type).length==1)fn.apply(this);}});},stop:function(clearQueue,gotoEnd){var timers=jQuery.timers;if(clearQueue)this.queue([]);this.each(function(){for(var i=timers.length-1;i>=0;i--)if(timers[i].elem==this){if(gotoEnd)timers[i](true);timers.splice(i,1);}});if(!gotoEnd)this.dequeue();return this;}});var queue=function(elem,type,array){if(!elem)return undefined;type=type||"fx";var q=jQuery.data(elem,type+"queue");if(!q||array)q=jQuery.data(elem,type+"queue",array?jQuery.makeArray(array):[]);return q;};jQuery.fn.dequeue=function(type){type=type||"fx";return this.each(function(){var q=queue(this,type);q.shift();if(q.length)q[0].apply(this);});};jQuery.extend({speed:function(speed,easing,fn){var opt=speed&&speed.constructor==Object?speed:{complete:fn||!fn&&easing||jQuery.isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&easing.constructor!=Function&&easing};opt.duration=(opt.duration&&opt.duration.constructor==Number?opt.duration:{slow:600,fast:200}[opt.duration])||400;opt.old=opt.complete;opt.complete=function(){if(opt.queue!==false)jQuery(this).dequeue();if(jQuery.isFunction(opt.old))opt.old.apply(this);};return opt;},easing:{linear:function(p,n,firstNum,diff){return firstNum+diff*p;},swing:function(p,n,firstNum,diff){return((-Math.cos(p*Math.PI)/2)+0.5)*diff+firstNum;}},timers:[],timerId:null,fx:function(elem,options,prop){this.options=options;this.elem=elem;this.prop=prop;if(!options.orig)options.orig={};}});jQuery.fx.prototype={update:function(){if(this.options.step)this.options.step.apply(this.elem,[this.now,this]);(jQuery.fx.step[this.prop]||jQuery.fx.step._default)(this);if(this.prop=="height"||this.prop=="width")this.elem.style.display="block";},cur:function(force){if(this.elem[this.prop]!=null&&this.elem.style[this.prop]==null)return this.elem[this.prop];var r=parseFloat(jQuery.css(this.elem,this.prop,force));return r&&r>-10000?r:parseFloat(jQuery.curCSS(this.elem,this.prop))||0;},custom:function(from,to,unit){this.startTime=(new Date()).getTime();this.start=from;this.end=to;this.unit=unit||this.unit||"px";this.now=this.start;this.pos=this.state=0;this.update();var self=this;function t(gotoEnd){return self.step(gotoEnd);}t.elem=this.elem;jQuery.timers.push(t);if(jQuery.timerId==null){jQuery.timerId=setInterval(function(){var timers=jQuery.timers;for(var i=0;i<timers.length;i++)if(!timers[i]())timers.splice(i--,1);if(!timers.length){clearInterval(jQuery.timerId);jQuery.timerId=null;}},13);}},show:function(){this.options.orig[this.prop]=jQuery.attr(this.elem.style,this.prop);this.options.show=true;this.custom(0,this.cur());if(this.prop=="width"||this.prop=="height")this.elem.style[this.prop]="1px";jQuery(this.elem).show();},hide:function(){this.options.orig[this.prop]=jQuery.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0);},step:function(gotoEnd){var t=(new Date()).getTime();if(gotoEnd||t>this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var done=true;for(var i in this.options.curAnim)if(this.options.curAnim[i]!==true)done=false;if(done){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(jQuery.css(this.elem,"display")=="none")this.elem.style.display="block";}if(this.options.hide)this.elem.style.display="none";if(this.options.hide||this.options.show)for(var p in this.options.curAnim)jQuery.attr(this.elem.style,p,this.options.orig[p]);}if(done&&jQuery.isFunction(this.options.complete))this.options.complete.apply(this.elem);return false;}else{var n=t-this.startTime;this.state=n/this.options.duration;this.pos=jQuery.easing[this.options.easing||(jQuery.easing.swing?"swing":"linear")](this.state,n,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update();}return true;}};jQuery.fx.step={scrollLeft:function(fx){fx.elem.scrollLeft=fx.now;},scrollTop:function(fx){fx.elem.scrollTop=fx.now;},opacity:function(fx){jQuery.attr(fx.elem.style,"opacity",fx.now);},_default:function(fx){fx.elem.style[fx.prop]=fx.now+fx.unit;}};jQuery.fn.offset=function(){var left=0,top=0,elem=this[0],results;if(elem)with(jQuery.browser){var parent=elem.parentNode,offsetChild=elem,offsetParent=elem.offsetParent,doc=elem.ownerDocument,safari2=safari&&parseInt(version)<522&&!/adobeair/i.test(userAgent),fixed=jQuery.css(elem,"position")=="fixed";if(elem.getBoundingClientRect){var box=elem.getBoundingClientRect();add(box.left+Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),box.top+Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));add(-doc.documentElement.clientLeft,-doc.documentElement.clientTop);}else{add(elem.offsetLeft,elem.offsetTop);while(offsetParent){add(offsetParent.offsetLeft,offsetParent.offsetTop);if(mozilla&&!/^t(able|d|h)$/i.test(offsetParent.tagName)||safari&&!safari2)border(offsetParent);if(!fixed&&jQuery.css(offsetParent,"position")=="fixed")fixed=true;offsetChild=/^body$/i.test(offsetParent.tagName)?offsetChild:offsetParent;offsetParent=offsetParent.offsetParent;}while(parent&&parent.tagName&&!/^body|html$/i.test(parent.tagName)){if(!/^inline|table.*$/i.test(jQuery.css(parent,"display")))add(-parent.scrollLeft,-parent.scrollTop);if(mozilla&&jQuery.css(parent,"overflow")!="visible")border(parent);parent=parent.parentNode;}if((safari2&&(fixed||jQuery.css(offsetChild,"position")=="absolute"))||(mozilla&&jQuery.css(offsetChild,"position")!="absolute"))add(-doc.body.offsetLeft,-doc.body.offsetTop);if(fixed)add(Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));}results={top:top,left:left};}function border(elem){add(jQuery.curCSS(elem,"borderLeftWidth",true),jQuery.curCSS(elem,"borderTopWidth",true));}function add(l,t){left+=parseInt(l)||0;top+=parseInt(t)||0;}return results;};})(); |
\ No newline at end of file |
Index: trunk/extensions/GeeQuBox/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 |