Navigacija

Vartotojų tinkle

Prisijungusių svečių: 772
Prisijungusių narių: 0
Prisijungusių narių nėra

Registruoti nariai: 25,956
Naujausias narys: saulyzas

Naujausi straipsniai

Paskutiniai nariai

saulyzas 5 dienos
MaFetas 1 savaitė
TOMIJUS 2 savaitės
ozzWANTED 2 savaitės
Reikalas10 savaitės
Jaunelis17 savaitės
lanis17 savaitės
And2s18 savaitės
Memento Mori23 savaitės
Quwqkibor25 savaitės
asirija29 savaitės
tomeem31 savaitės
weberiz34 savaitės
mRokass37 savaitės
kartoonas38 savaitės
grunskiz41 savaitės
Bruksnys41 savaitės
illusion41 savaitės
ordo42 savaitės
Jurgaila43 savaitės

Informacija:


OS: Unknown
Naršyklė: Nežinoma
IP: 3.147.86.143
Naujienų: 529
Straipsnių: 235
Temų: 52,588
Postų: 522,537
Postų pask. parą: 0
Shout'ų pask. parą: 0
P.S.C. pask. parą: 0
Nuorodų kataloge: 13

Lankomumo Statistika

Peržiūrų šiandien: 22

Iš viso peržiūrų: 22948724

Prisijungti

REGISTRUOTIS
Nario vardas

Slaptažodis



Pamiršai slaptažodį?
Paprašyk naujo

Aktyvuoti save

Šaukykla

Jei norite rašyti žinutes, turite prisijungti.

MaFetas
2024 Lap. 13 22:11:57
hey how, geras dar veikiantis saitas?

Jaunelis
2024 Lie. 25 11:07:43
Oho vis dar veikia svetainė akinanti šypsen Šimtas metų, matau Šaukykloje nuostalgija. Smagu panaršyt po forumą ir pažiūrėt senas temas šypsosi

And2s
2024 Lie. 17 19:07:04
2008 pirmą kart čia patekau, man buvo 10m ir čia pramokau programavimo.. smagu skaityti senas žinutes, tokia nostalgija akinanti šypsen ačiū Ozz kad saugoji šitą kultūrinį reliktą šypsosi

ozzWANTED
2024 Sau. 17 01:01:00
Desperatiškus komentarus šaukykloje su accountu po mėnesio prasibuvimo, ištryniau. Pasaulis ir taip juodas. Įjungiam šviesą, prašviesės. šypsosi

Majakas
2023 Gru. 10 19:12:39
Negaliu patikėti jog žinutės/pranešimai visi yra nuo 2008 m akinanti šypsen

Šaukyklos archyvas

Apklausa

Ar esate patenkinti lietuviško vertimo kokybe?

Taip!

Taip, bet yra ką taisyti (parašysiu komentaruose)

Ne

Norėdamas balsuoti turite prisijungti.
Archyvas
Reklama 400x60
Lightbox iterpimas
Forumas | PHP-Fusion, WordPress, Shopify, PHP ir MySQL (PROGRAMAVIMAS) | Bendri PHP-F klausimai

Autorius: Bencius Peržiūrų: 1024      Spausdinti temą
2011 Vas. 9 21:02:28          1 žinutė iš 1
Spausdinti pranešimą
Sveiki, noreciau paprasyti gal galit iterpti lightboxo koda i photogallery.php, nes pats niekaip nebesugebejau... Dekui

<?php
/*-------------------------------------------------------+
| PHP-Fusion Content Management System
| Copyright (C) 2002 - 2008 Nick Jones
| http://www.php-fusion.co.uk/
+--------------------------------------------------------+
| Filename: photogallery.php
| Author: Nick Jones (Digitanium)
| Co-Author: Robert Gaudyn (Wooya)
+--------------------------------------------------------+
| This program is released as free software under the
| Affero GPL license. You can redistribute it and/or
| modify it under the terms of this license which you
| can read by viewing the included agpl.txt or online
| at www.gnu.org/licenses/agpl.html. Removal of this
| copyright header is strictly prohibited without
| written permission from the original author(s).
+--------------------------------------------------------*/
require_once "maincore.php";
require_once THEMES."templates/header.php";
include LOCALE.LOCALESET."photogallery.php";

define("SAFEMODE", @ini_get("safe_mode") ? true : false);

add_to_title($locale['global_200'].$locale['400']);

