/**
*	@author http://chalker.ru/ ChALkeR
*	@copyright (c) ChALkeR
*	@version 2009-08-03
**/

$.cms.popup.lib = {
	spacing: [130,130],

	init: function() {
		$('body').append('<div id="overlay"></div><div id="popup"><div id="popup-close"><a href="'+$.cms.config.path+'" onclick="return $.cms.popup.close();"><img src="'+$.cms.config.paths.style_generic+'images/button-close.png" alt="" /></a></div><div id="popup-content"></div></div>');
		return $.cms.popup.lib;
	},
	image: function(path,orig) {
		return $.cms.popup.show('<div style="width:100%; text-align:center;"><a href="'+orig+'" onclick="return $.cms.popup.close();"><img src="'+path+'" alt="" /></a></div>',true);
	},
	close: function() {
		return $.cms.popup.lib.toggle(false);
	},
	show: function(code,image) {
		$('#popup-content').html(code);
		$.cms.popup.lib.toggle(true, image||false);
		return false;
	},
	overlay_toggle: function(arg) {
		if (arg && !$.cms.popup.lock) {
			$.cms.popup.lock_toggle(true);
			$('#overlay').show().fadeTo($.cms.effects,0.7);
		} else if (!arg && $.cms.popup.lock) {
			$('#overlay').stop().fadeTo($.cms.effects,0,function() {
				$('#overlay').hide();
					$.cms.popup.lock_toggle(false);
				});
		}
		return false;
	},
	toggle: function(arg,image) {
		if (arg) {
			var mw = $(window).width() - 70;
			var mh = $(window).height() - 70;
			if (image) {
				var preload = [];
				$('#popup-content img').each(function() {
						preload.push($(this).attr('src'));
					});
				$('#popup').stop().hide().fadeTo(0,0).css({
						'width':'auto',
						'height':'auto'
					}).show(1, function() {
					$('<img>').bind('load', function() {
							if (preload[0]) {
								this.src = preload.shift();
							} else {
								w = this.width + 65;
								h = this.height + 65;
								$('#popup').hide().fadeTo(0,0).css({
									'width'		: w + 'px',
									'height'	: h + 'px',
									'top'		: Math.round((mh-h) / 2) + $(document).scrollTop() + 'px',
									'left'		: Math.round((mw-w) / 2) + $(document).scrollLeft() + 'px'
									}).show().fadeTo($.cms.effects,1);
							}
						}).trigger('load');
					});
			} else {
				$('#popup').stop().css({
					'opacity'	: 0,
					'width'		: mw + 'px',
					'max-height'	: mh + 'px',
					'top'		: $(document).scrollTop() + 'px',
					'left'		: $(document).scrollLeft() + 'px'
					}).show().fadeTo($.cms.effects,1);
			}
		} else {
			$('#popup').stop().fadeTo($.cms.effects,0,function() {
				$('#popup').hide();
				$('#popup-content').html('');
				});
		}
		return false;
	}
};

$($.cms.popup.lib.init);
