var moreTalksLink = '';
var likes = '';
var content = '';
var currentTalk = '';

$(document).ready(
	function() {
		var block = $('.talks-block:last');
		setupTalks(block);
		setupMoreTalksLink(block);
		setupGroupInfo();
	}
);

function setupTalks(talksBlock) {
	var talks = talksBlock.find('.talk');
	talks.each(
		function() {
			setupEventHandlers($(this));
			setupLikes($(this));
			setupComments($(this));
		}
	);
}

function setupEventHandlers(talk) {
	talk.mouseenter(
		function() {
			$(this).css('background', '#ffffff');
			var topOffset = $(this).offset().top;
			var leftOffset = 250;
			currentTalk = $(this);
			$('#playbutton').css({'top': topOffset + 'px', 'left': leftOffset + 'px'});
			$('#playbutton').show();
			$('#playbutton').click(function(){
				var playLink = currentTalk.find('.playbar').find('a');
				var playLinkRel = playLink.attr("rel").split(" ");
				soundplayer(playLink[0], playLinkRel[0], playLinkRel[0], playLinkRel[1]);
				return false;
			});
		}
	);
	
	talk.mouseleave(
		function() {
			$(this).css('background', '#ffffff');
		}
	);



	currentTalk = talk;
	talk.find('.delete').click(function(){
		jQuery.facebox(function() {
			jQuery.get('removegroupform.php', function(data) {
				$.facebox(data);
				$('.footer').hide();
				$('#confirm-group-removal-form').submit(function(){
					$.facebox.close();
					var dRef = currentTalk.find('.delete').attr('href');
					$.ajax({url: dRef});
					currentTalk.animate({height: 0, opacity: 0}, 250, function(){$(this).hide();});
					return false;
				});
				$('#cancel-group-removal').submit(function(){
					$.facebox.close();
					return false;
				});			
			});
		});
		return false;
	});

	talk.find('.deletemetsa').click(function(){
		if (confirm('Are you sure you want to delete this post?')) {
			var dRef = currentTalk.find('.deletemetsa').attr('href');
			$.ajax({url: dRef});
			currentTalk.animate({height: 0, opacity: 0}, 250, function(){$(this).hide();});
			return false;
		}
		return false;
	});
}

function openFacebox() {
	jQuery.facebox(function(){
		var rel = $('#group-invite-link').attr('rel').split(' ');
		jQuery.get('/facebox/invitebox', {'group': rel[0], 'writeinvite': rel[1]}, function(data){
			$.facebox(data);
			$('#autocomplete-container').hide();
			$('#invitebox-search').keydown(autoArrows);
			$('#invitebox-search').keyup(getAutoComplete);
			$('#invitebox-search').focus();
			$('#send-invitations-button').click(function(event){
				event.preventDefault();
				var aliases = '';
				for (var i = 0; i < selectedusers.length; i++) {
					if (aliases)
						aliases += ',';
					aliases += selectedusers[i];
				}
				$('#aliases-to-invite').val(aliases);
				$('#users-to-invite-form').submit();
			});
		});
	});
}

var searchselection = -1;
var searchresult;
var selectedusers = new Array();
function autoArrows(event) {
	if(event.keyCode == 40 || event.keyCode == 38) {
		event.preventDefault();
		$('#autocomplete').find('div').css({'background-color':''});
		if (event.keyCode == 40)
			searchselection += 1;
		else
			searchselection -= 1;
		$('#autocomplete').find('div:eq('+searchselection+')').css({'background-color':'#000'});
	}
	if(event.keyCode == 13) {
		event.preventDefault();
		
		/* Add selected user to list of users-to-invite */
		
		selectedusers.push(searchresult[searchselection].alias);
				
		var div = '';
		div = $('#autocomplete').find('div:eq('+searchselection+')').html();
		$('#users-to-invite-list').append('<p>'+searchresult[searchselection].name+'</p>');
		$('#users-to-invite-box').css('display','block');
		
		$('#autocomplete').html('');
		$('#invitebox-search').val('');
		searchselection = -1;
	}
}

