Your IP : 3.144.236.206


Current Path : /home/bitrix/ext_www/klimatlend.ua/bitrix/js/socialnetwork/common/
Upload File :
Current File : /home/bitrix/ext_www/klimatlend.ua/bitrix/js/socialnetwork/common/socialnetwork.common.js

(function() {

var BX = window.BX;

if (!!BX.SocialnetworkUICommon)
{
	return;
}

BX.SocialnetworkUICommon = {

	showRecallJoinRequestPopup: function(params)
	{
		if (
			parseInt(params.RELATION_ID) <= 0
			|| !BX.type.isNotEmptyString(params.URL_REJECT_OUTGOING_REQUEST)
		)
		{
			return;
		}

		var isProject = (typeof params.PROJECT != 'undefined' ? !!params.PROJECT : false);

		var successPopup = new BX.PopupWindow('bx-group-join-successfull-request-popup', window, {
			width: 400,
			autoHide: true,
			lightShadow: false,
			zIndex: 1000,
			overlay: true,
			content: BX.create('DIV', {children: [
					BX.create('DIV', {
						text: BX.message('SONET_EXT_COMMON_RECALL_JOIN_POPUP_TITLE'),
						props: {
							className: 'sonet-group-join-successfull-request-popup-title'
						}
					}),
					BX.create('DIV', {
						text: BX.message(isProject ? 'SONET_EXT_COMMON_RECALL_JOIN_POPUP_TEXT_PROJECT' : 'SONET_EXT_COMMON_RECALL_JOIN_POPUP_TEXT'),
						props: {
							className: 'sonet-group-join-successfull-request-popup-text'
						}
					}),
					BX.create('DIV', {
						props: {
							className: 'sonet-ui-btn-cont sonet-ui-btn-cont-center'
						},
						children: [
							BX.create('DIV', {
								children: [
									BX.create('BUTTON', {
										props: {
											className: 'ui-btn ui-btn-md ui-btn-danger'
										},
										events: {
											click: BX.delegate(function(event) {

												var _currentTarget = event.currentTarget;
												this.hideError(BX('bx-group-delete-request-error'));
												this.showButtonWait(_currentTarget);

												BX.ajax({
													url: params.URL_REJECT_OUTGOING_REQUEST,
													method: 'POST',
													dataType: 'json',
													data: {
														action: 'reject',
														max_count: 1,
														checked_0: 'Y',
														type_0: 'INVITE_GROUP',
														id_0: params.RELATION_ID,
														type: 'out',
														ajax_request: 'Y',
														sessid: BX.bitrix_sessid()
													},
													onsuccess: BX.delegate(function (deleteResponseData) {
														this.hideButtonWait(_currentTarget);

														if (
															typeof deleteResponseData.MESSAGE != 'undefined'
															&& deleteResponseData.MESSAGE == 'SUCCESS'
														)
														{
															successPopup.destroy();
															if (BX.type.isNotEmptyString(params.URL_GROUPS_LIST))
															{
																top.location.href = params.URL_GROUPS_LIST;
															}
														}
														else if (
															typeof deleteResponseData.MESSAGE != 'undefined'
															&& deleteResponseData.MESSAGE == 'ERROR'
															&& typeof deleteResponseData.ERROR_MESSAGE != 'undefined'
															&& deleteResponseData.ERROR_MESSAGE.length > 0
														)
														{
															this.showError(deleteResponseData.ERROR_MESSAGE, BX('bx-group-delete-request-error'));
														}
													}, this),
													onfailure: BX.delegate(function (deleteResponseData) {
														this.showError(BX.message('SONET_EXT_COMMON_AJAX_ERROR'), BX('bx-group-delete-request-error'));
														this.hideButtonWait(_currentTarget);
													}, this)
												});

											}, this)
										},
										text: BX.message(isProject ? 'SONET_EXT_COMMON_RECALL_JOIN_POPUP_BUTTON_PROJECT' : 'SONET_EXT_COMMON_RECALL_JOIN_POPUP_BUTTON')
									})
								]
							})
						]
					})
				]}),
			closeByEsc: true,
			closeIcon: true
		});
		successPopup.show();
	},

	showGroupMenuPopup: function(params)
	{
		var
			bindElement = params.bindElement,
			currentUserId = parseInt(BX.message('USER_ID')),
			sonetGroupMenu = BX.SocialnetworkUICommon.SonetGroupMenu.getInstance();

		if (BX(bindElement).tagName == 'BUTTON')
		{
			BX.addClass(bindElement, "ui-btn-active");
		}

		var menu = [];

		if (currentUserId > 0)
		{
			menu.push({
				text : BX.message(!!sonetGroupMenu.favoritesValue ? "SONET_EXT_COMMON_GROUP_MENU_FAVORITES_REMOVE" : "SONET_EXT_COMMON_GROUP_MENU_FAVORITES_ADD"),
				title : BX.message(!!sonetGroupMenu.favoritesValue ? "SONET_EXT_COMMON_GROUP_MENU_FAVORITES_REMOVE" : "SONET_EXT_COMMON_GROUP_MENU_FAVORITES_ADD"),
				id: "set-group-favorite",
				onclick : BX.delegate(function(event) {

					var favoritesValue = sonetGroupMenu.favoritesValue;

					sonetGroupMenu.setItemTitle(!favoritesValue);
					sonetGroupMenu.favoritesValue = !favoritesValue;

					BX.onCustomEvent(window, 'BX.Socialnetwork.WorkgroupMenu:onSetFavorites', [{
						groupId: params.groupId,
						value: !favoritesValue
					}]);

					this.setFavoritesAjax({
						groupId: params.groupId,
						favoritesValue: favoritesValue,
						callback: {
							success: function(data)
							{
								BX.onCustomEvent(window, 'BX.Socialnetwork.WorkgroupFavorites:onSet', [{
									id: params.groupId,
									name: data.NAME,
									url: data.URL,
									extranet: (typeof data.EXTRANET != 'undefined' ? data.EXTRANET : 'N')
								}, !favoritesValue]);

								window.top.BX.SidePanel.Instance.postMessageAll(window, 'sonetGroupEvent', {
									code: 'afterSetFavorites',
									data: {
										groupId: data.ID,
										value: (data.RESULT == 'Y')
									}
								});
							},
							failure: function(data)
							{
								sonetGroupMenu.favoritesValue = favoritesValue;
								sonetGroupMenu.setItemTitle(favoritesValue);

								BX.onCustomEvent(window, 'BX.Socialnetwork.WorkgroupMenu:onSetFavorites', [{
									groupId: params.groupId,
									value: favoritesValue
								}]);
							}
						}
					});
				}, this)
			});

			if (params.perms.canInitiate)
			{
				menu.push({
					text: BX.message(!!params.isProject ? 'SONET_EXT_COMMON_GROUP_MENU_REQU_PROJECT' : 'SONET_EXT_COMMON_GROUP_MENU_REQU'),
					title: BX.message(!!params.isProject ? 'SONET_EXT_COMMON_GROUP_MENU_REQU_PROJECT' : 'SONET_EXT_COMMON_GROUP_MENU_REQU'),
					href: params.urls.requestUser
				});
			}

			if (params.perms.canModify)
			{
				menu.push({
					text: BX.message(!!params.isProject ? 'SONET_EXT_COMMON_GROUP_MENU_EDIT_PROJECT' : 'SONET_EXT_COMMON_GROUP_MENU_EDIT'),
					title: BX.message(!!params.isProject ? 'SONET_EXT_COMMON_GROUP_MENU_EDIT_PROJECT' : 'SONET_EXT_COMMON_GROUP_MENU_EDIT'),
					href: params.urls.edit
				});

				if (!params.hideArchiveLinks)
				{
					var featuresItem = {
						text: BX.message('SONET_EXT_COMMON_GROUP_MENU_FEAT'),
						title : BX.message('SONET_EXT_COMMON_GROUP_MENU_FEAT')
					};

					if (params.editFeaturesAllowed)
					{
						featuresItem.href = params.urls.features;
					}
					else
					{
						featuresItem.onclick = function() {
							B24.licenseInfoPopup.show('sonetGroupFeatures', BX.message('SONET_EXT_COMMON_B24_SONET_GROUP_FEATURES_TITLE'), '<span>' + BX.message('SONET_EXT_COMMON_B24_SONET_GROUP_FEATURES_TEXT') + '</span>', true);
						};
					}
					menu.push(featuresItem);
				}

				menu.push({
					text: BX.message(!!params.isProject ? 'SONET_EXT_COMMON_GROUP_MENU_DELETE_PROJECT' : 'SONET_EXT_COMMON_GROUP_MENU_DELETE'),
					title: BX.message(!!params.isProject ? 'SONET_EXT_COMMON_GROUP_MENU_DELETE_PROJECT' : 'SONET_EXT_COMMON_GROUP_MENU_DELETE'),
					href: params.urls.delete
				});
			}

			menu.push({
				text: BX.message(params.perms.canModerate ? 'SONET_EXT_COMMON_GROUP_MENU_MEMBERS_EDIT' : 'SONET_EXT_COMMON_GROUP_MENU_MEMBERS_VIEW'),
				title: BX.message(params.perms.canModerate ? 'SONET_EXT_COMMON_GROUP_MENU_MEMBERS_EDIT' : 'SONET_EXT_COMMON_GROUP_MENU_MEMBERS_VIEW'),
				href : params.urls.members
			});

			if (params.perms.canInitiate)
			{
				if (params.perms.canProcessRequestsIn)
				{
					menu.push({
						text: BX.message('SONET_EXT_COMMON_GROUP_MENU_REQ_IN'),
						title: BX.message('SONET_EXT_COMMON_GROUP_MENU_REQ_IN'),
						href: params.urls.requests
					});
				}
				menu.push({
					text: BX.message(!!params.isProject ? 'SONET_EXT_COMMON_GROUP_MENU_REQ_OUT_PROJECT' : 'SONET_EXT_COMMON_GROUP_MENU_REQ_OUT'),
					title: BX.message(!!params.isProject ? 'SONET_EXT_COMMON_GROUP_MENU_REQ_OUT_PROJECT' : 'SONET_EXT_COMMON_GROUP_MENU_REQ_OUT'),
					href: params.urls.requestsOut
				});
			}

			if (
				(
					!BX.type.isNotEmptyString(params.userRole)
					|| (
						params.userRole == BX.message('USER_TO_GROUP_ROLE_REQUEST')
						&& params.initiatedByType == BX.message('USER_TO_GROUP_INITIATED_BY_GROUP')
					)
				)
				&& !params.hideArchiveLinks
			)
			{
				var userRequestItem = {
					text: BX.message(!!params.isProject ? 'SONET_EXT_COMMON_GROUP_MENU_JOIN_PROJECT' : 'SONET_EXT_COMMON_GROUP_MENU_JOIN'),
					title: BX.message(!!params.isProject ? 'SONET_EXT_COMMON_GROUP_MENU_JOIN_PROJECT' : 'SONET_EXT_COMMON_GROUP_MENU_JOIN')
				};

				if (!!params.isOpened)
				{
					userRequestItem.onclick = BX.proxy(function() {
						this.sendJoinRequest(params);
					}, this);
				}
				else
				{
					userRequestItem.href = params.urls.userRequestGroup;
				}
				menu.push(userRequestItem);
			}

			if (
				params.userIsMember
				&& !params.userIsAutoMember
				&& params.userRole != BX.message('USER_TO_GROUP_ROLE_OWNER')
			)
			{
				menu.push({
					text: BX.message(!!params.isProject ? 'SONET_EXT_COMMON_GROUP_MENU_EXIT_PROJECT' : 'SONET_EXT_COMMON_GROUP_MENU_EXIT'),
					title: BX.message(!!params.isProject ? 'SONET_EXT_COMMON_GROUP_MENU_EXIT_PROJECT' : 'SONET_EXT_COMMON_GROUP_MENU_EXIT'),
					href: params.urls.userLeaveGroup
				});
			}
		}

		var popup = BX.PopupMenu.create("group-profile-menu", bindElement, menu, {
			offsetTop: 5,
			offsetLeft : (bindElement.offsetWidth - 18),
			angle : true,
			events : {
				onPopupClose : function() {
					if (BX(bindElement).tagName == 'BUTTON')
					{
						BX.removeClass(bindElement, "ui-btn-active");
					}
				}
			}
		});

		var item = popup.getMenuItem("set-group-favorite");
		if (item)
		{
			sonetGroupMenu.menuItem = item.layout.text;
		}

		popup.popupWindow.show();
		sonetGroupMenu.menuPopup = popup;
	},

	sendJoinRequest: function(params) {
		BX.SocialnetworkUICommon.Waiter.getInstance().show();

		if (
			BX.SocialnetworkUICommon.SonetGroupMenu.getInstance()
			&& BX.SocialnetworkUICommon.SonetGroupMenu.getInstance().menuPopup
		)
		{
			BX.SocialnetworkUICommon.SonetGroupMenu.getInstance().menuPopup.close();
		}

		BX.ajax({
			url: params.urls.userRequestGroup,
			method: 'POST',
			dataType: 'json',
			data: {
				groupID: params.groupId,
				MESSAGE: '',
				ajax_request: 'Y',
				save: 'Y',
				sessid: BX.bitrix_sessid()
			},
			onsuccess: BX.delegate(function(responseData) {
				BX.SocialnetworkUICommon.Waiter.getInstance().hide();
				if (
					typeof responseData.MESSAGE != 'undefined'
					&& responseData.MESSAGE == 'SUCCESS'
					&& typeof responseData.URL != 'undefined'
				)
				{
					BX.onCustomEvent(window.top, 'sonetGroupEvent', [ {
						code: 'afterJoinRequestSend',
						data: {
							groupId: this.groupId
						}
					} ]);
					top.location.href = responseData.URL;
				}
			}, this),
			onfailure: BX.delegate(function() {
				BX.SocialnetworkUICommon.Waiter.getInstance().hide();
			}, this)
		});
	},

	setFavoritesAjax: function(params)
	{
		BX.ajax({
			url: '/bitrix/components/bitrix/socialnetwork.group_menu/ajax.php',
			method: 'POST',
			dataType: 'json',
			data: {
				groupID: params.groupId,
				action: (params.favoritesValue ? 'fav_unset' : 'fav_set'),
				sessid: BX.bitrix_sessid(),
				lang: BX.message('LANGUAGE_ID')
			},
			onsuccess: function(data) {
				if (
					typeof data.SUCCESS != 'undefined'
					&& data.SUCCESS == "Y"
				)
				{
					params.callback.success(data);
				}
				else
				{
					params.callback.failure(data);
				}
			},
			onfailure: function(data) {
				params.callback.failure(data);
			}
		});
	},

	showButtonWait: function(buttonNode)
	{
		buttonNode = BX(buttonNode);
		if (buttonNode)
		{
			BX.addClass(buttonNode, 'ui-btn-clock');
			BX.addClass(buttonNode, 'ui-btn-disabled');
			buttonNode.disabled = true;
			buttonNode.style.cursor = 'auto';
		}
	},

	hideButtonWait: function(buttonNode)
	{
		buttonNode = BX(buttonNode);
		if (buttonNode)
		{
			BX.removeClass(buttonNode, 'ui-btn-clock');
			BX.removeClass(buttonNode, 'ui-btn-disabled');
			buttonNode.disabled = false;
			buttonNode.style.cursor = 'cursor';
		}
	},

	showError: function(errorText, errorNode)
	{
		if (BX(errorNode))
		{
			BX(errorNode).innerHTML = errorText;
			BX.removeClass(BX(errorNode), 'sonet-ui-form-error-block-invisible');
		}
	},

	hideError: function(errorNode)
	{
		if (BX(errorNode))
		{
			BX.addClass(BX(errorNode), 'sonet-ui-form-error-block-invisible');
		}
	},

	reload: function()
	{
		if (top !== window) // current page in slider
		{
			if (typeof top.BX.SidePanel != 'undefined')
			{
				top.BX.SidePanel.Instance.getSliderByWindow(window).showLoader();
			}
			window.location.reload();
		}
		else if (
			typeof top.BX.SidePanel != 'undefined'
			&& top.BX.SidePanel.Instance.isOpen()
		) // there's an open slider
		{
			top.location.href = top.BX.SidePanel.Instance.getPageUrl();
		}
		else
		{
			top.location.reload();
		}
	},

	reloadBlock: function(params)
	{
		if (
			typeof params == 'undefined'
			|| !BX.type.isNotEmptyString(params.blockId)
			|| !BX(params.blockId)
		)
		{
			return;
		}

		var url = '';

		if (
			typeof top.BX.SidePanel != 'undefined'
			&& top.BX.SidePanel.Instance.isOpen()
		) // there's an open slider
		{
			url = top.BX.SidePanel.Instance.getPageUrl();
		}
		else
		{
			url = window.location.href;
		}

		BX.ajax.promise({
			url: url,
			method: 'POST',
			dataType: 'json',
			data: {
				BLOCK_RELOAD: 'Y',
				BLOCK_ID: params.blockId
			}
		}).then(BX.delegate(function(data) {
			if (
				typeof data != 'undefined'
				&& typeof data.CONTENT != 'undefined'
			)
			{
				BX(params.blockId).innerHTML = data.CONTENT;
				setTimeout(function() {
					BX.ajax.processRequestData(data.CONTENT, {
						dataType: 'HTML'
					});
				}, 0);
			}
		}, this));
	},

	closeGroupCardMenu: function(node)
	{
		if (!node)
		{
			return;
		}

		var doc = node.ownerDocument;
		var win = doc.defaultView || doc.parentWindow;

		if (
			!win
			|| typeof win.BX.SocialnetworkUICommon.SonetGroupMenu == 'undefined'
			|| !win.BX.SocialnetworkUICommon.SonetGroupMenu.getInstance().menuPopup
		)
		{
			return;
		}

		win.BX.SocialnetworkUICommon.SonetGroupMenu.getInstance().menuPopup.close();
	}
};

BX.SocialnetworkUICommon.Waiter = function()
{
	this.instance = null;
	this.waitTimeout = null;
	this.waitPopup = null;
};

BX.SocialnetworkUICommon.Waiter.getInstance = function()
{
	if (BX.SocialnetworkUICommon.Waiter.instance == null)
	{
		BX.SocialnetworkUICommon.Waiter.instance = new BX.SocialnetworkUICommon.Waiter();
	}

	return BX.SocialnetworkUICommon.Waiter.instance;
};

BX.SocialnetworkUICommon.Waiter.prototype = {

	show: function(timeout)
	{
		if (timeout !== 0)
		{
			return (this.waitTimeout = setTimeout(BX.proxy(function(){
				this.show(0)
			}, this), 50));
		}

		if (!this.waitPopup)
		{
			this.waitPopup = new BX.PopupWindow('sonet_common_wait_popup', window, {
				autoHide: true,
				lightShadow: true,
				zIndex: 2,
				content: BX.create('DIV', {
					props: {
						className: 'sonet-wait-cont'
					},
					children: [
						BX.create('DIV', {
							props: {
								className: 'sonet-wait-icon'
							}
						}),
						BX.create('DIV', {
							props: {
								className: 'sonet-wait-text'
							},
							html: BX.message('SONET_EXT_COMMON_WAIT')
						})
					]
				})
			});
		}
		else
		{
			this.waitPopup.setBindElement(window);
		}

		this.waitPopup.show();
	},

	hide: function()
	{
		if (this.waitTimeout)
		{
			clearTimeout(this.waitTimeout);
				this.waitTimeout = null;
		}

		if (this.waitPopup)
		{
			this.waitPopup.close();
		}
	}
};


BX.SocialnetworkUICommon.SonetGroupMenu = function()
{
	this.favoritesValue = null;
	this.instance = null;
	this.menuPopup = null;
	this.menuItem = null;
};

BX.SocialnetworkUICommon.SonetGroupMenu.getInstance = function()
{
	if (BX.SocialnetworkUICommon.SonetGroupMenu.instance == null)
	{
		BX.SocialnetworkUICommon.SonetGroupMenu.instance = new BX.SocialnetworkUICommon.SonetGroupMenu();

		BX.addCustomEvent("SidePanel.Slider:onClose", function(event) {
			if (BX.SocialnetworkUICommon.SonetGroupMenu.instance.menuPopup)
			{
				BX.SocialnetworkUICommon.SonetGroupMenu.instance.menuPopup.close();
			}
		});
	}

	return BX.SocialnetworkUICommon.SonetGroupMenu.instance;
};

BX.SocialnetworkUICommon.SonetGroupMenu.prototype = {
	setItemTitle: function(value)
	{
		if (this.menuItem)
		{
			BX(this.menuItem).innerHTML = BX.message(!!value ? 'SONET_EXT_COMMON_GROUP_MENU_FAVORITES_REMOVE' : 'SONET_EXT_COMMON_GROUP_MENU_FAVORITES_ADD');
		}
	}
};

})();