function attach_edit_click(links) {
	for (var i = 0; i < links.length; i++) {
		var link = links[i];
		
		if ($(link).hasClass('editlink')) {
			$(link).addEvent('click', edit_link);
		}
	}
}

function edit_link(e) {
	var e = new Event(e).stop();
	var target = e.target;
	var rowid = target.id.substr('editlink'.length);
	
	var link = $('link' + rowid);
	var form = $('editlinkform');
	link.style.display = 'none';
	form.parentNode.removeChild(form);
	link.parentNode.insertBefore(form, link);

	$('editpage_id').value = rowid;
	$('editpage_url_href').innerHTML = $('editpage_url_href').href = $('editpage_url').value = $('linkurl' + rowid).value;
	$('editpage_label').value = link.getElement('span.url').firstChild.innerHTML;
	var linktype = link.getElement('span.linktype').getAttribute('linktype');
	var options = $('editpage_type').options;
	for (var i = 0; i < options.length; i++) {
		if (options[i].value == linktype) {
			$('editpage_type').selectedIndex = i;
			break;
		}
	}
//	$('editpage_annotation').value = link.getElement('span.annotation').firstChild.innerHTML;

	$('editlinkform').style.display = 'block';
}

window.addEvent('domready', function() {

	var links = document.getElementsByTagName('a');
	attach_edit_click(links);

	$('addlinkbutton').addEvent('click', function(e) {
		e = new Event(e).stop();
		$('addlinkform').style.display = 'block';
		$('page_url').focus();
	});

	$('canceladdlink').addEvent('click', function(e) {
		e = new Event(e).stop();
		$('addlinkform').style.display = 'none';
		$('addlink').reset();
		$('addlinklog').empty();
	});

	$('addlink').addEvent('submit', function(e) {
		new Event(e).stop();
		var log = $('addlinklog').empty().addClass('ajax-loading');
		log.style.display = 'block';
		new Request.HTML({
			url: this.action
			, update: log
			, onSuccess: function() {
				log.removeClass('ajax-loading');
				if (log.innerHTML.indexOf('Ссылка добавлена') > -1) {
					window.location.reload();
				}
			}
		}).post(this);
	});
	
	$('canceleditlink').addEvent('click', function(e) {
		e = new Event(e).stop();
		$('editlinkform').style.display = 'none';
		$('editlink').reset();
		$('editlinklog').empty();
		
		$('link' + $('editpage_id').value).style.display = 'block';
		$('editpage_id').value = '';
	});

	$('editlink').addEvent('submit', function(e) {
		new Event(e).stop();
		var log = $('editlinklog').empty().addClass('ajax-loading');
		log.style.display = 'block';
		new Request.HTML({
			url: this.action
			, update: log
			, onSuccess: function() {
				log.removeClass('ajax-loading');
				if (log.innerHTML.indexOf('Ссылка сохранена') > -1) {
					window.location.reload();
				}
			}
		}).post(this);
	});
	
	if ($('likebutton')) {
		$('likebutton').addEvent('click', function(e) {
			e = new Event(e).stop();
			new Request({
				url: '/favorite/like/add'
				, method: 'get'
				, onSuccess: function() {
					$('likebutton').style.display = 'none';
					$('like').style.display = 'inline';
				}
			}).send();
		});

		$('unlikebutton').addEvent('click', function(e) {
			e = new Event(e).stop();
			new Request({
				url: '/favorite/like/remove'
				, method: 'get'
				, onSuccess: function() {
					$('likebutton').style.display = 'inline';
					$('like').style.display = 'none';
				}
			}).send();
		});
	}

	if ($('likebutton')) {
		$('usebutton').addEvent('click', function(e) {
			e = new Event(e).stop();
			new Request({
				url: '/favorite/use/add'
				, method: 'get'
				, onSuccess: function() {
					$('usebutton').style.display = 'none';
					$('use').style.display = 'inline';
				}
			}).send();
		});

		$('unusebutton').addEvent('click', function(e) {
			e = new Event(e).stop();
			new Request({
				url: '/favorite/use/remove'
				, method: 'get'
				, onSuccess: function() {
					$('usebutton').style.display = 'inline';
					$('use').style.display = 'none';
				}
			}).send();
		});
	}

});
