(function() { var mobile = (/iphone|ipod|android|blackberry|mini|windows\sce|palm/i.test(navigator.userAgent.toLowerCase())); var ipad = (/ipad/i.test(navigator.userAgent.toLowerCase())); var t = function(str, data) { // template helper for (var i in data) { str = str.replace(new RegExp('{ ' + i + ' }', 'g'), data[i]); } return str; } // Global options var options = { user: 'user156', album: 'best-city', title: 'Best City', base_url: 'https://photo.torba.com', css_url: 'https://photo.torba.com/media/lightbox2/light.css?v1', default_size: '128', preview_size: 128, preview_css: 'display:inline; margin:0 3px 0 0; border:1px solid #ccc;', image_size: 1000, image_crop_type: (false) ? 'c': 'f', popup_html: '\u0009\u0009\u003Cdiv id\u003D\u0022torba\u002Dfader\u0022\u003E\u003C/div\u003E\u000A\u0009\u0009\u003Cdiv id\u003D\u0022torba\u002Dlightbox\u0022\u003E\u000A\u0009\u0009\u0009\u003Cdiv class\u003D\u0022torba\u002Dlightbox\u002Dside\u002Dwrap\u0022\u003E\u000A\u0009\u0009\u0009\u0009\u003Cdiv class\u003D\u0022torba\u002Dlightbox\u002Dside\u0022\u003E\u000A\u0009\u0009\u0009\u0009\u0009\u003Cdiv class\u003D\u0022torba\u002Dlightbox\u002Dside\u002Dcont\u0022\u003E\u000A\u0009\u0009\u0009\u0009\u0009\u0009\u003Ca class\u003D\u0022torba\u002Dlightbox\u002Dclose\u0022\u003E\u003C/a\u003E\u000A\u0009\u0009\u0009\u0009\u0009\u0009\u003Cspan class\u003D\u0022torba\u002Dlightbox\u002Dimg\u002Dnum\u0022\u003E\u003C/span\u003E\u000A\u0009\u0009\u0009\u0009\u0009\u0009\u003Cdiv class\u003D\u0022torba\u002Dlightbox\u002Dtitle\u0022\u003E\u003C/div\u003E\u000A\u0009\u0009\u0009\u0009\u0009\u0009\u003Cdiv class\u003D\u0022torba\u002Dlightbox\u002Ddescr\u0022\u003E\u003C/div\u003E\u000A\u0009\u0009\u0009\u0009\u0009\u003C/div\u003E\u000A\u0009\u0009\u0009\u0009\u0009\u003Cdiv class\u003D\u0022torba\u002Dlightbox\u002Dbanner\u0022\u003E\u000A\u0009\u0009\u0009\u0009\u0009\u0009\u003Ciframe id\u003D\u0022torba\u002Dlightbox\u002Diframe\u0022 style\u003D\u0022border: 0\u003B\u0022 width\u003D\u0022300\u0022 height\u003D\u0022610\u0022 src\u003D\u0022https://photo.torba.com/media/lightbox2/banner.html\u0022\u003E\u003C/iframe\u003E\u000A\u0009\u0009\u0009\u0009\u0009\u003C/div\u003E\u000A\u0009\u0009\u0009\u0009\u003C/div\u003E\u000A\u0009\u0009\u0009\u003C/div\u003E\u000A\u0009\u0009\u0009\u003Cdiv class\u003D\u0022torba\u002Dlightbox\u002Dcont\u002Dwrap\u0022\u003E\u000A\u0009\u0009\u0009\u0009\u003Cdiv class\u003D\u0022torba\u002Dlightbox\u002Dcont\u0022\u003E\u000A\u0009\u0009\u0009\u0009\u0009\u003Cimg id\u003D\u0022torba\u002Dlightbox\u002Dimage\u0022 src\u003D\u0022\u0022 alt\u003D\u0022\u0022 /\u003E\u000A\u000A\u0009\u0009\u0009\u0009\u0009\u003Cdiv class\u003D\u0022torba\u002Dlightbox\u002Dnav\u002Dwrap\u0022\u003E\u000A\u0009\u0009\u0009\u0009\u0009\u0009\u003Cdiv class\u003D\u0022torba\u002Dlightbox\u002Dnav\u0022\u003E\u000A\u0009\u0009\u0009\u0009\u0009\u0009\u0009\u003Cspan class\u003D\u0022torba\u002Dlightbox\u002Dnav\u002Dleft\u0022\u003E\u000A\u0009\u0009\u0009\u0009\u0009\u0009\u0009\u0009\u003Cspan class\u003D\u0022torba\u002Dlightbox\u002Dnav\u002Dleft\u002Dshad\u0022\u003E\u000A\u0009\u0009\u0009\u0009\u0009\u0009\u0009\u0009\u0009\u003Cspan class\u003D\u0022torba\u002Dlightbox\u002Dnav\u002Dleft\u002Dimg\u0022\u003E\u003C/span\u003E\u000A\u0009\u0009\u0009\u0009\u0009\u0009\u0009\u0009\u003C/span\u003E\u000A\u0009\u0009\u0009\u0009\u0009\u0009\u0009\u003C/span\u003E\u000A\u0009\u0009\u0009\u0009\u0009\u0009\u0009\u003Cspan class\u003D\u0022torba\u002Dlightbox\u002Dnav\u002Dright\u0022\u003E\u000A\u0009\u0009\u0009\u0009\u0009\u0009\u0009\u0009\u003Cspan class\u003D\u0022torba\u002Dlightbox\u002Dnav\u002Dright\u002Dshad\u0022\u003E\u000A\u0009\u0009\u0009\u0009\u0009\u0009\u0009\u0009\u0009\u003Cspan class\u003D\u0022torba\u002Dlightbox\u002Dnav\u002Dright\u002Dimg\u0022\u003E\u003C/span\u003E\u000A\u0009\u0009\u0009\u0009\u0009\u0009\u0009\u0009\u003C/span\u003E\u000A\u0009\u0009\u0009\u0009\u0009\u0009\u0009\u003C/span\u003E\u000A\u0009\u0009\u0009\u0009\u0009\u0009\u003C/div\u003E\u000A\u0009\u0009\u0009\u0009\u0009\u003C/div\u003E\u000A\u0009\u0009\u0009\u0009\u003C/div\u003E\u000A\u0009\u0009\u0009\u003C/div\u003E\u000A\u0009\u0009\u003C/div\u003E\u000A', url_template: 'user156/best-city/photo{ number }', url_re: new RegExp('(user\\d+)\/([\\w-]+)\/photo(\\d+)') } // append album container after script document.write(t( '
', {user: options.user, album: options.album} )); // TorbaAlbum class var TorbaAlbum = function(options) { var self = this; self.options = options; self.album_name = self.options.user + '-' + self.options.album; self.init(); } TorbaAlbum.prototype.init = function() { var self = this; // init album container & album wrapper self.album = $('#' + self.album_name); self.album.css({ width: '100%', overflow: 'hidden', margin:'10px 0', position: 'relative' }); self.album_inner = $('div.torba-album-inner', self.album); if (!self.album_inner.length) { self.album.append('
'); self.album_inner = $('div.torba-album-inner', self.album); } self.parse([["/images/sexyboy/c128/hZpdbF3VCOzcGjtXX9US.JPG", ""],["/images/sexyboy/c128/53oo8OzGpNUiyh0m9ZLk.JPG", ""],["/images/sexyboy/c128/eIedhWOA3OIFB8IXiDtO.JPG", ""],["/images/sexyboy/c128/gSsNwb95z6TOwTMDQPpw.JPG", ""],["/images/sexyboy/c128/86AwoJXo4q0JvljFIvSv.JPG", ""],["/images/sexyboy/c128/TPBTz3A6ChCVyCE9Mw2t.JPG", ""],["/images/sexyboy/c128/OxBnW5a05e1dm2PylWYI.JPG", ""],["/images/sexyboy/c128/6PvNZD5wfVKLTArP8QhQ.JPG", ""],["/images/sexyboy/c128/DW7uHfznqrPZNfmj0sbw.JPG", ""],["/images/sexyboy/c128/zAoJ8uLhTh7mHSbk89bT.JPG", ""],["/images/sexyboy/c128/O4wIii5P1YSQ8ZBIMZMn.JPG", ""],["/images/sexyboy/c128/958e3i8qya7PPOkeVHjl.JPG", ""],["/images/sexyboy/c128/1Q0p2TZOc1jLoPywui3H.JPG", ""],["/images/sexyboy/c128/5WPJfXDZePvGQ63vnRg6.JPG", ""],["/images/sexyboy/c128/z9iZtDyHuf0uFpDzVSj0.JPG", ""],["/images/sexyboy/c128/0LLeFl7VJxbctqtPx4nV.JPG", ""],["/images/sexyboy/c128/GZFWQpO0JUEe9gLTouJv.JPG", ""],["/images/sexyboy/c128/rFmw3mV9hOZMXbr1E67h.JPG", ""],["/images/sexyboy/c128/syIZYrX0AwfKcw4NvQjl.JPG", ""],["/images/sexyboy/c128/M7TKfm8Ht1nHq1YRyIRe.JPG", ""],["/images/sexyboy/c128/DSfZPbBXTyFMwlSbw9xr.JPG", ""],["/images/sexyboy/c128/RzL4Hn3zS46H6med73NW.JPG", ""],["/images/sexyboy/c128/2xc5edjD9eBYQBNNFODS.JPG", ""],["/images/sexyboy/c128/a8d5rdJXjbajDFF1LhQw.JPG", ""],["/images/sexyboy/c128/U6XP8tTdtwbdbS4cFJ4P.JPG", ""],["/images/sexyboy/c128/TbWbZbPWifHzeGqMuyeh.JPG", ""],["/images/sexyboy/c128/TWCGrm795QmGSAXegoX1.JPG", ""],["/images/sexyboy/c128/j04E6b8PUFcdZW3nzKt0.JPG", ""],["/images/sexyboy/c128/pa3GHlV3m9W4EUaqJCO1.JPG", ""],["/images/sexyboy/c128/76Y5I4sQxAJLdkftMcge.JPG", ""],["/images/sexyboy/c128/asBHTp74f080DY4JtJ7M.JPG", ""],["/images/sexyboy/c128/qrbqOEVbBkvbDp5DK3MX.JPG", ""],["/images/sexyboy/c128/2yTNacCaYV3XhnadESAG.JPG", ""],["/images/sexyboy/c128/MoHI140jCcpnasqK8K2A.JPG", ""],["/images/sexyboy/c128/EWj2T81397OVpddjlcT1.JPG", ""],["/images/sexyboy/c128/R6F1R1xZ5QLLs6f2S5Rf.JPG", ""],["/images/sexyboy/c128/sYmP7Hwr8XsyAmsx1TnR.JPG", ""],["/images/sexyboy/c128/UoSX3283NokRfv6LjOsi.JPG", ""],["/images/sexyboy/c128/wGVRnTwU7SNojPhihUdr.JPG", ""],["/images/sexyboy/c128/OXmXh6QuX6CyZi27bn4D.JPG", ""],["/images/sexyboy/c128/5QokgBz9oniLZ8ReDU0k.JPG", ""],["/images/sexyboy/c128/feMKnYQVr5ptTCbmMMZ3.JPG", ""],["/images/sexyboy/c128/C7h4jG3xXWjCvRzkT3LF.JPG", ""],["/images/sexyboy/c128/H041S98g6qrzm8XA0KMn.JPG", ""],["/images/sexyboy/c128/cclQdpWezjT6HNGANm95.JPG", ""],["/images/sexyboy/c128/YiJZFpgyUVQSp9wywAMv.JPG", ""],["/images/sexyboy/c128/e761xR0UPFQ02Qbavr1L.JPG", ""],["/images/sexyboy/c128/bE41x7MGiecvurjVZjyf.JPG", ""],["/images/sexyboy/c128/34J1NDjeasnPCVLLGxc8.JPG", ""],["/images/sexyboy/c128/Uc6EJ0wn2MLt4YZj2q4A.JPG", ""],["/images/sexyboy/c128/E51cFNiXAucIMDhsFadK.JPG", ""],["/images/sexyboy/c128/uA9NPAoLHrzMGQ2G1rzj.JPG", ""],["/images/sexyboy/c128/tx9iPTbABEFPkEXe8tcX.JPG", ""],["/images/sexyboy/c128/XkdJurFBgmT9BHBATEhm.JPG", ""],["/images/sexyboy/c128/AAj0XNVtx9wCBA0XYO9F.JPG", ""],["/images/sexyboy/c128/n0A4hlLyoSBNfc7EWO6D.JPG", ""],["/images/sexyboy/c128/zeZaGSnzWLL9fIcURfwL.JPG", ""],["/images/sexyboy/c128/p3jAu1WG7ogCPw1aS432.JPG", ""],["/images/sexyboy/c128/IzH02pQQaIcT3bdJ4bsk.JPG", ""],["/images/sexyboy/c128/ZkEod4KtMjZMdRVVtJM0.JPG", ""],["/images/sexyboy/c128/szTJNRB69Eq4sxyVnLDD.JPG", ""],["/images/sexyboy/c128/HoL3i1tTyauHnVGscFtw.JPG", ""],["/images/sexyboy/c128/G3o2QJwqoVcdtzDeei9y.JPG", ""],["/images/sexyboy/c128/RfXhTImmXY25Ikn0ZKaj.JPG", ""],["/images/sexyboy/c128/VtbMSwR9DeCS1qlPe2IJ.JPG", ""],["/images/sexyboy/c128/bofWG3R4AE9fyZPW7A6I.JPG", ""],["/images/sexyboy/c128/xpzAoGjC25PWeS5ukF1D.JPG", ""],["/images/sexyboy/c128/Mvm35491GTWsFwBGlkj3.JPG", ""],["/images/sexyboy/c128/u77N137mPRDuAzwHsbvU.JPG", ""],["/images/sexyboy/c128/dnCuQyovlgKW2fXFAwYp.JPG", ""],["/images/sexyboy/c128/nbcOBhd53bFH7nOcuNgg.JPG", ""],["/images/sexyboy/c128/8tU03sX1aDu954s25LDm.JPG", ""],["/images/sexyboy/c128/Rfrrob3pMGd5TDvrp4JA.JPG", ""],["/images/sexyboy/c128/q2CTye06rAuN4tnDKIOY.JPG", ""],["/images/sexyboy/c128/16ZIzy9GnrJnXC4an2DL.JPG", ""],["/images/sexyboy/c128/WoKWcgmDp2vn3mkr3H4M.JPG", ""],["/images/sexyboy/c128/GbELrAgp5diFkkRLY3MQ.JPG", ""],["/images/sexyboy/c128/Iq1WkWdkdqHH3FZzz3Rh.JPG", ""],["/images/sexyboy/c128/JbAmgWGSAnl1cGFXGENN.JPG", ""],["/images/sexyboy/c128/GDaZc4HXSDwZnS46yUDF.JPG", ""],["/images/sexyboy/c128/vtJfFb5WfVeHjnGK3ufm.JPG", ""],["/images/sexyboy/c128/D1j5xHqCxdHp1iiIv9jJ.JPG", ""],["/images/sexyboy/c128/yLFvJnRA0xVk9sUq2mIJ.JPG", ""],["/images/sexyboy/c128/ZDSaLMt1BPpitaDM0s08.JPG", ""],["/images/sexyboy/c128/AwBQosPfbULUgwCaSGND.JPG", ""],["/images/sexyboy/c128/apmrNEkTd3a2zuCoMf1W.JPG", ""],["/images/sexyboy/c128/SC7eBOh19GnBPm6s369j.JPG", ""],["/images/sexyboy/c128/DqyJ8STz8K8YBvohMtyP.JPG", ""],["/images/sexyboy/c128/ewXkYuM2jnCjFOMJThPr.JPG", ""],["/images/sexyboy/c128/eqeYrwhORW4sy3b1k9zq.JPG", ""],["/images/sexyboy/c128/iTo12p6ntEARmRhncgjr.JPG", ""],["/images/sexyboy/c128/dYvzVDKN3tkLCIPlXYfZ.JPG", ""],["/images/sexyboy/c128/78t6zM9E75l2VXTbNTH2.JPG", ""],["/images/sexyboy/c128/7Y2OmwxfMMsmUMQED6Pr.JPG", ""],["/images/sexyboy/c128/I2Lf726AfBBKqjkCAko6.JPG", ""],["/images/sexyboy/c128/RSGusL0YvzCqKImPHCrw.JPG", ""],["/images/sexyboy/c128/Le0O4PVPZnBbkftsdqm4.JPG", ""],["/images/sexyboy/c128/Ts5j4M49XtM0eLPtkicO.JPG", ""],["/images/sexyboy/c128/RkeDWc4JMRH2nIKLyIjm.JPG", ""],["/images/sexyboy/c128/HNNUbGQLaMDrzIC3vaJi.JPG", ""],["/images/sexyboy/c128/Hup31Hp0W6gg6IYxsuD9.JPG", ""],["/images/sexyboy/c128/UI67Lcs6eA524vqhgxc5.JPG", ""],["/images/sexyboy/c128/bCqnFTObMHoFPHkCdrdF.JPG", ""],["/images/sexyboy/c128/Nqx6NwuYqCoRcmzBzal1.JPG", ""],["/images/sexyboy/c128/An5bMcYxybwFhFxI7U7D.JPG", ""],["/images/sexyboy/c128/TkwzfHbW2Q8fJLlTlO6w.JPG", ""],["/images/sexyboy/c128/ow7M0ci8MOgXKgY8TfQ3.JPG", ""],["/images/sexyboy/c128/nmqdYRx1rn8mjafYWXi8.JPG", ""],["/images/sexyboy/c128/UVd2nkHOBAtQMVDNF0nY.JPG", ""],["/images/sexyboy/c128/3eNDX8Qq32jdrSeifYeL.JPG", ""],["/images/sexyboy/c128/trFjzaJCXBKF7fpHqVbi.JPG", ""],["/images/sexyboy/c128/tyqPCj7A3UHJaXBDBHqs.JPG", ""],["/images/sexyboy/c128/yxywtOlE86C8tpo1CiO4.JPG", ""],["/images/sexyboy/c128/fxkNonuOPS7ENtw5T8Xj.JPG", ""],["/images/sexyboy/c128/y5zd4Wuh7hTi1mll24Z7.JPG", ""],["/images/sexyboy/c128/h3FiMhpW9fWhO7qrZvfJ.JPG", ""],["/images/sexyboy/c128/HqmyrVBxHsbRa9LdqJ8j.JPG", ""],["/images/sexyboy/c128/vMUDAWcsovzU2tyxwQ4u.JPG", ""],["/images/sexyboy/c128/LvXNd8CmH3IGnwstOFzK.JPG", ""],["/images/sexyboy/c128/56q9bENeP1GspJD4Tpcc.JPG", ""],["/images/sexyboy/c128/BcvmPKAl8LeWjONeb6TG.JPG", ""]]); } TorbaAlbum.prototype.parse = function(photos) { var self = this; var photos_html = ''; var re = new RegExp('c' + self.options.default_size); var preview_size = 'c' + self.options.preview_size; var image_size = self.options.image_crop_type + self.options.image_size; var gallery_photos = []; // parse photos, generate html for (var i = 0; i < photos.length; i += 1) { // Task #6137 var photo = photos[i]; var title = ''; if (typeof(photo) != 'string') { title = photo[1]; photo = photo[0]; } var template = ' \ { title } \ '; photos_html += t(template, { photo: photo.replace(re, image_size), url: self.options.base_url + photo.replace(re, image_size), title: title, preview_css: self.options.preview_css, preview_url: self.options.base_url + photo.replace(re, preview_size) }); gallery_photos.push(photo.replace(re, image_size)); } // append generated html to album container self.album_inner.html(photos_html); // init gallery if (!mobile) { self.album_inner.find('a').click(function() { self.init_gallery(gallery_photos, $(this).attr('data-src')); return false; }); } var hash = window.location.hash; var result = self.options.url_re.exec(hash); if (result) { // hash requires to init torba album if (result[1] == self.options.user && result[2] == self.options.album) { self.album_inner.find('a').eq(result[3] - 1).click(); } } } TorbaAlbum.prototype.init_gallery = function(gallery_photos, initial_photo) { var self = this; self.index = gallery_photos.indexOf(initial_photo); self.photos = gallery_photos; $('#torba-fader, #torba-lightbox').remove(); $('body').append(self.options.popup_html); self.show(); } TorbaAlbum.prototype.show = function() { var self = this; var photo = self.photos[self.index]; var number = self.index + 1; if (mobile || ipad) { $('.torba-lightbox-nav').show(); } $('#torba-lightbox-iframe').each(function() { $(this).attr({ src: $(this).attr("src") }); }); $('#torba-lightbox-image').attr('src', self.options.base_url + photo); $('span.torba-lightbox-img-num').text( t('{ number } из { count }', { number: number, count: self.photos.length }) ); window.location.hash = t(self.options.url_template, { number: number }); // bind close $('div.torba-lightbox-title').text(self.options.title); $('div.torba-lightbox-descr').text( self.album.find('img').eq(self.index).attr('alt') ); $('a.torba-lightbox-close, #torba-fader').unbind('click').click(function() { $('#torba-fader, #torba-lightbox').remove(); window.location.hash = '!'; return false; }); $(document).unbind('keydown').keydown(function(e) { if (e.keyCode == 27) { $('#torba-fader, #torba-lightbox').remove(); window.location.hash = '!'; return false; } }); $('span.torba-lightbox-nav-left, span.torba-lightbox-nav-right').show(); if (number == 1) { $('span.torba-lightbox-nav-left').hide(); } if (number == self.photos.length) { $('span.torba-lightbox-nav-right').hide(); } // bind move left $('span.torba-lightbox-nav-left').unbind('click').click(function() { self.prev(); return false; }); // bind move right $('span.torba-lightbox-nav-right').unbind('click').click(function() { self.next(); return false; }); } TorbaAlbum.prototype.prev = function() { var self = this; self.index -= 1; self.show(); } TorbaAlbum.prototype.next = function() { var self = this; self.index += 1; self.show(); } $(function() { // Load css $("", { rel: "stylesheet", type: "text/css", href: options.css_url }).appendTo('head'); new TorbaAlbum(options); }); })();