$(function() {
			// Вешаем обработчик на ссылки с нужным классом
			$('a.darkbox').click(function() {
				var link = $(this);
				if(!$('div.darkbox-frame').length) {
					// Если попап прежде не вызывался,
					// создаём его и цепляем к BODY
					darkbox = $('<div class="darkbox-frame"><div class="darkbox-shadow"></div><div class="darkbox-canvas"><div class="darkbox-button"></div></div></div>').appendTo('body');
				}
				// Клонируем попап,
				// прицепляем клон к BODY и показываем его
				var frame = darkbox.clone().appendTo('body').addClass('darkbox-frame-on');

				var shadow = frame.find('div.darkbox-shadow').animate({opacity:0.6},300);
				var canvas = frame.find('div.darkbox-canvas');
				var button = frame.find('div.darkbox-button');

				// Цепляем к попапу картинку и ждём её загрузки
				var image = $('<img src="'+ link.attr('href') +'" alt="'+ link.attr('title') +'"/>');

				image.appendTo(canvas);
				image.load(function(){

					var imageWidth = image.width();
					var imageHeight = image.height();
					var frameWidth = frame.width()-40;
					var frameHeight = frame.height()-40;

					// Вписываем картинку в размер окна,
					// если она шире, чем окно
					if(imageWidth > frameWidth) {

						imageWidth = frameWidth;
						image.width(imageWidth);					
						while(image.height() > frameHeight) {
							image.width(imageWidth);
							imageWidth--;
						}

						imageHeight = image.height();
					}

					// Вписываем картинку в размер окна,
					// если она выше, чем окно
					if(imageHeight > frameHeight) {

						imageHeight = frameHeight;
						image.height(imageHeight);						
						while(image.width() > frameWidth) {
							image.height(imageHeight);
							imageHeight--;
						}

						imageWidth = image.width();
					}

					// Анимируем загрузчик до размеров картинки
					// и одновременно смещаем к центру
					canvas.addClass('darkbox-canvas-load').animate({

						width:imageWidth,
						marginLeft:-imageWidth/2,
						height:imageHeight,
						marginTop:-imageHeight/2

					},500,function() {

						// После завершения анимации показываем кнопку и картинку
						canvas.addClass('darkbox-canvas-done');
						button.addClass('darkbox-button-on');
						button.addClass(navigator.platform.toLowerCase().indexOf('mac')+1?'darkbox-button-left':'darkbox-button-right');

						image.animate({opacity:1},500,function() {

							// Вешаем обработчики закрытия
							shadow.click(closer);
							button.click(closer);

						});
					});
				});

				// Функция закрытия попапа
				var closer = function() {
			
					canvas.remove();
					shadow.animate({opacity:0},300,function() {
						frame.remove();
					});
				}

				// Внимательно слушаем клавишу Esc
				$(document).keydown(function(e) {
					if(e.which==27) closer();
				});

				return false;
			});
		});
