﻿$(function() {
	var toggleInvites = function(el, state) {
		el = el || $('#chat-invites');
		el.toggleClass('collapsed', state);

		invitesReceiver.isCollapsed = el.hasClass('collapsed');
		invitesReceiver.toggleInvitations(invitesReceiver.isCollapsed);
	}

	var toggleText = function(el) {
		(el || $('#i-m .value'))
			.text(invitesReceiver.isCollapsed ? 'Maximize' : 'Minimize')
			.attr("title", invitesReceiver.isCollapsed ? 'Show maximized pop-up notifications' : 'Minimize pop-up notifications');
	}

	// invites-collapsed: текущее положение окна инвайтов в рамках данной сессии (cookie expires = 0) - локальная настройка
	// invites-collapsed-always: сохраненная настройка пользователя о состоянии окна инвайтов - глобальная настройка
	// Если есть локальная настройка, то учитывается только она, если ее нет, то учитывается глобальная.
	// Локальная настройка сбрасывается при закрытии браузера, т.к. cookie expires = 0
	if (typeof _invites_always_collapsed !== 'undefined' && _invites_always_collapsed)
		$.storage.set('invites-collapsed-always', 1);

	if (($.storage.get('invites-collapsed') === null && $.storage.get('invites-collapsed-always')) || $.storage.get('invites-collapsed'))
		toggleInvites();

	$('.aidate #i-footer, .aidate #i-bns, #chat-invites.aidate h4')
	    .addClass('clickable')
	    .each(function() { toggleText($('#i-m .value')); })
		.click(function() {
			toggleInvites($('#chat-invites'));

			typeof _invites_always_collapsed === 'undefined'
				&& $.storage.set('invites-collapsed', invitesReceiver.isCollapsed ? 1 : 0, { expires: 0 });

			toggleText();
		});

	$('#i-o').click(popupController.openInvites);

	$('#chat-invites ul').click(function(e) {
		var 
		target = $(e.target),
		attendee = target.parents('li:first').data('attendee');

		if (target.is('.accept-invitation')) {
			/* я пишу этот код не по своей воле */

			invitesReceiver.closeInvitation(
				attendee,
				target.parents('li:first').data('type'),
				target.parents('li:first').data('sender'),
				target.is('.switch')
					? popupController.switchChat
					: popupController.openChat
			);

			/* -------------------------------- */
		}

		if (target.is('.i-block'))
			invitesReceiver.closeInvitation(attendee, target.parents('li:first').data('type'), serviceChannel.blockContact);

		if (target.is('.i-close')) {
			invitesReceiver.closeInvitation(attendee, target.parents('li:first').data('type'), serviceChannel.sendBusy);
		}
	});

});