if (isset($_GET['photo_id']) && isnum($_GET['photo_id'])){
   $result = dbquery(
      "SELECT tp.*, ta.*, tu.user_id,user_name, SUM(tr.rating_vote) AS sum_rating, COUNT(tr.rating_item_id) AS count_votes
      FROM ".DB_PHOTOS." tp
      LEFT JOIN ".DB_PHOTO_ALBUMS." ta USING (album_id)
      LEFT JOIN ".DB_USERS." tu ON tp.photo_user=tu.user_id
      LEFT JOIN ".DB_RATINGS." tr ON tr.rating_item_id = tp.photo_id AND tr.rating_type='P'
      WHERE photo_id='".$_GET['photo_id']."' GROUP BY tp.photo_id"
   );
   $data = dbarray($result);
   if (!checkgroup($data['album_access'])) {
      redirect(FUSION_SELF);
   } else {
      define("PHOTODIR", PHOTOS.(!SAFEMODE ? "album_".$data['album_id']."/" : ""));
      include INCLUDES."comments_include.php";
      include INCLUDES."ratings_include.php";
      $result=dbquery("UPDATE ".DB_PHOTOS." SET photo_views=(photo_views+1) WHERE photo_id='".$_GET['photo_id']."'");

      $pres = dbquery("SELECT photo_id FROM ".DB_PHOTOS." WHERE photo_order='".($data['photo_order']-1)."' AND album_id='".$data['album_id']."'");
      $nres = dbquery("SELECT photo_id FROM ".DB_PHOTOS." WHERE photo_order='".($data['photo_order']+1)."' AND album_id='".$data['album_id']."'");
      if (dbrows($pres)) $prev = dbarray($pres);
      if (dbrows($nres)) $next = dbarray($nres);

      opentable($locale['450']);
      if ($settings['photo_watermark']) {
         if ($settings['photo_watermark_save']) {
            $parts = explode(".", $data['photo_filename']);
            $wm_file1 = $parts[0]."_w1.".$parts[1];
            $wm_file2 = $parts[0]."_w2.".$parts[1];
            if (!file_exists(PHOTODIR.$wm_file1)) {
               if ($data['photo_thumb2']) { $photo_thumb = "photo.php?photo_id=".$data['photo_id']; }
               $photo_file = "photo.php?photo_id=".$data['photo_id'];
            } else {
               if ($data['photo_thumb2']) { $photo_thumb = PHOTODIR.$wm_file1; }
               $photo_file = PHOTODIR.$wm_file2;
            }
         } else {
            if ($data['photo_thumb2']) { $photo_thumb = "photo.php?photo_id=".$data['photo_id']; }
            $photo_file = "photo.php?photo_id=".$data['photo_id'];
         }
         $photo_size = @getimagesize(PHOTODIR.$data['photo_filename']);
      } else {
         $photo_thumb = $data['photo_thumb2'] ? PHOTODIR.$data['photo_thumb2'] : "";
         $photo_file = PHOTODIR.$data['photo_filename'];
         $photo_size = @getimagesize($photo_file);
      }
      add_to_title($locale['global_201'].$data['photo_title']);
      echo "<table cellpadding='0' cellspacing='0' width='100%'>\n<tr>\n<td class='tbl2'>\n";
      echo "<a href='".FUSION_SELF."'>".$locale['400']."</a> &gt;\n";
      echo "<a href='".FUSION_SELF."?album_id=".$data['album_id']."'>".$data['album_title']."</a> &gt;\n";
      echo "<a href='".FUSION_SELF."?photo_id=".$_GET['photo_id']."'>".$data['photo_title']."</a>\n</td>\n";
      if ((isset($prev['photo_id']) && isnum($prev['photo_id'])) || (isset($next['photo_id']) && ISnUM($next['photo_id']))) {
         if (isset($prev)) { echo "<td width='1%' class='tbl2'><a href='".FUSION_SELF."?photo_id=".$prev['photo_id']."' title='".$locale['451']."'>&lt;&lt;</a></td>\n"; }
         if (isset($next)) { echo "<td width='1%' class='tbl2'><a href='".FUSION_SELF."?photo_id=".$next['photo_id']."' title='".$locale['452']."'>&gt;&gt;</a></td>\n"; }
      }
      echo "</tr>\n</table>\n";

      echo "<div align='center' style='margin:5px;'>\n";
      echo "<a href=\"javascript:;\" onclick=\"window.open('showphoto.php?photo_id=".$data['photo_id']."','','scrollbars=yes,toolbar=no,status=no,resizable=yes,width=".($photo_size[0]+20).",height=".($photo_size[1]+20)."')\" class='photogallery_photo_link'><!--photogallery_photo_".$data['photo_id']."-->";
      echo "<img src='".(isset($photo_thumb) && !empty($photo_thumb) ? $photo_thumb : $photo_file)."' alt='".$data['photo_filename']."' title='".$locale['453']."' style='border:0px' class='photogallery_photo' /></a>\n</div>\n";
      echo "<div align='center' style='margin:5px 0px 5px 0px' class='photogallery_photo_desc'><!--photogallery_photo_desc-->\n";
      if ($data['photo_description']) {
         echo nl2br(parseubb($data['photo_description'], "b|i|u|center|small|url|mail|img|quote"))."<br /><br />\n";
      }
      echo $locale['433'].showdate("shortdate", $data['photo_datestamp'])."<br />\n";
      echo $locale['434']."<a href='".BASEDIR."profile.php?lookup=".$data['user_id']."'>".$data['user_name']."</a><br />\n";
      echo $locale['454']."$photo_size[0] x $photo_size[1] ".$locale['455']."<br />\n";
      echo $locale['456'].parsebytesize($settings['photo_watermark'] ? filesize(PHOTODIR.$data['photo_filename']): filesize($photo_file))."<br />\n";
      $photo_comments = dbcount("(comment_id)", DB_COMMENTS, "comment_type='P' AND comment_item_id='".$data['photo_id']."'");
      echo ($photo_comments == 1 ? $locale['436b'] : $locale['436']).$photo_comments."<br />\n";
      echo $locale['437'].($data['count_votes'] > 0 ? str_repeat("<img src='".get_image("star")."' alt='*' style='vertical-align:middle' />", ceil($data['sum_rating'] / $data['count_votes'])) : $locale['438'])."<br />\n";
      echo $locale['457'].$data['photo_views']."\n</div>\n";
      closetable();
      if ($data['photo_allow_comments']) { showcomments("P", DB_PHOTOS, "photo_id", $_GET['photo_id'], FUSION_SELF."?photo_id=".$_GET['photo_id']); }
      if ($data['photo_allow_ratings']) { showratings("P", $_GET['photo_id'], FUSION_SELF."?photo_id=".$_GET['photo_id']); }
   }
} elseif (isset($_GET['album_id']) && isnum($_GET['album_id'])) {
   define("PHOTODIR", PHOTOS.(!SAFEMODE ? "album_".$_GET['album_id']."/" : ""));
   $result = dbquery(
      "SELECT ta.* FROM ".DB_PHOTO_ALBUMS." ta WHERE album_id='".$_GET['album_id']."'"
   );
   if (!dbrows($result)) {
      redirect(FUSION_SELF);
   } else {
      $data = dbarray($result);
      if (!checkgroup($data['album_access'])) {
         redirect(FUSION_SELF);
      } else {
         $rows = dbcount("(photo_id)", DB_PHOTOS, "album_id='".$_GET['album_id']."'");
         add_to_title($locale['global_201'].$data['album_title']);
         opentable($locale['420']);
         echo "<!--pre_album_info-->";
         echo "<table cellpadding='0' cellspacing='0' width='80%' class='center'>\n<tr>\n";
         echo "<td rowspan='2' align='center' class='tbl1 photogallery_album_thumb'><!--photogallery_album_thumb-->";
            if ($data['album_thumb'] && file_exists(PHOTOS.$data['album_thumb'])){
               echo "<img src='".PHOTOS.$data['album_thumb']."' alt='".$data['album_thumb']."' />";
            } else {
               echo $locale['432'];
            }
         echo "</td>\n";
         echo "<td valign='top' width='100%'><div class='tbl2' style='font-weight:bold;vertical-align:top'>".$locale['421'].$data['album_title']."</div>\n";
         echo "<div class='tbl1 photogallery_album_desc' style='vertical-align:middle'><!--photogallery_album_desc-->".nl2br(parseubb($data['album_description']))."</div>\n</td>\n</tr>\n";
         echo "<tr>\n<td valign='bottom' width='100%'>\n<div class='tbl2' style='vertical-align:bottom'>\n";
         if ($rows) {
            $pdata = dbarray(dbquery("
               SELECT tp.*, tu.user_id,user_name FROM ".DB_PHOTOS." tp
               LEFT JOIN ".DB_USERS." tu ON tp.photo_user=tu.user_id
               WHERE album_id='".$_GET['album_id']."' ORDER BY photo_datestamp DESC LIMIT 1"
            ));
            echo $locale['422']."$rows<br />\n";
            echo $locale['423']."<a href='".BASEDIR."profile.php?lookup=".$pdata['user_id']."'>".$pdata['user_name']."</a>".$locale['424'].showdate("longdate", $pdata['photo_datestamp'])."\n";
         } else {
            echo $locale['425']."\n";
         }
         echo "</div>\n</td>\n</tr>\n</table>";
         echo "<!--sub_album_info-->";
         closetable();
         if ($rows) {

            opentable($locale['430']);
            if (!isset($_GET['rowstart']) || !isnum($_GET['rowstart'])) { $_GET['rowstart'] = 0; }
            $result = dbquery(
               "SELECT tp.*, tu.user_id,user_name, SUM(tr.rating_vote) AS sum_rating, COUNT(tr.rating_item_id) AS count_votes
               FROM ".DB_PHOTOS." tp
               LEFT JOIN ".DB_USERS." tu ON tp.photo_user=tu.user_id
               LEFT JOIN ".DB_RATINGS." tr ON tr.rating_item_id = tp.photo_id AND tr.rating_type='P'
               WHERE album_id='".$_GET['album_id']."' GROUP BY photo_id ORDER BY photo_order LIMIT ".$_GET['rowstart'].",".$settings['thumbs_per_page']
            );
            $counter = 0;
            echo "<table cellpadding='0' cellspacing='1' width='100%'>\n<tr>\n<td class='tbl2'>\n";
            echo "<a href='".FUSION_SELF."'>".$locale['400']."</a> &gt;\n";
            echo "<a href='".FUSION_SELF."?album_id=".$data['album_id']."'>".$data['album_title']."</a>\n";
            echo "</td>\n</tr>\n</table>\n";

            echo "<table cellpadding='0' cellspacing='1' width='100%'>\n<tr>\n";
            while ($data = dbarray($result)) {
               if ($counter != 0 && ($counter % $settings['thumbs_per_row'] == 0)) { echo "</tr>\n<tr>\n"; }
               echo "<td align='center' valign='top' class='tbl'>\n";
               echo "<strong>".$data['photo_title']."</strong><br /><br />\n<a href='".FUSION_SELF."?photo_id=".$data['photo_id']."' class='photogallery_album_photo_link'><!--photogallery_album_photo_".$data['photo_id']."-->";
               if ($data['photo_thumb1'] && file_exists(PHOTODIR.$data['photo_thumb1'])){
                  echo "<img src='".PHOTODIR.$data['photo_thumb1']."' alt='".$data['photo_thumb1']."' title='".$locale['431']."' style='border:0px' class='photogallery_album_photo' />";
               } else {
                  echo $locale['432'];
               }
               echo "</a><br /><br />\n<span class='small photogallery_album_photo_info'> <!--photogallery_album_photo_info-->\n";
               echo $locale['433'].showdate("shortdate", $data['photo_datestamp'])."<br />\n";
               echo $locale['434']."<a href='".BASEDIR."profile.php?lookup=".$data['user_id']."'>".$data['user_name']."</a><br />\n";
               $photo_comments = dbcount("(comment_id)", DB_COMMENTS, "comment_type='P' AND comment_item_id='".$data['photo_id']."'");
               echo ($photo_comments == 1 ? $locale['436b'] : $locale['436']).$photo_comments."<br />\n";
               echo $locale['437'].($data['count_votes'] > 0 ? str_repeat("<img src='".IMAGES."star.gif' alt='*' style='vertical-align:middle' />", ceil($data['sum_rating'] / $data['count_votes'])) : $locale['438'])."<br />\n";
               echo $locale['435'].$data['photo_views']."</span><br />\n";
               echo "</td>\n";
               $counter++;
            }
            echo "</tr>\n</table>\n";
            closetable();
         }
         if ($rows > $settings['thumbs_per_page']) { echo "<div align='center' style='margin-top:5px;'>\n".makepagenav($_GET['rowstart'], $settings['thumbs_per_page'], $rows, 3, FUSION_SELF."?album_id=".$_GET['album_id']."&amp;")."\n</div>\n"; }
      }
   }
} else {
   opentable($locale['400']);
   $rows = dbcount("(album_id)", DB_PHOTO_ALBUMS, groupaccess('album_access'));
   if (!isset($_GET['rowstart']) || !isnum($_GET['rowstart'])) { $_GET['rowstart'] = 0; }
   if ($rows) {
      $result = dbquery(
         "SELECT ta.*, tu.user_id,user_name FROM ".DB_PHOTO_ALBUMS." ta
         LEFT JOIN ".DB_USERS." tu ON ta.album_user=tu.user_id
         WHERE ".groupaccess('album_access')." ORDER BY album_order
         LIMIT ".$_GET['rowstart'].",".$settings['thumbs_per_page']
      );
      $counter = 0; $r = 0; $k = 1;
      echo "<table cellpadding='0' cellspacing='1' width='100%'>\n<tr>\n";
      while ($data = dbarray($result)) {
         if ($counter != 0 && ($counter % $settings['thumbs_per_row'] == 0)) { echo "</tr>\n<tr>\n"; }
         echo "<td align='center' valign='top' class='tbl'>\n";
         echo "<strong>".$data['album_title']."</strong><br /><br />\n<a href='".FUSION_SELF."?album_id=".$data['album_id']."'>";
         if ($data['album_thumb'] && file_exists(PHOTOS.$data['album_thumb'])){
            echo "<img src='".PHOTOS.$data['album_thumb']."' alt='".$data['album_thumb']."' title='".$locale['401']."' style='border:0px' />";
         } else {
            echo $locale['402'];
         }
         echo "</a><br /><br />\n<span class='small'>\n";
         echo $locale['403'].showdate("shortdate", $data['album_datestamp'])."<br />\n";
         echo $locale['404']."<a href='".BASEDIR."profile.php?lookup=".$data['user_id']."'>".$data['user_name']."</a><br />\n";
         echo $locale['405'].dbcount("(photo_id)", DB_PHOTOS, "album_id='".$data['album_id']."'")."</span><br />\n";
         echo "</td>\n";
         $counter++; $k++;
      }
      echo "</tr>\n</table>\n";
      closetable();
      if ($rows > $settings['thumbs_per_page']) { echo "<div align='center' style='margin-top:5px;'>\n".makepagenav($_GET['rowstart'], $settings['thumbs_per_page'], $rows, 3)."\n</div>\n"; }
   }else{
      echo "<div style='text-align:center'><br />".$locale['406']."<br /><br /></div>\n";
      closetable();
   }
}

