"use strict";var Loop=window.Loop||{};Loop.controls=Loop.controls||{};Loop.controls.IsUserLogged=function(){var n=Loop.Configuration.LoggedUserId;return isNaN(n)===!1&&parseInt(n,10)>=0};Loop.controls.DismissButton=function(n,t,i){function o(){Loop.Core.publish(Loop.constants.Events.SOCIAL_BUTTON_SAVING,{userId:t,isSaving:!0,buttonId:u.id});$("#"+r).prop("disabled",!0);$("#"+r).addClass(f)}function s(n,i){i.userId===t&&i.buttonId!==u.id&&(i.isSaving?($("#"+r).addClass("disabled"),$("#"+r).prop("disabled",!0)):($("#"+r).removeClass("disabled"),$("#"+r).prop("disabled",!1)))}function h(){document.getElementById(i).innerHTML+=e;document.getElementById(r).addEventListener("click",o);Loop.Core.subscribe(Loop.constants.Events.SOCIAL_BUTTON_SAVING,s)}var u=this,r="dismissButton_"+n+"_"+t+"_"+i,e='<button class="btn-not-mine" type="button" id="'+r+'" data-test-id="'+r+'" data-track="dismiss-user">Dismiss<\/button>',f="btn-saving-flat-red";n&&t&&i&&(isNaN(t)||(isNaN(n)||(n=parseInt(n,10)),t=parseInt(t,10),n!==t)&&(h(),u.id=r))};Loop=window.Loop||{};Loop.controls=Loop.controls||{};Loop.controls.NetworkButtonSize={Small:"networkSmallButton",Big:"networkBigButton",HeaderBig:"headerNetworkBigButton"};Loop.controls.NetworkButtonFloatPosition={Right:"rightFloat",Left:"leftFloat",None:"noneFloat"};Loop.controls.NetworkButtonState={Follow:"follow",Following:"following",None:"none"};Loop.controls.IsUserLogged=function(){var n=Loop.Configuration.LoggedUserId;return isNaN(n)===!1&&parseInt(n,10)>=0};Loop.controls.NetworkButton=function(n,t,i,r){function st(){r=r||{};r={initialState:r.initialState||Loop.controls.NetworkButtonState.None,buttonSize:r.buttonSize||Loop.controls.NetworkButtonSize.Small,floatPosition:r.floatPosition||Loop.controls.NetworkButtonFloatPosition.Right,isPublic:r.isPublic}}function s(){document.getElementById(u)&&($("#"+u).removeAttr("disabled"),$("#"+u).removeClass(k))}function e(n){var t="";return r.buttonSize===Loop.controls.NetworkButtonSize.HeaderBig&&(t="-big"),n+t}function g(){typeof Loop.Core.publish!="function"||!Loop.constants.Events||Loop.Core.publish(Loop.constants.Events.USER_FOLLOW_STATE_CHANGED,{userId:t,networkButtonState:f,senderId:u})}function nt(n){var i=Loop.Configuration.profile.ProfileUserId,r=Loop.Configuration.LoggedUserId,u=r===i,f=t===i;Loop.Configuration.profile.showAsPublic&&(u||f)?$.when(Loop.Common.updateNetworkingTotals()).done(function(){n||g()}):n||g()}function v(n,t){s();$("#"+u).removeClass(e(c)+" "+e(w));$("#"+u).addClass(e(h));$("#"+u).attr("data-track",b);f=Loop.controls.NetworkButtonState.Following;nt(t)}function y(n,t){s();$("#"+u).removeClass(e(h)+" "+e(w));$("#"+u).addClass(e(c));$("#"+u).attr("data-track",l);f=Loop.controls.NetworkButtonState.Follow;nt(t)}function ht(n,t){switch(n){case Loop.controls.NetworkButtonState.Following:v(null,t);return;case Loop.controls.NetworkButtonState.Follow:y(null,t);return}}function tt(n,i){!i||i.senderId===u||!i.userId||i.userId.toString()!==t.toString()||ht(i.networkButtonState,!0)}function it(n,i){i.userId===t&&i.buttonId!==o.id&&(i.isSaving?($("#"+u).prop("disabled",!0),$("#"+u).addClass("disabled")):($("#"+u).removeClass("disabled"),$("#"+u).prop("disabled",!1)))}function rt(){typeof Loop.Core.unsubscribe!="function"||!Loop.constants.Events||(Loop.Core.unsubscribe(Loop.constants.Events.USER_FOLLOW_STATE_CHANGED,tt),Loop.Core.unsubscribe(Loop.constants.Events.SOCIAL_BUTTON_SAVING,it))}function p(){rt();typeof Loop.Core.subscribe!="function"||!Loop.constants.Events||(Loop.Core.subscribe(Loop.constants.Events.USER_FOLLOW_STATE_CHANGED,tt),Loop.Core.subscribe(Loop.constants.Events.SOCIAL_BUTTON_SAVING,it))}function ct(){var n=ot;switch(f){case Loop.controls.NetworkButtonState.Following:n=n.replace("{buttonClass}",e(h));n=n.replace("{networkAction}",b);break;default:n=n.replace("{buttonClass}",e(c));n=n.replace("{networkAction}",l)}$("#"+i).append(n)}function lt(n,i,r){r&&r.ErrorCode===et?y():(Loop.Core.publish(Loop.constants.Events.SOCIAL_BUTTON_SAVING,{userId:t,isSaving:!1,buttonId:o.id}),s())}function at(n,i,r){r&&r.ErrorCode===ft?v():(Loop.Core.publish(Loop.constants.Events.SOCIAL_BUTTON_SAVING,{userId:t,isSaving:!1,buttonId:o.id}),s())}function vt(){var r,i;if(!Loop.controls.IsUserLogged()){i=Loop.Core.EndpointRepository.getEndpoint("FollowUser",{loggedUserId:n,followUserId:t});i.url();Loop.Core.Modals.showLoginRegisterModal(i.params.loginAction,i.params.registerAction,undefined,l);return}Loop.Core.publish(Loop.constants.Events.SOCIAL_BUTTON_SAVING,{userId:t,isSaving:!0,buttonId:o.id});$("#"+u).attr("disabled","disabled");$("#"+u).addClass(k);switch(f){case Loop.controls.NetworkButtonState.Following:Loop.Core.Ajax.deleteData({endpoint:Loop.Core.EndpointRepository.getEndpoint("UnfollowUser",{loggedUserId:n,followUserId:t}),successCallback:y,errorCallback:lt,preventModalOnError:!1});break;default:r={ItemIds:[t]};Loop.Core.Ajax.createData({endpoint:Loop.Core.EndpointRepository.getEndpoint("FollowUser",{loggedUserId:n,followUserId:t}),inputData:r,successCallback:v,errorCallback:at,preventModalOnError:!1})}}function yt(){document.getElementById(u).addEventListener("click",vt);document.getElementById(u).addEventListener("DOMNodeRemovedFromDocument",rt);document.getElementById(u).addEventListener("DOMNodeInsertedIntoDocument",p)}function ut(n,t){f===Loop.controls.NetworkButtonState.None&&(f=t?Loop.controls.NetworkButtonState.Following:Loop.controls.NetworkButtonState.Follow);document.getElementById(i)&&(ct(),yt());n===!1&&$("#"+u).hide()}var o=this,u="networkButton_"+n+"_"+t+"_"+i,h="btn-following",w="btn-blocked",c="btn-follow",l="follow-user",b="unfollow-user",k="disabled",ft=3,et=30,a=!1,f=Loop.controls.NetworkButtonState.None,ot='<button id="'+u+'" data-test-id="'+u+'" data-track="{networkAction}" data-track-referral="network-button" class="{buttonClass}"><\/button>',d;(d=function(){st();a=r.isPublic;n>0&&r.initialState===Loop.controls.NetworkButtonState.None?Loop.Core.Ajax.loadData({endpoint:Loop.Core.EndpointRepository.getEndpoint("FollowUser",{loggedUserId:n,followUserId:t})}).always(function(n){ut(a,n);p()}):(r.initialState!==Loop.controls.NetworkButtonState.None&&(f=r.initialState),ut(a),p())},n&&t&&i)&&(isNaN(t)||(isNaN(n)||(n=parseInt(n,10)),t=parseInt(t,10),n!==t)&&(d(),o.id=u))}