/**
*	@author http://chalker.ru/ ChALkeR
*	@copyright (c) ChALkeR
*	@version 2010-07-13
**/

$.cms.popup = {
	lock: false,
	lib: false,

	init: function() {
		$('a.image').die('click').unbind('click');
		$('a.image').live('click',function(e) {
				if (e.which>1) return true;
				return $.cms.popup.imageobject($(this));
			});
		$('a.object').die('click').unbind('click');
		$('a.object').live('click',function(e) {
				if (e.which>1) return true;
				var size = [0,0];
				var classes = $(this).attr('class').split(/\s+/);
				for (var i = 0; i < classes.length; i++){ 
					if (classes[i].substr(0,4) == 'size'){ 
						size = classes[i].substr(4).split('x');
						break; 
					}
				}
				return $.cms.ajax.popup_file($(this).attr('href'),$(this).attr('title'),size[0],size[1]);
			});
		$('a.popup').die('click').unbind('click');
		$('a.popup').live('click',function(e) {
				if (e.which>1) return true;
				return $.cms.ajax.popup($(this).attr('href'));
			});
		return $.cms.popup;
	},
	imageobject: function(object) {
		return $.cms.popup.lib.imageobject ? $.cms.popup.lib.imageobject(object) : $.cms.popup.image(object.attr('href'));
	},
	image: function(path) {
		return $.cms.popup.lib.image($.cms.popup.thumbnail(path),path);
	},
	thumbnail: function(path) {
		var s = $.cms.popup.maxsize();
		return path+'.('+s[0]+'x'+s[1]+')?nocache=1';
	},
	unthumbnail: function(path) {
		var s = $.cms.popup.maxsize();
		return path.replace('.('+s[0]+'x'+s[1]+')?nocache=1','');
	},
	isthumbnail: function(path) {
		return path.lastIndexOf(')?nocache=1') != -1;
	},
	overlay_toggle: function(arg) {
		return $.cms.popup.lib.overlay_toggle ? $.cms.popup.lib.overlay_toggle(arg) : $.cms.popup.lock_toggle(arg);
	},
	title_set: function(title) {
		if ($.cms.popup.lib.title_set) $.cms.popup.lib.title_set(title);
	},
	lock_toggle: function(arg) {
		$.cms.media_toggle(!arg);
		$.cms.popup.lock = arg;
		return false;
	},
	toggle: function(arg) {
		return $.cms.popup.lib.toggle(arg);
	},
	show: function(data, title, image) {
		$.cms.popup.overlay_toggle(true);
		return $.cms.popup.lib.show(data, title||'', image||false);
	},
	close: function() {
		$.cms.popup.lib.close();
		return $.cms.popup.overlay_toggle(false);
	},
	maxsize: function() {
		return [$(window).width()-$.cms.popup.lib.spacing[0],$(window).height()-$.cms.popup.lib.spacing[1]];
	},
	slideshow: {
		running: false,
		period: 5000,
		period_ctl: 500,
		running: false,
		start: function(selector) {
			if (!$.cms.popup.lib.slide || !$.cms.popup.lib.active) {
				return false;
			}
			$.cms.popup.slideshow.running = true;
			$(selector || 'a.image').first().click();
			setTimeout($.cms.popup.slideshow.run,$.cms.popup.slideshow.period);
			setTimeout($.cms.popup.slideshow.ctl,$.cms.popup.slideshow.period);
		},
		ctl: function() {
			if ($.cms.popup.slideshow.running && $.cms.popup.lib.active()) {
				setTimeout($.cms.popup.slideshow.ctl,$.cms.popup.slideshow.period_ctl);
			} else {
				$.cms.popup.slideshow.running = false;
			}
		},
		run: function() {
			if ($.cms.popup.slideshow.running && $.cms.popup.lib.active()) {
				$.cms.popup.lib.slide();
				setTimeout($.cms.popup.slideshow.run,$.cms.popup.slideshow.period);
			}
		}
	}
};

$($.cms.popup.init);
