/**
 * Binduje eventy pro unpack miniformularu na lightbox.php.
 */
function lightboxBindManagerEvents() {
	var picker = $('lightbox_management_buttons');

	var links = $A(picker.getElementsByTagName('A')).findAll(function(node) {
		if(node.className) {
			return (Element.hasClassName(node, 'packed')
					 || Element.hasClassName(node, 'unpacked'));
		} else {
			return false;
		}
	});

	links.each(function(node) {
		Event.observe(node, 'click', function(e) { onToggleManager(e, links); });
	});
}

/**
 * Postara se o unpack sipky a zviditelneni miniformulare pro ovladani akci lightboxu na lightbox.php.
 */
function onToggleManager(e, links) {
	var	target = Event.element(e);

	links.each(function(node) {
		node.id.match(/^.*_(.*)$/);
		var manager = $('manager_lb_' + RegExp.$1);

		if(node == target && Element.hasClassName(node, 'packed')) {
			Element.addClassName(node, 'unpacked');
			Element.removeClassName(node, 'packed');
			manager.style.display = 'block';
		} else {
			Element.addClassName(node, 'packed');
			Element.removeClassName(node, 'unpacked');
			manager.style.display = 'none';
		}
	});


	Event.stop(e);
}

/**
 * Prida/odebere foto z lightboxu.
 */
function lightboxTogglePhoto(e) {
	var target = Event.element(e);
	var url = target;

	// odstranime z query promennou redir, protoze pri ajaxu zadny redir nechceme
	if(url.search) {
		var query = $H(new String(url.search).toQueryParams());
		delete query.redir;
		query = query.toQueryString();
		url.search = '?' + query;
	}

	var myAjax = new Ajax.Request(
			url,
			{
				method: 'get',
				onComplete: function(req) {
					if(Element.hasClassName(target, 'lightbox_in')) {
						Element.removeClassName(target, 'lightbox_in');
						Element.addClassName(target, 'lightbox');
					} else {
						Element.addClassName(target, 'lightbox_in');
						Element.removeClassName(target, 'lightbox');
					}

					Event.stopObserving(target, 'click', lightboxNullEvent);
					Event.observe(target, 'click', lightboxTogglePhoto);
				}
			});

	Event.stopObserving(target, 'click', lightboxTogglePhoto);
	Event.observe(target, 'click', lightboxNullEvent);
	Event.stop(e);
}

/**
 * Potlaci defaultni akci po eventu, jinak nic nedela :-).
 */
function lightboxNullEvent(e) {
	Event.stop(e);
}