function getAutoComplete(event) {
	$('#autocomplete-container').css({'top': '60px', 'left': '10px'});
	$('#autocomplete-container').show();
	var q = event.target.value;
	if(event.keyCode == 40 || event.keyCode == 38 || event.keyCode == 13) {
		event.preventDefault();
		return;
	}
	if(q.length >= 2) {
		jQuery.getJSON('action/searchuser', {'q': q}, function(data){
			var html = '';
			var i;
			searchselection = -1;
			for (i = 0; i < data.length; i++) {
				html += '<div style="padding: 5px 0 0 0;"><div style="padding: 12px 0px 0px 34px; height: 20px; background: url('+data[i].avatarurl+') no-repeat;">'+data[i].name+' ('+data[i].alias+')</div></div>';
			}
			searchresult = data;
			$('#autocomplete').html(html);
		});
	} else {
		$('#autocomplete').html('');
		$('#autocomplete-container').hide();
	}
}

function setupLikes(talk) {

	talk.find('.more-likes-link').click(
		function() {
			$(this).parents('.likes').find('.more-likes').slideToggle("fast");
			return false;
		}
	);
	
	talk.find('a.like').click(
		function() {
			var likeLinkRel = $(this).attr("rel").split(" ");
			likes = $(this).parents('.talk-info').find('.likes');
			$.get("/action/like", { channelid: likeLinkRel[0], postid: likeLinkRel[1], authorid: likeLinkRel[2] },
				function(data){
    				likes.html(data);
					
					likes.find('.more-likes-link').click(
						function() {
							likes.find('.more-likes').slideToggle("fast");
							return false;
						}
					);
  				}
			);
			return false;
		}
	);

	/* Nice quickhack (no credits needed) */
	talk.find('a.metsacomment').click(
		function() {
			//var likeLinkRel = $(this).attr("rel").split(" ");
			//likes = $(this).parents('.talk-info').find('.likes');
			$.get($(this).attr("href"),
				function(data){
    				/*likes.html(data);
					
					likes.find('.more-likes-link').click(
						function() {
							likes.find('.more-likes').slideToggle("fast");
							return false;
						}
					);*/
					//alert(data);
					talk.removeClass('talk');
					talk.html(data);
					$('#playbutton').hide();
					talk.unbind('mouseenter');
  				}
			);
			return false;
		}
	);
}

function setupComments(talk) {
	var comments = talk.find('.comment');

	comments.each(
		function() {
			$(this).click(
				function() {
					var commentLink = $(this).find('a');
					var commentLinkRel = commentLink.attr("rel");
					commentplayer(commentLink[0], commentLinkRel, commentLinkRel, 0);
					return false;
				}
			);
		}
	);

}

function setupMoreTalksLink(block) {

	block.find('.more-talks-link').click(
		function() {
			moreTalksLink = $(this);
			var moreTalksLinkRel = $(this).attr('rel').split(" ");
			content = $('#content');
 			
			$.get("/action/getchposts.php", {offset: moreTalksLinkRel[0], channelid: moreTalksLinkRel[1]},
				function(data) {
					$(document).ready(
						function() {
					content.append(data);
					var lastBlock = $('.talks-block:last');
					lastBlock.hide();
					setupTalks(lastBlock);
					setupMoreTalksLink(lastBlock);
					moreTalksLink.hide();
   					lastBlock.fadeIn(1000);
   						}
   					);
				}
			, "html");
			return false;
		}
	);
}

function setupGroupInfo() {
	$('#edit-group-image').hide();

	$('#group-image').mouseenter(function(){
		$('#edit-group-image').fadeIn(250);
	});

	$('#group-image').mouseleave(function(){
		$('#edit-group-image').hide();
	});

	$('#groupinfo-members').click(
		function() {
			$('#groupinfo-more-members').slideToggle("slow");
			return false;
		}
	);
	
	$('#group-invite-link').bind('click', openFacebox);
}