require_once THEMES."templates/footer.php";
?>




/**
 * jQuery lightBox plugin
 * This jQuery plugin was inspired and based on Lightbox 2 by Lokesh Dhakar (http://www.huddletogether.com/projects/lightbox2/)
 * and adapted to me for use like a plugin from jQuery.
 * @name jquery-lightbox-0.5.js
 * @author Leandro Vieira Pinho - http://leandrovieira.com
 * @version 0.5
 * @date April 11, 2008
 * @category jQuery plugin
 * @copyright (c) 2008 Leandro Vieira Pinho (leandrovieira.com)
 * @license CCAttribution-ShareAlike 2.5 Brazil - http://creativecommons.org/licen...deed.en_US
 * @example Visit http://leandrovieira.com/project.../lightbox/ for more informations about this jQuery plugin
 */

// Offering a Custom Alias suport - More info: http://docs.jquery.com/Plugins/A...stom_Alias
(function($) {
   /**
    * $ is an alias to jQuery object
    *
    */
   $.fn.lightBox = function(settings) {
      // Settings to configure the jQuery lightBox plugin how you like
      settings = jQuery.extend({
         // Configuration related to overlay
         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.
         overlayOpacity:         0.8,      // (integer) Opacity value to overlay; inform: 0.X. Where X are number from 0 to 9
         // Configuration related to navigation
         fixedNavigation:      false,      // (boolean) Boolean that informs if the navigation (next and prev button) will be fixed or not in the interface.
         // Configuration related to images
         imageLoading:         'images/lightbox-ico-loading.gif',      // (string) Path and the name of the loading icon
         imageBtnPrev:         'images/lightbox-btn-prev.gif',         // (string) Path and the name of the prev button image
         imageBtnNext:         'images/lightbox-btn-next.gif',         // (string) Path and the name of the next button image
         imageBtnClose:         'images/lightbox-btn-close.gif',      // (string) Path and the name of the close btn
         imageBlank:            'images/lightbox-blank.gif',         // (string) Path and the name of a blank image (one pixel)
         // Configuration related to container image box
         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
         containerResizeSpeed:   400,      // (integer) Specify the resize duration of container image. These number are miliseconds. 400 is default.
         // Configuration related to texts in caption. For example: Image 2 of 8. You can alter either "Image" and "of" texts.
         txtImage:            'Image',   // (string) Specify text "Image"
         txtOf:               'of',      // (string) Specify text "of"
         // Configuration related to keyboard navigation
         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.
         keyToPrev:            'p',      // (string) (p = previous) Letter to show the previous image
         keyToNext:            'n',      // (string) (n = next) Letter to show the next image.
         // Don´t alter these variables in any way
         imageArray:            [],
         activeImage:         0
      },settings);
      // Caching the jQuery object with all elements matched
      var jQueryMatchedObj = this; // This, in this context, refer to jQuery object
      /**
       * Initializing the plugin calling the start function
       *
       * @return boolean false
       */
      function _initialize() {
         _start(this,jQueryMatchedObj); // This, in this context, refer to object (link) which the user have clicked
         return false; // Avoid the browser following the link
      }
      /**
       * Start the jQuery lightBox plugin
       *
       * @param object objClicked The object (link) whick the user have clicked
       * @param object jQueryMatchedObj The jQuery object with all elements matched
       */
      function _start(objClicked,jQueryMatchedObj) {
         // Hime some elements to avoid conflict with overlay in IE. These elements appear above the overlay.
         $('embed, object, select').css({ 'visibility' : 'hidden' });
         // Call the function to create the markup structure; style some elements; assign events in some elements.
         _set_interface();
         // Unset total images in imageArray
         settings.imageArray.length = 0;
         // Unset image active information
         settings.activeImage = 0;
         // We have an image set? Or just an image? Let´s see it.
         if ( jQueryMatchedObj.length == 1 ) {
            settings.imageArray.push(new Array(objClicked.getAttribute('href'),objClicked.getAttribute('title')));
         } else {
            // Add an Array (as many as we have), with href and title atributes, inside the Array that storage the images references      
            for ( var i = 0; i < jQueryMatchedObj.length; i++ ) {
               settings.imageArray.push(new Array(jQueryMatchedObj[i].getAttribute('href'),jQueryMatchedObj[i].getAttribute('title')));
            }
         }
         while ( settings.imageArray[settings.activeImage][0] != objClicked.getAttribute('href') ) {
            settings.activeImage++;
         }
         // Call the function that prepares image exibition
         _set_image_to_view();
      }
      /**
       * Create the jQuery lightBox plugin interface
       *
       * The HTML markup will be like that:
         <div id="jquery-overlay"></div>
         <div id="jquery-lightbox">
            <div id="lightbox-container-image-box">
               <div id="lightbox-container-image">
                  <img src="../fotos/XX.jpg" id="lightbox-image">
                  <div 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="../images/lightbox-ico-loading.gif">
                     </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="../images/lightbox-btn-close.gif">
                     </a>
                  </div>
               </div>
            </div>
         </div>
       *
       */
      function _set_interface() {
         // Apply the HTML markup into body tag
         $('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>');   
         // Get page sizes
         var arrPageSizes = ___getPageSize();
         // Style overlay and show it
         $('#jquery-overlay').css({
            backgroundColor:   settings.overlayBgColor,
            opacity:         settings.overlayOpacity,
            width:            arrPageSizes[0],
            height:            arrPageSizes[1]
         }).fadeIn();
         // Get page scroll
         var arrPageScroll = ___getPageScroll();
         // Calculate top and left offset for the jquery-lightbox div object and show it
         $('#jquery-lightbox').css({
            top:   arrPageScroll[1] + (arrPageSizes[3] / 10),
            left:   arrPageScroll[0]
         }).show();
         // Assigning click events in elements to close overlay
         $('#jquery-overlay,#jquery-lightbox').click(function() {
            _finish();                           
         });
         // Assign the _finish function to lightbox-loading-link and lightbox-secNav-btnClose objects
         $('#lightbox-loading-link,#lightbox-secNav-btnClose').click(function() {
            _finish();
            return false;
         });
         // If window was resized, calculate the new overlay dimensions
         $(window).resize(function() {
            // Get page sizes
            var arrPageSizes = ___getPageSize();
            // Style overlay and show it
            $('#jquery-overlay').css({
               width:      arrPageSizes[0],
               height:      arrPageSizes[1]
            });
            // Get page scroll
            var arrPageScroll = ___getPageScroll();
            // Calculate top and left offset for the jquery-lightbox div object and show it
            $('#jquery-lightbox').css({
               top:   arrPageScroll[1] + (arrPageSizes[3] / 10),
               left:   arrPageScroll[0]
            });
         });
      }
      /**
       * Prepares image exibition; doing a image´s preloader to calculate it´s size
       *
       */
      function _set_image_to_view() { // show the loading
         // Show the loading
         $('#lightbox-loading').show();
         if ( settings.fixedNavigation ) {
            $('#lightbox-image,#lightbox-container-image-data-box,#lightbox-image-details-currentNumber').hide();
         } else {
            // Hide some elements
            $('#lightbox-image,#lightbox-nav,#lightbox-nav-btnPrev,#lightbox-nav-btnNext,#lightbox-container-image-data-box,#lightbox-image-details-currentNumber').hide();
         }
         // Image preload process
         var objImagePreloader = new Image();
         objImagePreloader.onload = function() {
            $('#lightbox-image').attr('src',settings.imageArray[settings.activeImage][0]);
            // Perfomance an effect in the image container resizing it
            _resize_container_image_box(objImagePreloader.width,objImagePreloader.height);
            //   clear onLoad, IE behaves irratically with animated gifs otherwise
            objImagePreloader.onload=function(){};
         };
         objImagePreloader.src = settings.imageArray[settings.activeImage][0];
      };
      /**
       * Perfomance an effect in the image container resizing it
       *
       * @param integer intImageWidth The image´s width that will be showed
       * @param integer intImageHeight The image´s height that will be showed
       */
      function _resize_container_image_box(intImageWidth,intImageHeight) {
         // Get current width and height
         var intCurrentWidth = $('#lightbox-container-image-box').width();
         var intCurrentHeight = $('#lightbox-container-image-box').height();
         // Get the width and height of the selected image plus the padding
         var intWidth = (intImageWidth + (settings.containerBorderSize * 2)); // Plus the image´s width and the left and right padding value
         var intHeight = (intImageHeight + (settings.containerBorderSize * 2)); // Plus the image´s height and the left and right padding value
         // Diferences
         var intDiffW = intCurrentWidth - intWidth;
         var intDiffH = intCurrentHeight - intHeight;
         // Perfomance the effect
         $('#lightbox-container-image-box').animate({ width: intWidth, height: intHeight },settings.containerResizeSpeed,function() { _show_image(); });
         if ( ( intDiffW == 0 ) && ( intDiffH == 0 ) ) {
            if ( $.browser.msie ) {
               ___pause(250);
            } else {
               ___pause(100);   
            }
         }
         $('#lightbox-container-image-data-box').css({ width: intImageWidth });
         $('#lightbox-nav-btnPrev,#lightbox-nav-btnNext').css({ height: intImageHeight + (settings.containerBorderSize * 2) });
      };
      /**
       * Show the prepared image
       *
       */
      function _show_image() {
         $('#lightbox-loading').hide();
         $('#lightbox-image').fadeIn(function() {
            _show_image_data();
            _set_navigation();
         });
         _preload_neighbor_images();
      };
      /**
       * Show the image information
       *
       */
      function _show_image_data() {
         $('#lightbox-container-image-data-box').slideDown('fast');
         $('#lightbox-image-details-caption').hide();
         if ( settings.imageArray[settings.activeImage][1] ) {
            $('#lightbox-image-details-caption').html(settings.imageArray[settings.activeImage][1]).show();
         }
         // If we have a image set, display 'Image X of X'
         if ( settings.imageArray.length > 1 ) {
            $('#lightbox-image-details-currentNumber').html(settings.txtImage + ' ' + ( settings.activeImage + 1 ) + ' ' + settings.txtOf + ' ' + settings.imageArray.length).show();
         }      
      }
      /**
       * Display the button navigations
       *
       */
      function _set_navigation() {
         $('#lightbox-nav').show();

         // Instead to define this configuration in CSS file, we define here. And it´s need to IE. Just.
         $('#lightbox-nav-btnPrev,#lightbox-nav-btnNext').css({ 'background' : 'transparent url(' + settings.imageBlank + ') no-repeat' });
         
         // Show the prev button, if not the first image in set
         if ( settings.activeImage != 0 ) {
            if ( settings.fixedNavigation ) {
               $('#lightbox-nav-btnPrev').css({ 'background' : 'url(' + settings.imageBtnPrev + ') left 15% no-repeat' })
                  .unbind()
                  .bind('click',function() {
                     settings.activeImage = settings.activeImage - 1;
                     _set_image_to_view();
                     return false;
                  });
            } else {
               // Show the images button for Next buttons
               $('#lightbox-nav-btnPrev').unbind().hover(function() {
                  $(this).css({ 'background' : 'url(' + settings.imageBtnPrev + ') left 15% no-repeat' });
               },function() {
                  $(this).css({ 'background' : 'transparent url(' + settings.imageBlank + ') no-repeat' });
               }).show().bind('click',function() {
                  settings.activeImage = settings.activeImage - 1;
                  _set_image_to_view();
                  return false;
               });
            }
         }
         
         // Show the next button, if not the last image in set
         if ( settings.activeImage != ( settings.imageArray.length -1 ) ) {
            if ( settings.fixedNavigation ) {
               $('#lightbox-nav-btnNext').css({ 'background' : 'url(' + settings.imageBtnNext + ') right 15% no-repeat' })
                  .unbind()
                  .bind('click',function() {
                     settings.activeImage = settings.activeImage + 1;
                     _set_image_to_view();
                     return false;
                  });
            } else {
               // Show the images button for Next buttons
               $('#lightbox-nav-btnNext').unbind().hover(function() {
                  $(this).css({ 'background' : 'url(' + settings.imageBtnNext + ') right 15% no-repeat' });
               },function() {
                  $(this).css({ 'background' : 'transparent url(' + settings.imageBlank + ') no-repeat' });
               }).show().bind('click',function() {
                  settings.activeImage = settings.activeImage + 1;
                  _set_image_to_view();
                  return false;
               });
            }
         }
         // Enable keyboard navigation
         _enable_keyboard_navigation();
      }
      /**
       * Enable a support to keyboard navigation
       *
       */
      function _enable_keyboard_navigation() {
         $(document).keydown(function(objEvent) {
            _keyboard_action(objEvent);
         });
      }
      /**
       * Disable the support to keyboard navigation
       *
       */
      function _disable_keyboard_navigation() {
         $(document).unbind();
      }
      /**
       * Perform the keyboard actions
       *
       */
      function _keyboard_action(objEvent) {
         // To ie
         if ( objEvent == null ) {
            keycode = event.keyCode;
            escapeKey = 27;
         // To Mozilla
         } else {
            keycode = objEvent.keyCode;
            escapeKey = objEvent.DOM_VK_ESCAPE;
         }
         // Get the key in lower case form
         key = String.fromCharCode(keycode).toLowerCase();
         // Verify the keys to close the ligthBox
         if ( ( key == settings.keyToClose ) || ( key == 'x' ) || ( keycode == escapeKey ) ) {
            _finish();
         }
         // Verify the key to show the previous image
         if ( ( key == settings.keyToPrev ) || ( keycode == 37 ) ) {
            // If we´re not showing the first image, call the previous
            if ( settings.activeImage != 0 ) {
               settings.activeImage = settings.activeImage - 1;
               _set_image_to_view();
               _disable_keyboard_navigation();
            }
         }
         // Verify the key to show the next image
         if ( ( key == settings.keyToNext ) || ( keycode == 39 ) ) {
            // If we´re not showing the last image, call the next
            if ( settings.activeImage != ( settings.imageArray.length - 1 ) ) {
               settings.activeImage = settings.activeImage + 1;
               _set_image_to_view();
               _disable_keyboard_navigation();
            }
         }
      }
      /**
       * Preload prev and next images being showed
       *
       */
      function _preload_neighbor_images() {
         if ( (settings.imageArray.length -1) > settings.activeImage ) {
            objNext = new Image();
            objNext.src = settings.imageArray[settings.activeImage + 1][0];
         }
         if ( settings.activeImage > 0 ) {
            objPrev = new Image();
            objPrev.src = settings.imageArray[settings.activeImage -1][0];
         }
      }
      /**
       * Remove jQuery lightBox plugin HTML markup
       *
       */
      function _finish() {
         $('#jquery-lightbox').remove();
         $('#jquery-overlay').fadeOut(function() { $('#jquery-overlay').remove(); });
         // Show some elements to avoid conflict with overlay in IE. These elements appear above the overlay.
         $('embed, object, select').css({ 'visibility' : 'visible' });
      }
      /**
       / THIRD FUNCTION
       * getPageSize() by quirksmode.com
       *
       * @return Array Return an array with page width, height and window width, height
       */
      function ___getPageSize() {
         var xScroll, yScroll;
         if (window.innerHeight && window.scrollMaxY) {   
            xScroll = window.innerWidth + window.scrollMaxX;
            yScroll = window.innerHeight + window.scrollMaxY;
         } else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
            xScroll = document.body.scrollWidth;
            yScroll = document.body.scrollHeight;
         } else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
            xScroll = document.body.offsetWidth;
            yScroll = document.body.offsetHeight;
         }
         var windowWidth, windowHeight;
         if (self.innerHeight) {   // all except Explorer
            if(document.documentElement.clientWidth){
               windowWidth = document.documentElement.clientWidth;
            } else {
               windowWidth = self.innerWidth;
            }
            windowHeight = self.innerHeight;
         } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
            windowWidth = document.documentElement.clientWidth;
            windowHeight = document.documentElement.clientHeight;
         } else if (document.body) { // other Explorers
            windowWidth = document.body.clientWidth;
            windowHeight = document.body.clientHeight;
         }   
         // for small pages with total height less then height of the viewport
         if(yScroll < windowHeight){
            pageHeight = windowHeight;
         } else {
            pageHeight = yScroll;
         }
         // for small pages with total width less then width of the viewport
         if(xScroll < windowWidth){   
            pageWidth = xScroll;      
         } else {
            pageWidth = windowWidth;
         }
         arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight);
         return arrayPageSize;
      };
      /**
       / THIRD FUNCTION
       * getPageScroll() by quirksmode.com
       *
       * @return Array Return an array with x,y page scroll values.
       */
      function ___getPageScroll() {
         var xScroll, yScroll;
         if (self.pageYOffset) {
            yScroll = self.pageYOffset;
            xScroll = self.pageXOffset;
         } else if (document.documentElement && document.documentElement.scrollTop) {    // Explorer 6 Strict
            yScroll = document.documentElement.scrollTop;
            xScroll = document.documentElement.scrollLeft;
         } else if (document.body) {// all other Explorers
            yScroll = document.body.scrollTop;
            xScroll = document.body.scrollLeft;   
         }
         arrayPageScroll = new Array(xScroll,yScroll);
         return arrayPageScroll;
      };
       /**
        * Stop the code execution from a escified time in milisecond
        *
        */
       function ___pause(ms) {
         var date = new Date();
         curDate = null;
         do { var curDate = new Date(); }
         while ( curDate - date < ms);
       };
      // Return the jQuery object for chaining. The unbind method is used to avoid click conflict when the plugin is called more than once
      return this.unbind('click').click(_initialize);
   };
})(jQuery); // Call and execute the function immediately passing the jQuery object




0 atsakymų
Peršokti į forumą: