{"version":3,"file":"re_agents_initialiser.592719a7dc91687f142d.js","mappings":"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","sources":["webpack:///./Agents/re_agents_deeplink_control.js","webpack:///./Agents/re_agents_initialiser.js","webpack:///./Agents/re_agents_search_control.js","webpack:///./Common/re_accordion_control.js","webpack:///./Common/re_connection_control.js","webpack:///./Common/re_inbox_notification_control.js","webpack:///./Common/re_loadmore_control.js","webpack:///./Common/re_location_autocomplete_control.js","webpack:///./Common/re_notifications_drawer_control.js","webpack:///./Common/re_user_geolocation_control.js","webpack:///./Data/re_countries_data.js","webpack:///./Data/re_languagespoken_data.js","webpack:///./Data/re_notificationsenum_data.js","webpack:///./Data/re_relationshiptypes_data.js","webpack:///./LocationConfirm/re_locationconfirm_control.js","webpack:///./Navigation/re_missed_reblasts_control.js","webpack:///./Navigation/re_navigation_control.js","webpack:///./Navigation/re_navigation_dialpad_control.js","webpack:///./Navigation/re_navigation_experience_control.js","webpack:///./Navigation/re_navigation_invite_control.js","webpack:///./Navigation/re_navigation_mobile_control.js","webpack:///./Navigation/re_navigation_scroll_control.js","webpack:///./Navigation/re_navigation_state_control.js","webpack:///./Navigation/re_navigation_tree_control.js","webpack:///./Navigation/re_navigation_unseen_notifications_control.js","webpack:///./Notifications/re_notification_delete_control.js","webpack:///./Notifications/re_notification_visit_control.js","webpack:///./Notifications/re_notificationtoolbar_connectionlist_control.js","webpack:///./Notifications/re_notificationtoolbar_genericlist_control.js","webpack:///./Services/re_address_service.js","webpack:///./Services/re_connection_service.js","webpack:///./Services/re_contentreach_service.js","webpack:///./Services/re_group_service.js","webpack:///./Services/re_missed_reblasts_service.js","webpack:///./Services/re_notification_service.js","webpack:///./Services/re_send_message_service.js","webpack:///./Services/re_usersearch_service.js","webpack:///./Templates/Common/re_connectbutton_compiled.js","webpack:///./Templates/re_genericmessage_drawer_compiled.js","webpack:///./Templates/re_locationconfirm_compiled.js","webpack:///./Templates/re_notificationtoolbar_list_compiled.js","webpack:///./Templates/re_sendmessage_compiled.js","webpack:///./UserLastActiveDate/re_userlastactivedate_control.js","webpack:///./UserSearch/re_usersearch_grid_compiled.js","webpack:///./UserSearch/re_usersearch_grid_control.js","webpack:///./UserSearch/re_usersearch_resultsummary_control.js","webpack:///./UserSearch/re_usersearch_scroll_control.js","webpack:///./Utilities/re_address_utility.js","webpack:///./Utilities/re_agents_search_utilities.js","webpack:///./Utilities/re_connection_utilities.js","webpack:///./Utilities/re_overlay_utilities.js","webpack:///./Utilities/re_track_phonenumber_utilities.js","webpack:///../../vendor/sticky-sidebar/sticky-sidebar.min.js","webpack:///../../vendor/jquery/jquery-ui.custom.min.js","webpack:///./Agents/re_agents_distances_partial.html","webpack:///./Agents/re_agents_search_form_template.html","webpack:///./Agents/re_agents_search_language_spoken_partial.html","webpack:///./Templates/Common/re_connectbutton_partial.html","webpack:///./Templates/Common/re_sendmessagebutton_partial.html","webpack:///./Templates/Common/re_sendreferralbutton_partial.html","webpack:///./Templates/re_genericmessage_drawer_template.html","webpack:///./Templates/re_locationconfirm_template.html","webpack:///./Templates/re_notificationtoolbar_list_template.html","webpack:///./Templates/re_sendmessage_template.html","webpack:///./UserSearch/re_usersearch_featuredpremium_partial.html","webpack:///./UserSearch/re_usersearch_grid_external_partial.html","webpack:///./UserSearch/re_usersearch_grid_generic_partial.html","webpack:///./UserSearch/re_usersearch_grid_internal_partial.html","webpack:///./UserSearch/re_usersearch_grid_noresults_partial.html","webpack:///./UserSearch/re_usersearch_grid_template.html","webpack:///external \"Pusher\"","webpack:///external \"jQuery\""],"sourcesContent":["define(['jquery', 'pubsub', 'generalUtilities', 'moduleUtilities', 'userSearchService'], function agentsDeeplinkControl(\r\n\t$,\r\n\tpubsub,\r\n\tgeneralUtilities,\r\n\tmoduleUtilities\r\n) {\r\n\t// set up\r\n\t// -------------------------------------------\r\n\r\n\t'use strict';\r\n\r\n\tvar module;\r\n\r\n\tmodule = {};\r\n\tmodule.private = {};\r\n\tmodule.properties = {};\r\n\r\n\t// utilities\r\n\t// -------------------------------------------\r\n\tmodule.private.determineQueryElements = function determineQueryElements(data) {\r\n\t\tvar queryObject, requestObject;\r\n\r\n\t\tqueryObject = {};\r\n\t\trequestObject = data.request;\r\n\r\n\t\tif (generalUtilities.prop(requestObject, 'Name')) {\r\n\t\t\tqueryObject.Name = requestObject.Name;\r\n\t\t}\r\n\t\tif (generalUtilities.prop(requestObject, 'Keywords')) {\r\n\t\t\tqueryObject.Keywords = requestObject.Keywords;\r\n\t\t}\r\n\t\tif (generalUtilities.prop(requestObject, 'RelationshipSearch')) {\r\n\t\t\tqueryObject.RelationshipSearch = requestObject.RelationshipSearch;\r\n\t\t}\r\n\t\tif (generalUtilities.prop(requestObject, 'LanguagesSpoken')) {\r\n\t\t\tqueryObject.LanguagesSpoken = requestObject.LanguagesSpoken;\r\n\t\t}\r\n\t\tif (generalUtilities.prop(requestObject, 'YearsOfExperience')) {\r\n\t\t\tqueryObject.YearsOfExperience = requestObject.YearsOfExperience;\r\n\t\t}\r\n\t\tif (generalUtilities.prop(requestObject, '_locationName')) {\r\n\t\t\tqueryObject._locationName = requestObject._locationName;\r\n }\r\n if (generalUtilities.prop(requestObject, '_subjectName')) {\r\n queryObject._subjectName = decodeURIComponent(requestObject._subjectName);\r\n }\r\n\t\tif (generalUtilities.prop(requestObject, 'Latitude')) {\r\n\t\t\tqueryObject.Latitude = requestObject.Latitude;\r\n\t\t}\r\n\t\tif (generalUtilities.prop(requestObject, 'Latitude1')) {\r\n\t\t\tqueryObject.Latitude1 = requestObject.Latitude1;\r\n\t\t}\r\n\t\tif (generalUtilities.prop(requestObject, 'Latitude2')) {\r\n\t\t\tqueryObject.Latitude2 = requestObject.Latitude2;\r\n\t\t}\r\n\t\tif (generalUtilities.prop(requestObject, 'Latitude3')) {\r\n\t\t\tqueryObject.Latitude3 = requestObject.Latitude3;\r\n\t\t}\r\n\t\tif (generalUtilities.prop(requestObject, 'Latitude4')) {\r\n\t\t\tqueryObject.Latitude4 = requestObject.Latitude4;\r\n\t\t}\r\n\t\tif (generalUtilities.prop(requestObject, 'Longitude')) {\r\n\t\t\tqueryObject.Longitude = requestObject.Longitude;\r\n\t\t}\r\n\t\tif (generalUtilities.prop(requestObject, 'Longitude1')) {\r\n\t\t\tqueryObject.Longitude1 = requestObject.Longitude1;\r\n\t\t}\r\n\t\tif (generalUtilities.prop(requestObject, 'Longitude2')) {\r\n\t\t\tqueryObject.Longitude2 = requestObject.Longitude2;\r\n\t\t}\r\n\t\tif (generalUtilities.prop(requestObject, 'Longitude3')) {\r\n\t\t\tqueryObject.Longitude3 = requestObject.Longitude3;\r\n\t\t}\r\n\t\tif (generalUtilities.prop(requestObject, 'Longitude4')) {\r\n\t\t\tqueryObject.Longitude4 = requestObject.Longitude4;\r\n }\r\n\t\tif (generalUtilities.prop(requestObject, '_subjectType')) {\r\n\t\t\tqueryObject._subjectType = requestObject._subjectType;\r\n\t\t}\r\n\t\tif (generalUtilities.prop(requestObject, '_subject')) {\r\n\t\t\tqueryObject._subject = requestObject._subject;\r\n }\r\n if (generalUtilities.prop(requestObject, 'CountryCode')) {\r\n queryObject.CountryCode = requestObject.CountryCode;\r\n }\r\n if (generalUtilities.prop(requestObject, 'SearchType')) {\r\n queryObject.SearchType = requestObject.SearchType;\r\n }\r\n\t\treturn queryObject;\r\n\t};\r\n\r\n\t// event handlers\r\n\t// -------------------------------------------\r\n\tmodule.private.handleDataUserSearchBrowseSuccess = function handleDataUserSearchBrowseSuccess(e, data) {\r\n\t\tvar queryObject, queryString, url;\r\n\r\n\t\tif (Modernizr.history) {\r\n\t\t\tqueryObject = [];\r\n\t\t\tqueryObject = module.private.determineQueryElements(data);\r\n\t\t\tqueryString = $.param(queryObject);\r\n\r\n\t\t\turl = (queryString.length) ? generalUtilities.stringFormat('?{0}', queryString) : window.location.pathname;\r\n\t\t\twindow.history.replaceState(data.request, 'Agents', url);\r\n\t\t}\r\n\t};\r\n\r\n\tmodule.private.handleDataUserSearchBrowse = function handleDataUserSearchBrowse(e, data) {\r\n\t\tif (data && data.response && data.response.Success && moduleUtilities.isOwnEvent(data, module.properties)) {\r\n\t\t\tmodule.private.handleDataUserSearchBrowseSuccess(e, data);\r\n\t\t}\r\n\t};\r\n\r\n\tmodule.private.init = function init(e, data) {\r\n\t\tmodule.properties.guid = data && data.guid ? data.guid : generalUtilities.uuid();\r\n\t};\r\n\r\n\t// external event bindings\r\n\t// -------------------------------------------\r\n\r\n\tpubsub.subscribe('uiWantsAgentsDeepLinkControlInit', module.private.init);\r\n\tpubsub.subscribe('dataUserSearchBrowse', module.private.handleDataUserSearchBrowse);\r\n\r\n\t// expose API\r\n\t// -------------------------------------------\r\n\treturn module;\r\n});\r\n","define([\r\n 'pubsub',\r\n 'generalUtilities',\r\n 'agentsSearchUtilities',\r\n 'agentsSearchControl',\r\n 'userSearchGridControl',\r\n 'agentsDeepLinkControl',\r\n 'loadMoreControl',\r\n 'userSearchResultsSummaryControl',\r\n 'userSearchScrollControl',\r\n 'navigationControl',\r\n 'mixpanelControl',\r\n 'languageControl',\r\n 'connectionControl',\r\n 'notificationsDrawerControl',\r\n 'locationConfirmControl',\r\n 'accordionControl'\r\n], function agentsInitialiser(pubsub, generalUtilities, agentsSearchUtilities) {\r\n 'use strict';\r\n\r\n var agentListGuid;\r\n\r\n agentListGuid = generalUtilities.uuid();\r\n\r\n pubsub.publish('uiWantsAgentsSearchControlInit', {\r\n guid: agentListGuid\r\n });\r\n\r\n pubsub.publish('uiWantsUserSearchGridControlInit', {\r\n guid: agentListGuid\r\n });\r\n\r\n pubsub.publish('uiAction.UserSearchResultSummaryControlInit', {\r\n guid: agentListGuid\r\n });\r\n\r\n pubsub.publish('uiWantsAgentsDeepLinkControlInit', {\r\n guid: agentListGuid\r\n });\r\n\r\n pubsub.publish('uiWantsLoadMoreInit', {\r\n guid: agentListGuid,\r\n watch: 'dataUserSearchBrowse',\r\n mpDataFrom: 'user-discovery',\r\n rowItemRemainder: agentsSearchUtilities.private.rowItemRemainder\r\n });\r\n});\r\n","define([\r\n 'jquery',\r\n 'pubsub',\r\n 'generalUtilities',\r\n 'agentsSearchUtilities',\r\n 'moduleUtilities',\r\n 'Handlebars',\r\n 'text!agentsSearchFormTemplate',\r\n 'text!agentsSearchLanguageSpokenPartial',\r\n 'languageSpokenData',\r\n 'addressUtility',\r\n 'userSearchService',\r\n 'groupService',\r\n 'jquery.ui',\r\n 'locationAutoCompleteControl',\r\n 'mixpanelControl',\r\n 'userGeolocationControl',\r\n 'qtipLib'\r\n], function agentsSearchLocationControl(\r\n $,\r\n pubsub,\r\n generalUtilities,\r\n agentsSearchUtilities,\r\n moduleUtilities,\r\n Handlebars,\r\n agentsSearchFormTemplate,\r\n agentsSearchLanguageSpokenPartial,\r\n languageSpokenGeneralData\r\n) {\r\n // set up\r\n // -------------------------------------------\r\n\r\n 'use strict';\r\n\r\n var module, selectors, values, qTipConfig, elements;\r\n\r\n module = {};\r\n module.private = {};\r\n module.properties = {};\r\n\r\n qTipConfig = {\r\n keyWordToolTip: {\r\n selector: '.js-keyword-tooltip',\r\n text: RESAAS.Localization.UserSearch.USER_SEARCH_KEYWORDS_TOOLTIP\r\n },\r\n FirmToolTip: {\r\n selector: '.js-firm-tooltip',\r\n text: RESAAS.Localization.UserSearch.TIP_ENTER_AT_LEAST_THREE_CHARS\r\n },\r\n YearOfExpToolTip: {\r\n selector: '.js-yearsofexp-tooltip',\r\n text: RESAAS.Localization.UserSearch.USER_SEARCH_YEARS_OF_EXPERIENCE_TOOLTIP\r\n }\r\n };\r\n\r\n selectors = {};\r\n elements = {};\r\n\r\n selectors.searchFormContainer = '.js-usersearch-search-inner';\r\n selectors.searchForm = '.js-usersearch-form';\r\n selectors.searchInputs = '.js-usersearch-input';\r\n selectors.searchFormSubmit = '.js-usersearch-submit';\r\n selectors.searchLocationInput = '.js-usersearch-location-input';\r\n selectors.searchLocationButton = '.js-usersearch-location-btn';\r\n selectors.searchFormResetBtn = '.js-usersearch-reset-btn';\r\n selectors.distanceInput = '.js-distance-input';\r\n selectors.usersearchnearmebtn = '.js-usersearchnearme-btn';\r\n selectors.usersearchmyfirmbtn = '.js-usersearchmyfirm-btn';\r\n selectors.distanceConatiner = '.js-distance-container';\r\n\r\n values = {};\r\n values.geoCodeTimeout = 3000;\r\n Handlebars.registerPartial('agentsSearchLanguageSpokenPartial', agentsSearchLanguageSpokenPartial);\r\n values.agentsSearchFormHtml = Handlebars.compile(agentsSearchFormTemplate);\r\n\r\n // utilities\r\n // -------------------------------------------\r\n\r\n module.private.bindqTip = function bindqTip() {\r\n $.each(qTipConfig, function qTipConfigFunc(key, value) {\r\n $(value.selector).qtip({\r\n content: {\r\n text: value.text\r\n },\r\n position: {\r\n my: 'bottom center',\r\n at: 'top center',\r\n target: $(value.selector),\r\n viewport: $(window),\r\n adjust: {\r\n method: 'shift shift'\r\n }\r\n },\r\n hide: {\r\n event: 'click'\r\n },\r\n show: {\r\n event: 'click',\r\n solo: true\r\n },\r\n style: {\r\n def: false,\r\n classes: 're-qtip-white',\r\n tip: {\r\n corner: 'bottom center',\r\n width: 20,\r\n height: 10,\r\n border: 1\r\n }\r\n },\r\n events: {\r\n render: function eventsRender(event, api) {\r\n elements.body.on('click', function eventsRenderBodyClick() {\r\n $(api.elements.tooltip).hide();\r\n });\r\n }\r\n }\r\n });\r\n });\r\n };\r\n\r\n module.private.getDeepLink = function getDeepLink(location) {\r\n var obj, deepLinkPath, deepLinkQuery;\r\n deepLinkPath = module.private.getDeepLinkPath(location.pathname);\r\n deepLinkQuery = module.private.getDeepLinkQuery(location.search);\r\n\r\n if ((deepLinkQuery._subjectType === 'firm' || deepLinkQuery._subjectType === 'group') && deepLinkQuery._subject) {\r\n deepLinkQuery.RelationshipSearch = deepLinkQuery._subject;\r\n }\r\n\r\n // default user location if there is no query parameters and path not include group and firm.\r\n if (Object.keys(deepLinkQuery).length === 0 && deepLinkPath._subjectType !== 'group' && deepLinkPath._subjectType !== 'firm' && generalUtilities.prop(window, 'RESAAS.Environment.Experience') !== 'commercial') {\r\n deepLinkPath.defaultUserLocation = true;\r\n }\r\n\r\n obj = $.extend(deepLinkPath, deepLinkQuery);\r\n\r\n obj._subjectName = obj._subjectName ? decodeURIComponent(obj._subjectName) : obj._subject;\r\n obj._locationName = obj._locationName ? decodeURIComponent(obj._locationName) : null;\r\n\r\n obj.Name = obj.Name ? decodeURIComponent(obj.Name) : null;\r\n \r\n return obj;\r\n };\r\n\r\n module.private.getDeepLinkPath = function getDeepLinkPath(pathname) {\r\n var obj, pathArray;\r\n obj = {\r\n _show: null,\r\n _type: null,\r\n _subject: null,\r\n _subjectType: null\r\n };\r\n\r\n pathArray = pathname.split('/');\r\n\r\n // get type\r\n obj._type = pathArray[2];\r\n\r\n switch (obj._type) {\r\n case 'group':\r\n obj._show = 'all';\r\n obj._subjectType = 'group';\r\n obj._subject = pathArray[3];\r\n obj.RelationshipSearch = pathArray[3];\r\n break;\r\n case 'firm':\r\n obj._show = 'all';\r\n obj._subjectType = 'firm';\r\n obj._subject = pathArray[3];\r\n obj.RelationshipSearch = pathArray[3];\r\n break;\r\n case 'location':\r\n obj._show = 'all';\r\n // get city from path and capitalize first letter\r\n obj._locationName = pathArray[3][0].toUpperCase() + pathArray[3].slice(1);\r\n // if state is in path, add it to location name\r\n if (pathArray.length > 4) {\r\n if (pathArray[4] !== '') {\r\n obj._locationName = obj._locationName + ', ' + pathArray[4].toUpperCase();\r\n }\r\n }\r\n break;\r\n case 'country':\r\n obj.CountryCode = pathArray[3];\r\n obj.SearchType = 1;\r\n break;\r\n default:\r\n // do nothing\r\n }\r\n\r\n return obj;\r\n };\r\n\r\n module.private.getDeepLinkQuery = function getDeepLinkQuery(query) {\r\n if (typeof query === 'string') {\r\n return generalUtilities.queryStringToObject(query);\r\n }\r\n\r\n return {};\r\n };\r\n\r\n\r\n module.private.renderForm = function renderForm(data) {\r\n var $html, formData, allLanguageSpokenList, languagesSpoken;\r\n\r\n formData = {};\r\n formData = $.extend({}, data);\r\n formData.useMiles = RESAAS.User2.CountryId === 224;\r\n allLanguageSpokenList = languageSpokenGeneralData.browse();\r\n\r\n if (formData.LanguagesSpoken){\r\n languagesSpoken = decodeURIComponent(formData.LanguagesSpoken);\r\n allLanguageSpokenList.forEach(function check(element) { if (languagesSpoken.indexOf(element.value) !== -1) { element.checked = true } else { element.checked = false } });\r\n }\r\n\r\n if (generalUtilities.prop(window, 'RESAAS.User2.UserId')){\r\n formData.userAuthorized = true;\r\n }\r\n\r\n if (generalUtilities.prop(window, 'RESAAS.User2.FirmId')) {\r\n formData.hasFirm = true;\r\n }\r\n\r\n if (generalUtilities.prop(window, 'RESAAS.Environment.Experience') === 'commercial') {\r\n formData.isCommercial = true;\r\n }\r\n\r\n // default user location\r\n if (formData.defaultUserLocation && generalUtilities.prop(window, 'RESAAS.User2.Longitude') && generalUtilities.prop(window, 'RESAAS.User2.Latitude')) {\r\n formData.Longitude = RESAAS.User2.Longitude;\r\n formData.Latitude = RESAAS.User2.Latitude;\r\n formData._locationName = agentsSearchUtilities.getUserLocation(RESAAS.User2);\r\n formData.CountryCode = generalUtilities.prop(window, 'RESAAS.User2.CountryId');\r\n }\r\n\r\n formData.topLanguageSpokenList = allLanguageSpokenList.slice(0, 5);\r\n formData.restLanguageSpokenList = allLanguageSpokenList.slice(5);\r\n\r\n $html = values.agentsSearchFormHtml(formData);\r\n $(selectors.searchFormContainer).html($html);\r\n\r\n // expand the search relationship toggle\r\n if (formData._subject) {\r\n pubsub.publish('accordionControl.expand', { selector: '.re-usersearch-relationship' });\r\n }\r\n\r\n if (formData.Longitude && formData.Latitude) {\r\n agentsSearchUtilities.renderDistanceDropDown(true);\r\n } else {\r\n agentsSearchUtilities.renderDistanceDropDown(false);\r\n }\r\n\r\n //tooltip\r\n module.private.bindqTip();\r\n };\r\n\r\n module.private.handleSearchFormSubmit = function handleSearchFormSubmit(e) {\r\n e.preventDefault();\r\n };\r\n\r\n module.private.handleNearMeBtn = function handleNearMeBtn(e) {\r\n module.private.handleResetForm(e);\r\n $('#all').click();\r\n $('.js-usergeolocation-btn').click();\r\n };\r\n\r\n module.private.handleMyFirmBtn = function handleMyFirmBtn(e) {\r\n module.private.handleResetForm(e);\r\n $('#myfirm').click();\r\n };\r\n\r\n module.private.handleResetForm = function handleResetForm(e) {\r\n e.preventDefault();\r\n generalUtilities.disableAndWaitFor(selectors.searchFormResetBtn, 'dataUserSearchBrowse');\r\n $('input[type=\"text\"]').val('');\r\n $('input[type=\"hidden\"]').val('');\r\n $('input[type=\"number\"]').val('');\r\n $('[name=\"YearsOfExperience\"]').prop('selectedIndex', 0);\r\n $('[name=\"LanguagesSpoken\"]:checked').each(function languageSpokenEach() {\r\n this.checked = false;\r\n });\r\n $('[name=\"RelationshipSearch\"]:checked').each(function relationshipsSearchEach() {\r\n this.checked = false;\r\n });\r\n $('#all').prop('checked', 'checked');\r\n agentsSearchUtilities.renderDistanceDropDown(false);\r\n window.history.replaceState(null, 'Agents', '/agents');\r\n agentsSearchUtilities.doSearch();\r\n pubsub.publish('mixpanel.Intent', { type: 'reset button user discovery', from: window.pageType });\r\n\r\n };\r\n\r\n module.private.handleClickApply = function handleClickApply() {\r\n agentsSearchUtilities.doSearch();\r\n pubsub.publish('mixpanel.Intent', { type: 'apply button user discovery', from: window.pageType });\r\n };\r\n\r\n module.private.handleDistanceInputChange = function handleDistanceInputChange() {\r\n agentsSearchUtilities.doSearch();\r\n }\r\n module.private.renderPage = function renderPage(params) {\r\n\r\n // render form\r\n module.private.renderForm(params);\r\n\r\n // bind google autocomplete to location input\r\n agentsSearchUtilities.setUpLocationAutocomplete();\r\n\r\n // do search\r\n agentsSearchUtilities.doSearch('deeplink');\r\n\r\n pubsub.publish('accordionControl.bind', {\r\n selector: '.js-userview-toggles'\r\n });\r\n\r\n }\r\n module.private.handleDataGetUserGroupsAll = function handleDataGetUserGroupsAll(e, data) {\r\n var params, groupList,group;\r\n var topGroupList = [];\r\n var bottomGroupList = [];\r\n // get deep link values\r\n params = module.private.getDeepLink(window.location);\r\n if (generalUtilities.prop(data, 'response.status') || generalUtilities.prop(data, 'response.statusText')) {\r\n pubsub.publish('loggly.error', {\r\n message: generalUtilities.stringFormat(\r\n 'fetch groups that user belongs to: {0}',\r\n JSON.stringify(data)\r\n )\r\n });\r\n } else {\r\n groupList = generalUtilities.prop(data, 'response').filter(function (g) {\r\n return g.UniqueName !== \"local-feed\" && g.FirmGroupType === 1;\r\n });\r\n \r\n // Add the searched firm/group to the groupList if the group not exist in the list\r\n if (params._subjectName && params._subject) {\r\n\r\n var index = groupList.findIndex(function findIndex(group) {\r\n return group.UniqueName === params._subject;\r\n });\r\n\r\n // If the group exists -> remove it from its current position\r\n if (index !== -1) {\r\n group = groupList[index];\r\n groupList.splice(index, 1);\r\n } else {\r\n group = { GroupName: params._subjectName, UniqueName: params._subject, SearchType: params._subjectType }\r\n }\r\n\r\n // Add the group to the top of the list\r\n groupList.unshift(group);\r\n }\r\n\r\n // more than 2 group\r\n if (groupList.length > 2) {\r\n topGroupList = groupList.slice(0, 2);\r\n bottomGroupList = groupList.slice(2);\r\n } else {\r\n topGroupList = groupList;\r\n }\r\n\r\n params.topGroupList = topGroupList;\r\n params.bottomGroupList = bottomGroupList; \r\n }\r\n module.private.renderPage(params);\r\n }\r\n\r\n module.private.getUserGroupsAll = function getUserGroupsAll() {\r\n var requestOptions = {};\r\n var request = {};\r\n var serviceObject = moduleUtilities.createServiceObject(request, module.properties, requestOptions);\r\n pubsub.publish('uiNeeds.GetUserGroupsAll', serviceObject);\r\n };\r\n\r\n module.private.init = function init(e, data) {\r\n // set values\r\n var params;\r\n\r\n module.properties.guid = data && data.guid ? data.guid : generalUtilities.uuid();\r\n elements.body = $('body');\r\n\r\n if (generalUtilities.prop(window, 'RESAAS.User2.UserId')) {\r\n module.private.getUserGroupsAll();\r\n } else {\r\n // get deep link values\r\n params = module.private.getDeepLink(window.location);\r\n module.private.renderPage(params);\r\n }\r\n };\r\n\r\n // event bindings\r\n // -------------------------------------------\r\n\r\n $('body').on('submit', selectors.searchForm, module.private.handleSearchFormSubmit);\r\n agentsSearchUtilities.bindHandleFieldChanged();\r\n $('body').on('click', selectors.searchFormResetBtn, module.private.handleResetForm);\r\n $('body').on('click', selectors.searchFormSubmit, module.private.handleClickApply);\r\n $('body').on('change', selectors.distanceInput, module.private.handleDistanceInputChange);\r\n $('body').on('click', selectors.usersearchnearmebtn, module.private.handleNearMeBtn);\r\n $('body').on('click', selectors.usersearchmyfirmbtn, module.private.handleMyFirmBtn);\r\n // external event bindings\r\n // -------------------------------------------\r\n\r\n pubsub.subscribe('uiWantsAgentsSearchControlInit', module.private.init);\r\n pubsub.subscribe('data.GetUserGroupsAll', module.private.handleDataGetUserGroupsAll)\r\n agentsSearchUtilities.bindhandleDataUserLocationBrowse();\r\n\r\n // expose API\r\n // -------------------------------------------\r\n return module;\r\n});\r\n","; (function (root, factory) {\r\n\tif (typeof define === 'function' && define.amd) {\r\n\t\tdefine(['jquery', 'pubsub'], factory);\r\n\t} else {\r\n\t\troot.reGeneralUtilities = factory(root.jQuery, root.PubSub);\r\n\t}\r\n}(this, function ($, pubsub) {\r\n\t\t'use strict';\r\n\r\n\t\tvar actions, settings;\r\n\t\t\r\n\t\tactions = {};\r\n\t\tsettings = {};\r\n\r\n\t\tsettings.accordionLinkSelector = '.js-accordion-link';\r\n\t\tsettings.accordionLinkSelectedClass = 'js-accordion-link-selected';\r\n\t\tsettings.accordionSectionSelector = '.js-accordion-section';\r\n\t\tsettings.accordionSectionVisibleClass = 'js-accordion-section-visible';\r\n\r\n\r\n\t\tactions.bind = function (e, data) {\r\n\t\t\t$(data.selector).on('click.accordionControl', settings.accordionLinkSelector, function (e) {\r\n\t\t\t\tvar $this, id;\r\n\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\t$this = $(e.target);\r\n\t\t\t\tid = $this.attr('href');\r\n\r\n\t\t\t\t// Check if the section is already open\r\n\t\t\t\tvar isOpen = $(id).hasClass(settings.accordionSectionVisibleClass);\r\n\r\n\t\t\t\tif (!isOpen) {\r\n\t\t\t\t\tactions.expand(null, $this);\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// close the selected section\r\n\t\t\t\t$(id).removeClass(settings.accordionSectionVisibleClass);\r\n\t\t\t\t$this.removeClass(settings.accordionLinkSelectedClass);\r\n\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\tactions.unbind = function (e, data) {\r\n\t\t\tvar $target;\r\n\r\n\t\t\t$target = $(data.selector);\r\n\r\n\t\t\t$target.off('click.accordionControl');\r\n\t\t\t$target.find('.' + settings.accordionLinkSelectedClass).removeClass(settings.accordionLinkSelectedClass);\r\n\t\t\t$target.find('.' + settings.accordionSectionVisibleClass).removeClass(settings.accordionSectionVisibleClass);\r\n\t\t};\r\n\r\n\t\tactions.expand = function (e, data) {\r\n\t\t\tvar $target, notAllowToClose, accordionLinks, accordionSections;\r\n\t\t\t\r\n\t\t\tif (data.selector) {\r\n\t\t\t\t$target = $(data.selector);\r\n\t\t\t\taccordionLinks = $target.find(settings.accordionLinkSelector);\r\n\t\t\t\taccordionSections = $target.find(settings.accordionSectionSelector);\r\n\t\t\t} else {\r\n\t\t\t\taccordionLinks = $(data);\r\n\t\t\t\taccordionSections = $($(data).attr('href'));\r\n\t\t\t}\r\n\r\n\t\t\t// Remove the accordions title\r\n\t\t\taccordionLinks.each(function () {\r\n\t\t\t\tvar $accordionLink = $(this);\r\n\t\t\t\tnotAllowToClose = $accordionLink.data('not-close') === true;\r\n\t\t\t\tif (notAllowToClose) {\r\n\t\t\t\t\t$accordionLink.remove();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\taccordionLinks.addClass(settings.accordionLinkSelectedClass);\r\n\t\t\taccordionSections.addClass(settings.accordionSectionVisibleClass);\r\n\t\t};\r\n\r\n\t\tpubsub.subscribe('accordionControl.bind', actions.bind);\r\n\t\tpubsub.subscribe('accordionControl.unbind', actions.unbind);\r\n\t\tpubsub.subscribe('accordionControl.expand', actions.expand);\r\n\r\n\t\treturn true;\r\n\t}));\r\n","define([\r\n 'jquery',\r\n 'pubsub',\r\n 'overLay',\r\n 'moduleUtilities',\r\n 'generalUtilities',\r\n 'validator',\r\n 'connectButtonCompiled',\r\n 'relationshiptypesData',\r\n 'sendMessageCompiled',\r\n 'connectionUtilities',\r\n 'connectionService',\r\n 'imService',\r\n 'messageControl2'\r\n], function(\r\n $,\r\n pubsub,\r\n overLay,\r\n moduleUtilities,\r\n generalUtilities,\r\n validator,\r\n connectButtonCompiled,\r\n relationshiptypesData,\r\n sendMessageCompiled,\r\n connectionUtilities\r\n) {\r\n /**\r\n * re_connection_control\r\n * @exports connectionControl\r\n * @author Elina Goldin\r\n */\r\n\r\n //#region set up\r\n\r\n 'use strict';\r\n\r\n var module, selectors, elements, overLayModule, constraints;\r\n\r\n module = {};\r\n module.private = {};\r\n module.properties = {};\r\n selectors = {\r\n connectBtn: '.js-connect-btn',\r\n sendmessageForm: '#sendmessageForm'\r\n };\r\n elements = {};\r\n\r\n constraints = {\r\n message: {\r\n length: {\r\n maximum: 400,\r\n message: ['^', 'Maximum 400 characters'].join(' ')\r\n }\r\n }\r\n };\r\n\r\n // Initialize overlay.\r\n overLayModule = new overLay();\r\n overLayModule.init();\r\n\r\n //#endregion\r\n\r\n /**\r\n * Connection response error handler\r\n * @param {object} e event\r\n * @param {object} data response data\r\n */\r\n module.private.handleDataConnectionError = function(e, data) {\r\n var errorMsg, submitBtn;\r\n\r\n //remove element before creating loggly message\r\n if (data.element) {\r\n delete data.element;\r\n }\r\n\r\n pubsub.publish('loggly.error', { message: JSON.stringify(data) });\r\n\r\n errorMsg =\r\n data.response.SaveResult.Message === window.RESAAS.Localization.Global.RELATIONSHIP_ALREADY_EXISTS\r\n ? window.RESAAS.Localization.Global.RELATIONSHIP_ALREADY_EXISTS\r\n : RESAAS.Localization.Global.GENERIC_WEBSERVICE_ERROR_MESSAGE;\r\n\r\n\r\n submitBtn = document.getElementById('submitBtn');\r\n\r\n if (submitBtn) {\r\n submitBtn.classList.remove('submitting');\r\n }\r\n\r\n overLayModule.closeOverlay(true);\r\n pubsub.publish('uiAction.MessageAdd', {\r\n message: errorMsg,\r\n type: 'error'\r\n });\r\n };\r\n\r\n /**\r\n * Run validator\r\n * @param {object} form the message form.\r\n */\r\n module.private.validateMessageForm = function validateMessageForm(form) {\r\n return validator.validateAndWatch(form, constraints);\r\n };\r\n\r\n\r\n module.private.handleConnectRequest = function handleConnectRequest(e, userId, connectAction, message) {\r\n var request, serviceObject, requestOptions;\r\n\r\n requestOptions = {\r\n connectaction: connectAction,\r\n };\r\n\r\n request = {\r\n contact: {\r\n KnownContactUserId: userId,\r\n InvitationMessage: message,\r\n Relationships: [\r\n {\r\n Type: relationshiptypesData.browse().Connection,\r\n Action: 0 \r\n }\r\n ]\r\n }\r\n };\r\n\r\n serviceObject = moduleUtilities.createServiceObject(request, module.properties, requestOptions);\r\n\r\n generalUtilities.disableAndWaitFor(e.target, 'data.ConnectionAdd');\r\n\r\n pubsub.publish('uiHas.ConnectionAdd', serviceObject);\r\n };\r\n\r\n\r\n /**\r\n * Handle click on the action, connects the users\r\n * @param {object} e Click event\r\n */\r\n module.private.handleSendMessageSubmit = function(e) {\r\n e.preventDefault();\r\n\r\n var $currentTarget, formData, sendMessageForm, invalid, recipientUserId, connectaction;\r\n $currentTarget = $(e.currentTarget);\r\n $currentTarget.addClass('submitting');\r\n recipientUserId = $currentTarget.data('contactguid');\r\n connectaction = $currentTarget.data('connectaction');\r\n sendMessageForm = $(selectors.sendmessageForm);\r\n formData = validator.serializeObject(sendMessageForm);\r\n invalid = module.private.validateMessageForm(sendMessageForm);\r\n if (!invalid) {\r\n module.private.handleConnectRequest(e, recipientUserId, connectaction, formData.message);\r\n } else {\r\n $currentTarget.removeClass('submitting');\r\n }\r\n };\r\n\r\n /**\r\n * Connection response success handler\r\n * @param {object} e event\r\n * @param {object} data response data\r\n */\r\n module.private.handleDataConnectionSuccess = function(e, data) {\r\n var successMsg, connectAction, connectBtn, templateData, requester, receiver, html, submitBtn;\r\n\r\n connectAction = generalUtilities.prop(data, 'connectaction');\r\n receiver = generalUtilities.prop(data, 'response.SaveResult.Data.Name');\r\n requester = [window.RESAAS.User2.FirstName, window.RESAAS.User2.LastName].join(' ');\r\n\r\n //accpeting a connection\r\n if (connectAction === 'accept') {\r\n successMsg = generalUtilities.stringFormat(\r\n 'You’re Connected! Click here to start a conversation and explore new opportunities together!',\r\n generalUtilities.prop(data, 'response.SaveResult.Data.KnownContactUserId')\r\n )\r\n\r\n pubsub.publish('relationship.accepted', {\r\n type: 'connection accepted',\r\n requester: requester,\r\n receiver: receiver,\r\n element: 'notifications',\r\n content: 'relationship accepted'\r\n });\r\n\r\n pubsub.publish('uiAction.MessageAdd', {\r\n message: successMsg,\r\n autoDelete: false\r\n });\r\n\r\n //requesting a connection\r\n } else {\r\n pubsub.publish('relationship.requested', {\r\n type: 'connection request',\r\n requester: requester,\r\n receiver: receiver,\r\n element: 'agent search'\r\n });\r\n\r\n if (generalUtilities.prop(data, 'request.contact.InvitationMessage')) {\r\n pubsub.publish('mixpanel.AddContent', {\r\n content: 'Send Message',\r\n type: 'Connect request message'\r\n });\r\n }\r\n pubsub.publish('uiAction.MessageAdd', {\r\n message: 'Your connection request has been sent!',\r\n autoDelete: false,\r\n perpetuate: false\r\n });\r\n }\r\n\r\n //update button\r\n templateData = {\r\n connectionInfo: {\r\n UserId: generalUtilities.prop(data, 'response.SaveResult.Data.KnownContactUserId'),\r\n ImFollowing: true,\r\n FollowingMe: connectAction === 'accept' ? true : false,\r\n Connected: connectAction === 'accept' ? true : false,\r\n },\r\n greyDisabled: window.pageType === 'user-discovery'\r\n\r\n };\r\n\r\n html = connectButtonCompiled(templateData);\r\n\r\n connectBtn = document.querySelector('[data-contactguid=\"' + generalUtilities.prop(data, 'response.SaveResult.Data.KnownContactUserId') + '\"]');\r\n\r\n if (connectBtn) {\r\n connectBtn.outerHTML = html;\r\n }\r\n\r\n submitBtn = document.getElementById('submitBtn');\r\n\r\n if (submitBtn) {\r\n submitBtn.classList.remove('submitting');\r\n }\r\n\r\n overLayModule.closeOverlay(true);\r\n };\r\n\r\n /**\r\n * Handle data event returned from service, determines success of fail and calls the corresponding function.\r\n * @param {object} e The pubsub event.\r\n * @param {object} data Data object from service.\r\n */\r\n module.private.handleDataConnectionAdd = function(e, data) {\r\n var success;\r\n\r\n success = generalUtilities.prop(data, 'response.SaveResult.Success');\r\n if (moduleUtilities.isOwnEvent(data, module.properties)) {\r\n if (!success) {\r\n module.private.handleDataConnectionError(e, data);\r\n } else {\r\n module.private.handleDataConnectionSuccess(e, data);\r\n }\r\n }\r\n };\r\n\r\n //#endregion\r\n\r\n //#region dom event handlers\r\n\r\n /**\r\n * Handle click on the action, connects the users\r\n * @param {object} e Click event\r\n */\r\n module.private.handleConnectionClick = function(e) {\r\n var $currentTarget,\r\n connectaction,\r\n recipientUserId,\r\n totalConnected,\r\n daysAgoCreated,\r\n canConnect,\r\n html,\r\n isPaid;\r\n\r\n e.preventDefault();\r\n\r\n $currentTarget = $(e.currentTarget);\r\n\r\n totalConnected = connectionUtilities.getTotalConnected();\r\n daysAgoCreated = generalUtilities.daysAgo(\r\n generalUtilities.getDateYMD(new Date()),\r\n generalUtilities.prop(window, 'RESAAS.User2.CreatedDate')\r\n );\r\n connectaction = $currentTarget.data('connectaction');\r\n recipientUserId = $currentTarget.data('contactguid');\r\n\r\n isPaid =\r\n generalUtilities.prop(window, 'RESAAS.User2.ReferralPro') ||\r\n generalUtilities.prop(window, 'RESAAS.User2.PremiumPlus');\r\n canConnect = isPaid || connectaction === 'accept' || totalConnected < 5 || daysAgoCreated < 3;\r\n\r\n if (canConnect) {\r\n e.stopPropagation();\r\n\r\n // accepting the request\r\n if (connectaction === 'accept') {\r\n module.private.handleConnectRequest(e, recipientUserId, connectaction, null);\r\n } else {\r\n // sending a request\r\n html = sendMessageCompiled({\r\n ContactUserId: recipientUserId,\r\n IntroMessage: generalUtilities.stringFormat(\r\n window.RESAAS.Localization.Global.SEND_MESSAGE_POPUP_DESC_1,\r\n $currentTarget.data('contactname')\r\n ),\r\n Connectaction: connectaction\r\n });\r\n overLayModule.openOverlay(html);\r\n var submitBtn = document.getElementById('submitBtn');\r\n submitBtn.addEventListener('click', function (e) {\r\n module.private.handleSendMessageSubmit(e);\r\n });\r\n }\r\n\r\n } else {\r\n pubsub.publish('mixpanel.Landed', {pageType: 'community paywall', type: 'connect button'});\r\n }\r\n };\r\n\r\n //#endregion\r\n\r\n /**\r\n * Initiates the module, creates a guid and binds dom events.\r\n * @param {object} [e] The pubsub event, optional depending module is self init or by pubsub event.\r\n * @param {object} [data] Data passed in by pubsub event, optional depending module is self init or by pubsub event.\r\n */\r\n module.private.init = function(e, data) {\r\n //module config\r\n module.properties.guid = data && data.guid ? data.guid : generalUtilities.uuid();\r\n\r\n //elements\r\n elements.html = $('html');\r\n\r\n //dom event binding\r\n elements.html\r\n .off('click.connectionControl')\r\n .on('click.connectionControl', selectors.connectBtn, module.private.handleConnectionClick);\r\n };\r\n\r\n //#region external event bindings\r\n\r\n pubsub.subscribe('data.ConnectionAdd', module.private.handleDataConnectionAdd);\r\n module.private.init();\r\n\r\n //#endregion\r\n\r\n //expose API\r\n return module;\r\n});\r\n","define(['jquery', 'pubsub', 'generalUtilities', 'realtimeControl'], function inboxNotificationControl(\r\n\t$,\r\n\tpubsub,\r\n\tgeneralUtilities\r\n) {\r\n\t/**\r\n\t * re_inbox_notification_control\r\n\t * @exports inboxNotificationControl\r\n\t * @author Eugene Katsov\r\n\t */\r\n\r\n\t//#region set up\r\n\r\n\t'use strict';\r\n\r\n\tvar module, selectors;\r\n\r\n\tmodule = {};\r\n\tmodule.private = {};\r\n\tmodule.properties = {};\r\n\r\n\tselectors = {\r\n\t\tnavInboxContainer: '.re-nav-inbox',\r\n\t\tinboxRedDot: '.js-notificationcount-inbox'\r\n\t};\r\n\r\n\t//#endregion\r\n\r\n\t//#region utilities\r\n\r\n\t/**\r\n\t * Animate the red dot to alert the user\r\n\t * Leave a red dot behind after animation\r\n\t */\r\n\tmodule.private.animateRedDot = function animateRedDot() {\r\n\t\tif (!$(selectors.navInboxContainer).hasClass('re-nav-hasactivity')) {\r\n\t\t\t$(selectors.navInboxContainer).addClass('re-nav-hasactivity');\r\n\t\t}\r\n\r\n\t\t$(selectors.inboxRedDot).addClass('sonar-wave');\r\n\r\n\t\tsetTimeout(function animateRedDotTimeout() {\r\n\t\t\t$(selectors.inboxRedDot).removeClass('sonar-wave');\r\n\t\t}, 1500);\r\n\t};\r\n\r\n\t//#endregion\r\n\r\n\t/**\r\n\t * Initiates the module, creates a guid and binds dom events.\r\n\t * @param {object} [e] The pubsub event, optional depending module is self init or by pubsub event.\r\n\t * @param {object} [data] Data passed in by pubsub event, optional depending module is self init or by pubsub event.\r\n\t */\r\n\tmodule.private.init = function init(e, data) {\r\n\t\tif (window.pageType === 'message-inbox') {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\t// module config\r\n\t\tmodule.properties.guid = data && data.guid ? data.guid : generalUtilities.uuid();\r\n\r\n\t\tif (generalUtilities.prop(window, 'RESAAS.User2.UserPusherChannel')) {\r\n\t\t\tpubsub.publish('uiAction.RSRealtimeSubscribe', {\r\n\t\t\t\tchannel: window.RESAAS.User2.UserPusherChannel\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tpubsub.subscribe('data.Realtime.NewInstantMessage', module.private.animateRedDot);\r\n\r\n\t\treturn true;\r\n\t};\r\n\r\n\t//#region external event bindings\r\n\tmodule.private.init();\r\n\r\n\t//#endregion\r\n\r\n\t// expose API\r\n\treturn module;\r\n});\r\n","define(['jquery', 'pubsub', 'moduleUtilities', 'generalUtilities'], function loadMoreControl(\r\n\t$,\r\n\tpubsub,\r\n\tmoduleUtilities,\r\n\tgeneralUtilities\r\n) {\r\n\t'use strict';\r\n\r\n\tvar elements, selectors, module, values;\r\n\r\n\tmodule = {};\r\n\tmodule.private = {};\r\n\tmodule.properties = {};\r\n\tmodule.state = {};\r\n\r\n\telements = {};\r\n\tselectors = {};\r\n\tvalues = {};\r\n\r\n\telements.html = $('html');\r\n\r\n\tvalues.cacheSuffix = '-cache';\r\n\tvalues.responsePrefix = 'data';\r\n\tvalues.requestPrefix = 'uiNeeds';\r\n\tvalues.loadMoreIntent = 'more';\r\n\tvalues.initEvent = 'uiWantsLoadMoreInit';\r\n\r\n\tselectors.loadMoreBtn = '.js-loadmore-btn';\r\n\tselectors.searchForm = '.js-loadmore-form';\r\n\tselectors.searchInputs = '.js-loadmore-input';\r\n\tselectors.submitBtn = '.js-loadmore-searchbtn';\r\n\r\n\tmodule.state.skipCount = 0;\r\n\tmodule.state.cache = {};\r\n\tmodule.state.rowItemRemainder = 0;\r\n\r\n\tmodule.private.handleMoreDataRequest = function handleMoreDataRequest(msg, data) {\r\n\t\tvar count, dataLength, morePages, nextData, rowItemRemainder;\r\n\r\n\t\tcount = generalUtilities.prop(data, 'response.Count');\r\n\t\tdataLength = generalUtilities.prop(data, 'response.Data.length');\r\n\r\n\t\t// if this is the result of a cache request\r\n\t\tif (data.guid === values.cacheGUID) {\r\n\t\t\t// put the data into cache\r\n\t\t\tmodule.state.cache = data;\r\n\t\t\t// remove the cache suffix from the request\r\n\t\t\tmodule.state.cache.guid = module.state.cache.guid.replace(values.cacheSuffix, '');\r\n\t\t\t// reveal the button\r\n\t\t\t$(selectors.loadMoreBtn).css('display', 'block');\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\t// if this is not our event exit (cache events handled above)\r\n\t\tif (!moduleUtilities.isOwnEvent(data, module.properties)) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\t// hide the button, if we get more results for the cache it will be revealed\r\n\t\t$(selectors.loadMoreBtn).css('display', 'none');\r\n\r\n\t\t// if this is a new search reset the skipCount and module.state.cache\r\n\t\tif (data.intent !== values.loadMoreIntent) {\r\n\t\t\tmodule.state.skipCount = 0;\r\n\t\t\tmodule.state.cache = {};\r\n\t\t}\r\n\r\n\t\t// if the count is greater than the current index then there are more pages\r\n\t\tmorePages = count > dataLength + module.state.skipCount;\r\n\r\n\t\t// if there are more pages\r\n\t\tif (morePages) {\r\n\t\t\tif (module.state.rowItemRemainder) {\r\n\t\t\t\trowItemRemainder = module.state.rowItemRemainder(data);\r\n\r\n\t\t\t\t// decrease the skip count\r\n\t\t\t\tmodule.state.skipCount += data.response.Data.length - rowItemRemainder;\r\n\t\t\t} else {\r\n\t\t\t\t// increment the skip count\r\n\t\t\t\tmodule.state.skipCount += data.response.Data.length\r\n\t\t\t}\r\n\t\t\t// copy the incoming date prior to updating it\r\n\t\t\tnextData = $.extend({}, data);\r\n\r\n\t\t\t// if padding was used for the 1st request it will not be for the 2nd\r\n\t\t\t// this is for the 'add agent' tile which appears on page 1 of some searches\r\n\t\t\tif (nextData.padding === 1) {\r\n\t\t\t\tnextData.request.RecordCount++;\r\n\t\t\t\tnextData.padding = 0;\r\n\t\t\t}\r\n\r\n\t\t\t// add the cache suffix and update the intent\r\n\t\t\tnextData.guid += values.cacheSuffix;\r\n\t\t\tnextData.intent = values.loadMoreIntent;\r\n\r\n\t\t\t// update the skipcount in the request\r\n\t\t\t// depending on the service it will exist in 1 of 2 places\r\n\t\t\tif (nextData.request.criteria) {\r\n\t\t\t\tnextData.request.criteria.SkipCount = module.state.skipCount;\r\n\t\t\t} else {\r\n\t\t\t\tnextData.request.SkipCount = module.state.skipCount;\r\n\t\t\t}\r\n\r\n\t\t\tdelete nextData.response;\r\n\r\n\t\t\t// republish the event to get the next page for cache\r\n\t\t\tpubsub.publish(module.state.watchedService, nextData);\r\n\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t};\r\n\r\n\tmodule.private.handleLoadMoreClick = function handleLoadMoreClick(e) {\r\n\t\te.preventDefault();\r\n\r\n\t\t// publish the cached data as if it came from the webservice\r\n\t\tpubsub.publish(module.state.watchedEvent, module.state.cache);\r\n\r\n\t\tpubsub.publish('mixpanel.Intent', { type: 'load more', from: module.properties.mpDataFrom });\r\n\t};\r\n\r\n\tmodule.private.init = function init(msg, data) {\r\n\t\tmodule.state.watchedEvent = data.watch;\r\n\t\tmodule.state.watchedService = data.watch.replace(values.responsePrefix, values.requestPrefix);\r\n\t\tmodule.state.rowItemRemainder = data.rowItemRemainder;\r\n\t\tmodule.properties.guid = data.guid;\r\n\t\tmodule.properties.mpDataFrom = data.mpDataFrom;\r\n\t\tvalues.cacheGUID = module.properties.guid + values.cacheSuffix;\r\n\r\n\t\tpubsub.subscribe(module.state.watchedEvent, module.private.handleMoreDataRequest);\r\n\r\n\t\telements.html.on('click', selectors.loadMoreBtn, module.private.handleLoadMoreClick);\r\n\t};\r\n\r\n\tpubsub.subscribe(values.initEvent, module.private.init);\r\n\r\n\treturn module;\r\n});\r\n","define(['jquery', 'pubsub', 'generalUtilities'], function locationAutocompleteControl($, pubsub, generalUtilities) {\r\n\t'use strict';\r\n\r\n\tvar module;\r\n\r\n\tmodule = {};\r\n\tmodule.private = {};\r\n\r\n\tmodule.private.handlePlaceChange = function handlePlaceChange(autocomplete, data) {\r\n\t\tvar place = autocomplete.getPlace();\r\n\r\n\t\tif (generalUtilities.prop(place, 'geometry.location')) {\r\n\t\t\tdata.callbackFunction(place, data.acceptPolygon);\r\n\t\t} else if (generalUtilities.prop(place, 'name') && generalUtilities.prop(place, 'address_components')) { // do not display error if user hit enter instead of this comming from google api\r\n\t\t\tpubsub.publish('uiAction.MessageAdd', {\r\n\t\t\t\ttype: 'warning',\r\n\t\t\t\tmessage: RESAAS.Localization.Global.COULD_NOT_FIND_LOCATION\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n\r\n\tmodule.private.handleKeydown = function handleKeydown(event) {\r\n\t\tif (event.keyCode === 13 && $('.pac-container:visible').length) {\r\n\t\t\tevent.preventDefault();\r\n\t\t}\r\n\t};\r\n\r\n\tmodule.private.handleInput = function handleInput(data) {\r\n\t\tif (data.forceSelect && data.clearFunction) {\r\n\t\t\tdata.clearFunction();\r\n\t\t}\r\n\t};\r\n\r\n\tmodule.private.handleFocus = function handleFocus(input, data) {\r\n if (data.forceSelect && input.value) {\r\n\t\t\tinput.value = '';\r\n\t\t\tif (data.clearFunction) {\r\n\t\t\t\tdata.clearFunction();\r\n\t\t\t}\r\n\t\t\tdata.callbackFunction();\r\n\t\t}\r\n\t};\r\n\r\n\tmodule.private.handleGetCurrentPosition = function handleGetCurrentPosition(autocomplete, position) {\r\n\t\tvar circle;\r\n\r\n\t\tif (!window.google || !window.google.maps) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tcircle = new google.maps.Circle({\r\n\t\t\tcenter: {\r\n\t\t\t\tlat: position.coords.latitude,\r\n\t\t\t\tlng: position.coords.longitude\r\n\t\t\t},\r\n\t\t\tradius: position.coords.accuracy\r\n\t\t});\r\n\r\n\t\tautocomplete.setBounds(circle.getBounds());\r\n\t};\r\n\r\n\t// https://stackoverflow.com/questions/57824711/google-places-overwrite-autocomplete-off\r\n\t// the above api window.google.maps.places will set the autocomplete of this element to \"off\" which is ignored by chrome\r\n\t// will need to observe and override this behaviour for chrome\r\n\tmodule.private.observeAutocompleteAttribute = function observeAutocompleteAttribute(elementId) {\r\n\t\tvar element, observerHack;\r\n\t\t// if mutation observer doesn't exist just return\r\n\t\t// https://caniuse.com/#feat=mutationobserver \r\n\t\t// is supported by all browsers but not jest / opera mini\r\n\t\tif (!window.MutationObserver) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\telement = document.getElementById(elementId);\r\n\t\tif (element) {\r\n\t\t\tobserverHack = new MutationObserver(function observer() {\r\n\t\t\t\tobserverHack.disconnect();\r\n\t\t\t\telement.autocomplete = \"off\"; // special param to disable autocomplete\r\n\t\t\t});\r\n\t\t\tobserverHack.observe(element, {\r\n\t\t\t\tattributes: true,\r\n\t\t\t\tattributeFilter: ['autocomplete']\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n\r\n\tmodule.private.setUpLocationAutoComplete = function setUpLocationAutoComplete(e, data) {\r\n var useGeoLocate, input, autocomplete;\r\n var lat, lng;\r\n\t\tuseGeoLocate = data.useGeoLocate !== undefined ? data.useGeoLocate : true;\r\n\t\tinput = document.getElementById(data.textInputId);\r\n\r\n\t\tif (!window.google || !window.google.maps) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tautocomplete = new google.maps.places.Autocomplete(input, {\r\n\t\t\ttypes: [data.type]\r\n\t\t});\r\n\r\n\t\tgoogle.maps.event.addListener(\r\n\t\t\tautocomplete,\r\n\t\t\t'place_changed',\r\n\t\t\tmodule.private.handlePlaceChange.bind(this, autocomplete, data)\r\n\t\t);\r\n\r\n\t\tif (input) {\r\n\t\t\tinput.addEventListener('keydown', module.private.handleKeydown);\r\n\t\t\tinput.addEventListener('input', module.private.handleInput.bind(this, data));\r\n\t\t\tinput.addEventListener('focus', module.private.handleFocus.bind(this, input, data));\r\n\t\t}\r\n\r\n if (useGeoLocate) {\r\n lat = generalUtilities.prop(window, 'RESAAS.User2.Latitude');\r\n lng = generalUtilities.prop(window, 'RESAAS.User2.Longitude');\r\n\r\n if (lat && lng) {\r\n module.private.handleGetCurrentPosition(autocomplete, { coords: { latitude: lat, longitude: lng } });\r\n } else if (navigator.geolocation) {\r\n navigator.geolocation.getCurrentPosition(module.private.handleGetCurrentPosition.bind(this, autocomplete));\r\n }\r\n }\r\n\r\n\t\tmodule.private.observeAutocompleteAttribute(data.textInputId);\r\n\t};\r\n\r\n\tmodule.private.init = function init() {\r\n\t\tpubsub.subscribe('uiWantsToSetupLocationAutocomplete', module.private.setUpLocationAutoComplete);\r\n\t};\r\n\r\n\tmodule.private.init();\r\n\r\n\treturn module;\r\n});\r\n","define([\r\n\t'jquery',\r\n\t'pubsub',\r\n\t'generalUtilities',\r\n\t'Handlebars',\r\n\t'genericMessageDrawerCompiled',\r\n\t'realtimeControl'\r\n], function notificationsDrawerControl($, pubsub, generalUtilities, Handlebars, genericMessageDrawerCompiled) {\r\n\t/**\r\n\t * re_notifications_drawer_control\r\n\t * @exports notificationsDrawerControl\r\n\t * @author Eugene Katsov\r\n\t */\r\n\r\n\t//#region set up\r\n\r\n\t'use strict';\r\n\r\n\tvar module, selectors, elements, values;\r\n\r\n\tmodule = {};\r\n\tmodule.private = {};\r\n\tmodule.properties = {};\r\n\r\n\tselectors = {\r\n\t\tnotificationsContainer: '.re-notifications-drawer',\r\n\t\tnotificationsList: '.re-notifications-list',\r\n\t\tnotificationItem: '.js-inbox-notification-body',\r\n\t\tnotificationClose: '.js-close-item'\r\n\t};\r\n\r\n\telements = {};\r\n\tvalues = {};\r\n\r\n\tvalues.notificationDrawer = [];\r\n\r\n\tvalues.config = {};\r\n\r\n\tvalues.drawerContainer = [\r\n\t\t'
',\r\n\t\t'',\r\n\t\t'
'\r\n\t].join('');\r\n\r\n\t//#endregion\r\n\r\n\t//#region utilities\r\n\r\n\t/**\r\n\t * Add notification event handler method\r\n\t * @param {object} e event\r\n\t * @param {object} data pusher data\r\n\t */\r\n\tmodule.private.handleDataPusher = function handleDataPusher(e, data) {\r\n\t\tif (\r\n\t\t\t!data ||\r\n\t\t\t!data.ShowDrawerMessage ||\r\n\t\t\tgeneralUtilities.getNavigationState().isCompact ||\r\n\t\t\t(window.pageType === 'message-inbox' && data.Event === 'NewInstantMessage')\r\n\t\t) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tmodule.private.createNotification(data);\r\n\r\n\t\treturn true;\r\n\t};\r\n\r\n\t/**\r\n\t * Get index of obj method\r\n\t * @param {object} obj notification object\r\n\t */\r\n\tmodule.private.getIndexByMsgId = function getIndexByMsgId(obj) {\r\n\t\tvar i, index;\r\n\r\n\t\tfor (i = 0; i < values.notificationDrawer.length; i++) {\r\n\t\t\tif (values.notificationDrawer[i].NotificationId === obj.NotificationId) {\r\n\t\t\t\tindex = i;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn index >= 0 ? index : null;\r\n\t};\r\n\r\n\t/**\r\n\t * Add notification method\r\n\t * @param {object} obj response data\r\n\t */\r\n\tmodule.private.createNotification = function createNotification(obj) {\r\n\t\t// make NewInstantMessage messaeg data object consistent with generic notiofcation object.\r\n\t\tif (obj.Event === 'NewInstantMessage') {\r\n\t\t\tobj.Title = obj.SenderFirstName + obj.SenderLastName;\r\n\t\t\tobj.Body = obj.Message;\r\n\t\t\tobj.NotificationDeepLink = obj.ConversationDeepLink;\r\n\t\t}\r\n\r\n\t\tobj.NotificationDeepLink = generalUtilities.addParamsToUrlQueryString(obj.NotificationDeepLink, {\r\n\t\t\tnotificationId: obj.NotificationId\r\n\t\t});\r\n\t\tobj.MixpanelType = generalUtilities.stringFormat('{0} push notification', obj.Event);\r\n\r\n\t\tvalues.notificationDrawer.unshift(obj);\r\n\t\tmodule.private.injectNotification(obj);\r\n\r\n\t\tmodule.private.deleteNotification(values.notificationDrawer[values.config.drawerSize]);\r\n\t\tif (values.config.autoDelete) {\r\n\t\t\tmodule.private.autoDelete(values.notificationDrawer[0]);\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Inject notification method\r\n\t * @param {object} obj response data\r\n\t */\r\n\tmodule.private.injectNotification = function injectNotification(obj) {\r\n\t\tif (!obj) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\telements.notificationsList.prepend(genericMessageDrawerCompiled(obj));\r\n\r\n\t\treturn true;\r\n\t};\r\n\r\n\t/**\r\n\t * Delete notification method\r\n\t * @param {object} data notification object\r\n\t */\r\n\tmodule.private.deleteNotification = function deleteNotification(obj) {\r\n\t\tvar index;\r\n\r\n\t\tif (!obj) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tindex = module.private.getIndexByMsgId({ NotificationId: obj.NotificationId });\r\n\r\n\t\tif (index == null) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tif (!obj.ConversationId) {\r\n\t\t\tobj = values.notificationDrawer[index];\r\n\t\t}\r\n\r\n\t\tpubsub.publish('uiAction.deleteNotification', obj);\r\n\r\n\t\t$(generalUtilities.stringFormat('li[data-notificationid=\"{0}\"]', obj.NotificationId)).fadeOut(500, function () {\r\n\t\t\t$(this).remove();\r\n\t\t});\r\n\r\n\t\tvalues.notificationDrawer.splice(index, 1);\r\n\r\n\t\treturn true;\r\n\t};\r\n\r\n\t/**\r\n\t * Autodelete notification method\r\n\t * @param {object} obj notification object\r\n\t */\r\n\tmodule.private.autoDelete = function autoDelete(obj) {\r\n\t\tsetTimeout(function deleteNotification() {\r\n\t\t\tmodule.private.deleteNotification(obj);\r\n\t\t}, values.config.timeToLive);\r\n\t};\r\n\r\n\t// #endregion\r\n\r\n\t// #region dom event handlers\r\n\r\n\t/**\r\n\t * Notification click handler method\r\n\t * @param {object} e event\r\n\t */\r\n\tmodule.private.handleNotificationClick = function handleNotificationClick(e) {\r\n\t\te.preventDefault();\r\n\t\tgeneralUtilities.redirect(e.currentTarget.href);\r\n\t};\r\n\r\n\t/**\r\n\t * Notification dismiss click handler method\r\n\t * @param {object} e event\r\n\t */\r\n\tmodule.private.handleNotificationDismiss = function handleNotificationDismiss(e) {\r\n\t\te.preventDefault();\r\n\t\tmodule.private.deleteNotification({ NotificationId: e.currentTarget.dataset.notificationid });\r\n\t};\r\n\r\n\t// #endregion\r\n\r\n\t/**\r\n\t * Initiates the module, creates a guid and binds dom events.\r\n\t * @param {object} [e] The pubsub event, optional depending module is self init or by pubsub event.\r\n\t * @param {object} [data] Data passed in by pubsub event, optional depending module is self init or by pubsub event.\r\n\t */\r\n\tmodule.private.init = function init(e, data) {\r\n\t\t// module config\r\n\t\tmodule.properties.guid = data && data.guid ? data.guid : generalUtilities.uuid();\r\n\r\n\t\t// notification object config\r\n\t\tvalues.config.timeToLive = (data && data.timeToLive) || 12000;\r\n\t\tvalues.config.drawerSize = (data && data.drawerSize) || 3;\r\n\t\tvalues.config.container = (data && data.container) || selectors.notificationsList;\r\n\t\tvalues.config.autoDelete = data && data.autoDelete === false ? false : true;\r\n\r\n\t\t// elements\r\n\t\telements.body = $('body');\r\n\r\n\t\t// inject the drawer\r\n\t\t$(elements.body).append(values.drawerContainer);\r\n\r\n\t\t// set dependent module values\r\n\t\telements.notificationsContainer = $(values.config.container);\r\n\t\telements.notificationsList = $(selectors.notificationsList);\r\n\r\n\t\tif (generalUtilities.prop(window, 'RESAAS.User2.UserPusherChannel')) {\r\n\t\t\tpubsub.publish('uiAction.RSRealtimeSubscribe', {\r\n\t\t\t\tchannel: window.RESAAS.User2.UserPusherChannel\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t// dom event binding\r\n\t\telements.body.on('click', selectors.notificationItem, module.private.handleNotificationClick);\r\n\t\telements.body.on('click', selectors.notificationClose, module.private.handleNotificationDismiss);\r\n\t};\r\n\r\n\t// #region external event bindings\r\n\tpubsub.subscribe('data.Realtime', module.private.handleDataPusher);\r\n\r\n\tmodule.private.init();\r\n\r\n\t// #endregion\r\n\r\n\t// expose API\r\n\treturn module;\r\n});\r\n","define(['jquery', 'pubsub', 'generalUtilities', 'addressUtility', 'agentsSearchUtilities', 'messageControl2'], function userGeoLocationControl($, pubsub, generalUtilities, addressUtility, agentsSearchUtilities) {\r\n\t'user strict';\r\n\r\n\tvar module = {}, selectors = {};\r\n\tmodule.private = {};\r\n\r\n\tselectors.searchLocationButton = '.js-usergeolocation-btn';\r\n\r\n\tmodule.private.getLocation = function getLocation() {\r\n\t\tvar getLocationDeferred = Q.defer();\r\n\t\tnavigator.geolocation.getCurrentPosition(getLocationDeferred.resolve, getLocationDeferred.reject);\r\n\t\treturn getLocationDeferred.promise;\r\n\t};\r\n\r\n module.private.geoCodePoint = function geoCodePoint(position) {\r\n\t\t// Request Geocode data - Address look up\r\n\t\treturn addressUtility.geoCodePoint(position.coords.latitude, position.coords.longitude);\r\n\t};\r\n\r\n\tmodule.private.userSearchByLocation = function userSearchByLocation() {\r\n var getLocationPromise, getAddressPromise, result, lat, lng, address, countryId;\r\n\t\t\r\n result = {};\r\n lat = generalUtilities.prop(window, 'RESAAS.User2.Latitude');\r\n lng = generalUtilities.prop(window, 'RESAAS.User2.Longitude');\r\n address = agentsSearchUtilities.getUserLocation(generalUtilities.prop(window, 'RESAAS.User2'));\r\n countryId = generalUtilities.prop(window, 'RESAAS.User2.CountryId');\r\n\r\n if (lat && lng && address) {\r\n\r\n result = {\r\n lat: lat,\r\n lng: lng,\r\n addressName: address,\r\n countryCode: countryId\r\n }\r\n\r\n pubsub.publish('data.UserLocationBrowse', result);\r\n\r\n } else if (navigator.geolocation) {\r\n\t\t\tgeneralUtilities.disableAndWaitFor(selectors.searchLocationButton, 'data.UserLocationBrowse');\r\n\r\n\t\t\tgetLocationPromise = module.private.getLocation();\r\n getAddressPromise = getLocationPromise.then(module.private.geoCodePoint)\r\n\r\n Q.all([getLocationPromise, getAddressPromise]).spread(function getResult(getLocationResult, getAddressResult) {\r\n\r\n // find the country code\r\n var countryCode;\r\n var addressResult = getAddressResult.response.data;\r\n var lastResult = addressResult[addressResult.length - 1];\r\n var i;\r\n var component;\r\n\r\n if (lastResult.address_components) {\r\n for (i = 0; i < lastResult.address_components.length; i++) {\r\n component = lastResult.address_components[i];\r\n if (component.types[0] === 'country') {\r\n countryCode = component.short_name;\r\n break;\r\n }\r\n }\r\n }\r\n\t\t\t\tresult = {\r\n\t\t\t\t\tlat: getLocationResult.coords.latitude,\r\n\t\t\t\t\tlng: getLocationResult.coords.longitude,\r\n addressName: getAddressResult.response.data[0].formatted_address,\r\n countryCode: countryCode\r\n\t\t\t\t}\r\n\t\t\t}).catch(function error() {\r\n\t\t\t\tpubsub.publish('uiAction.MessageAdd', { type: 'warning', message: RESAAS.Localization.Global.USER_GEOLOCATION_UNABLE_TO_RETRIEVE_LOCATION });\r\n\t\t\t}).finally(function publishResult() {\r\n\t\t\t\tpubsub.publish('data.UserLocationBrowse', result);\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n\r\n\t$('body').on('click', selectors.searchLocationButton, module.private.userSearchByLocation);\r\n\r\n\treturn module;\r\n});\r\n","/**\r\n * re_countries_data\r\n * @module countriesData\r\n * @author Matt Foulger\r\n */\r\n\r\ndefine(['pubsub','generalUtilities'],\r\n\r\n\tfunction countriesData(pubsub, generalUtilities) {\r\n\t\t'use strict';\r\n\r\n\t\tvar data = [\r\n\t\t\t{\r\n\t\t\t\t\"id\": 2,\r\n\t\t\t\t\"resourceName\": \"Regions.AFGHANISTAN\",\r\n\t\t\t\t// AFN\r\n\t\t\t\t\"defaultCurrencyId\": \"35074CC8-62D7-43DA-A2E8-9FD1A870B1BB\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 5,\r\n\t\t\t\t\"resourceName\": \"Regions.ALBANIA\",\r\n\t\t\t\t// ALL\r\n\t\t\t\t\"defaultCurrencyId\": \"AF3867B1-C808-447E-9874-C0E55C08EE98\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 61,\r\n\t\t\t\t\"resourceName\": \"Regions.ALGERIA\",\r\n\t\t\t\t// DZD\r\n\t\t\t\t\"defaultCurrencyId\": \"B18CD23C-AE01-443C-9994-94F685460D0A\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 11,\r\n\t\t\t\t\"resourceName\": \"Regions.AMERICAN_SAMOA\",\r\n\t\t\t\t\"defaultCurrencyId\": \"\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 6,\r\n\t\t\t\t\"resourceName\": \"Regions.ANDORRA\",\r\n\t\t\t\t// EUR\r\n\t\t\t\t\"defaultCurrencyId\": \"1EF1CBF0-57C4-11E3-AB91-CB986188709B\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 3,\r\n\t\t\t\t\"resourceName\": \"Regions.ANGOLA\",\r\n\t\t\t\t// AOA\r\n\t\t\t\t\"defaultCurrencyId\": \"041D0DBC-84F0-48CB-8B66-DDC7A9CC4B70\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 4,\r\n\t\t\t\t\"resourceName\": \"Regions.ANGUILLA\",\r\n\t\t\t\t// XCD\r\n\t\t\t\t\"defaultCurrencyId\": \"8E93696F-889D-4147-89DA-F865D668ABD9\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 12,\r\n\t\t\t\t\"resourceName\": \"Regions.ANTARCTICA\",\r\n\t\t\t\t\"defaultCurrencyId\": \"\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 14,\r\n\t\t\t\t\"resourceName\": \"Regions.ANTIGUA_AND_BARBUDA\",\r\n\t\t\t\t// XCD\r\n\t\t\t\t\"defaultCurrencyId\": \"8E93696F-889D-4147-89DA-F865D668ABD9\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 9,\r\n\t\t\t\t\"resourceName\": \"Regions.ARGENTINA\",\r\n\t\t\t\t// ARS\r\n\t\t\t\t\"defaultCurrencyId\": \"23BE598C-57C4-11E3-AB55-D1986188709B\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 10,\r\n\t\t\t\t\"resourceName\": \"Regions.ARMENIA\",\r\n\t\t\t\t// AMD\r\n\t\t\t\t\"defaultCurrencyId\": \"4FBC4820-360C-44AA-9932-6ADB9A741355\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 1,\r\n\t\t\t\t\"resourceName\": \"Regions.ARUBA\",\r\n\t\t\t\t// AWG\r\n\t\t\t\t\"defaultCurrencyId\": \"5184F064-5036-4A26-A258-A1C0F21E9C76\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 15,\r\n\t\t\t\t\"resourceName\": \"Regions.AUSTRALIA\",\r\n\t\t\t\t//AUD\r\n\t\t\t\t\"defaultCurrencyId\": \"271c7dd4-57c4-11e3-a267-d2986188709b\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 16,\r\n\t\t\t\t\"resourceName\": \"Regions.AUSTRIA\",\r\n\t\t\t\t//EUR\r\n\t\t\t\t\"defaultCurrencyId\": \"1ef1cbf0-57c4-11e3-ab91-cb986188709b\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 17,\r\n\t\t\t\t\"resourceName\": \"Regions.AZERBAIJAN\",\r\n\t\t\t\t// AZN\r\n\t\t\t\t\"defaultCurrencyId\": \"28CF282A-57C4-11E3-9BDA-D3986188709B\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 25,\r\n\t\t\t\t\"resourceName\": \"Regions.BAHAMAS\",\r\n\t\t\t\t// BSD\r\n\t\t\t\t\"defaultCurrencyId\": \"D17C76E6-4270-41F6-8A9E-4B59CE73E57F\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 24,\r\n\t\t\t\t\"resourceName\": \"Regions.BAHRAIN\",\r\n\t\t\t\t// BHD\r\n\t\t\t\t\"defaultCurrencyId\": \"AAA4B5E2-FB6A-4149-8EFB-9E270A1B06A4\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 22,\r\n\t\t\t\t\"resourceName\": \"Regions.BANGLADESH\",\r\n\t\t\t\t// BDT\r\n\t\t\t\t\"defaultCurrencyId\": \"D1024A9D-DEBC-4AFE-82F0-4893B3235375\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 32,\r\n\t\t\t\t\"resourceName\": \"Regions.BARBADOS\",\r\n\t\t\t\t// BBD\r\n\t\t\t\t\"defaultCurrencyId\": \"963D229F-4B31-4D46-A371-B14D3B26264C\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 27,\r\n\t\t\t\t\"resourceName\": \"Regions.BELARUS\",\r\n\t\t\t\t// BYN\r\n\t\t\t\t\"defaultCurrencyId\": \"DC987AAD-F165-41C5-8365-D5A6A0F63218\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 19,\r\n\t\t\t\t\"resourceName\": \"Regions.BELGIUM\",\r\n\t\t\t\t//EUR\r\n\t\t\t\t\"defaultCurrencyId\": \"1ef1cbf0-57c4-11e3-ab91-cb986188709b\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 28,\r\n\t\t\t\t\"resourceName\": \"Regions.BELIZE\",\r\n\t\t\t\t// BZD\r\n\t\t\t\t\"defaultCurrencyId\": \"5BBED400-B548-48F9-9DC0-8AA4075DED9E\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 20,\r\n\t\t\t\t\"resourceName\": \"Regions.BENIN\",\r\n\t\t\t\t// XOF\r\n\t\t\t\t\"defaultCurrencyId\": \"1AFB48F1-485B-47AB-A67C-9DF4A9D08216\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 29,\r\n\t\t\t\t\"resourceName\": \"Regions.BERMUDA\",\r\n\t\t\t\t// BMD\r\n\t\t\t\t\"defaultCurrencyId\": \"7E08E2B6-EB42-478A-9DC3-FE2DE8042977\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 34,\r\n\t\t\t\t\"resourceName\": \"Regions.BHUTAN\",\r\n\t\t\t\t// INR\r\n\t\t\t\t\"defaultCurrencyId\": \"45575F9E-57C4-11E3-99F3-0A996188709B\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 30,\r\n\t\t\t\t\"resourceName\": \"Regions.BOLIVIA\",\r\n\t\t\t\t// BOB\r\n\t\t\t\t\"defaultCurrencyId\": \"09A78170-9552-46A1-B0CB-3BA349E0E9BC\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 26,\r\n\t\t\t\t\"resourceName\": \"Regions.BOSNIA_AND_HERZEGOWINA\",\r\n\t\t\t\t// BAM\r\n\t\t\t\t\"defaultCurrencyId\": \"2B0418B2-57C4-11E3-8746-D4986188709B\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 36,\r\n\t\t\t\t\"resourceName\": \"Regions.BOTSWANA\",\r\n\t\t\t\t// BWP\r\n\t\t\t\t\"defaultCurrencyId\": \"2EC8702E-57C4-11E3-8DC1-D6986188709B\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 35,\r\n\t\t\t\t\"resourceName\": \"Regions.BOUVET_ISLAND\",\r\n\t\t\t\t\"defaultCurrencyId\": \"\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 31,\r\n\t\t\t\t\"resourceName\": \"Regions.BRAZIL\",\r\n\t\t\t\t//BRL\r\n\t\t\t\t\"defaultCurrencyId\": \"2d310af0-57c4-11e3-a123-d5986188709b\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 101,\r\n\t\t\t\t\"resourceName\": \"Regions.BRITISH_INDIAN_OCEAN_TERRITORY\",\r\n\t\t\t\t// USD\r\n\t\t\t\t\"defaultCurrencyId\": \"1994DD50-57C4-11E3-9C0D-BD986188709B\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 33,\r\n\t\t\t\t\"resourceName\": \"Regions.BRUNEI_DARUSSALAM\",\r\n\t\t\t\t// BND\r\n\t\t\t\t\"defaultCurrencyId\": \"CE85462C-4A0C-492A-9613-CD7BC4FF833F\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 23,\r\n\t\t\t\t\"resourceName\": \"Regions.BULGARIA\",\r\n\t\t\t\t// BGN\r\n\t\t\t\t\"defaultCurrencyId\": \"BAAC2BD9-0E06-43D0-BDA9-624B7330ABD8\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 21,\r\n\t\t\t\t\"resourceName\": \"Regions.BURKINA_FASO\",\r\n\t\t\t\t// XOF\r\n\t\t\t\t\"defaultCurrencyId\": \"1AFB48F1-485B-47AB-A67C-9DF4A9D08216\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 18,\r\n\t\t\t\t\"resourceName\": \"Regions.BURUNDI\",\r\n\t\t\t\t// BIF\r\n\t\t\t\t\"defaultCurrencyId\": \"355F738A-5AFB-42EF-8299-6D330051C797\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 114,\r\n\t\t\t\t\"resourceName\": \"Regions.CAMBODIA\",\r\n\t\t\t\t// KHR\r\n\t\t\t\t\"defaultCurrencyId\": \"2904A9AB-8DD4-4526-AA7C-AAFBBC00395E\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 44,\r\n\t\t\t\t\"resourceName\": \"Regions.CAMEROON\",\r\n\t\t\t\t// XAF\r\n\t\t\t\t\"defaultCurrencyId\": \"EEB2055A-904B-4B6A-9C1E-7D0F4B7C2E40\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 38,\r\n\t\t\t\t\"resourceName\": \"Regions.CANADA\",\r\n\t\t\t\t// CAD\r\n\t\t\t\t\"defaultCurrencyId\": \"1c32d81e-57c4-11e3-8b35-c7986188709b\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 49,\r\n\t\t\t\t\"resourceName\": \"Regions.CAPE_VERDE\",\r\n\t\t\t\t// CVE\r\n\t\t\t\t\"defaultCurrencyId\": \"38ACF1A0-57C4-11E3-A1A2-00996188709B\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 53,\r\n\t\t\t\t\"resourceName\": \"Regions.CAYMAN_ISLANDS\",\r\n\t\t\t\t// KYD\r\n\t\t\t\t\"defaultCurrencyId\": \"58D1E36D-E717-4EAC-9D83-A5C6A76789A6\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 37,\r\n\t\t\t\t\"resourceName\": \"Regions.CENTRAL_AFRICAN_REPUBLIC\",\r\n\t\t\t\t// XAF\r\n\t\t\t\t\"defaultCurrencyId\": \"EEB2055A-904B-4B6A-9C1E-7D0F4B7C2E40\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 205,\r\n\t\t\t\t\"resourceName\": \"Regions.CHAD\",\r\n\t\t\t\t// XAF\r\n\t\t\t\t\"defaultCurrencyId\": \"EEB2055A-904B-4B6A-9C1E-7D0F4B7C2E40\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 41,\r\n\t\t\t\t\"resourceName\": \"Regions.CHILE\",\r\n\t\t\t\t// CLP\r\n\t\t\t\t\"defaultCurrencyId\": \"32262BBC-57C4-11E3-8F9C-DB986188709B\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 42,\r\n\t\t\t\t\"resourceName\": \"Regions.CHINA\",\r\n\t\t\t\t//CNY\r\n\t\t\t\t\"defaultCurrencyId\": \"34a8054a-57c4-11e3-97ef-dc986188709b\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 52,\r\n\t\t\t\t\"resourceName\": \"Regions.CHRISTMAS_ISLAND\",\r\n\t\t\t\t\"defaultCurrencyId\": \"\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 39,\r\n\t\t\t\t\"resourceName\": \"Regions.COCOA_KEELING_ISLANDS_1\",\r\n\t\t\t\t// AUD\r\n\t\t\t\t\"defaultCurrencyId\": \"271C7DD4-57C4-11E3-A267-D2986188709B\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 47,\r\n\t\t\t\t\"resourceName\": \"Regions.COLOMBIA\",\r\n\t\t\t\t//COP\r\n\t\t\t\t\"defaultCurrencyId\": \"364b68e2-57c4-11e3-ba6c-dd986188709b\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 48,\r\n\t\t\t\t\"resourceName\": \"Regions.COMOROS\",\r\n\t\t\t\t// KMF\r\n\t\t\t\t\"defaultCurrencyId\": \"FA21DCB9-6E3E-4C12-BB27-4030EC457325\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 45,\r\n\t\t\t\t\"resourceName\": \"Regions.CONGO\",\r\n\t\t\t\t// XAF\r\n\t\t\t\t\"defaultCurrencyId\": \"EEB2055A-904B-4B6A-9C1E-7D0F4B7C2E40\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 46,\r\n\t\t\t\t\"resourceName\": \"Regions.COOK_ISLANDS\",\r\n\t\t\t\t// NZD\r\n\t\t\t\t\"defaultCurrencyId\": \"5B8BB396-57C4-11E3-8FD7-19996188709B\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 50,\r\n\t\t\t\t\"resourceName\": \"Regions.COSTA_RICA\",\r\n\t\t\t\t// CRC\r\n\t\t\t\t\"defaultCurrencyId\": \"9CCE41FF-778B-4856-A51B-B4C877D6E1D1\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 43,\r\n\t\t\t\t\"resourceName\": \"Regions.COTE_DIVOIRE\",\r\n\t\t\t\t\"defaultCurrencyId\": \"\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 96,\r\n\t\t\t\t\"resourceName\": \"Regions.CROATIA\",\r\n\t\t\t\t// HRK\r\n\t\t\t\t\"defaultCurrencyId\": \"421B9444-57C4-11E3-BCF5-05996188709B\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 51,\r\n\t\t\t\t\"resourceName\": \"Regions.CUBA\",\r\n\t\t\t\t// CUP\r\n\t\t\t\t\"defaultCurrencyId\": \"00EA1CFA-71A2-4AC6-BD46-B130EE10EDD2\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 54,\r\n\t\t\t\t\"resourceName\": \"Regions.CYPRUS\",\r\n\t\t\t\t//EUR\r\n\t\t\t\t\"defaultCurrencyId\": \"1ef1cbf0-57c4-11e3-ab91-cb986188709b\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 55,\r\n\t\t\t\t\"resourceName\": \"Regions.CZECH_REPUBLIC\",\r\n\t\t\t\t// CZK\r\n\t\t\t\t\"defaultCurrencyId\": \"3A880370-57C4-11E3-9197-01996188709B\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 238,\r\n\t\t\t\t\"resourceName\": \"Regions.DEMOCRATIC_REPUBLIC_OF_THE_CONGO\",\r\n\t\t\t\t\"defaultCurrencyId\": \"\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 59,\r\n\t\t\t\t\"resourceName\": \"Regions.DENMARK\",\r\n\t\t\t\t// DKK\r\n\t\t\t\t\"defaultCurrencyId\": \"3C3CC476-57C4-11E3-9560-02996188709B\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 57,\r\n\t\t\t\t\"resourceName\": \"Regions.DJIBOUTI\",\r\n\t\t\t\t// DJF\r\n\t\t\t\t\"defaultCurrencyId\": \"542467E0-D048-4787-82D7-C201977950E5\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 58,\r\n\t\t\t\t\"resourceName\": \"Regions.DOMINICA\",\r\n\t\t\t\t// XCD\r\n\t\t\t\t\"defaultCurrencyId\": \"8E93696F-889D-4147-89DA-F865D668ABD9\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 60,\r\n\t\t\t\t\"resourceName\": \"Regions.DOMINICAN_REPUBLIC\",\r\n\t\t\t\t// DOP\r\n\t\t\t\t\"defaultCurrencyId\": \"B5CB9D89-A2AF-4A28-A1AA-757AED93587A\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 211,\r\n\t\t\t\t\"resourceName\": \"Regions.EAST_TIMOR\",\r\n\t\t\t\t// USD\r\n\t\t\t\t\"defaultCurrencyId\": \"1994DD50-57C4-11E3-9C0D-BD986188709B\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 62,\r\n\t\t\t\t\"resourceName\": \"Regions.ECUADOR\",\r\n\t\t\t\t// USD\r\n\t\t\t\t\"defaultCurrencyId\": \"1994DD50-57C4-11E3-9C0D-BD986188709B\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 63,\r\n\t\t\t\t\"resourceName\": \"Regions.EGYPT\",\r\n\t\t\t\t// EGP\r\n\t\t\t\t\"defaultCurrencyId\": \"3DEF937A-57C4-11E3-819B-03996188709B\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 192,\r\n\t\t\t\t\"resourceName\": \"Regions.EL_SALVADOR\",\r\n\t\t\t\t// USD\r\n\t\t\t\t\"defaultCurrencyId\": \"1994DD50-57C4-11E3-9C0D-BD986188709B\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 85,\r\n\t\t\t\t\"resourceName\": \"Regions.EQUATORIAL_GUINEA\",\r\n\t\t\t\t// XAF\r\n\t\t\t\t\"defaultCurrencyId\": \"EEB2055A-904B-4B6A-9C1E-7D0F4B7C2E40\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 64,\r\n\t\t\t\t\"resourceName\": \"Regions.ERITREA\",\r\n\t\t\t\t// ERN\r\n\t\t\t\t\"defaultCurrencyId\": \"71CEEEFA-64EA-47F9-8001-DE6465D87945\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 67,\r\n\t\t\t\t\"resourceName\": \"Regions.ESTONIA\",\r\n\t\t\t\t//EUR\r\n\t\t\t\t\"defaultCurrencyId\": \"1ef1cbf0-57c4-11e3-ab91-cb986188709b\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 68,\r\n\t\t\t\t\"resourceName\": \"Regions.ETHIOPIA\",\r\n\t\t\t\t// ETB\r\n\t\t\t\t\"defaultCurrencyId\": \"4273B4B1-B64E-4FFC-A410-F9AFF5692FCB\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 71,\r\n\t\t\t\t\"resourceName\": \"Regions.FALKLAND_ISLANDS_MALVINAS\",\r\n\t\t\t\t// FKP\r\n\t\t\t\t\"defaultCurrencyId\": \"EFECB1E6-51B6-4C7C-B5E4-DC0A08DBB1E1\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 73,\r\n\t\t\t\t\"resourceName\": \"Regions.FAROE_ISLANDS\",\r\n\t\t\t\t// DKK\r\n\t\t\t\t\"defaultCurrencyId\": \"3C3CC476-57C4-11E3-9560-02996188709B\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 70,\r\n\t\t\t\t\"resourceName\": \"Regions.FIJI\",\r\n\t\t\t\t// FJD\r\n\t\t\t\t\"defaultCurrencyId\": \"174F03D7-9266-48C3-B67F-63D03BFE4198\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 69,\r\n\t\t\t\t\"resourceName\": \"Regions.FINLAND\",\r\n\t\t\t\t//EUR\r\n\t\t\t\t\"defaultCurrencyId\": \"1ef1cbf0-57c4-11e3-ab91-cb986188709b\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 72,\r\n\t\t\t\t\"resourceName\": \"Regions.FRANCE\",\r\n\t\t\t\t//EUR\r\n\t\t\t\t\"defaultCurrencyId\": \"1ef1cbf0-57c4-11e3-ab91-cb986188709b\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 75,\r\n\t\t\t\t\"resourceName\": \"Regions.FRANCE_METROPOLITAN\",\r\n\t\t\t\t//EUR\r\n\t\t\t\t\"defaultCurrencyId\": \"1ef1cbf0-57c4-11e3-ab91-cb986188709b\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 90,\r\n\t\t\t\t\"resourceName\": \"Regions.FRENCH_GUIANA\",\r\n\t\t\t\t//EUR\r\n\t\t\t\t\"defaultCurrencyId\": \"1ef1cbf0-57c4-11e3-ab91-cb986188709b\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 177,\r\n\t\t\t\t\"resourceName\": \"Regions.FRENCH_POLYNESIA\",\r\n\t\t\t\t// XPF\r\n\t\t\t\t\"defaultCurrencyId\": \"1C5FB0E3-C917-4E07-8684-8847BB73D789\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 13,\r\n\t\t\t\t\"resourceName\": \"Regions.FRENCH_SOUTHERN_TERRITORIES\",\r\n\t\t\t\t//EUR\r\n\t\t\t\t\"defaultCurrencyId\": \"1ef1cbf0-57c4-11e3-ab91-cb986188709b\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 76,\r\n\t\t\t\t\"resourceName\": \"Regions.GABON\",\r\n\t\t\t\t// XAF\r\n\t\t\t\t\"defaultCurrencyId\": \"EEB2055A-904B-4B6A-9C1E-7D0F4B7C2E40\"\r\n\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 83,\r\n\t\t\t\t\"resourceName\": \"Regions.GAMBIA\",\r\n\t\t\t\t// GMD\r\n\t\t\t\t\"defaultCurrencyId\": \"E901DF43-6FA4-4FAC-96B1-4DF9CBE575EA\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 78,\r\n\t\t\t\t\"resourceName\": \"Regions.GEORGIA\",\r\n\t\t\t\t// GEL\r\n\t\t\t\t\"defaultCurrencyId\": \"644E6A8C-4CCA-46DF-AFAC-55DF06C9CA58\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 56,\r\n\t\t\t\t\"resourceName\": \"Regions.GERMANY\",\r\n\t\t\t\t//EUR\r\n\t\t\t\t\"defaultCurrencyId\": \"1ef1cbf0-57c4-11e3-ab91-cb986188709b\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 79,\r\n\t\t\t\t\"resourceName\": \"Regions.GHANA\",\r\n\t\t\t\t// GHS\r\n\t\t\t\t\"defaultCurrencyId\": \"6ABCF735-CCDE-4DC4-A699-4E8E8C66677D\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 80,\r\n\t\t\t\t\"resourceName\": \"Regions.GIBRALTAR\",\r\n\t\t\t\t// GIP\r\n\t\t\t\t\"defaultCurrencyId\": \"E70740D8-14E8-48C7-BCD7-DF977D00FA5B\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 86,\r\n\t\t\t\t\"resourceName\": \"Regions.GREECE\",\r\n\t\t\t\t//EUR\r\n\t\t\t\t\"defaultCurrencyId\": \"1ef1cbf0-57c4-11e3-ab91-cb986188709b\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 88,\r\n\t\t\t\t\"resourceName\": \"Regions.GREENLAND\",\r\n\t\t\t\t\"defaultCurrencyId\": \"\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 87,\r\n\t\t\t\t\"resourceName\": \"Regions.GRENADA\",\r\n\t\t\t\t// XCD\r\n\t\t\t\t\"defaultCurrencyId\": \"8E93696F-889D-4147-89DA-F865D668ABD9\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 82,\r\n\t\t\t\t\"resourceName\": \"Regions.GUADELOUPE\",\r\n\t\t\t\t\"defaultCurrencyId\": \"\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 91,\r\n\t\t\t\t\"resourceName\": \"Regions.GUAM\",\r\n\t\t\t\t\"defaultCurrencyId\": \"\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 89,\r\n\t\t\t\t\"resourceName\": \"Regions.GUATEMALA\",\r\n\t\t\t\t// GTQ\r\n\t\t\t\t\"defaultCurrencyId\": \"CC0A48C4-A970-446C-9487-F82AF322C59C\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 81,\r\n\t\t\t\t\"resourceName\": \"Regions.GUINEA\",\r\n\t\t\t\t// GNF\r\n\t\t\t\t\"defaultCurrencyId\": \"E113A328-EE02-4C5C-B319-F615E305C9A0\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 84,\r\n\t\t\t\t\"resourceName\": \"Regions.GUINEA_BISSAU\",\r\n\t\t\t\t// XOF\r\n\t\t\t\t\"defaultCurrencyId\": \"1AFB48F1-485B-47AB-A67C-9DF4A9D08216\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 92,\r\n\t\t\t\t\"resourceName\": \"Regions.GUYANA\",\r\n\t\t\t\t// GYD\r\n\t\t\t\t\"defaultCurrencyId\": \"EBAE43D8-69E6-43BE-9F18-925EDCE606FC\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 97,\r\n\t\t\t\t\"resourceName\": \"Regions.HAITI\",\r\n\t\t\t\t// HTG\r\n\t\t\t\t\"defaultCurrencyId\": \"A4648BEF-E77D-4FA9-9EE4-A1C491006056\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 94,\r\n\t\t\t\t\"resourceName\": \"Regions.HEARD_AND_MC_DONALD_ISLANDS\",\r\n\t\t\t\t\"defaultCurrencyId\": \"\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 95,\r\n\t\t\t\t\"resourceName\": \"Regions.HONDURAS\",\r\n\t\t\t\t// HNL\r\n\t\t\t\t\"defaultCurrencyId\": \"B23ED0A7-4B76-4824-A742-A1CE43C501AF\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 93,\r\n\t\t\t\t\"resourceName\": \"Regions.HONG_KONG\",\r\n\t\t\t\t// HKD\r\n\t\t\t\t\"defaultCurrencyId\": \"762E8BE6-E78D-49DB-97A8-2009F015244E\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 98,\r\n\t\t\t\t\"resourceName\": \"Regions.HUNGARY\",\r\n\t\t\t\t// HUF\r\n\t\t\t\t\"defaultCurrencyId\": \"6CCB6A2A-00C9-49DF-8401-C3A9132C901D\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 105,\r\n\t\t\t\t\"resourceName\": \"Regions.ICELAND\",\r\n\t\t\t\t// ISK\r\n\t\t\t\t\"defaultCurrencyId\": \"476C1018-57C4-11E3-A9FC-0B996188709B\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 100,\r\n\t\t\t\t\"resourceName\": \"Regions.INDIA\",\r\n\t\t\t\t//INR\r\n\t\t\t\t\"defaultCurrencyId\": \"45575f9e-57c4-11e3-99f3-0a996188709b\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 99,\r\n\t\t\t\t\"resourceName\": \"Regions.INDONESIA\",\r\n\t\t\t\t// IDR\r\n\t\t\t\t\"defaultCurrencyId\": \"71E79873-EC42-4DBA-AEA3-72B61B0E6A2B\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 103,\r\n\t\t\t\t\"resourceName\": \"Regions.IRAN_ISLAMIC_REPUBLIC_OF\",\r\n\t\t\t\t// IRR\r\n\t\t\t\t\"defaultCurrencyId\": \"969FA1BF-FDFD-4565-8C94-E4EB3DF01F5B\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 104,\r\n\t\t\t\t\"resourceName\": \"Regions.IRAQ\",\r\n\t\t\t\t// IQD\r\n\t\t\t\t\"defaultCurrencyId\": \"418F7B30-C556-4154-B79E-F1382CF2E14D\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 102,\r\n\t\t\t\t\"resourceName\": \"Regions.IRELAND\",\r\n\t\t\t\t//EUR\r\n\t\t\t\t\"defaultCurrencyId\": \"1ef1cbf0-57c4-11e3-ab91-cb986188709b\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 106,\r\n\t\t\t\t\"resourceName\": \"Regions.ISRAEL\",\r\n\t\t\t\t// ILS\r\n\t\t\t\t\"defaultCurrencyId\": \"439C37CE-57C4-11E3-998C-09996188709B\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 107,\r\n\t\t\t\t\"resourceName\": \"Regions.ITALY\",\r\n\t\t\t\t//EUR\r\n\t\t\t\t\"defaultCurrencyId\": \"1ef1cbf0-57c4-11e3-ab91-cb986188709b\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 108,\r\n\t\t\t\t\"resourceName\": \"Regions.JAMAICA\",\r\n\t\t\t\t// JMD\r\n\t\t\t\t\"defaultCurrencyId\": \"79270C9A-9904-4398-BDA9-2EAEE86B26D2\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 110,\r\n\t\t\t\t\"resourceName\": \"Regions.JAPAN\",\r\n\t\t\t\t//JPY\r\n\t\t\t\t\"defaultCurrencyId\": \"49376fc8-57c4-11e3-a5c7-0c996188709b\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 109,\r\n\t\t\t\t\"resourceName\": \"Regions.JORDAN\",\r\n\t\t\t\t// JOD\r\n\t\t\t\t\"defaultCurrencyId\": \"C339B194-9A00-4C67-B8D2-C3EDCEFF2A66\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 111,\r\n\t\t\t\t\"resourceName\": \"Regions.KAZAKHSTAN\",\r\n\t\t\t\t// KZT\r\n\t\t\t\t\"defaultCurrencyId\": \"43960838-22F6-4C51-A830-84C315A75610\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 112,\r\n\t\t\t\t\"resourceName\": \"Regions.KENYA\",\r\n\t\t\t\t// KES\r\n\t\t\t\t\"defaultCurrencyId\": \"5E74555D-2BD8-4138-8CA6-C6299F497C68\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 115,\r\n\t\t\t\t\"resourceName\": \"Regions.KIRIBATI\",\r\n\t\t\t\t// AUD\r\n\t\t\t\t\"defaultCurrencyId\": \"271C7DD4-57C4-11E3-A267-D2986188709B\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 117,\r\n\t\t\t\t\"resourceName\": \"Regions.KOREA_REPUBLIC_OF\",\r\n\t\t\t\t//KRW\r\n\t\t\t\t\"defaultCurrencyId\": \"4abe4204-57c4-11e3-aea9-0d996188709b\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 174,\r\n\t\t\t\t\"resourceName\": \"Regions.KOREA_DEMOCRATIC_PEOPLES_REPUBLIC_OF\",\r\n\t\t\t\t// KPW\r\n\t\t\t\t\"defaultCurrencyId\": \"E878B8A0-07D2-4329-80BE-7F7FB3E072D6\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 118,\r\n\t\t\t\t\"resourceName\": \"Regions.KUWAIT\",\r\n\t\t\t\t// KWD\r\n\t\t\t\t\"defaultCurrencyId\": \"4C5C4192-57C4-11E3-AA29-0E996188709B\"\r\n\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 113,\r\n\t\t\t\t\"resourceName\": \"Regions.KYRGYZSTAN\",\r\n\t\t\t\t// KGS\r\n\t\t\t\t\"defaultCurrencyId\": \"F16D5306-F0B4-4B55-878F-9E84D943C28E\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 119,\r\n\t\t\t\t\"resourceName\": \"Regions.LAO_PEOPLES_DEMOCRATIC_REPUBLIC\",\r\n\t\t\t\t// LAK\r\n\t\t\t\t\"defaultCurrencyId\": \"D950CFC0-1EB2-4C0B-895B-EFFE6B418651\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 129,\r\n\t\t\t\t\"resourceName\": \"Regions.LATVIA\",\r\n\t\t\t\t//EUR\r\n\t\t\t\t\"defaultCurrencyId\": \"1ef1cbf0-57c4-11e3-ab91-cb986188709b\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 120,\r\n\t\t\t\t\"resourceName\": \"Regions.LEBANON\",\r\n\t\t\t\t// LBP\r\n\t\t\t\t\"defaultCurrencyId\": \"4E026698-57C4-11E3-813A-0F996188709B\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 126,\r\n\t\t\t\t\"resourceName\": \"Regions.LESOTHO\",\r\n\t\t\t\t// LSL\r\n\t\t\t\t\"defaultCurrencyId\": \"1A581A68-596F-4C74-922A-F774A79868FD\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 121,\r\n\t\t\t\t\"resourceName\": \"Regions.LIBERIA\",\r\n\t\t\t\t// LRD\r\n\t\t\t\t\"defaultCurrencyId\": \"5854ADD6-65EE-4C21-9651-9660E1CC7A22\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 122,\r\n\t\t\t\t\"resourceName\": \"Regions.LIBYAN_ARAB_JAMAHIRIYA\",\r\n\t\t\t\t// LYD\r\n\t\t\t\t\"defaultCurrencyId\": \"08F3F661-6F6E-4064-8166-8D6AB5A51389\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 124,\r\n\t\t\t\t\"resourceName\": \"Regions.LIECHTENSTEIN\",\r\n\t\t\t\t// CHF\r\n\t\t\t\t\"defaultCurrencyId\": \"30774FBC-57C4-11E3-A88C-D7986188709B\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 127,\r\n\t\t\t\t\"resourceName\": \"Regions.LITHUANIA\",\r\n\t\t\t\t// EUR\r\n\t\t\t\t\"defaultCurrencyId\": \"1EF1CBF0-57C4-11E3-AB91-CB986188709B\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 128,\r\n\t\t\t\t\"resourceName\": \"Regions.LUXEMBOURG\",\r\n\t\t\t\t//EUR\r\n\t\t\t\t\"defaultCurrencyId\": \"1ef1cbf0-57c4-11e3-ab91-cb986188709b\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 130,\r\n\t\t\t\t\"resourceName\": \"Regions.MACAU\",\r\n\t\t\t\t// MOP\r\n\t\t\t\t\"defaultCurrencyId\": \"C01B8CE3-5F1C-4EB3-8A72-AFEA404C4D7D\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 138,\r\n\t\t\t\t\"resourceName\": \"Regions.MACEDONIA\",\r\n\t\t\t\t// MKD\r\n\t\t\t\t\"defaultCurrencyId\": \"A6B05143-B185-4524-9F5C-EA485EDD3DFE\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 134,\r\n\t\t\t\t\"resourceName\": \"Regions.MADAGASCAR\",\r\n\t\t\t\t// MGA\r\n\t\t\t\t\"defaultCurrencyId\": \"9F56F7E1-E077-4547-9447-0B60F8C2F58D\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 150,\r\n\t\t\t\t\"resourceName\": \"Regions.MALAWI\",\r\n\t\t\t\t// MWK\r\n\t\t\t\t\"defaultCurrencyId\": \"AF1CD06B-840F-41CD-87D5-A85C96A5FA44\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 151,\r\n\t\t\t\t\"resourceName\": \"Regions.MALAYSIA\",\r\n\t\t\t\t// MYR\r\n\t\t\t\t\"defaultCurrencyId\": \"896C01AF-5B20-4300-8ECF-85B39DDBA6FA\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 135,\r\n\t\t\t\t\"resourceName\": \"Regions.MALDIVES\",\r\n\t\t\t\t// MVR\r\n\t\t\t\t\"defaultCurrencyId\": \"A84093B9-EDE0-4A14-B414-165DE74DE481\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 139,\r\n\t\t\t\t\"resourceName\": \"Regions.MALI\",\r\n\t\t\t\t// XOF\r\n\t\t\t\t\"defaultCurrencyId\": \"1AFB48F1-485B-47AB-A67C-9DF4A9D08216\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 140,\r\n\t\t\t\t\"resourceName\": \"Regions.MALTA\",\r\n\t\t\t\t//EUR\r\n\t\t\t\t\"defaultCurrencyId\": \"1ef1cbf0-57c4-11e3-ab91-cb986188709b\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 137,\r\n\t\t\t\t\"resourceName\": \"Regions.MARSHALL_ISLANDS\",\r\n\t\t\t\t// USD\r\n\t\t\t\t\"defaultCurrencyId\": \"1994DD50-57C4-11E3-9C0D-BD986188709B\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 148,\r\n\t\t\t\t\"resourceName\": \"Regions.MARTINIQUE\",\r\n\t\t\t\t\"defaultCurrencyId\": \"\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 146,\r\n\t\t\t\t\"resourceName\": \"Regions.MAURITANIA\",\r\n\t\t\t\t// MRU\r\n\t\t\t\t\"defaultCurrencyId\": \"8569CED5-F85B-4214-93C9-32495FF1F69B\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 149,\r\n\t\t\t\t\"resourceName\": \"Regions.MAURITIUS\",\r\n\t\t\t\t// MUR\r\n\t\t\t\t\"defaultCurrencyId\": \"515154BC-57C4-11E3-8326-11996188709B\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 152,\r\n\t\t\t\t\"resourceName\": \"Regions.MAYOTTE\",\r\n\t\t\t\t\"defaultCurrencyId\": \"\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 136,\r\n\t\t\t\t\"resourceName\": \"Regions.MEXICO\",\r\n\t\t\t\t//MXN\r\n\t\t\t\t\"defaultCurrencyId\": \"53a184d0-57c4-11e3-9512-12996188709b\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 74,\r\n\t\t\t\t\"resourceName\": \"Regions.MICRONESIA_FEDERATED_STATES_OF\",\r\n\t\t\t\t// USD\r\n\t\t\t\t\"defaultCurrencyId\": \"1994DD50-57C4-11E3-9C0D-BD986188709B\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 133,\r\n\t\t\t\t\"resourceName\": \"Regions.MOLDOVA_REPUBLIC_OF\",\r\n\t\t\t\t// MDL\r\n\t\t\t\t\"defaultCurrencyId\": \"DF66DA07-35A2-4A29-BF51-D89C7B8CF1C0\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 132,\r\n\t\t\t\t\"resourceName\": \"Regions.MONACO\",\r\n\t\t\t\t// EUR\r\n\t\t\t\t\"defaultCurrencyId\": \"1EF1CBF0-57C4-11E3-AB91-CB986188709B\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 142,\r\n\t\t\t\t\"resourceName\": \"Regions.MONGOLIA\",\r\n\t\t\t\t// MNT\r\n\t\t\t\t\"defaultCurrencyId\": \"7D39B34F-298D-47B5-9544-B5137F3E3A26\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 147,\r\n\t\t\t\t\"resourceName\": \"Regions.MONTSERRAT\",\r\n\t\t\t\t// XCD\r\n\t\t\t\t\"defaultCurrencyId\": \"8E93696F-889D-4147-89DA-F865D668ABD9\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 131,\r\n\t\t\t\t\"resourceName\": \"Regions.MOROCCO\",\r\n\t\t\t\t// MAD\r\n\t\t\t\t\"defaultCurrencyId\": \"4F8C15FE-57C4-11E3-B056-10996188709B\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 145,\r\n\t\t\t\t\"resourceName\": \"Regions.MOZAMBIQUE\",\r\n\t\t\t\t// MZN\r\n\t\t\t\t\"defaultCurrencyId\": \"5635B84C-57C4-11E3-83A4-16996188709B\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 141,\r\n\t\t\t\t\"resourceName\": \"Regions.MYANMAR\",\r\n\t\t\t\t// MMK\r\n\t\t\t\t\"defaultCurrencyId\": \"2366B15F-2999-4112-8A52-FC24136FD432\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 153,\r\n\t\t\t\t\"resourceName\": \"Regions.NAMIBIA\",\r\n\t\t\t\t// NAD\r\n\t\t\t\t\"defaultCurrencyId\": \"584DFC34-57C4-11E3-A18D-17996188709B\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 162,\r\n\t\t\t\t\"resourceName\": \"Regions.NAURU\",\r\n\t\t\t\t// AUD\r\n\t\t\t\t\"defaultCurrencyId\": \"271C7DD4-57C4-11E3-A267-D2986188709B\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 161,\r\n\t\t\t\t\"resourceName\": \"Regions.NEPAL\",\r\n\t\t\t\t// Nepal\r\n\t\t\t\t// NPR\r\n\t\t\t\t\"defaultCurrencyId\": \"0E9156BB-FD46-4C65-AD16-BF002C55162B\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 160,\r\n\t\t\t\t\"resourceName\": \"Regions.NETHERLANDS\",\r\n\t\t\t\t//EUR\r\n\t\t\t\t\"defaultCurrencyId\": \"1ef1cbf0-57c4-11e3-ab91-cb986188709b\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 7,\r\n\t\t\t\t\"resourceName\": \"Regions.NETHERLANDS_ANTILLES\",\r\n\t\t\t\t\"defaultCurrencyId\": \"\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 154,\r\n\t\t\t\t\"resourceName\": \"Regions.NEW_CALEDONIA\",\r\n\t\t\t\t// XPF\r\n\t\t\t\t\"defaultCurrencyId\": \"1C5FB0E3-C917-4E07-8684-8847BB73D789\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 163,\r\n\t\t\t\t\"resourceName\": \"Regions.NEW_ZEALAND\",\r\n\t\t\t\t//NZD\r\n\t\t\t\t\"defaultCurrencyId\": \"5b8bb396-57c4-11e3-8fd7-19996188709b\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 158,\r\n\t\t\t\t\"resourceName\": \"Regions.NICARAGUA\",\r\n\t\t\t\t// NIO\r\n\t\t\t\t\"defaultCurrencyId\": \"462EE131-A248-46B9-9E46-0FD52B5A1B23\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 155,\r\n\t\t\t\t\"resourceName\": \"Regions.NIGER\",\r\n\t\t\t\t// XOF\r\n\t\t\t\t\"defaultCurrencyId\": \"1AFB48F1-485B-47AB-A67C-9DF4A9D08216\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 157,\r\n\t\t\t\t\"resourceName\": \"Regions.NIGERIA\",\r\n\t\t\t\t// NGN\r\n\t\t\t\t\"defaultCurrencyId\": \"30975DE5-D503-48E3-90CF-54EC762F5382\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 159,\r\n\t\t\t\t\"resourceName\": \"Regions.NIUE\",\r\n\t\t\t\t// NZD\r\n\t\t\t\t\"defaultCurrencyId\": \"5B8BB396-57C4-11E3-8FD7-19996188709B\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 156,\r\n\t\t\t\t\"resourceName\": \"Regions.NORFOLK_ISLAND\",\r\n\t\t\t\t\"defaultCurrencyId\": \"\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 143,\r\n\t\t\t\t\"resourceName\": \"Regions.NORTHERN_MARIANA_ISLANDS\",\r\n\t\t\t\t\"defaultCurrencyId\": \"\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 144,\r\n\t\t\t\t\"resourceName\": \"Regions.NORWAY\",\r\n\t\t\t\t// NOK\r\n\t\t\t\t\"defaultCurrencyId\": \"59D86CBA-57C4-11E3-B209-18996188709B\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 222,\r\n\t\t\t\t\"resourceName\": \"Regions.NOT_LISTED\",\r\n\t\t\t\t\"defaultCurrencyId\": \"\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 164,\r\n\t\t\t\t\"resourceName\": \"Regions.OMAN\",\r\n\t\t\t\t// OMR\r\n\t\t\t\t\"defaultCurrencyId\": \"F5FC2170-96CF-40ED-89CF-0FF3DD205AD9\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 165,\r\n\t\t\t\t\"resourceName\": \"Regions.PAKISTAN\",\r\n\t\t\t\t// PKR\r\n\t\t\t\t\"defaultCurrencyId\": \"7B98CB05-06C3-4640-BAF8-DF484F47E3BC\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 170,\r\n\t\t\t\t\"resourceName\": \"Regions.PALAU\",\r\n\t\t\t\t// USD\r\n\t\t\t\t\"defaultCurrencyId\": \"1994DD50-57C4-11E3-9C0D-BD986188709B\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 166,\r\n\t\t\t\t\"resourceName\": \"Regions.PANAMA\",\r\n\t\t\t\t// PAB\r\n\t\t\t\t\"defaultCurrencyId\": \"54469043-BB83-4885-A00E-A40DCBCC2700\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 171,\r\n\t\t\t\t\"resourceName\": \"Regions.PAPUA_NEW_GUINEA\",\r\n\t\t\t\t// PGK\r\n\t\t\t\t\"defaultCurrencyId\": \"E3CF77C0-3EDF-480B-87CA-77DA05E6E735\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 176,\r\n\t\t\t\t\"resourceName\": \"Regions.PARAGUAY\",\r\n\t\t\t\t// PYG\r\n\t\t\t\t\"defaultCurrencyId\": \"5EFCE7AE-F801-46DB-BDA1-93DC8F55C115\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 168,\r\n\t\t\t\t\"resourceName\": \"Regions.PERU\",\r\n\t\t\t\t// Peru\r\n\t\t\t\t// PEN\r\n\t\t\t\t\"defaultCurrencyId\": \"5D227190-57C4-11E3-8447-1A996188709B\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 169,\r\n\t\t\t\t\"resourceName\": \"Regions.PHILIPPINES\",\r\n\t\t\t\t//PHP\r\n\t\t\t\t\"defaultCurrencyId\": \"5ea971c6-57c4-11e3-9c07-1d996188709b\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 167,\r\n\t\t\t\t\"resourceName\": \"Regions.PITCAIRN\",\r\n\t\t\t\t// NZD\r\n\t\t\t\t\"defaultCurrencyId\": \"5B8BB396-57C4-11E3-8FD7-19996188709B\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 172,\r\n\t\t\t\t\"resourceName\": \"Regions.POLAND\",\r\n\t\t\t\t// PLN\r\n\t\t\t\t\"defaultCurrencyId\": \"6030B43C-57C4-11E3-8170-1F996188709B\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 175,\r\n\t\t\t\t\"resourceName\": \"Regions.PORTUGAL\",\r\n\t\t\t\t//EUR\r\n\t\t\t\t\"defaultCurrencyId\": \"1ef1cbf0-57c4-11e3-ab91-cb986188709b\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 173,\r\n\t\t\t\t\"resourceName\": \"Regions.PUERTO_RICO\",\r\n\t\t\t\t\"defaultCurrencyId\": \"\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 178,\r\n\t\t\t\t\"resourceName\": \"Regions.QATAR\",\r\n\t\t\t\t// QAR\r\n\t\t\t\t\"defaultCurrencyId\": \"6188DA89-A94C-488F-B1B1-E51185D86E1B\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 179,\r\n\t\t\t\t\"resourceName\": \"Regions.REUNION\",\r\n\t\t\t\t\"defaultCurrencyId\": \"\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 180,\r\n\t\t\t\t\"resourceName\": \"Regions.ROMANIA\",\r\n\t\t\t\t// RON\r\n\t\t\t\t\"defaultCurrencyId\": \"19C21628-BA48-4F60-8399-6AC8D48F6E9B\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 181,\r\n\t\t\t\t\"resourceName\": \"Regions.RUSSIAN_FEDERATION\",\r\n\t\t\t\t// RUB\r\n\t\t\t\t\"defaultCurrencyId\": \"62316236-57C4-11E3-90A4-23996188709B\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 182,\r\n\t\t\t\t\"resourceName\": \"Regions.RWANDA\",\r\n\t\t\t\t// RWF\r\n\t\t\t\t\"defaultCurrencyId\": \"F38E4F74-3556-4E0D-8090-D54CAC57D58E\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 116,\r\n\t\t\t\t\"resourceName\": \"Regions.SAINT_KITTS_AND_NEVIS\",\r\n\t\t\t\t// XCD\r\n\t\t\t\t\"defaultCurrencyId\": \"8E93696F-889D-4147-89DA-F865D668ABD9\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 123,\r\n\t\t\t\t\"resourceName\": \"Regions.SAINT_LUCIA\",\r\n\t\t\t\t// XCD\r\n\t\t\t\t\"defaultCurrencyId\": \"8E93696F-889D-4147-89DA-F865D668ABD9\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 227,\r\n\t\t\t\t\"resourceName\": \"Regions.SAINT_VINCENT_AND_THE_GRENADINES\",\r\n\t\t\t\t// XCD\r\n\t\t\t\t\"defaultCurrencyId\": \"8E93696F-889D-4147-89DA-F865D668ABD9\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 234,\r\n\t\t\t\t\"resourceName\": \"Regions.SAMOA\",\r\n\t\t\t\t// WST\r\n\t\t\t\t\"defaultCurrencyId\": \"EAA7A4DD-1E12-4547-9DBA-19F10AA18F81\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 193,\r\n\t\t\t\t\"resourceName\": \"Regions.SAN_MARINO\",\r\n\t\t\t\t// EUR\r\n\t\t\t\t\"defaultCurrencyId\": \"1EF1CBF0-57C4-11E3-AB91-CB986188709B\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 196,\r\n\t\t\t\t\"resourceName\": \"Regions.SAO_TOME_AND_PRINCIPE\",\r\n\t\t\t\t\"defaultCurrencyId\": \"\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 183,\r\n\t\t\t\t\"resourceName\": \"Regions.SAUDI_ARABIA\",\r\n\t\t\t\t// SAR\r\n\t\t\t\t\"defaultCurrencyId\": \"D385FB5D-5734-4D2A-82C7-C31DA042114D\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 185,\r\n\t\t\t\t\"resourceName\": \"Regions.SENEGAL\",\r\n\t\t\t\t// XOF\r\n\t\t\t\t\"defaultCurrencyId\": \"1AFB48F1-485B-47AB-A67C-9DF4A9D08216\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 236,\r\n\t\t\t\t\"resourceName\": \"Regions.SERBIA\",\r\n\t\t\t\t// RSD\r\n\t\t\t\t\"defaultCurrencyId\": \"8F68D429-FD38-4899-A915-2B35E8CA5210\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 202,\r\n\t\t\t\t\"resourceName\": \"Regions.SEYCHELLES\",\r\n\t\t\t\t// SCR\r\n\t\t\t\t\"defaultCurrencyId\": \"6723B3F2-57C4-11E3-A9D8-29996188709B\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 191,\r\n\t\t\t\t\"resourceName\": \"Regions.SIERRA_LEONE\",\r\n\t\t\t\t// SLL\r\n\t\t\t\t\"defaultCurrencyId\": \"A902942D-CF2F-4663-A2C9-7DD8CF8553B5\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 186,\r\n\t\t\t\t\"resourceName\": \"Regions.SINGAPORE\",\r\n\t\t\t\t// SGD\r\n\t\t\t\t\"defaultCurrencyId\": \"8D55C7DD-D545-4A83-9439-69F7407DCF76\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 198,\r\n\t\t\t\t\"resourceName\": \"Regions.SLOVAKIA_SLOVAK_REPUBLIC\",\r\n\t\t\t\t//EUR\r\n\t\t\t\t\"defaultCurrencyId\": \"1ef1cbf0-57c4-11e3-ab91-cb986188709b\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 199,\r\n\t\t\t\t\"resourceName\": \"Regions.SLOVENIA\",\r\n\t\t\t\t//EUR\r\n\t\t\t\t\"defaultCurrencyId\": \"1ef1cbf0-57c4-11e3-ab91-cb986188709b\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 190,\r\n\t\t\t\t\"resourceName\": \"Regions.SOLOMON_ISLANDS\",\r\n\t\t\t\t// SBD\r\n\t\t\t\t\"defaultCurrencyId\": \"363B6C7B-66C8-4A29-8B33-E00D01238DA6\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 194,\r\n\t\t\t\t\"resourceName\": \"Regions.SOMALIA\",\r\n\t\t\t\t// SOS\r\n\t\t\t\t\"defaultCurrencyId\": \"D001DAEF-5B00-449C-815A-0E18083F6E92\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 237,\r\n\t\t\t\t\"resourceName\": \"Regions.SOUTH_AFRICA\",\r\n\t\t\t\t//ZAR\r\n\t\t\t\t\"defaultCurrencyId\": \"6ec532b6-57c4-11e3-9779-31996188709b\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 187,\r\n\t\t\t\t\"resourceName\": \"Regions.SOUTH_GEORGIA_AND_THE_SOUTH_SANDWICH_ISLANDS\",\r\n\t\t\t\t\"defaultCurrencyId\": \"\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 66,\r\n\t\t\t\t\"resourceName\": \"Regions.SPAIN\",\r\n\t\t\t\t//EUR\r\n\t\t\t\t\"defaultCurrencyId\": \"1ef1cbf0-57c4-11e3-ab91-cb986188709b\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 125,\r\n\t\t\t\t\"resourceName\": \"Regions.SRI_LANKA\",\r\n\t\t\t\t// LKR\r\n\t\t\t\t\"defaultCurrencyId\": \"86C7792D-70EA-49D2-A3C3-488F09682526\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 188,\r\n\t\t\t\t\"resourceName\": \"Regions.ST_HELENA\",\r\n\t\t\t\t// SHP\r\n\t\t\t\t\"defaultCurrencyId\": \"58489927-5FC7-406B-B181-9CD58EA0D6AD\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 195,\r\n\t\t\t\t\"resourceName\": \"Regions.ST_PIERRE_AND_MIQUELON\",\r\n\t\t\t\t\"defaultCurrencyId\": \"\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 184,\r\n\t\t\t\t\"resourceName\": \"Regions.SUDAN\",\r\n\t\t\t\t// SDG\r\n\t\t\t\t\"defaultCurrencyId\": \"DA06F778-2131-4C8E-8361-9AF860C88122\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 197,\r\n\t\t\t\t\"resourceName\": \"Regions.SURINAME\",\r\n\t\t\t\t// SRD\r\n\t\t\t\t\"defaultCurrencyId\": \"61E29729-E851-44A7-95D1-196BD0E9E2E8\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 189,\r\n\t\t\t\t\"resourceName\": \"Regions.SVALBARD_AND_JAN_MAYEN_ISLANDS\",\r\n\t\t\t\t\"defaultCurrencyId\": \"\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 201,\r\n\t\t\t\t\"resourceName\": \"Regions.SWAZILAND\",\r\n\t\t\t\t// SZL\r\n\t\t\t\t\"defaultCurrencyId\": \"F9C9D402-D63E-4629-A8B6-F2B463DEA52C\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 200,\r\n\t\t\t\t\"resourceName\": \"Regions.SWEDEN\",\r\n\t\t\t\t// SEK\r\n\t\t\t\t\"defaultCurrencyId\": \"69968614-57C4-11E3-A655-2A996188709B\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 40,\r\n\t\t\t\t\"resourceName\": \"Regions.SWITZERLAND\",\r\n\t\t\t\t// CHF\r\n\t\t\t\t\"defaultCurrencyId\": \"30774FBC-57C4-11E3-A88C-D7986188709B\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 203,\r\n\t\t\t\t\"resourceName\": \"Regions.SYRIAN_ARAB_REPUBLIC\",\r\n\t\t\t\t// SYP\r\n\t\t\t\t\"defaultCurrencyId\": \"F386369C-DC73-4E2C-9F84-3B05D656B5FE\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 217,\r\n\t\t\t\t\"resourceName\": \"Regions.TAIWAN\",\r\n\t\t\t\t// TWD\r\n\t\t\t\t\"defaultCurrencyId\": \"4A7E7519-0FDB-44F3-8853-814DD2E9F4D8\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 208,\r\n\t\t\t\t\"resourceName\": \"Regions.TAJIKISTANA\",\r\n\t\t\t\t// TJS\r\n\t\t\t\t\"defaultCurrencyId\": \"9F9E1C3A-0BAA-4421-A1CE-10883C8588D5\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 218,\r\n\t\t\t\t\"resourceName\": \"Regions.TANZANIA_UNITED_REPUBLIC_OF\",\r\n\t\t\t\t// TZS\r\n\t\t\t\t\"defaultCurrencyId\": \"70040244-4C0C-4AB0-9C5D-D1DFB3BFA0C7\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 207,\r\n\t\t\t\t\"resourceName\": \"Regions.THAILAND\",\r\n\t\t\t\t// THB\r\n\t\t\t\t\"defaultCurrencyId\": \"6B4C01BE-57C4-11E3-A89D-2B996188709B\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 206,\r\n\t\t\t\t\"resourceName\": \"Regions.TOGO\",\r\n\t\t\t\t// XOF\r\n\t\t\t\t\"defaultCurrencyId\": \"1AFB48F1-485B-47AB-A67C-9DF4A9D08216\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 209,\r\n\t\t\t\t\"resourceName\": \"Regions.TOKELAU\",\r\n\t\t\t\t\"defaultCurrencyId\": \"\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 212,\r\n\t\t\t\t\"resourceName\": \"Regions.TONGA\",\r\n\t\t\t\t// TOP\r\n\t\t\t\t\"defaultCurrencyId\": \"C6EE712E-0959-4EEF-A906-CE97CD8C3EE2\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 213,\r\n\t\t\t\t\"resourceName\": \"Regions.TRINIDAD_AND_TOBAGO\",\r\n\t\t\t\t// TTD\r\n\t\t\t\t\"defaultCurrencyId\": \"7DD589EA-C678-4265-BA49-9E12DAF0F58E\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 214,\r\n\t\t\t\t\"resourceName\": \"Regions.TUNISIA\",\r\n\t\t\t\t// TND\r\n\t\t\t\t\"defaultCurrencyId\": \"B5DAEFA9-EA54-4FDF-BD6D-D190A848607E\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 215,\r\n\t\t\t\t\"resourceName\": \"Regions.TURKEY\",\r\n\t\t\t\t// TRY\r\n\t\t\t\t\"defaultCurrencyId\": \"C1C6D163-7AFD-456C-8293-639F59A9D0F0\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 210,\r\n\t\t\t\t\"resourceName\": \"Regions.TURKMENISTAN\",\r\n\t\t\t\t// TMT\r\n\t\t\t\t\"defaultCurrencyId\": \"F071B3BC-CE36-4575-B642-3F09227B56A4\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 204,\r\n\t\t\t\t\"resourceName\": \"Regions.TURKS_AND_CAICOS_ISLANDS\",\r\n\t\t\t\t// USD\r\n\t\t\t\t\"defaultCurrencyId\": \"1994DD50-57C4-11E3-9C0D-BD986188709B\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 216,\r\n\t\t\t\t\"resourceName\": \"Regions.TUVALU\",\r\n\t\t\t\t// TVD\r\n\t\t\t\t\"defaultCurrencyId\": \"8F56C701-AB80-4D94-B460-F0FD8FC3DC86\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 219,\r\n\t\t\t\t\"resourceName\": \"Regions.UGANDA\",\r\n\t\t\t\t// UGX\r\n\t\t\t\t\"defaultCurrencyId\": \"6CF8FD14-57C4-11E3-A850-2C996188709B\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 220,\r\n\t\t\t\t\"resourceName\": \"Regions.UKRAINE\",\r\n\t\t\t\t// UAH\r\n\t\t\t\t\"defaultCurrencyId\": \"3C605747-4FD1-436D-AF09-BC764F3F953A\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 8,\r\n\t\t\t\t\"resourceName\": \"Regions.UNITED_ARAB_EMIRATES\",\r\n\t\t\t\t// AED\r\n\t\t\t\t\"defaultCurrencyId\": \"21B75292-57C4-11E3-B047-D0986188709B\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 77,\r\n\t\t\t\t\"resourceName\": \"Regions.UNITED_KINGDOM\",\r\n\t\t\t\t//GBP\r\n\t\t\t\t\"defaultCurrencyId\": \"402f86fe-57c4-11e3-9690-04996188709b\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 221,\r\n\t\t\t\t\"resourceName\": \"Regions.UNITED_STATES_MINOR_OUTLYING_ISLANDS\",\r\n\t\t\t\t// USD\r\n\t\t\t\t\"defaultCurrencyId\": \"1994DD50-57C4-11E3-9C0D-BD986188709B\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 223,\r\n\t\t\t\t\"resourceName\": \"Regions.URUGUAY\",\r\n\t\t\t\t// UYU\r\n\t\t\t\t\"defaultCurrencyId\": \"CC089271-DF7F-4253-9852-85D3BA941228\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 224,\r\n \"resourceName\": \"Regions.UNITED_STATES\",\r\n\t\t\t\t// USD\r\n\t\t\t\t\"defaultCurrencyId\": \"1994dd50-57c4-11e3-9c0d-bd986188709b\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 225,\r\n\t\t\t\t\"resourceName\": \"Regions.UZBEKISTAN\",\r\n\t\t\t\t// UZS\r\n\t\t\t\t\"defaultCurrencyId\": \"57DB825A-038D-42DB-909E-4EBEE0F45731\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 232,\r\n\t\t\t\t\"resourceName\": \"Regions.VANUATU\",\r\n\t\t\t\t// VUV\r\n\t\t\t\t\"defaultCurrencyId\": \"CDA62FF8-2540-4CAC-8ADA-4A8AE1E968F4\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 226,\r\n\t\t\t\t\"resourceName\": \"Regions.VATICAN_CITY_STATE_HOLY_SEE\",\r\n\t\t\t\t// EUR\r\n\t\t\t\t\"defaultCurrencyId\": \"1EF1CBF0-57C4-11E3-AB91-CB986188709B\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 228,\r\n\t\t\t\t\"resourceName\": \"Regions.VENEZUELA\",\r\n\t\t\t\t// VEF\r\n\t\t\t\t\"defaultCurrencyId\": \"5A159237-5856-4E92-BD6C-7692E0B8E155\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 231,\r\n\t\t\t\t\"resourceName\": \"Regions.VIET_NAM\",\r\n\t\t\t\t// VND\r\n\t\t\t\t\"defaultCurrencyId\": \"3D7D0D5A-C269-4323-B37D-D4A6DC26AE78\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 229,\r\n\t\t\t\t\"resourceName\": \"Regions.VIRGIN_ISLANDS_BRITISH\",\r\n\t\t\t\t// USD\r\n\t\t\t\t\"defaultCurrencyId\": \"1994DD50-57C4-11E3-9C0D-BD986188709B\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 230,\r\n\t\t\t\t\"resourceName\": \"Regions.VIRGIN_ISLANDS_US\",\r\n\t\t\t\t// USD\r\n\t\t\t\t\"defaultCurrencyId\": \"1994DD50-57C4-11E3-9C0D-BD986188709B\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 233,\r\n\t\t\t\t\"resourceName\": \"Regions.WALLISW_AND_FUTUNA_ISLANDS\",\r\n\t\t\t\t// XPF\r\n\t\t\t\t\"defaultCurrencyId\": \"1C5FB0E3-C917-4E07-8684-8847BB73D789\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 65,\r\n\t\t\t\t\"resourceName\": \"Regions.WESTERN_SAHARA\",\r\n\t\t\t\t\"defaultCurrencyId\": \"\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 235,\r\n\t\t\t\t\"resourceName\": \"Regions.YEMAN\",\r\n\t\t\t\t// YER\r\n\t\t\t\t\"defaultCurrencyId\": \"C642AEF3-F3E8-43B2-9D09-FA1FD6D6093C\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 239,\r\n\t\t\t\t\"resourceName\": \"Regions.ZAMBIA\",\r\n\t\t\t\t// ZMW\r\n\t\t\t\t\"defaultCurrencyId\": \"F380F883-53FE-4119-BD6E-AD6A555B5831\"\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t\"id\": 240,\r\n\t\t\t\t\"resourceName\": \"Regions.ZIMBABWE\",\r\n\t\t\t\t//ZAR\r\n\t\t\t\t\"defaultCurrencyId\": \"6ec532b6-57c4-11e3-9779-31996188709b\"\r\n\t\t\t}\r\n\t\t];\r\n\r\n\t\tvar module = {};\r\n\t\tmodule.private = {};\r\n\r\n\t\t//API\r\n\r\n\t\tmodule.browse = function () {\r\n\t\t\treturn data;\r\n\t\t};\r\n\r\n\t\tmodule.read = function (params) {\r\n\t\t\tif (params['id']) {\r\n\t\t\t\treturn module.private.getCountryById(params['id'])\r\n\t\t\t} else if (params['name']) {\r\n\t\t\t\treturn module.private.getCountryByName(params['name'])\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t//utilities\r\n\r\n\t\tmodule.private.getCountryById = function (id) {\r\n\t\t\tvar i, l;\r\n\r\n\t\t\tfor (i = 0, l = data.length; i < l; i++) {\r\n\t\t\t\tif (data[i].id == id) {\r\n\t\t\t\t\treturn data[i];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n module.private.getCountryByName = function getCountryByName(name) {\r\n var countryDropdown = document.getElementsByName('CountryId')[0];\r\n\r\n if (countryDropdown) {\r\n\r\n for (var i = 0; i < countryDropdown.options.length; i++) {\r\n var option = countryDropdown.options[i];\r\n if (option.value && option.textContent.trim().toLowerCase() === name.toLowerCase()) {\r\n return {\r\n id: option.value,\r\n name: option.textContent.trim()\r\n };\r\n }\r\n }\r\n\r\n // Log warning if country isn't found\r\n pubsub.publish('loggly.warning', {\r\n message: generalUtilities.stringFormat(\r\n 'unable to find country (require): {0} : {1}',\r\n name,\r\n generalUtilities.prop(RESAAS, 'Environment.Language')\r\n )\r\n });\r\n } else {\r\n // Log warning if country dropdown isn't found\r\n pubsub.publish('loggly.warning', {\r\n message: generalUtilities.stringFormat(\r\n 'unable to find country dropdown: {0} : {1}',\r\n name,\r\n window.pageType\r\n )\r\n });\r\n }\r\n\r\n return undefined;\r\n };\r\n\r\n\r\n\t\treturn module;\r\n\t}\r\n);\r\n","/**\r\n * re-languagespoken-data\r\n * @module languageSpokenData\r\n * @author May Montazer\r\n */\r\n\r\ndefine([], function() {\r\n 'use strict';\r\n\r\n var data = [\r\n { label: 'English', value: 'en-GB,en-US,en-UD' },\r\n { label: 'Spanish', value: 'es-LA,es-ES' },\r\n { label: 'Chinese (Cantonese)', value: 'zh-HK,zh-Hans,zh-Hant' },\r\n { label: 'Chinese (Mandarin)', value: 'zh-CN,zh-TW,zh-Hans,zh-Hant' },\r\n { label: 'French', value: 'fr-CA,fr-FR' },\r\n { label: 'Tagalog', value: 'tl-PH,fil-PH' },\r\n { label: 'Afrikaans', value: 'af-ZA' },\r\n { label: 'Albanian', value: 'sq-AL' },\r\n { label: 'Amharic', value: 'am-ET' },\r\n { label: 'Arabic', value: 'ar-AR' },\r\n { label: 'Armenian', value: 'hy-AM' },\r\n { label: 'Assamese', value: 'as-IN' },\r\n { label: 'Azerbaijani', value: 'az-AZ' },\r\n { label: 'Basque', value: 'eu-ES' },\r\n { label: 'Belarusian', value: 'be-BY' },\r\n { label: 'Bengali', value: 'bn-IN' },\r\n { label: 'Bosnian', value: 'bs-BA' },\r\n { label: 'Breton', value: 'br-FR' },\r\n { label: 'Bulgarian', value: 'bg-BG' },\r\n { label: 'Burmese', value: 'my-MM' },\r\n { label: 'Catalan', value: 'ca-ES' },\r\n { label: 'Cherokee', value: 'chr-US' },\r\n { label: 'Cebuano', value: 'cx-PH' },\r\n { label: 'Corsican', value: 'co-FR' },\r\n { label: 'Cree', value: 'cr-CA' },\r\n { label: 'Croatian', value: 'hr-HR' },\r\n { label: 'Czech', value: 'cs-CZ' },\r\n { label: 'Danish', value: 'da-DK' },\r\n { label: 'Dutch', value: 'nl-NL,nl-BE' },\r\n { label: 'Esperanto', value: 'eo-EO' },\r\n { label: 'Estonian', value: 'et-EE' },\r\n { label: 'Faroese', value: 'fo-FO' },\r\n { label: 'Finnish', value: 'fi-FI' },\r\n { label: 'Frisian', value: 'fy-NL' },\r\n { label: 'Fulah', value: 'ff-NG' },\r\n { label: 'Gaelic', value: 'gd-GB' },\r\n { label: 'Galician', value: 'gl-ES' },\r\n { label: 'Georgian', value: 'ka-GE' },\r\n { label: 'Guarani', value: 'gn-PY' },\r\n { label: 'German', value: 'de-DE' },\r\n { label: 'Greek', value: 'el-GR' },\r\n { label: 'Gujarati', value: 'gu-IN' },\r\n { label: 'Haitian Creole', value: 'ht-HT' },\r\n { label: 'Hakha Chin', value: 'cnh-MM' },\r\n { label: 'Hausa', value: 'ha-NG' },\r\n { label: 'Hebrew', value: 'he-IL' },\r\n { label: 'Hindi', value: 'hi-IN' },\r\n { label: 'Hungarian', value: 'hu-HU' },\r\n { label: 'Hmong (Laos)', value: 'hmn-LA'},\r\n { label: 'Icelandic', value: 'is-IS' },\r\n { label: 'Igbo', value: 'ig-NG' },\r\n { label: 'Indonesian', value: 'id-ID' },\r\n { label: 'Irish', value: 'ga-IE' },\r\n { label: 'Italian', value: 'it-IT' },\r\n { label: 'Japanese', value: 'ja-JP,ja-KS' },\r\n { label: 'Javanese', value: 'jv-ID' },\r\n { label: 'Kannada', value: 'kn-IN' },\r\n { label: 'Kazakh', value: 'kk-KZ' },\r\n { label: 'Khmer', value: 'km-KH' },\r\n { label: 'Kinyarwanda', value: 'rw-RW' },\r\n { label: 'Korean', value: 'ko-KR' },\r\n { label: 'Kurdish (Kurmanji)', value: 'ku-TR' },\r\n { label: 'Kurdish (Sorani)', value: 'cb-IQ' },\r\n { label: 'Kutchi', value: 'kut-IN' },\r\n { label: 'Kyrgyz', value: 'ky-KG' },\r\n { label: 'Lao', value: 'lo-LA' },\r\n { label: 'Latvian', value: 'lv-LV' },\r\n { label: 'Lithuanian', value: 'lt-LT' },\r\n { label: 'Luxemburgish', value: 'lb-LU' },\r\n { label: 'Macedonian', value: 'mk-MK' },\r\n { label: 'Malagasy', value: 'mg-MG' },\r\n { label: 'Malay', value: 'ms-MY' },\r\n { label: 'Malayalam', value: 'ml-IN' },\r\n { label: 'Maltese', value: 'mt-MT' },\r\n { label: 'Marathi', value: 'mr-IN' },\r\n { label: 'Mongolian', value: 'mn-MN' },\r\n { label: 'Navajo', value: 'nv-US' },\r\n { label: 'Nepali', value: 'ne-NP' },\r\n { label: 'Norwegian', value: 'nn-NO,nb-NO' },\r\n { label: 'Ojibwa', value: 'oj-CA' },\r\n { label: 'Odia', value: 'or-IN' },\r\n { label: 'Pashto', value: 'ps-AF' },\r\n { label: 'Persian', value: 'fa-IR' },\r\n { label: 'Polish', value: 'pl-PL' },\r\n { label: 'Portuguese', value: 'pt-PT,pt-BR' },\r\n { label: 'Punjabi', value: 'pa-IN' },\r\n { label: 'Romanian', value: 'ro-RO' },\r\n { label: 'Russian', value: 'ru-RU' },\r\n { label: 'Serbian', value: 'sr-RS' },\r\n { label: 'Shanghainese', value: 'wuu-CN' },\r\n { label: 'Shona', value: 'sn-ZW' },\r\n { label: 'Sign Language', value: 'sgn-US' },\r\n { label: 'Silesian', value: 'sz-PL' },\r\n { label: 'Sindhi', value: 'sd-PK' },\r\n { label: 'Sinhala', value: 'si-LK' },\r\n { label: 'Slovak', value: 'sk-SK' },\r\n { label: 'Slovenian', value: 'sl-SI' },\r\n { label: 'Somali', value: 'so-SO' },\r\n { label: 'Sotho', value: 'st-ZA' },\r\n { label: 'Swahili', value: 'sw-KE' },\r\n { label: 'Swati', value: 'ss-SZ' },\r\n { label: 'Swedish', value: 'sv-SE' },\r\n { label: 'Syrian', value: 'sy-SY' },\r\n { label: 'Taiwanese', value: 'nan-TW' },\r\n { label: 'Tajik', value: 'tg-TJ' },\r\n { label: 'Tamil', value: 'ta-IN' },\r\n { label: 'Tamazight', value: 'tz-MA' },\r\n { label: 'Tatar', value: 'tt-RU' },\r\n { label: 'Telugu', value: 'te-IN' },\r\n { label: 'Thai', value: 'th-TH' },\r\n { label: 'Tigrinya', value: 'ti-ER' },\r\n { label: 'Turkish', value: 'tr-TR' },\r\n { label: 'Ukrainian', value: 'uk-UA' },\r\n { label: 'Urdu', value: 'ur-PK' },\r\n { label: 'Uzbek', value: 'uz-UZ' },\r\n { label: 'Vietnamese', value: 'vi-VN' },\r\n { label: 'Welsh', value: 'cy-GB' },\r\n { label: 'Xhosa', value: 'xh-ZA' },\r\n { label: 'Yiddish', value: 'yi-US' },\r\n { label: 'Yoruba', value: 'yo-NG' },\r\n { label: 'Zaza', value: 'zz-TR' },\r\n { label: 'Zulu', value: 'zu-ZA' }\r\n ];\r\n\r\n var module = {\r\n browse: function () {\r\n return data;\r\n }\r\n };\r\n\r\n return module;\r\n});\r\n","/**\r\n * re_notificationsenum_data\r\n * @module notificationsEnumData\r\n * @author Eugene Katsov\r\n */\r\n\r\ndefine([],\r\n\r\n\tfunction () {\r\n\t\t'use strict';\r\n\r\n\t\tvar data = {};\r\n\t\tdata.RegularUserUpgradeNotification = 0;\r\n\t\tdata.InviteToSellingCommunityNotification = 1;\r\n\t\tdata.GeneralTextNotification = 2;\r\n\t\tdata.GeneralHtmlNotification = 3;\r\n\t\tdata.InviteToConnectNotification = 4;\r\n\t\tdata.ReblastCommentNotification = 5;\r\n\t\t\r\n\t\tvar module = {\r\n\t\t\tbrowse: function () {\r\n\t\t\t\treturn data;\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\treturn module;\r\n\t}\r\n);","/**\r\n * re_relationshiptypes_data\r\n * @module relationshiptypesData\r\n * @author Eugene Katsov\r\n */\r\n\r\ndefine([],\r\n\r\n\tfunction () {\r\n\t\t'use strict';\r\n\r\n\t\tvar data = {};\r\n\t\tdata.Following = 0;\r\n\t\tdata.Connection = 1;\r\n\t\tdata.SellingCommunity = 2;\r\n\t\tdata.Office = 3;\r\n\t\tdata.Firm = 4;\r\n\t\tdata.RealEstateBoard = 5;\r\n\r\n\t\tvar module = {\r\n\t\t\tbrowse: function () {\r\n\t\t\t\treturn data;\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\treturn module;\r\n\t}\r\n);","define([\n\t'jquery', 'pubsub', 'overLay', 'Handlebars', 'moduleUtilities', 'generalUtilities', 'locationConfirmCompiled',\n\t'mixpanelControl'],\n\t\n\tfunction ($, pubsub, overLay, Handlebars, moduleUtilities, generalUtilities, locationConfirmCompiled) {\n\t\t/**\n\t\t* re_locationconfirm_control\n\t\t* @exports locationConfirmControl\n\t\t* @author May Montazer\n\t\t* \n\t\t*/\n\n\t\t//#region set up\n\n\t\t'use strict';\n\n\t\tvar module, overLayModule;\n\n\t\tmodule = {};\n\t\tmodule.private = {};\n\t\tmodule.properties = {};\n\n\t\t// Initialize overlay.\n\t\toverLayModule = new overLay();\n\t\toverLayModule.init();\n\n\t\t/**\n\t\t* Determines whether the user have location info set or not.\n\t\t* @returns bool\n\t\t*/\n\t\tmodule.private.verifyUserWithoutLocation = function () {\n\n\t\t\t//no matter who you are if your city or country is false verify location\n\t\t\tif (!generalUtilities.prop(RESAAS, 'User2.City') ||\n\t\t\t\t!generalUtilities.prop(RESAAS, 'User2.CountryId')) {\n\t\t\t\treturn true;\r\n\t\t\t}\n\n\t\t\treturn false;\n\t\t};\n\n\t\t/**\n\t\t*Prevent to show the location update ovelay if it is shown before.\n\t\t* @returns bool\n\t\t*/\n\t\tmodule.private.showLocationUpdateOverlay = function () {\n\t\t\tvar showOverlay;\n\n\t\t\tif (window.Modernizr && window.Modernizr.sessionstorage) {\n\t\t\t\tshowOverlay = sessionStorage.getItem('LocationUpdateShown');\n }\n\n if (showOverlay === null) {\n return true;\n }\n\n\t\t\treturn false;\n\t\t};\n\n\t\t/**\n\t\t* Initiates the module, creates a guid and binds dom events.\n\t\t* @param {object} [e] The pubsub event, optional depending module is self init or by pubsub event.\n\t\t* @param {object} [data] Data passed in by pubsub event, optional depending module is self init or by pubsub event.\n\t\t*/\n\t\tmodule.private.init = function (e, data) {\n\t\t\tvar viewModel, locationTemplate, html;\n\n\t\t\tif (!generalUtilities.prop(window,'RESAAS.User2.IsProfessional')) {\n\t\t\t\treturn false;\n\t\t\t}\n\r\n\t\t\tif ($('.js-paywall-container').length === 0) {\r\n\t\t\t\tif (module.private.verifyUserWithoutLocation() && module.private.showLocationUpdateOverlay()) {\n\n\t\t\t\t\t//module config\n\t\t\t\t\tmodule.properties.guid = (data && data.guid) ? data.guid : generalUtilities.uuid();\n\n\t\t\t\t\thtml = locationConfirmCompiled();\n\t\t\t\t\toverLayModule.openOverlay(html);\n\n\t\t\t\t\tif (window.Modernizr && window.Modernizr.sessionstorage) {\r\n\t\t\t\t\t\tsessionStorage.setItem(\"LocationUpdateShown\", \"true\");\r\n\t\t\t\t\t}\r\n\t\t\t\t}\n\t\t\t}\n \n\t\t};\n\n\t\t//#region external event bindings\n\t\tmodule.private.init();\n\n\t\t//#endregion\n\t\t//expose API\n\t\treturn module;\n\t}\n);\n","define([\r\n\t'jquery',\r\n\t'pubsub',\r\n\t'moduleUtilities',\r\n\t'generalUtilities',\r\n\t'missedReblastsService',\r\n\t'realtimeControl'\r\n], function missedReblastsControl($, pubsub, moduleUtilities, generalUtilities) {\r\n\t/**\r\n\t * re_missed_reblats_control\r\n\t * @exports missedReblastsControl\r\n\t * @author May Montazer\r\n\t */\r\n\r\n\t//#region set up\r\n\r\n\t'use strict';\r\n\r\n\tvar module, selectors, elements;\r\n\r\n\tmodule = {};\r\n\tmodule.private = {};\r\n\tmodule.properties = {};\r\n\tselectors = {\r\n\t\tactivityListWrapper: '.re-nav-activity',\r\n\t\tactivityPanel: '.js-activity-panel',\r\n\t\tactivityLink: '.js-activity-item a[data-id]',\r\n\t\tactivityItems: '.js-activity-item',\r\n\t\tnewReblastsBtn: '.reblasts-stream-count'\r\n\t};\r\n\telements = {};\r\n\r\n\t//#endregion\r\n\r\n\t//#region utilities\r\n\r\n\t/**\r\n\t * Publish new reblast pusher channel\r\n\t */\r\n\tmodule.private.listenPusher = function listenPusher() {\r\n\t\tif (generalUtilities.prop(window, 'RESAAS.Environment.PusherNewReblastChannel')) {\r\n\t\t\tpubsub.publish('uiAction.RSRealtimeSubscribe', {\r\n\t\t\t\tchannel: RESAAS.Environment.PusherNewReblastChannel\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * update activity panel and indicator numbers base on the new reblsat numbers\r\n\t * @param {object} data reponse from new reblast pusher channel\r\n\t * @param {object} event The pubsub event.\r\n\t */\r\n\tmodule.private.handleDataRealTimeNewReblast = function handleDataRealTimeNewReblast(event, data) {\r\n\t\tvar $count, $parent, newReblast;\r\n\t\tif (data.FeedId) {\r\n\t\t\t$parent = elements.activityLink\r\n\t\t\t\t.filter(generalUtilities.stringFormat('[data-id=\"{0}\"]', data.FeedId))\r\n\t\t\t\t.parent('.js-activity-item');\r\n\t\t\tif (!$parent.hasClass('re-secondary-hasactivity')) {\r\n\t\t\t\t$parent.addClass('re-secondary-hasactivity');\r\n\t\t\t}\r\n\r\n\t\t\t$count = elements.activityLink\r\n\t\t\t\t.filter(generalUtilities.stringFormat('[data-id=\"{0}\"]', data.FeedId))\r\n\t\t\t\t.find('.re-notification');\r\n\r\n\t\t\t$count.each(function countEach() {\r\n\t\t\t\tvar $self, $text;\r\n\r\n\t\t\t\t$self = $(this);\r\n\t\t\t\t$text = $self.text();\r\n\r\n\t\t\t\tif ($text.indexOf('+') === -1) {\r\n\t\t\t\t\tif ($text !== '') {\r\n\t\t\t\t\t\tnewReblast = parseInt($text, 10) + 1;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tnewReblast = 1;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t$self.text(newReblast > 20 ? '20+' : newReblast);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tif (\r\n\t\t\t\t!elements.activityListWrapper.hasClass('re-nav-hasactivity') &&\r\n\t\t\t\telements.activityListWrapper.find('.re-secondary-hasactivity').length > 0\r\n\t\t\t) {\r\n\t\t\t\telements.activityListWrapper.addClass('re-nav-hasactivity');\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Publish a missed reblasts request\r\n\t */\r\n\tmodule.private.missedReblastsBrowse = function missedReblastsBrowse() {\r\n\t\tvar request, requestOptions, serviceObject;\r\n\t\t// seen in the request/response but not passed to the webservice (same as module.properties)\r\n\t\trequestOptions = {};\r\n\r\n\t\t// sent to webservice\r\n\t\trequest = {};\r\n\t\tserviceObject = moduleUtilities.createServiceObject(request, module.properties, requestOptions);\r\n\r\n\t\t// service needs to be using publish2\r\n\t\tpubsub.publish('uiNeeds.MissedReblastsBrowse', serviceObject);\r\n\t};\r\n\r\n\t/**\r\n\t * return just reblasts that MissedReblastCount is not zero\r\n\t * @param {object} data reponse from missed reblasts service\r\n\t */\r\n\tmodule.private.filterMissedReblastData = function filterMissedReblastData(data) {\r\n\t\tvar dataFilter;\r\n\r\n\t\tdataFilter = [];\r\n\r\n\t\tif (Array.isArray(data.response)) {\r\n\t\t\tdata.response.forEach(function responseForEach(item, index) {\r\n\t\t\t\tif (item.MissedReblastCount !== 0) {\r\n\t\t\t\t\tdataFilter.push(data.response[index]);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn dataFilter;\r\n\t};\r\n\r\n\t//#endregion\r\n\r\n\t//#region pubsub event handlers\r\n\r\n\t/**\r\n\t * Handle data event returned from service, determines success of fail and calls the corresponding function.\r\n\t * @param {object} e The pubsub event.\r\n\t * @param {object} data Data object from service.\r\n\t */\r\n\tmodule.private.handleDataMissedReblasts = function handleDataMissedReblasts(e, data) {\r\n\t\tvar success;\r\n\r\n\t\tsuccess = generalUtilities.prop(data, 'response');\r\n\t\tif (moduleUtilities.isOwnEvent(data, module.properties)) {\r\n\t\t\tif (!success) {\r\n\t\t\t\tmodule.private.handleDataMissedReblastsError(e, data);\r\n\t\t\t} else {\r\n\t\t\t\tmodule.private.handleDataMissedReblastsSuccess(e, data);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * missed reblast success handler - filtering data and render on dom\r\n\t * @param {object} e event.\r\n\t * @param {object} data reponse data.\r\n\t */\r\n\tmodule.private.handleDataMissedReblastsSuccess = function handleDataMissedReblastsSuccess(e, data) {\r\n\t\tvar filteredData, $count, $parent;\r\n\r\n\t\tfilteredData = module.private.filterMissedReblastData(data);\r\n\r\n\t\tif (filteredData.length > 0) {\r\n\t\t\tfilteredData.forEach(function filteredDataForEach(item) {\r\n\t\t\t\t$parent = elements.activityLink\r\n\t\t\t\t\t.filter(generalUtilities.stringFormat('[data-id=\"{0}\"]', item.FeedId))\r\n\t\t\t\t\t.parent('.js-activity-item');\r\n\t\t\t\t$parent.addClass('re-secondary-hasactivity');\r\n\r\n\t\t\t\t$count = elements.activityLink\r\n\t\t\t\t\t.filter(generalUtilities.stringFormat('[data-id=\"{0}\"]', item.FeedId))\r\n\t\t\t\t\t.find('.re-notification');\r\n\r\n\t\t\t\t$count.each(function countEach() {\r\n\t\t\t\t\tvar $self = $(this);\r\n\t\t\t\t\t// also check if we are over 20 - 20+\r\n\t\t\t\t\t$self.text(item.MissedReblastCount > 20 ? '20+' : item.MissedReblastCount);\r\n\t\t\t\t});\r\n\t\t\t});\r\n\r\n\t\t\tif (elements.activityListWrapper.find('.re-secondary-hasactivity').length > 0) {\r\n\t\t\t\telements.activityListWrapper.addClass('re-nav-hasactivity');\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * missed reblast fail handler\r\n\t * @param {object} e event.\r\n\t * @param {object} data reponse data.\r\n\t */\r\n\tmodule.private.handleDataMissedReblastsError = function handleDataMissedReblastsError(e, data) {\r\n\t\tpubsub.publish('loggly.error', {\r\n\t\t\tmessage: generalUtilities.stringFormat('getting missed reblast number is failed {0}', JSON.stringify(data))\r\n\t\t});\r\n\t};\r\n\r\n\t/**\r\n\t * Handle click on the activity item, hide the indicator on the ctivity item and red circle on the activity menu\r\n\t * @param {object} e Click event\r\n\t */\r\n\tmodule.private.hideFeedsIndicator = function hideFeedsIndicator(e) {\r\n\t\tvar dataId =\r\n\t\t\t$(this)\r\n\t\t\t\t.find('a')\r\n\t\t\t\t.attr('data-id') || $('.re-nav-secondary-list .re-nav-item-active').data('id');\r\n\r\n\t\telements.activityLink\r\n\t\t\t.filter(generalUtilities.stringFormat('[data-id=\"{0}\"]', dataId))\r\n\t\t\t.find('.re-notification')\r\n\t\t\t.html('');\r\n\t\telements.activityLink\r\n\t\t\t.filter(generalUtilities.stringFormat('[data-id=\"{0}\"]', dataId))\r\n\t\t\t.parent('.js-activity-item')\r\n\t\t\t.removeClass('re-secondary-hasactivity');\r\n\r\n\t\tif (elements.activityListWrapper.find('.re-secondary-hasactivity').length === 0) {\r\n\t\t\telements.activityListWrapper.removeClass('re-nav-hasactivity');\r\n\t\t}\r\n\t};\r\n\r\n\t//#endregion\r\n\r\n\t/**\r\n\t * Initiates the module, creates a guid and binds dom events.\r\n\t * @param {object} [e] The pubsub event, optional depending module is self init or by pubsub event.\r\n\t * @param {object} [data] Data passed in by pubsub event, optional depending module is self init or by pubsub event.\r\n\t */\r\n\tmodule.private.init = function init(e, data) {\r\n\r\n\t\t// exit if user is not logged in\r\n\t\tif (!generalUtilities.prop(RESAAS, 'User2.UserId')) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\t// module config\r\n\t\tmodule.properties.guid = data && data.guid ? data.guid : generalUtilities.uuid();\r\n\r\n\t\tpubsub.subscribe('data.MissedReblastsBrowse', module.private.handleDataMissedReblasts);\r\n\t\tpubsub.subscribe('data.Realtime.NewReblast', module.private.handleDataRealTimeNewReblast);\r\n\r\n\t\tmodule.private.missedReblastsBrowse();\r\n\t\tmodule.private.listenPusher();\r\n\r\n\t\t// elements\r\n\t\telements.body = $('body');\r\n\t\telements.activityListWrapper = $(selectors.activityListWrapper);\r\n\t\telements.activityPanel = $(selectors.activityPanel);\r\n\t\telements.activityLink = $(selectors.activityLink);\r\n\t\telements.activityItems = $(selectors.activityItems);\r\n\t\telements.newReblastsBtn = $(selectors.newReblastsBtn);\r\n\r\n\t\t// dom event binding\r\n\t\telements.activityPanel.on('click', '.js-activity-item', module.private.hideFeedsIndicator);\r\n\t\telements.newReblastsBtn.on('click', module.private.hideFeedsIndicator);\r\n\r\n\t\treturn true;\r\n };\r\n\r\n window.addEventListener('load', function () {\r\n module.private.init();\r\n });\r\n\r\n\t//#endregion\r\n\r\n\t// expose API\r\n\treturn module;\r\n});\r\n","/**\r\n * @fileOverview re_navigation_control.js\r\n *\r\n * @author John Allan\r\n *\r\n */\r\ndefine([\r\n 'pubsub',\r\n 'generalUtilities',\r\n 'inboxNotificationControl',\r\n 'navigationStateControl',\r\n 'notificationToolbarGenericListControl',\r\n 'notificationConnectionListControl',\r\n 'notificationVisitControl',\r\n 'navigationTreeControl',\r\n 'navigationMobileControl',\r\n 'navigationDialpadControl',\r\n 'navigationMissedReblastControl',\r\n 'navigationExperienceControl',\r\n 'navigationScrollControl',\r\n 'navigationInviteControl',\r\n 'toolbarControl',\r\n 'userLastActiveDateControl',\r\n 'navigationUnseenNotificationControl'\r\n], function navigationControl(pubsub, generalUtilities) {\r\n 'use strict';\r\n\r\n var module = {};\r\n var elements = {};\r\n var selectors = {};\r\n var values = {};\r\n\r\n module.CONTROL_ID = generalUtilities.uuid();\r\n module.private = {};\r\n\r\n selectors.navContainer = '.js-nav-container';\r\n selectors.feedApp = '#FeedApp';\r\n selectors.groupCreate = '.js-group-create';\r\n\r\n values.groupCreate = 'groupCreate';\r\n\r\n module.private.handleGroupCreateClick = function handleGroupCreateClick(e) {\r\n if (!elements.feedApp.length) {\r\n if (Modernizr.localstorage ) {\r\n localStorage.setItem(values.groupCreate, values.groupCreate);\r\n }\r\n generalUtilities.redirect('/');\r\n }\r\n };\r\n\r\n module.private.init = function(e, data) {\r\n elements.navContainer = $(selectors.navContainer);\r\n elements.feedApp = $(selectors.feedApp);\r\n\r\n elements.navContainer.on('click', selectors.groupCreate, module.private.handleGroupCreateClick);\r\n\r\n pubsub.publish('uiAction.NavigationStateControlInit');\r\n };\r\n\r\n module.private.init();\r\n\r\n return module;\r\n});\r\n","define(['jquery', 'pubsub', 'moduleUtilities', 'generalUtilities'], function navigationDialpadControl(\r\n\t$,\r\n\tpubsub,\r\n\tmoduleUtilities,\r\n\tgeneralUtilities\r\n) {\r\n\t/**\r\n\t * re_navigation_dialpad_control\r\n\t * @exports navigationDialpadControl\r\n\t * @author John Allan\r\n\t */\r\n\t//#region set up\r\n\t'use strict';\r\n\r\n\tvar module, selectors, elements;\r\n\r\n\tmodule = {};\r\n\tmodule.private = {};\r\n\tmodule.properties = {};\r\n\tselectors = {\r\n\t\taccordionOpen: '.accordion-open',\r\n\t\taccordion: '.js-nav-accordion',\r\n\t\ttoggleAccordion: '.js-toggle-accordion',\r\n\t\texperienceNav: '.js-nav-secondary-experiences'\r\n\t};\r\n\telements = {};\r\n\r\n\t//#endregion\r\n\r\n\t//#region pubsub event handlers\r\n\r\n\t/**\r\n\t * Toggles experiences submenus\r\n\t * @param {object} [e] the event\r\n\t */\r\n\tmodule.private.handleToggleAccordionClick = function handleToggleAccordionClick(e) {\r\n\t\tvar $this = $(e.currentTarget);\r\n\t\te.preventDefault();\r\n\t\te.stopPropagation();\r\n\r\n\t\t$(selectors.accordionOpen)\r\n\t\t\t.not($this.parent().siblings(selectors.accordion))\r\n\t\t\t.removeClass('accordion-open')\r\n\t\t\t.slideUp('fast');\r\n\t\t$(selectors.toggleAccordion + '.toggle-open')\r\n\t\t\t.not($this)\r\n\t\t\t.removeClass('toggle-open');\r\n\t\t$this\r\n\t\t\t.toggleClass('toggle-open')\r\n\t\t\t.parent()\r\n\t\t\t.siblings(selectors.accordion)\r\n\t\t\t.toggleClass('accordion-open')\r\n\t\t\t.slideToggle('fast');\r\n\t};\r\n\r\n\t/**\r\n\t * Initiates the module, creates a guid and binds dom events.\r\n\t * @param {object} [e] The pubsub event, optional depending module is self init or by pubsub event.\r\n\t * @param {object} [data] Data passed in by pubsub event, optional depending module is self init or by pubsub event.\r\n\t */\r\n\tmodule.private.init = function init(e, data) {\r\n\t\t// module config\r\n\t\telements.experienceNav = $(selectors.experienceNav);\r\n\r\n\t\tmodule.properties.guid = data && data.guid ? data.guid : generalUtilities.uuid();\r\n\r\n\t\telements.toggleAccordion = $(selectors.toggleAccordion);\r\n\r\n\t\telements.toggleAccordion\r\n\t\t\t.off('click.NavigationDialpadControl')\r\n\t\t\t.on('click.NavigationDialpadControl', module.private.handleToggleAccordionClick);\r\n\t};\r\n\r\n\t//#region external event bindings\r\n\r\n\tmodule.private.init();\r\n\r\n\t//#endregion\r\n\r\n\t// expose API\r\n\treturn module;\r\n});\r\n","define([\r\n\t'jquery', 'pubsub', 'moduleUtilities', 'generalUtilities'],\r\n\r\n\tfunction ($, pubsub, moduleUtilities, generalUtilities) {\r\n\t\t/**\r\n\t\t* re_navigation_experience_control\r\n\t\t* @exports navigationExperienceControl\r\n\t\t* @author Sylvia Wang\r\n\t\t*/\r\n\t\t//#region set up\r\n\t\t'use strict';\r\n\r\n\t\tvar module, selectors, elements;\r\n\r\n\t\tmodule = {};\r\n\t\tmodule.private = {};\r\n\t\tmodule.properties = {};\r\n\t\tselectors = {\r\n\t\t\texperiencesSubnav: '.js-nav-secondary-experiences',\r\n\t\t\tnavContainer: '.js-nav-container',\r\n\t\t\texperienceItem: '.js-nav-item[data-targetexperience]',\r\n\t\t\texperienceNotification: '.js-nav-item[data-targetexperience] .re-notification'\r\n\t\t};\r\n\t\telements = {};\r\n\r\n\t\t//#endregion\r\n\r\n\r\n\t\t//#region pubsub event handlers\r\n\r\n\t\t/**\r\n\t\t* handles experience switching\r\n\t\t* @param {object} [e] the event\r\n\t\t*/\r\n\t\tmodule.private.handleExperienceClick = function (e) {\r\n\t\t\tvar href, arr, guid, reblastUrl, selector, isInternalLink, link, domainUrl, isActivityLink, targetExperience, currentExperience, redirectPageCB;\r\n\r\n\t\t\thref = e.currentTarget.href;\r\n\t\t\tarr = href.split('/');\r\n\t\t\tguid = arr[arr.length - 2]; // will only be a GUID when joining REMAX QA group if not already a members\r\n\t\t\treblastUrl = arr[arr.length - 1];\r\n\t\t\tlink = generalUtilities.prop(RESAAS, 'Environment.ApplicationUrl');\r\n\t\t\tdomainUrl = generalUtilities.prop(RESAAS, 'User2.DomainUrl');\r\n\r\n\t\t\ttargetExperience = $(e.currentTarget).data().targetexperience;\r\n\t\t\tcurrentExperience = $(selectors.experiencesSubnav).data('currentexperience');\r\n\r\n\t\t\t// If reblast URL contains a = (ex: query string), then we'll grab what comes after it. Otherwise, grab the whole URL.\r\n\t\t\tselector = (reblastUrl.indexOf('=') > -1) ? reblastUrl.split('=')[1] : reblastUrl;\r\n\r\n\t\t\t// If the target hostname is the same as the current hostname, OR if there is no hostname (indicating a target on the same site)\r\n\t\t\tisInternalLink = location.hostname === e.currentTarget.hostname || !e.currentTarget.hostname.length;\r\n\t\t\tisActivityLink = (href === link + '/') || (href.indexOf(link + domainUrl + '#') === 0) || (href.indexOf('/join?group') > -1);\r\n\r\n\t\t\tif (isInternalLink) {\r\n\t\t\t\tgeneralUtilities.setCookie(\"resaasexperience\", targetExperience);\r\n\t\t\t}\r\n\r\n\t\t\tredirectPageCB = function () {\r\n\t\t\t\t//reloads page for activities links\r\n\t\t\t\tif (isInternalLink && isActivityLink) {\r\n\t\t\t\t\twindow.scrollTo(0, 0);\r\n\t\t\t\t\twindow.history.pushState('', '', href);\r\n\t\t\t\t\tgeneralUtilities.reload(true);\r\n\t\t\t\t}\r\n\t\t\t\t// redirects otherwise\r\n\t\t\t\telse {\r\n\t\t\t\t\tgeneralUtilities.redirect(href);\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\te.preventDefault();\r\n\t\t\tif (targetExperience !== currentExperience) {\r\n\t\t\t\tpubsub.publish('mixpanel.Intent', { type: 'click experience, target-experience = ' + targetExperience });\r\n\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\tredirectPageCB();\r\n\t\t\t\t}, 250);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tredirectPageCB();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t* Initiates the module, creates a guid and binds dom events.\r\n\t\t* @param {object} [e] The pubsub event, optional depending module is self init or by pubsub event.\r\n\t\t* @param {object} [data] Data passed in by pubsub event, optional depending module is self init or by pubsub event.\r\n\t\t*/\r\n\t\tmodule.private.init = function (e, data) {\r\n\t\t\tvar currentExperience;\r\n\r\n\t\t\t//module config\r\n\t\t\telements.navContainer = $(selectors.navContainer);\r\n\r\n\t\t\tmodule.properties.guid = (data && data.guid) ? data.guid : generalUtilities.uuid();\r\n\r\n\t\t\t// marking current experience in the switcher\r\n\t\t\tcurrentExperience = $(selectors.experiencesSubnav).data('currentexperience');\r\n\t\t\t$(selectors.experienceItem + '[data-targetexperience=\"' + currentExperience + '\"]').addClass('re-current-experience');\r\n\r\n\t\t\telements.navContainer.off('click.navigationExperienceControl').on('click.navigationExperienceControl', selectors.experienceItem, selectors.experienceNotification, module.private.handleExperienceClick);\r\n\r\n\t\t};\r\n\r\n\t\t//#region external event bindings\r\n\r\n\t\tmodule.private.init();\r\n\r\n\t\t//#endregion\r\n\r\n\t\t//expose API\r\n\t\treturn module;\r\n\t}\r\n);\r\n","/**\r\n * re_navigation_invite_control\r\n * @exports navigationInviteControl\r\n * @author Suen Ting\r\n */\r\ndefine(['generalUtilities', 'moduleUtilities', 'validator', 'pubsub'], function navigationInviteControl(\r\n generalUtilities,\r\n moduleUtilities,\r\n validator,\r\n pubsub\r\n) {\r\n var module, selectors, elements;\r\n\r\n module = {};\r\n module.private = {};\r\n module.properties = {};\r\n selectors = {\r\n inviteIcon: '.js-invite',\r\n inputHref: '#js-invite-href',\r\n copyButton: '#js-invite-copy',\r\n inviteForm: '.js-invite-form',\r\n inviteOption: '.js-invite-option',\r\n inviteBtn: '#js-invite-btn',\r\n errorMessage: '.js-invite-form .error',\r\n email: '#InviteEmail',\r\n inviteWithEmailForm: '#invite-with-email'\r\n };\r\n\r\n elements = {};\r\n\r\n var constraints = {\r\n InviteEmail: {\r\n email: {\r\n message: ['^', RESAAS.Localization.Navigation.INVITE_WITH_EMAIL_VALIDATION].join(' ')\r\n },\r\n presence: {\r\n message: ['^', RESAAS.Localization.Navigation.INVITE_WITH_EMAIL_VALIDATION].join(' ')\r\n }\r\n }\r\n };\r\n\r\n module.private.inviteClicked = function inviteClicked() {\r\n pubsub.publish('mixpanel.Intent', {\r\n type: 'open invite widget',\r\n context: 'toolbar invite'\r\n });\r\n };\r\n\r\n module.private.copyInviteClicked = function copyInviteClicked() {\r\n elements.inputHref.focus(); // required to highlight text on older browsers (pre ios10) as document.execCommand(\"copy\") wont work\r\n elements.inputHref.select();\r\n elements.inputHref.setSelectionRange(0, 99999); /* For mobile devices */\r\n document.execCommand('copy');\r\n\r\n pubsub.publish('mixpanel.Intent', {\r\n type: 'copy invite url',\r\n context: 'toolbar invite'\r\n });\r\n };\r\n\r\n module.private.inviteOptionClicked = function inviteOptionClicked(e) {\r\n elements.inviteOption.toggleClass('re-invite-option-selected');\r\n elements.inviteForm.toggleClass('hide');\r\n pubsub.publish('mixpanel.Intent', {\r\n type: e.currentTarget.dataset.mixpaneltype,\r\n context: 'toolbar invite'\r\n });\r\n };\r\n\r\n /**\r\n * Handle click on the action, Invite a user\r\n * @param {object} e Click event\r\n */\r\n module.private.inviteBtnClicked = function(e) {\r\n var requestOptions, request, serviceObject, email, invalid;\r\n email = elements.email.val();\r\n\r\n invalid = validator.validate(elements.inviteWithEmailForm, constraints);\r\n\r\n if (invalid) {\r\n validator.showErrors(elements.inviteWithEmailForm, invalid, false);\r\n return;\r\n }\r\n\r\n elements.inviteWithEmailForm.find(\":input, .re-input-wrapper\").removeClass('error');\r\n elements.inviteWithEmailForm.find('.error-message').remove();\r\n\r\n requestOptions = {};\r\n\r\n request = {\r\n contact: {\r\n Name: 'there',\r\n Email: email,\r\n Invite: true\r\n }\r\n };\r\n\r\n serviceObject = moduleUtilities.createServiceObject(request, module.properties, requestOptions);\r\n\r\n generalUtilities.disableAndWaitFor(e.target, 'data.ConnectionAdd');\r\n pubsub.publish('uiHas.ConnectionAdd', serviceObject);\r\n pubsub.publish('mixpanel.Intent', {\r\n type: 'Sent invite email',\r\n context: 'toolbar invite'\r\n });\r\n };\r\n\r\n /**\r\n * Invite response error handler\r\n * @param {object} e event\r\n * @param {object} data response data\r\n */\r\n module.private.handleDataInviteError = function(e, data) {\r\n pubsub.publish('loggly.error', { message: JSON.stringify(data) });\r\n\r\n pubsub.publish('uiAction.MessageAdd', {\r\n message: RESAAS.Localization.Global.GENERIC_WEBSERVICE_ERROR_MESSAGE,\r\n type: 'error'\r\n });\r\n };\r\n\r\n /**\r\n * Invite response success handler\r\n * @param {object} e event\r\n * @param {object} data response data\r\n */\r\n module.private.handleDataInviteSuccess = function(e, data) {\r\n pubsub.publish('uiAction.MessageAdd', {\r\n message: window.RESAAS.Localization.Navigation.INVITE_AGENT_SUCCEEDED\r\n });\r\n };\r\n\r\n /**\r\n * Handle data event returned from service, determines success of fail and calls the corresponding function.\r\n * @param {object} e The pubsub event.\r\n * @param {object} data Data object from service.\r\n */\r\n module.private.handleDataInvite = function(e, data) {\r\n var success;\r\n elements.email.val('');\r\n if (moduleUtilities.isOwnEvent(data, module.properties)) {\r\n success = generalUtilities.prop(data, 'response.SaveResult.Success');\r\n if (!success) {\r\n module.private.handleDataInviteError(e, data);\r\n } else {\r\n module.private.handleDataInviteSuccess(e, data);\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * Initiates the module, creates a guid and binds dom events.\r\n * @param {object} [e] The pubsub event, optional depending module is self init or by pubsub event.\r\n * @param {object} [data] Data passed in by pubsub event, optional depending module is self init or by pubsub event.\r\n */\r\n module.private.init = function init(e, data) {\r\n var applicationUrl, domainUrl, returnUrl, queryParams;\r\n \r\n //module config\r\n module.properties.guid = data && data.guid ? data.guid : generalUtilities.uuid();\r\n\r\n applicationUrl = generalUtilities.prop(RESAAS, 'Environment.ApplicationUrl');\r\n domainUrl = generalUtilities.prop(RESAAS, 'User2.DomainUrl');\r\n returnUrl = encodeURIComponent(generalUtilities.stringFormat('{0}/profile', domainUrl));\r\n\r\n // elements\r\n elements.inviteIcon = document.querySelector(selectors.inviteIcon);\r\n elements.inputHref = document.querySelector(selectors.inputHref);\r\n elements.copyButton = document.querySelector(selectors.copyButton);\r\n elements.inviteOption = $(selectors.inviteOption);\r\n elements.inviteForm = $(selectors.inviteForm);\r\n elements.email = $(selectors.email);\r\n elements.inviteBtn = document.querySelector(selectors.inviteBtn);\r\n elements.errorMessage = document.querySelector(selectors.errorMessage);\r\n elements.inviteWithEmailForm = $(selectors.inviteWithEmailForm);\r\n\r\n // note: elements are not defined on initialization in karma. or for regular users\r\n if (!elements.inviteIcon || !elements.inputHref || !elements.copyButton || !elements.inviteBtn) {\r\n return;\r\n }\r\n elements.inputHref.value = generalUtilities.stringFormat(\r\n '{0}/signup?ReturnUrl={1}&utm_source=RESAAS+Users&utm_medium=Email&utm_content=Toolbar+Invite+URL&utm_campaign=Invite+Users',\r\n applicationUrl,\r\n returnUrl\r\n );\r\n\r\n elements.copyButton.addEventListener('click', module.private.copyInviteClicked);\r\n elements.inviteIcon.addEventListener('click', module.private.inviteClicked);\r\n elements.inputHref.addEventListener('click', module.private.copyInviteClicked);\r\n elements.inviteBtn.addEventListener('click', module.private.inviteBtnClicked);\r\n elements.inviteOption.on('click', module.private.inviteOptionClicked);\r\n // handle user invite hashchange\r\n window.addEventListener('hashchange', function (event) {\r\n if (window.location.hash.indexOf('invite') !== -1) {\r\n document.querySelector('.js-invite').click();\r\n module.private.inviteClicked();\r\n window.location.hash = \"\"\r\n }\r\n });\r\n };\r\n\r\n pubsub.subscribe('data.ConnectionAdd', module.private.handleDataInvite);\r\n\r\n module.private.init();\r\n\r\n return module;\r\n});\r\n","define(['jquery', 'pubsub', 'moduleUtilities', 'generalUtilities'], function navigationMobileControl(\r\n\t$,\r\n\tpubsub,\r\n\tmoduleUtilities,\r\n\tgeneralUtilities\r\n) {\r\n\t/**\r\n\t * re_navigation_mobile_control\r\n\t * @exports navigationMobileControl\r\n\t * @author John Allan\r\n\t */\r\n\t//#region set up\r\n\t'use strict';\r\n\r\n\tvar module, selectors, elements, values;\r\n\r\n\tmodule = {};\r\n\tmodule.private = {};\r\n\tmodule.properties = {};\r\n\tselectors = {\r\n\t\tnavMobile: '.js-nav-mobile',\r\n\t\tnavPrimary: '.re-nav-primary',\r\n\t\tnavSecondary: '.re-nav-secondary',\r\n\t\tmobileNavToggle: '.js-nav-mobile-toggle',\r\n\t\tactivityItem: '.js-activity-item > a, .js-group-create'\r\n\t};\r\n\telements = {};\r\n\tvalues = {\r\n\t\tpositionScroll: 0,\r\n\t\tnavOpenClass: 're-nav-open',\r\n\t\tnavItemOpenClass: 're-nav-item-open',\r\n\t};\r\n\r\n\t//#endregion\r\n\r\n\t//#region pubsub event handlers\r\n\r\n\tmodule.private.closeMobileMenu = function closeMobileMenu(skipScrollReset) {\r\n\t\t// style ui\r\n\t\t$([selectors.mobileNavToggle, selectors.navMobile].join()).removeClass(values.navOpenClass);\r\n\r\n\t\t// update page layout\r\n\t\telements.html.removeClass('re-compact-overflow-y-hidden');\r\n\r\n\t\tif (!skipScrollReset) {\r\n\t\t\telements.window.scrollTop(values.positionScroll);\r\n\t\t}\r\n\t};\r\n\r\n\tmodule.private.openMobileMenu = function openMobileMenu() {\r\n\t\t// close any old menus\r\n\t\t$('.re-nav-item-open')\r\n\t\t\t.removeClass(values.navItemOpenClass)\r\n\t\t$('.re-mobile-list-item.re-nav-open, .js-nav-mobile .js-nav-list-item-primary.re-nav-open')\r\n\t\t\t.removeClass(values.navOpenClass)\r\n\t\t\t.find(selectors.navSecondary)\r\n\t\t\t.attr('aria-hidden', true);\r\n\t\t\r\n\t\t// style ui\r\n\t\t$([selectors.mobileNavToggle, selectors.navMobile].join()).addClass(values.navOpenClass);\r\n\r\n\t\t// update page layout\r\n\t\tvalues.positionScroll = elements.window.scrollTop();\r\n\t\telements.body.css({\r\n\t\t\ttop: generalUtilities.stringFormat('-{0}px', values.positionScroll)\r\n\t\t});\r\n\t\telements.html.addClass('re-compact-overflow-y-hidden');\r\n\r\n\t\t// open active menu item - add open class to parent and remove aria-hidden from all sub navs\r\n\t\t$('.js-nav-mobile .re-nav-item-active:not(.js-experience-switcher)')\r\n\t\t\t.addClass(values.navItemOpenClass)\r\n\t\t\t.parent()\r\n\t\t\t.addClass(values.navOpenClass)\r\n\t\t\t.find(selectors.navSecondary)\r\n\t\t\t.removeAttr('aria-hidden');\r\n\t};\r\n\r\n\t/**\r\n\t * Toggles mobile menu\r\n\t */\r\n\tmodule.private.handleMobileToggleClick = function handleMobileToggleClick(e) {\r\n\t\tvar opening;\r\n\r\n\t\te.preventDefault();\r\n\r\n\t\topening = !$(selectors.navMobile).hasClass(values.navOpenClass);\r\n\r\n\t\tmodule.private.closeMobileMenu(opening);\r\n\r\n\t\tif (opening) {\r\n\t\t\tmodule.private.openMobileMenu();\r\n\t\t}\r\n\t};\r\n\r\n\tmodule.private.handleClickActivityItem = function handleClickActivityItem() {\r\n\t\tvalues.scrollTop = 0;\r\n\t\tmodule.private.closeMobileMenu();\r\n\t};\r\n\r\n\t//#endregion\r\n\r\n\t/**\r\n\t * Initiates the module, creates a guid and binds dom events.\r\n\t * @param {object} [e] The pubsub event, optional depending module is self init or by pubsub event.\r\n\t * @param {object} [data] Data passed in by pubsub event, optional depending module is self init or by pubsub event.\r\n\t */\r\n\tmodule.private.init = function init(e, data) {\r\n\t\t// module config\r\n\t\tmodule.properties.guid = data && data.guid ? data.guid : generalUtilities.uuid();\r\n\t\telements.navMobileToggle = $(selectors.mobileNavToggle);\r\n\t\telements.html = $('html');\r\n\t\telements.body = $('body');\r\n\t\telements.window = $(window);\r\n\t\telements.navMobile = $(selectors.navMobile);\r\n\r\n\t\t// bind to hamburger icon on click event\r\n\t\telements.navMobileToggle.on('click', module.private.handleMobileToggleClick);\r\n\t\telements.navMobile.on('click', selectors.activityItem, module.private.handleClickActivityItem);\r\n\t};\r\n\r\n\t//#region external event bindings\r\n\r\n\tmodule.private.init();\r\n\r\n\t//#endregion\r\n\r\n\t// expose API\r\n\treturn module;\r\n});\r\n","define([\r\n\t'pubsub', 'generalUtilities', 'stickySidebar'],\r\n\r\n\tfunction (pubsub, generalUtilities) {\r\n\t\t'use strict';\r\n\t\t/**\r\n\t\t* re_navigation_scroll_control\r\n\t\t* @exports navigationScrollControl\r\n\t\t* @author John Allan\r\n\t\t*/\r\n\t\t//#region set up\r\n\r\n\t\tvar module, selectors, elements, values;\r\n\r\n\t\tmodule = {};\r\n\t\t/** @module */\r\n\t\tmodule.private = {};\r\n\t\tmodule.properties = {};\r\n\r\n\t\tselectors = {\r\n\t\t\tleftNavigation: '.re-page-navigation',\r\n\t\t\tpageContent: '.re-page-content',\r\n\t\t\tpageWrapper: '.re-page-wrapper',\r\n\t\t\tstickySidebar: '.js-stickysidebar',\r\n\t\t\tstickySidebarInner: '.js-stickysidebar-inner'\r\n\t\t};\r\n\r\n\t\telements = {};\r\n\t\tvalues = {};\r\n\r\n\t\t//#endregion\r\n\r\n\t\t//#region utilities\r\n\r\n\t\t/**\r\n\t\t* Sticks the navigation.\r\n\t\t* @example\r\n\t\t* module.private.stickNavigation();\r\n\t\t*/\r\n\t\tmodule.private.stickNavigation = function () {\r\n\t\t\tif (values.navigation) {\r\n\t\t\t\tmodule.private.unStickNavigation();\r\n\t\t\t}\r\n\r\n\t\t\t//setup sticky nav\r\n\t\t\tvalues.navigation = new StickySidebar(selectors.stickySidebar, {\r\n\t\t\t\tcontainerSelector: selectors.pageWrapper,\r\n\t\t\t\tinnerWrapperSelector: selectors.stickySidebarInner,\r\n\t\t\t\ttopSpacing: 70,\r\n\t\t\t\tbottomSpacing: 20\r\n\t\t\t});\r\n\r\n\t\t\t//watch the nav and page for size changes\r\n\t\t\tvalues.ro.observe(elements.pageContent);\r\n\t\t\tvalues.ro.observe(elements.navContainerInnerInner);\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t* Updates the navigation posiiton.\r\n\t\t* @example\r\n\t\t* module.private.updateNavigation();\r\n\t\t*/\r\n\t\tmodule.private.updateNavigation = function () {\r\n\t\t\tif (values.navigation) {\r\n\t\t\t\tvalues.navigation.updateSticky();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t* Unsticks the navigation removing all styles and event bindings.\r\n\t\t* @example\r\n\t\t* module.private.unStickNavigation();\r\n\t\t*/\r\n\t\tmodule.private.unStickNavigation = function () {\r\n\t\t\tif (values.navigation) {\r\n\t\t\t\tvalues.navigation.destroy();\r\n\t\t\t\tdelete values.navigation;\r\n\t\t\t}\r\n\r\n\t\t\tvalues.ro.unobserve(elements.pageContent);\r\n\t\t\tvalues.ro.unobserve(elements.navContainerInnerInner);\r\n\t\t};\r\n\r\n\t\t//#endregion\r\n\r\n\t\t//#region pubsub event handlers\r\n\r\n\t\t/**\r\n\t\t* Handle uiAction.NavigationStateChanged setting up or tearing down the sticky navigation.\r\n\t\t* @param {object} e The pubsub event.\r\n\t\t* @param {object} data Data object from service.\r\n\t\t*/\r\n\t\tmodule.private.handleUiActionNavigationStateChanged = function (e, data) {\r\n\t\t\tif (data.isCompact) {\r\n\t\t\t\tmodule.private.unStickNavigation();\r\n\t\t\t} else {\r\n\t\t\t\tmodule.private.stickNavigation();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t//#endregion\r\n\r\n\t\t/**\r\n\t\t* Initiates the module, creates a guid and binds dom events.\r\n\t\t* @param {object} [e] The pubsub event, optional depending module is self init or by pubsub event.\r\n\t\t* @param {object} [data] Data passed in by pubsub event, optional depending module is self init or by pubsub event.\r\n\t\t*/\r\n\t\tmodule.private.init = function (e, data) {\r\n\t\t\tvar navigationState;\r\n\r\n\t\t\tif (!window.requestAnimationFrame || !Function.prototype.bind) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\t//module config\r\n\t\t\tmodule.properties.guid = (data && data.guid) ? data.guid : generalUtilities.uuid();\r\n\r\n\t\t\t//get current page state\r\n\t\t\telements.leftNavigation = document.querySelector(selectors.leftNavigation);\r\n\t\t\tnavigationState = generalUtilities.getNavigationState();\r\n\r\n\t\t\t//if left navigation exists\r\n\t\t\tif (elements.leftNavigation) {\r\n\r\n\t\t\t\t//create resize observer\r\n\t\t\t\tvalues.ro = new ResizeObserver(function (entries, observer) {\r\n\t\t\t\t\tmodule.private.updateNavigation();\r\n\t\t\t\t});\r\n\r\n\t\t\t\t//find DOM elements\r\n\t\t\t\telements.pageContent = document.querySelector(selectors.pageContent);\r\n\t\t\t\telements.navContainerInnerInner = document.querySelector(selectors.stickySidebarInner);\r\n\r\n\t\t\t\t//listen for changes in navigationState.isCompact\r\n\t\t\t\tpubsub.subscribe('uiAction.NavigationStateChanged', module.private.handleUiActionNavigationStateChanged);\r\n\r\n\t\t\t\t//if we are not in compact mode\r\n\t\t\t\tif (!navigationState.isCompact) {\r\n\t\t\t\t\tmodule.private.stickNavigation();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t//#region external event bindings\r\n\r\n\t\tmodule.private.init();\r\n\r\n\t\t//#endregion\r\n\r\n\t\t//expose API\r\n\t\treturn module;\r\n\t}\r\n);\r\n","define(['jquery', 'pubsub', 'moduleUtilities', 'generalUtilities'], function navigationStateControl(\r\n\t$,\r\n\tpubsub,\r\n\tmoduleUtilities,\r\n\tgeneralUtilities\r\n) {\r\n\t/**\r\n\t * re_navigation_state_control\r\n\t * @exports navigationStateControl\r\n\t * @author John Allan\r\n\t */\r\n\t//#region set up\r\n\t'use strict';\r\n\r\n\tvar module, selectors, elements, values;\r\n\r\n\tmodule = {};\r\n\tmodule.private = {};\r\n\tmodule.properties = {};\r\n\tselectors = {};\r\n\telements = {};\r\n\tvalues = {};\r\n\r\n\tselectors.html = 'html';\r\n\tselectors.nav = '.js-nav-container';\r\n\tselectors.navItem = '.js-nav-item';\r\n\tselectors.primaryNavListItem = '.js-nav-list-item-primary';\r\n\tselectors.footer = '.re-page-footer';\r\n\r\n\tvalues.activeClass = 're-nav-item-active';\r\n\tvalues.highlightClass = 're-nav-highlight';\r\n\tvalues.openClass = 're-nav-item-open';\r\n\r\n\t//#endregion\r\n\r\n\t//#region utilities\r\n\r\n\t/**\r\n\t * Publishes an updated navigation state if there is a change\r\n\t */\r\n\tmodule.private.publishState = function publishState(force) {\r\n\t\tvar currentState, currentStateString;\r\n\t\tcurrentState = generalUtilities.getNavigationState();\r\n\t\tcurrentStateString = JSON.stringify(currentState);\r\n\r\n\t\tif (force === true || !values.previousStateString || values.previousStateString !== currentStateString) {\r\n\t\t\tvalues.previousStateString = currentStateString;\r\n\t\t\tpubsub.publish('uiAction.NavigationStateChanged', currentState);\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * selects a nav item based on url\r\n\t * @returns {object} containing a $primary and $secondary navigation node\r\n\t */\r\n\tmodule.private.urlToNavSelectors = function urlToNavSelectors(domainUrl, pathname, hash, search) {\r\n\t\tvar result, dashboard, domHash, activeTab, pathSegment, regexResult, currentReblastTab, urlQuery, groupUniquName, decodedUrl;\r\n\r\n\t\tresult = {};\r\n\t\tdashboard = ['[href=\"', domainUrl, '/dashboard\"]'].join('');\r\n\r\n\t\t// set the default selectors\r\n\t\tresult.secondary = ['[href=\"', pathname.replace(/\\/$/, ''), hash, '\"]'].join('');\r\n\r\n\t\t// set page specific primary and secondary selectors\r\n\t\tswitch (window.pageType) {\r\n\t\t\tcase 'profile':\r\n\t\t\t\tresult.primary = '[data-id=\"activity\"]';\r\n\r\n\t\t\t\t// find the currently selected tab in the old nav\r\n\t\t\t\tactiveTab = document.querySelector('.tab.active a');\r\n\t\t\t\tdomHash = activeTab ? activeTab.hash : false;\r\n\t\t\t\turlQuery = generalUtilities.queryStringToObject(search);\r\n\r\n\t\t\t\tif (urlQuery && urlQuery.ReturnUrl) {\r\n\t\t\t\t\tdecodedUrl = decodeURIComponent(urlQuery.ReturnUrl);\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tgroupUniquName = pathname.indexOf('/feed/group') > -1 ? pathname.split(\"/feed/group/\")[1] : false;\r\n\r\n\t\t\t\tif (domHash) {\r\n\t\t\t\t\tresult.secondary = '[href$=\"/feed/group' + domHash.split('#')[1] + '\"],[href$=\"' + hash + '\"]';\r\n\t\t\t\t} else if (hash) {\r\n\t\t\t\t\tresult.secondary = '[href$=\"/feed/group' + hash.split('#')[1] + '\"],[href$=\"' + hash + '\"]';\r\n\t\t\t\t} else if (decodedUrl && decodedUrl.indexOf('/feed/group') > -1) {\r\n\t\t\t\t\t// returnurl with group feed link\r\n\t\t\t\t\tresult.secondary = '[href$=\"/feed/group/' + decodedUrl.split(\"/feed/group/\")[1] + '\"]';\r\n\t\t\t\t} else if (groupUniquName) {\r\n\t\t\t\t\tresult.secondary = '[href$=\"/feed/group/' + groupUniquName + '\"]';\r\n\t\t\t\t} else if (pathname === '/feed/local') {\r\n\t\t\t\t\tresult.secondary = '[href$=\"/feed/local\"]';\r\n\t\t\t\t} else if (pathname === '/feed/myposts') {\r\n\t\t\t\t\tresult.secondary = '[href$=\"/feed/myposts\"]';\r\n\t\t\t\t} else if (pathname === '/feed/connections') {\r\n\t\t\t\t\tresult.secondary = '[href$=\"/feed/connections\"]';\r\n\t\t\t\t} else if (pathname === '/feed/global') {\r\n\t\t\t\t\tresult.secondary = '[href$=\"/feed/global\"]';\r\n\t\t\t\t} else if (!hash && !search) {\r\n\t\t\t\t\tif (RESAAS.Environment.DefaultGroupUniqueName) {\r\n\t\t\t\t\t\tcurrentReblastTab = RESAAS.Environment.DefaultGroupUniqueName;\r\n\t\t\t\t\t\tresult.secondary = '[href$=\"/feed/group/' + currentReblastTab + '\"]';\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tresult.secondary = '[href$=\"/feed/global\"]';\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'activity-feed':\r\n\t\t\t\tif (window.isO === 'False') {\r\n\t\t\t\t\tresult.primary = '[data-id=\"agents\"]';\r\n\t\t\t\t\tresult.secondary = null;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (window.isO === 'True') {\r\n\t\t\t\t\tresult.primary = '[data-id=\"settings\"]';\r\n\t\t\t\t\tresult.secondary = '[href=\"' + domainUrl + '/profile\"]';\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'send-message':\r\n\t\t\t\tresult.primary = '[data-id=\"agents\"]';\r\n\t\t\t\tresult.secondary = null;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'public-question':\r\n\t\t\t\tif (window.RESAAS.User2.IsProfessional) {\r\n\t\t\t\t\tresult.primary = '[data-id=\"learn\"]';\r\n\t\t\t\t} else {\r\n\t\t\t\t\tresult.primary = '[data-id=\"questions\"]';\r\n\t\t\t\t}\r\n\t\t\t\tresult.secondary = null;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'hashtag':\r\n\t\t\t\tresult.primary = '[data-id=\"activity\"]';\r\n\t\t\t\tresult.secondary = null;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'group':\r\n\t\t\t\tresult.primary = '[data-id=\"activity\"]';\r\n\t\t\t\tregexResult = pathname.match(\r\n\t\t\t\t\t/(\\/groups\\/)([0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12})/i\r\n\t\t\t\t);\r\n\t\t\t\tresult.secondary = regexResult ? '[data-id=\"' + regexResult[2] + '\"]' : null;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'dashboard':\r\n\t\t\t\tresult.primary = '[data-id=\"settings\"]';\r\n\t\t\t\tresult.secondary = dashboard;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'manageSubscriptions':\r\n\t\t\t\tresult.primary = '[data-id=\"settings\"]';\r\n\t\t\t\tresult.secondary = dashboard;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'listing-discovery':\r\n\t\t\t\tresult.primary = '[data-id=\"listings\"]';\r\n\t\t\t\tresult.secondary = '[href^=\"/listings\"]';\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'user-discovery':\r\n\t\t\t\tif (pathname.indexOf('brokeros') >= 0) {\r\n\t\t\t\t\tresult.primary = '[data-id=\"brokeros\"]';\r\n\t\t\t\t\tresult.secondary = null;\r\n\t\t\t\t} else if (search.indexOf('RelationshipSearch=2') >= 0) {\r\n\t\t\t\t\tresult.primary = '[data-id=\"agents\"]';\r\n\t\t\t\t\tresult.secondary = '[href^=\"/agents?RelationshipSearch=2\"]';\r\n\t\t\t\t} else {\r\n\t\t\t\t\tresult.primary = '[data-id=\"agents\"]';\r\n\t\t\t\t\tresult.secondary = '[href=\"/agents\"]';\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'my-referrals':\r\n\t\t\t\tresult.primary = '[data-id=\"referrals\"]';\r\n\t\t\t\t// result.secondary = will be found by exact match (my leads)\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'one-to-one-referral-form':\r\n\t\t\t\tresult.primary = '[data-id=\"referrals\"]';\r\n\t\t\t\tresult.secondary = null;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'lead-create':\r\n\t\t\t\tif (search.indexOf('referral') >= 0) {\r\n\t\t\t\t\tresult.primary = '[data-id=\"referrals\"]';\r\n\t\t\t\t\tresult.secondary = '[href^=\"/ReferralCreate\"]';\r\n\t\t\t\t} else if (search.indexOf('buyerneed') >= 0) {\r\n\t\t\t\t\tresult.primary = '[data-id=\"buyerNeeds\"]';\r\n\t\t\t\t\tresult.secondary = '[href^=\"/BuyerNeedCreate\"]';\r\n\t\t\t\t} else if (search.indexOf('instant') >= 0) {\r\n\t\t\t\t\tresult.primary = '[data-id=\"instantLeads\"]';\r\n\t\t\t\t\tresult.secondary = '[href^=\"/InstantLeadCreate\"]';\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'DiscoverLeadsPage':\r\n\t\t\t\tif (search.indexOf('2') >= 0) {\r\n\t\t\t\t\tresult.primary = '[data-id=\"referrals\"]';\r\n\t\t\t\t\tresult.secondary = '[href=\"/leads?leadTypeFilter=2\"]';\r\n\t\t\t\t} else if (search.indexOf('3') >= 0) {\r\n\t\t\t\t\tresult.primary = '[data-id=\"buyerNeeds\"]';\r\n\t\t\t\t\tresult.secondary = '[href=\"/leads?leadTypeFilter=3\"]';\r\n\t\t\t\t} else if (search.indexOf('4') >= 0) {\r\n\t\t\t\t\tresult.primary = '[data-id=\"instantLeads\"]';\r\n\t\t\t\t\tresult.secondary = '[href=\"/leads?leadTypeFilter=4\"]';\r\n\t\t\t\t} \r\n\t\t\t\tbreak;\r\n\t\t\tcase 'listing-edit':\r\n\t\t\t\tresult.primary = '[data-id=\"listings\"]';\r\n\t\t\t\tresult.secondary = null;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'referral-response':\r\n\t\t\t\tif (window.RESAAS.ReferralDetails.ReferralType === 3) {\r\n\t\t\t\t\tresult.primary = '[data-id=\"buyerNeeds\"]';\r\n\t\t\t\t}\r\n\t\t\t\tif (window.RESAAS.ReferralDetails.ReferralType === 2) {\r\n\t\t\t\t\tresult.primary = '[data-id=\"referrals\"]';\r\n\t\t\t\t}\r\n\t\t\t\tresult.secondary = null;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'instant-referral-response':\r\n\t\t\t\tresult.primary = '[data-id=\"instantLeads\"]';\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'referral-app':\r\n\t\t\t\tresult.primary = '[data-id=\"referrals\"]';\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'buyerneeds-app':\r\n\t\t\t\tresult.primary = '[data-id=\"buyerNeeds\"]';\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'listing-detail':\r\n\t\t\t\tresult.primary = '[data-id=\"listings\"]';\r\n\t\t\t\tresult.secondary = null;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'reblast-detail':\r\n\t\t\t\tresult.primary = '[data-id=\"activity\"]';\r\n\t\t\t\tresult.secondary = null;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'question-detail':\r\n\t\t\t\tresult.primary = '[data-id=\"learn\"]';\r\n\t\t\t\tresult.secondary = null;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'brokeros':\r\n\t\t\t\tresult.primary = '[data-id=\"brokeros\"]';\r\n\t\t\t\tresult.secondary = '[href^=\"/brokeros\"]';\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'brokeros-clients':\r\n\t\t\t\tresult.primary = '[data-id=\"brokeros\"]';\r\n\t\t\t\tresult.secondary = null;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'dashboardAnalytics':\r\n\t\t\t\tif (search.indexOf('type=1') >= 0) {\r\n\t\t\t\t\tresult.primary = '[data-id=\"analytics\"]';\r\n\t\t\t\t\tresult.secondary = '[href=\"/analytics?type=1\"]';\r\n\t\t\t\t} else if (search.indexOf('type=7') >= 0) {\r\n\t\t\t\t\tresult.primary = '[data-id=\"analytics\"]';\r\n\t\t\t\t\tresult.secondary = '[href=\"/analytics?type=7\"]';\r\n\t\t\t\t} else {\r\n\t\t\t\t\tresult.primary = '[data-id=\"analytics\"]';\r\n\t\t\t\t\tresult.secondary = '[href=\"/analytics?type=1\"]';\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\treturn result;\r\n\t};\r\n\r\n\t/**\r\n\t * Highlight the corresponding nav item in the nav according to the current page\r\n\t */\r\n\tmodule.private.setCurrentPage = function setCurrentPage() {\r\n\r\n\t\tvar activeClasses, domainUrl, currentSelectors, $selected;\r\n\r\n\t\t$selected = $();\r\n\r\n\t\t// add back once groups are removed from experience switcher\r\n\t\t// highlightClasses = values.activeClass + ' ' + values.highlightClass + ' ' + values.openClass;\r\n\r\n\t\t// remove once groups are removed from experience switcher\r\n\t\tactiveClasses = values.highlightClass + ' ' + values.openClass;\r\n\r\n\t\t// cleanup any existing highlighting\r\n\t\telements.allLinks.removeClass(values.activeClass);\r\n\r\n\t\t// get nav selectors\r\n\t\tdomainUrl = generalUtilities.prop(RESAAS, 'User2.DomainUrl');\r\n\t\tcurrentSelectors = module.private.urlToNavSelectors(\r\n\t\t\tdomainUrl,\r\n\t\t\twindow.location.pathname,\r\n\t\t\twindow.location.hash,\r\n\t\t\twindow.location.search\r\n\t\t);\r\n\r\n\t\t// find secondary nav item\r\n\t\tif (currentSelectors.secondary) {\r\n\t\t\t$selected = $selected.add(elements.allLinks.filter(currentSelectors.secondary));\r\n\t\t}\r\n\r\n\t\t// add primary nav item\r\n\t\tif ($selected.length) {\r\n\t\t\t$selected = $selected.add($selected.closest(selectors.primaryNavListItem).children(selectors.navItem));\r\n\t\t} else {\r\n\t\t\t$selected = $selected.add(elements.allLinks.filter(currentSelectors.primary));\r\n\t\t}\r\n\r\n\t\t// highlight nav\r\n\t\t// add back once groups are removed from experience switcher\r\n\t\t// $selected.addClass(highlightClasses);\r\n\r\n\t\t// remove once groups are removed from experience switcher\r\n\t\t$selected\r\n\t\t\t.addClass(values.activeClass)\r\n\t\t\t.not('.js-has-flyoutmenu')\r\n\t\t\t.addClass(activeClasses)\r\n\t\t\t.siblings('.js-nav-secondary')\r\n\t\t\t.removeAttr('aria-hidden')\r\n\t\t\t.slideDown('fast')\r\n\t\t\t.parent()\r\n\t\t\t.addClass('re-nav-open');\r\n\t};\r\n\r\n\t//#endregion\r\n\r\n\t/**\r\n\t * Initiates the module, creates a guid and binds dom events.\r\n\t * @param {object} [e] The pubsub event, optional depending module is self init or by pubsub event.\r\n\t * @param {object} [data] Data passed in by pubsub event, optional depending module is self init or by pubsub event.\r\n\t */\r\n\tmodule.private.init = function init(e, data) {\r\n\t\t// module config\r\n\t\tmodule.properties.guid = data && data.guid ? data.guid : generalUtilities.uuid();\r\n\r\n\t\telements.window = $(window);\r\n\t\telements.html = $(selectors.html);\r\n\t\telements.nav = $(selectors.nav);\r\n\t\telements.footer = $(selectors.footer);\r\n\t\telements.allLinks = elements.nav.find(selectors.navItem);\r\n\r\n\t\tmodule.private.publishState(true);\r\n\t\tmodule.private.setCurrentPage();\r\n\r\n\t\twindow.addEventListener('reactNavigate', module.private.setCurrentPage);\r\n\r\n\t\t// dom event binding\r\n\t\telements.window\r\n\t\t\t.off('resize.NavigationStateControl')\r\n\t\t\t.on('resize.NavigationStateControl', generalUtilities.debounce(module.private.publishState, 100));\r\n\t\telements.window\r\n\t\t\t.off('popstate.NavigationStateControl hashchange.NavigationStateControl')\r\n\t\t\t.on(\r\n\t\t\t\t'popstate.NavigationStateControl hashchange.NavigationStateControl',\r\n\t\t\t\tgeneralUtilities.debounce(module.private.setCurrentPage, 100)\r\n\t\t\t);\r\n\t};\r\n\r\n\t//#region external event bindings\r\n\tpubsub.subscribe('uiAction.NavigationStateControlInit', module.private.init);\r\n\r\n\t//#endregion\r\n\r\n\t//expose API\r\n\treturn module;\r\n});\r\n","define(['jquery', 'pubsub', 'moduleUtilities', 'generalUtilities'], function navigationTreeControl(\r\n\t$,\r\n\tpubsub,\r\n\tmoduleUtilities,\r\n\tgeneralUtilities\r\n) {\r\n\t/**\r\n\t * re_navigation_tree_control\r\n\t * @exports navigationTreeControl\r\n\t * @author Elina Goldin\r\n\t */\r\n\t//#region set up\r\n\t'use strict';\r\n\r\n\tvar module, selectors, elements, values;\r\n\r\n\tmodule = {};\r\n\tmodule.private = {};\r\n\tmodule.properties = {};\r\n\tselectors = {\r\n\t\tnavContainer: '.js-nav-container',\r\n\t\tnavSecondary: '.re-nav-secondary',\r\n\t\texperienceSwitcher: '.js-experience-switcher',\r\n\t\tnotificationItem: '.js-notification',\r\n\t\tnavItemOpen: '.re-nav-item-open',\r\n\t\tflyOutMenu: '.js-has-flyoutmenu'\r\n\t};\r\n\telements = {};\r\n\tvalues = {};\r\n\r\n\tvalues.highlightClass = 're-nav-highlight';\r\n\r\n\t//#endregion\r\n\r\n\t//#region pubsub event handlers\r\n\r\n\tmodule.private.openSecondaryNavigation = function openSecondaryNavigation(target, animate) {\r\n\t\tif (animate) {\r\n\t\t\ttarget\r\n\t\t\t\t.addClass('re-nav-item-open')\r\n\t\t\t\t.siblings(selectors.navSecondary)\r\n\t\t\t\t.removeAttr('aria-hidden')\r\n\t\t\t\t.slideDown('fast')\r\n\t\t\t\t.parent()\r\n\t\t\t\t.addClass('re-nav-open');\r\n\t\t} else {\r\n\t\t\ttarget\r\n\t\t\t\t.addClass('re-nav-item-open')\r\n\t\t\t\t.siblings(selectors.navSecondary)\r\n\t\t\t\t.removeAttr('aria-hidden')\r\n\t\t\t\t.show()\r\n\t\t\t\t.parent()\r\n\t\t\t\t.addClass('re-nav-open');\r\n\t\t}\r\n\t};\r\n\r\n\tmodule.private.closeExperienceSwitcher = function closeExperienceSwitcher(e) {\r\n\t\tif (e) {\r\n\t\t\te.stopPropagation();\r\n\t\t\te.preventDefault();\r\n\t\t}\r\n\t\telements.experienceSwitcher\r\n\t\t\t.removeClass('re-nav-item-open')\r\n\t\t\t.siblings(selectors.navSecondary)\r\n\t\t\t.attr('aria-hidden', true)\r\n\t\t\t.hide()\r\n\t\t\t.parent()\r\n\t\t\t.removeClass('re-nav-open');\r\n\t\telements.navContainer.removeClass('re-experienceswitcher-open');\r\n\t};\r\n\r\n\tmodule.private.closeSecondaryNavigation = function closeSecondaryNavigation(target, animate) {\r\n\t\tif (animate) {\r\n\t\t\ttarget\r\n\t\t\t\t.removeClass('re-nav-item-open')\r\n\t\t\t\t.siblings(selectors.navSecondary)\r\n\t\t\t\t.attr('aria-hidden', true)\r\n\t\t\t\t.slideUp('fast')\r\n\t\t\t\t.parent()\r\n\t\t\t\t.removeClass('re-nav-open');\r\n\t\t} else {\r\n\t\t\ttarget\r\n\t\t\t\t.removeClass('re-nav-item-open')\r\n\t\t\t\t.siblings(selectors.navSecondary)\r\n\t\t\t\t.attr('aria-hidden', true)\r\n\t\t\t\t.hide()\r\n\t\t\t\t.parent()\r\n\t\t\t\t.removeClass('re-nav-open');\r\n\t\t}\r\n\t\tmodule.private.closeExperienceSwitcher();\r\n\t};\r\n\r\n\t/**\r\n\t * Handles toggling of secondary navigation.\r\n\t * @param {object} [e] Click event\r\n\t * @param {object} [data] Data passed in by uiAction.NavigationStateChanged event.\r\n\t */\r\n\tmodule.private.handleSecondaryNavigation = function handleSecondaryNavigation(e) {\r\n\t\tvar $this;\r\n\r\n\t\t$this = $(this);\r\n\t\t// if item has subnav, prevent default on top level link\r\n\t\tif ($this.next(selectors.navSecondary).length > 0) {\r\n\t\t\te.preventDefault();\r\n\t\t}\r\n\r\n\t\t// handling flyout menus and dropdowns\r\n\t\tif ($this.hasClass('js-has-flyoutmenu')) {\r\n\t\t\tif ($this.hasClass('re-nav-item-open')) {\r\n\t\t\t\tmodule.private.closeSecondaryNavigation($this, true);\r\n\t\t\t} else {\r\n\t\t\t\tmodule.private.closeSecondaryNavigation($(selectors.flyOutMenu), false);\r\n\t\t\t\tmodule.private.openSecondaryNavigation($this, false);\r\n\t\t\t\tif ($this.hasClass('js-experience-switcher')) {\r\n\t\t\t\t\telements.navContainer.addClass('re-experienceswitcher-open');\r\n\t\t\t\t\tpubsub.publish('mixpanel.Intent', { type: 'open dialpad' });\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// handling regular left nav subnavs\r\n\t\t} else if ($this.hasClass('re-nav-item-open')) {\r\n\t\t\tif (!generalUtilities.getNavigationState().isCompact) {\r\n\t\t\t\tmodule.private.handleNavigationClose();\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tmodule.private.closeSecondaryNavigation($(selectors.navItemOpen), true);\r\n\t\t\tmodule.private.openSecondaryNavigation($this, true);\r\n\t\t}\r\n\r\n\t\treturn true;\r\n\t};\r\n\r\n\t/**\r\n\t * Closes all secondary navs.\r\n\t */\r\n\tmodule.private.handleNavigationClose = function handleNavigationClose() {\r\n\t\tmodule.private.closeSecondaryNavigation($(selectors.navItemOpen), false);\r\n\t};\r\n\r\n\t/**\r\n\t * Handle click on , creates service object and publish pubsub event uiNeeds.FeatureBrowse.\r\n\t * @param {object} e Click event\r\n\t */\r\n\tmodule.private.handleGenericNavClick = function handleGenericNavClick(e) {\r\n\t\te.stopPropagation();\r\n\t};\r\n\t//#endregion\r\n\r\n\tmodule.private.handleHtmlClick = function handleHtmlClick() {\r\n\t\tmodule.private.closeSecondaryNavigation($('.js-has-flyoutmenu.re-nav-item-open'), false);\r\n\t};\r\n\r\n\tmodule.private.handleDownloadAppClick = function handleDownloadAppClick(e) {\r\n\t\tRESAAS.MixPanel.trackEvent('Intent', { type: 'Download App Link', from: 'Top Nav Dropdown' });\r\n\t};\r\n\r\n\t/**\r\n\t * Initiates the module, creates a guid and binds dom events.\r\n\t * @param {object} [e] The pubsub event, optional depending module is self init or by pubsub event.\r\n\t * @param {object} [data] Data passed in by pubsub event, optional depending module is self init or by pubsub event.\r\n\t */\r\n\tmodule.private.init = function init(e, data) {\r\n\t\t// module config\r\n\t\tmodule.properties.guid = data && data.guid ? data.guid : generalUtilities.uuid();\r\n\r\n\t\telements.document = $(document);\r\n\t\telements.html = $('html');\r\n\t\telements.window = $(window);\r\n\t\telements.navItemPrimary = $('.js-nav-item-primary');\r\n\t\telements.navContainer = $(selectors.navContainer);\r\n\t\telements.navMobileToggle = $('.js-nav-mobile-toggle');\r\n\t\telements.navSecondaryExperiences = $('.js-nav-secondary-experiences');\r\n\t\telements.navDialpad = $('.re-nav-dialpad');\r\n\t\telements.experienceSwitcher = $(selectors.experienceSwitcher);\r\n\t\telements.downloadApp = $('.js-nav-item-downloadapp');\r\n\r\n\t\t// dom event binding\r\n\t\telements.html.off('click.NavigationTreeControl');\r\n\t\telements.navContainer.off('click.NavigationTreeControl');\r\n\t\telements.navItemPrimary.off('click.NavigationTreeControl');\r\n\t\telements.document.off('keydown.NavigationTreeControl');\r\n\t\telements.downloadApp.off('click.NavigationTreeControl');\r\n\r\n\t\telements.navItemPrimary.on('click.NavigationTreeControl', module.private.handleSecondaryNavigation);\r\n\t\telements.html.on('click.NavigationTreeControl', module.private.handleHtmlClick);\r\n\t\telements.navContainer.on('click.NavigationTreeControl', module.private.handleGenericNavClick);\r\n\t\telements.downloadApp.on('click.NavigationTreeControl', module.private.handleDownloadAppClick);\r\n\r\n\t\t// this binding now only applies to the experience switcher close button (no others exist)\r\n\t\telements.navContainer.on(\r\n\t\t\t'click.NavigationTreeControl',\r\n\t\t\t'.js-close-nav, .js-nav-back-btn',\r\n\t\t\tmodule.private.closeExperienceSwitcher\r\n\t\t);\r\n\r\n\t\telements.document.on('keydown.NavigationTreeControl', function documentOnKeyDown(ev) {\r\n\t\t\tif (ev.keyCode === 27) {\r\n\t\t\t\tmodule.private.closeExperienceSwitcher();\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n\r\n\t//#region external event bindings\r\n\r\n\tmodule.private.init();\r\n\r\n\t//#endregion\r\n\r\n\t// expose API\r\n\treturn module;\r\n});\r\n","define([\r\n\t'jquery', 'pubsub', 'moduleUtilities', 'generalUtilities', 'notificationService'],\r\n\r\n\tfunction ($, pubsub, moduleUtilities, generalUtilities) {\r\n\t\t'use strict';\r\n\t\t/**\r\n\t\t* re_navigation_unseen_notifications_control\r\n\t\t* @exports navigationUnseenNotificationControl\r\n\t\t* @author May Montazer\r\n\t\t*/\r\n\t\t//#region set up\r\n\r\n\t\tvar module, selectors, elements;\r\n\r\n\t\tmodule = {};\r\n\t\t/** @module */\r\n\t\tmodule.private = {};\r\n\t\tmodule.properties = {};\r\n\t\tselectors = {};\r\n\t\telements = {};\r\n\r\n\t\t//#endregion\r\n\r\n\t\t//#region utilities\r\n\r\n\t\t/**\r\n\t\t* ask for the unseen notication\r\n\t\t*/\r\n\t\tmodule.private.notificationUnseenBrowse = function notificationUnseenBrowse() {\r\n\t\t\tvar request, serviceObject;\r\n\r\n\t\t\trequest = {};\r\n\t\t\tserviceObject = moduleUtilities.createServiceObject(request, module.properties);\r\n\r\n\t\t\t// service needs to be using publish2\r\n\t\t\tpubsub.publish('uiNeeds.NotificationUnseen', serviceObject);\r\n\t\t};\r\n\r\n\t\t//#endregion\r\n\r\n\t\t/**\r\n\t\t* Handle data event returned from uiNeeds.NotificationUnseen, determines success of fail and calls the corresponding function.\r\n\t\t* @param {object} e The pubsub event.\r\n\t\t* @param {object} data Data object from service.\r\n\t\t*/\r\n\t\tmodule.private.handleDataNotificationUnseen = function (e, data) {\r\n\t\t\tvar r = data && data.response;\r\n\r\n\t\t\tif (moduleUtilities.isOwnEvent(data, module.properties) && r) {\r\n\t\t\t\tif (r.Connections) {\r\n\t\t\t\t\tvar connectionIcon= document.querySelector('.js-notificationcount-connection');\r\n\t\t\t\t\tif (connectionIcon) {\r\n\t\t\t\t\t\tconnectionIcon.innerText = r.Connections;\r\n\t\t\t\t\t\tdocument.querySelector('.js-nav-connectioncount').classList.add('re-nav-hasactivity');\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tpubsub.publish('loggly.error', {\r\n\t\t\t\t\t\t\tmessage: generalUtilities.stringFormat('There is {0} connections to show but the connection icon is not rendered in {1}', r.Connections, document.querySelector('.re-page-navigation, .re-page-navigation-anonymous').innerHTML)\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (r.Notifications) {\r\n\t\t\t\t\tvar notificationIcon = document.querySelector('.js-notificationcount-notification');\r\n\t\t\t\t\tif (notificationIcon){\r\n\t\t\t\t\t\tnotificationIcon.innerText = r.Notifications;\r\n\t\t\t\t\t\tdocument.querySelector('.js-nav-notificationcount').classList.add('re-nav-hasactivity');\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tpubsub.publish('loggly.error', {\r\n\t\t\t\t\t\t\tmessage: generalUtilities.stringFormat('There is {0} notifications but the notification icon is not rendered in {1}', r.Connections, document.querySelector('.re-page-navigation, .re-page-navigation-anonymous').innerHTML)\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\t\t\t\tif (r.HasNewInstantMessage) {\r\n\t\t\t\t\tdocument.querySelector('.js-nav-instantmessage-count').classList.add('re-nav-hasactivity');\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tpubsub.publish('loggly.error', {\r\n\t\t\t\t\tmessage: generalUtilities.stringFormat('showing unseen notifications is failed {0}', JSON.stringify(data))\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t//#endregion\r\n\r\n\r\n\t\t/**\r\n\t\t* Initiates the module, creates a guid and binds dom events. Tracks notification visits.\r\n\t\t* @param {object} [e] The pubsub event, optional depending module is self init or by pubsub event.\r\n\t\t* @param {object} [data] Data passed in by pubsub event, optional depending module is self init or by pubsub event.\r\n\t\t*/\r\n\t\tmodule.private.init = function (e, data) {\r\n\r\n\t\t\tif (!generalUtilities.prop(window, 'RESAAS.User2.IsProfessional')) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\t//module config\r\n\t\t\tmodule.properties.guid = (data && data.guid) ? data.guid : generalUtilities.uuid();\r\n\t\t\tmodule.private.notificationUnseenBrowse();\r\n\t\t};\r\n\r\n\t\t//#region external event bindings\r\n\t\tpubsub.subscribe('data.NotificationUnseen', module.private.handleDataNotificationUnseen);\r\n\r\n\t\tmodule.private.init();\r\n\r\n\t\t//#endregion\r\n\r\n\t\t//expose API\r\n\t\treturn module;\r\n\t}\r\n);\r\n","define([\r\n\t'jquery', 'pubsub', 'moduleUtilities', 'generalUtilities', 'notificationsEnumData', 'notificationService', 'messageControl2'],\r\n\r\n\tfunction ($, pubsub, moduleUtilities, generalUtilities, notificationsEnumData) {\r\n\t\t/**\r\n\t\t* re_notification_delete_control\r\n\t\t* @exports notificationDeleteControl\r\n\t\t* @author Eugene Katsov\r\n\t\t*/\r\n\r\n\t\t//#region set up\r\n\r\n\t\t'use strict';\r\n\r\n\t\tvar module, selectors, elements, values;\r\n\r\n\t\tmodule = {};\r\n\t\tmodule.private = {};\r\n\t\tmodule.properties = {};\r\n\t\tselectors = {\r\n\t\t\tnotificationListWrapper: '.re-notifications-list',\r\n\t\t\tnotificationDelete: '.js-generic-delete'\r\n\t\t};\r\n\t\telements = {};\r\n\t\tvalues = {};\r\n\r\n\t\t//#endregion\r\n\r\n\t\t//#region utilities\r\n\r\n\t\t/**\r\n\t\t* Delete method\r\n\t\t* @param {object} e event\r\n\t\t* @param {object} data response data\r\n\t\t*/\r\n\t\tmodule.private.notificationDelete = function (e, data) {\r\n\t\t\tvar requestOptions, request, serviceObject;\r\n\r\n\t\t\trequestOptions = {};\r\n\r\n\t\t\trequest = { NotificationId: data.notificationId };\r\n\r\n\t\t\tserviceObject = moduleUtilities.createServiceObject(request, module.properties, requestOptions);\r\n\r\n\t\t\tpubsub.publish('uiHas.NotificationDelete', serviceObject);\r\n\t\t};\r\n\t\t//#endregion\r\n\r\n\t\t//#region pubsub event handlers\r\n\r\n\t\t/**\r\n\t\t* Delete response error handler\r\n\t\t* @param {object} e event\r\n\t\t* @param {object} data response data\r\n\t\t*/\r\n\t\tmodule.private.handleDataNotificationDeleteError = function (e, data) {\r\n\t\t\tpubsub.publish('loggly.error', { message: JSON.stringify(data) });\r\n\r\n\t\t\tpubsub.publish('uiAction.MessageAdd', {\r\n\t\t\t\t'message': RESAAS.Localization.Global.GENERIC_WEBSERVICE_ERROR_MESSAGE,\r\n\t\t\t\t'type': 'error'\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t* Delete response success handler\r\n\t\t* @param {object} e event\r\n\t\t* @param {object} data response data\r\n\t\t*/\r\n\t\tmodule.private.handleDataNotificationDeleteSuccess = function (e, data) {\r\n\t\t\tvar $nItem;\r\n\r\n\t\t\t$nItem = elements.notificationListWrapper.find('[data-notificationid=\"' + data.request.NotificationId + '\"]');\r\n\r\n\t\t\t$nItem.fadeOut(\"slow\", function () {\r\n\t\t\t\t$nItem.remove();\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t* Handle data event returned from service, determines success of fail and calls the corresponding function.\r\n\t\t* @param {object} e The pubsub event.\r\n\t\t* @param {object} data Data object from service.\r\n\t\t*/\r\n\t\tmodule.private.handleDataNotificationDelete = function (e, data) {\r\n\t\t\tvar success;\r\n\r\n\t\t\tsuccess = generalUtilities.prop(data, 'response.HideNotificationForUserResult.Success');\r\n\r\n\t\t\tif (!success) {\r\n\t\t\t\tmodule.private.handleDataNotificationDeleteError(e, data);\r\n\t\t\t} else {\r\n\t\t\t\tmodule.private.handleDataNotificationDeleteSuccess(e, data);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t//#endregion\r\n\r\n\t\t//#region dom event handlers\r\n\r\n\t\t/**\r\n\t\t* Handle click on the delete, hides notification list\r\n\t\t* @param {object} e Click event\r\n\t\t*/\r\n\t\tmodule.private.handleNotificationDeleteClick = function (e) {\r\n\t\t\te.preventDefault();\r\n\t\t\tmodule.private.notificationDelete('', { notificationId: e.currentTarget.dataset.notificationid });\r\n\t\t};\r\n\r\n\t\t//#endregion\r\n\r\n\t\t/**\r\n\t\t* Initiates the module, creates a guid and binds dom events.\r\n\t\t* @param {object} [e] The pubsub event, optional depending module is self init or by pubsub event.\r\n\t\t* @param {object} [data] Data passed in by pubsub event, optional depending module is self init or by pubsub event.\r\n\t\t*/\r\n\t\tmodule.private.init = function (e, data) {\r\n\t\t\tvar html;\r\n\r\n\t\t\t//module config\r\n\t\t\tmodule.properties.guid = (data && data.guid) ? data.guid : generalUtilities.uuid();\r\n\r\n\t\t\t//elements\r\n\t\t\telements.body = $('body');\r\n\t\t\telements.notificationListWrapper = $(selectors.notificationListWrapper);\r\n\r\n\t\t\t//dom event binding\r\n\t\t\telements.notificationListWrapper.on('click', selectors.notificationDelete, module.private.handleNotificationDeleteClick);\r\n\r\n\t\t};\r\n\r\n\t\t//#region external event bindings\r\n\r\n\t\tpubsub.subscribe('data.NotificationDelete', module.private.handleDataNotificationDelete);\r\n\t\tpubsub.subscribe('uiAction.NotificationDelete', module.private.notificationDelete);\r\n\r\n\t\tmodule.private.init();\r\n\r\n\t\t//#endregion\r\n\r\n\t\t//expose API\r\n\t\treturn module;\r\n\t}\r\n);","define([\r\n\t'jquery', 'pubsub', 'moduleUtilities', 'generalUtilities', 'notificationService'],\r\n\r\n\tfunction ($, pubsub, moduleUtilities, generalUtilities) {\r\n\t\t'use strict';\r\n\t\t/**\r\n\t\t* re_notification_visit_control\r\n\t\t* @exports notificationVisitControl\r\n\t\t* @author John Allan\r\n\t\t*/\r\n\t\t//#region set up\r\n\r\n\t\tvar module, selectors, elements, values;\r\n\r\n\t\tmodule = {};\r\n\t\t/** @module */\r\n\t\tmodule.private = {};\r\n\t\tmodule.properties = {};\r\n\t\tselectors = {};\r\n\t\telements = {};\r\n\t\tvalues = {};\r\n\r\n\t\tselectors.notificationListWrappers = '.js-notificationhistory-list, .js-notifications-list';\r\n\r\n\t\t//#endregion\r\n\r\n\t\t//#region utilities\r\n\r\n\t\t/**\r\n\t\t* Called on init to mark a notification as visted.\r\n\t\t*/\r\n\t\tmodule.private.markNotificationAsVisited = function () {\r\n\t\t\tvar authenticated, notificationId, request, serviceObject;\r\n\r\n\t\t\tauthenticated = !!generalUtilities.prop(RESAAS, 'User2.UserId');\r\n\t\t\tnotificationId = generalUtilities.queryStringToObject().notificationId;\r\n\t\t\t\r\n\t\t\tif (authenticated && notificationId) {\r\n\t\t\t\trequest = {\r\n\t\t\t\t\tnotificationId: notificationId\r\n\t\t\t\t};\r\n\r\n\t\t\t\tserviceObject = moduleUtilities.createServiceObject(request, module.properties);\r\n\r\n\t\t\t\tpubsub.publish('uiHas.NotificationVisit', serviceObject);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t//#endregion\r\n\r\n\t\t//#region pubsub event handlers\r\n\r\n\t\t/**\r\n\t\t* Handles error for the data.NotificationVisit event.\r\n\t\t* @param {object} e The pubsub event.\r\n\t\t* @param {object} data Data object from service.\r\n\t\t*/\r\n\t\tmodule.private.handleDataNotificationVisitError = function (e, data) {\r\n\t\t\tpubsub.publish('loggly.error', { message: 'Setting notification to visited failed: ' + JSON.stringify(data) });\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t* Handle data event returned from uiHas.NotificationVisit, determines success of fail and calls the corresponding function.\r\n\t\t* @param {object} e The pubsub event.\r\n\t\t* @param {object} data Data object from service.\r\n\t\t*/\r\n\t\tmodule.private.handleDataNotificationVisit = function (e, data) {\r\n\t\t\tif (moduleUtilities.isOwnEvent(data, module.properties)) {\r\n\t\t\t\tif (data.response.status !== 200) {\r\n\t\t\t\t\tmodule.private.handleDataNotificationVisitError(e, data);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t//#endregion\r\n\r\n\t\t//#region dom event handlers\r\n\t\t/**\r\n\t\t* Handle click on notification list wrappers, adds the notificationId to the url before redirecting.\r\n\t\t* @param {object} e Click event\r\n\t\t*/\r\n\t\tmodule.private.handleClick = function (e) {\r\n\t\t\tvar href, url, $notification, notificationId, visited, queryObject;\r\n\r\n\t\t\t$notification = $(e.target).closest('[data-notificationid]');\r\n\t\t\tvisited = $notification.hasClass('js-notification-visited');\r\n\t\t\tnotificationId = $notification.attr('data-notificationid');\r\n\r\n\t\t\tif (notificationId) {\r\n\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\thref = $(e.target).attr('href');\r\n\t\t\t\tqueryObject = {\r\n\t\t\t\t\tmp_from: 'notification'\r\n\t\t\t\t};\r\n\r\n\t\t\t\tif (!visited) {\r\n\t\t\t\t\tqueryObject.notificationId = notificationId;\r\n\t\t\t\t}\r\n\r\n\t\t\t\turl = generalUtilities.addParamsToUrlQueryString(href, queryObject);\r\n\t\t\t\tgeneralUtilities.redirect(url);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t//#endregion\r\n\r\n\t\t/**\r\n\t\t* Initiates the module, creates a guid and binds dom events. Tracks notification visits.\r\n\t\t* @param {object} [e] The pubsub event, optional depending module is self init or by pubsub event.\r\n\t\t* @param {object} [data] Data passed in by pubsub event, optional depending module is self init or by pubsub event.\r\n\t\t*/\r\n\t\tmodule.private.init = function (e, data) {\r\n\r\n\t\t\t//module config\r\n\t\t\tmodule.properties.guid = (data && data.guid) ? data.guid : generalUtilities.uuid();\r\n\t\t\telements.notificationListWrappers = $(selectors.notificationListWrappers);\r\n\r\n\t\t\t//dom event binding\r\n\t\t\telements.notificationListWrappers.off('click.notificationVisit').on('click.notificationVisit', 'a', module.private.handleClick);\r\n\r\n\t\t\t//mark notification as visited\r\n\t\t\tmodule.private.markNotificationAsVisited();\r\n\t\t};\r\n\r\n\t\t//#region external event bindings\r\n\t\tpubsub.subscribe('data.NotificationVisit', module.private.handleDataNotificationVisit);\r\n\r\n\t\tmodule.private.init();\r\n\r\n\t\t//#endregion\r\n\r\n\t\t//expose API\r\n\t\treturn module;\r\n\t}\r\n);","define([\r\n\t'jquery', 'pubsub', 'moduleUtilities', 'generalUtilities', 'notificationToolbarListCompiled', 'smoke', 'notificationsEnumData', 'relationshiptypesData', 'moment', 'notificationService', 'connectionService', 'messageControl2', 'notificationDeleteControl'],\r\n\r\n\tfunction ($, pubsub, moduleUtilities, generalUtilities, notificationToolbarListCompiled, smoke, notificationsEnumData, relationshiptypesData, moment) {\r\n\t\t/**\r\n\t\t* re_notification_connection_control\r\n\t\t* @exports notificationConnectionListControl\r\n\t\t* @author Eugene Katsov\r\n\t\t*/\r\n\r\n\t\t//#region set up\r\n\r\n\t\t'use strict';\r\n\r\n\t\tvar module, selectors, elements, values, overLayModule;\r\n\r\n\t\tmodule = {};\r\n\t\tmodule.private = {};\r\n\t\tmodule.properties = {};\r\n\t\tselectors = {\r\n\t\t\tnotificationListWrapper: '.re-notifications-list',\r\n\t\t\tconnectionWrapper: '.re-nav-notifications',\r\n\t\t\tnotificationConnect: '.js-notification-connection',\r\n\t\t\tnotificationConnectDismiss: '.js-connection-delete',\r\n\t\t\tconnectionIcon: '.js-connection',\r\n\t\t\tconnectionList: '.js-connection-list',\r\n\t\t\tnotificationCount: '.js-notificationcount'\r\n\t\t};\r\n\t\telements = {};\r\n\t\tvalues = {\r\n\t\t\trequesterRegexObj: /title=\"(.[^\"]+)\"/g,\r\n\t\t\tpositionScroll: 0\r\n\t\t};\r\n\r\n\t\t//#endregion\r\n\r\n\t\t//#region utilities\r\n\r\n\t\t/**\r\n\t\t* get notificaiton count count from dom\r\n\t\t* @returns {number} \r\n\t\t*/\r\n\t\tmodule.private.getNotificationCountFromDom = function () {\r\n\t\t\tvalues.notificationCount = parseInt(elements.connectionList.closest(selectors.connectionWrapper).find(selectors.notificationCount).html(), 10);\r\n\r\n\t\t\treturn values.notificationCount;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t* massage data in irder to prettify date and format count message\r\n\t\t* @param {object} data Data object from service.\r\n\t\t*/\r\n\t\tmodule.private.massageData = function (data) {\r\n\t\t\tvar regexArr;\r\n\t\t\tif (Array.isArray(data.Data)) {\r\n\r\n\t\t\t\tdata.Data.map(function (item) {\r\n\t\t\t\t\t//prettify/relativize dates\r\n\t\t\t\t\tif (item.hasOwnProperty('DateCreated')) {\r\n\t\t\t\t\t\tif (generalUtilities.prop(item, 'DateCreated')) {\r\n\t\t\t\t\t\t\titem.RelativeDate = moment(item.DateCreated + '+00:00').fromNow();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (item.hasOwnProperty('NotificationType')) {\r\n\r\n\t\t\t\t\t\titem.ActionLink = RESAAS.Localization.Global.ACCEPT;\r\n\t\t\t\t\t\titem.NotificationTypeName = \"connection\";\r\n\t\t\t\t\t\tif (item.hasOwnProperty('Message')) {\r\n\t\t\t\t\t\t\tregexArr = values.requesterRegexObj.exec(item.Message);\r\n\t\t\t\t\t\t\titem.RequesterName = regexArr === null ? \"\" : regexArr[1];\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\t//format count message\r\n\t\t\t\tdata.notificationCountMessage = (data.Data.length === 1) ? RESAAS.Localization.Global.NOTIFICATIONS_COUNT_MESSAGE_SINGULAR : generalUtilities.stringFormat(RESAAS.Localization.Global.NOTIFCATINOS_COUNT_MESSAGE_PLURAL, data.Data.length);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t* show and hide activity indicator\r\n\t\t* @param {object} data Data object from service.\r\n\t\t*/\r\n\t\tmodule.private.showHideActivityIndicator = function (data) {\r\n\t\t\tvar action, notifications;\r\n\t\t\tnotifications = generalUtilities.prop(data, 'response.Data');\r\n\t\t\tvalues.notificationCount = generalUtilities.prop(data, 'response.Count');\r\n\t\t\taction = (notifications && notifications.length) ? 'addClass' : 'removeClass';\r\n\t\t\telements.connectionList.parent()[action]('re-nav-hasactivity');\r\n\t\t\telements.connectionList.parent().find('.js-notificationcount').html(values.notificationCount);\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t* decrease notification count\r\n\t\t* @param {object} data Data object from service.\r\n\t\t*/\r\n\t\tmodule.private.decrementActivityIndicator = function () {\r\n\t\t\tvalues.notificationCount--;\r\n\t\t\telements.connectionList.parent().find('.js-notificationcount').html(values.notificationCount);\r\n\r\n\t\t\tif (values.notificationCount <= 0) {\r\n\t\t\t\telements.connectionList.parent().removeClass('re-nav-hasactivity');\r\n\t\t\t}\r\n\t\t};\r\n\t\t//#endregion\r\n\r\n\t\t//#region pubsub event handlers\r\n\r\n\t\t/**\r\n\t\t* Connection response error handler\r\n\t\t* @param {object} e event\r\n\t\t* @param {object} data response data\r\n\t\t*/\r\n\t\tmodule.private.handleDataNotificationConnectionError = function (e, data) {\r\n\t\t\tif (moduleUtilities.isOwnEvent(data, module.properties)) {\r\n\t\t\t\tpubsub.publish('loggly.error', { message: JSON.stringify(data) });\r\n\r\n\t\t\t\tpubsub.publish('uiAction.MessageAdd', {\r\n\t\t\t\t\t'message': RESAAS.Localization.Global.GENERIC_WEBSERVICE_ERROR_MESSAGE,\r\n\t\t\t\t\t'type': 'error'\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t* Connection response success handler\r\n\t\t* @param {object} e event\r\n\t\t* @param {object} data response data\r\n\t\t*/\r\n\t\tmodule.private.handleDataNotificationConnectionSuccess = function (e, data) {\r\n\t\t\tvar successMsg, res, $nItem;\r\n\r\n\t\t\t//decrease count\r\n\t\t\tmodule.private.decrementActivityIndicator();\r\n\r\n\t\t\t//if not own event exit\r\n\t\t\tif (!moduleUtilities.isOwnEvent(data, module.properties)) {\r\n\t\t\t\treturn false; \r\n\t\t\t}\r\n\r\n\t\t\t//hide notification\r\n\t\t\tres = data.response.SaveResult.Data;\r\n\r\n successMsg = generalUtilities.stringFormat('You’re Connected! Click here to start a conversation and explore new opportunities together!', res.KnownContactUserId);\r\n\r\n\t\t\t$nItem = elements.notificationListWrapper.find('[data-notificationid=\"' + data.notificationId + '\"]');\r\n\r\n\t\t\t$nItem.fadeOut(\"slow\", function () {\r\n\t\t\t\t$nItem.remove();\r\n\t\t\t});\r\n\r\n\t\t\tpubsub.publish('uiAction.MessageAdd', {\r\n\t\t\t\t'message': successMsg,\r\n\t\t\t});\r\n\r\n\t\t\tpubsub.publish('relationship.accepted', {\r\n\t\t\t\ttype: 'connection accepted',\r\n\t\t\t\trequester: data.requester,\r\n\t\t\t\treceiver: data.reciever,\r\n\t\t\t\telement: 'notifications',\r\n\t\t\t\tcontent: 'relationship accepted'\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t* Handle data event returned from service, determines success of fail and calls the corresponding function.\r\n\t\t* @param {object} e The pubsub event.\r\n\t\t* @param {object} data Data object from service.\r\n\t\t*/\r\n\t\tmodule.private.handleDataNotificationConnection = function (e, data) {\r\n\t\t\tvar success;\r\n\r\n\t\t\tsuccess = generalUtilities.prop(data, 'response.SaveResult.Success');\r\n\r\n\t\t\tif (!success) {\r\n\t\t\t\tmodule.private.handleDataNotificationConnectionError(e, data);\r\n\t\t\t} else {\r\n\t\t\t\tmodule.private.handleDataNotificationConnectionSuccess(e, data);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t* Handle data event returned from service, determines success of fail and calls the corresponding function.\r\n\t\t* @param {object} e The pubsub event.\r\n\t\t* @param {object} data Data object from service.\r\n\t\t*/\r\n\t\tmodule.private.handleDataConnectionNotificationBrowse = function (e, data) {\r\n\t\t\tif (moduleUtilities.isOwnEvent(data, module.properties)) {\r\n\t\t\t\tif (generalUtilities.prop(data, 'response.Data')) {\r\n\t\t\t\t\tmodule.private.handleDataConnectionNotificationBrowseSuccess(e, data);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tmodule.private.handleDataConnectionNotificationBrowseError(e, data);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t* Handle data event returned from service, determines success of fail and calls the corresponding function.\r\n\t\t* @param {object} e The pubsub event.\r\n\t\t* @param {object} data Data object from service.\r\n\t\t*/\r\n\t\tmodule.private.handleDataNotificationDelete = function (e, data) {\r\n\t\t\tif (generalUtilities.prop(data, 'response.HideNotificationForUserResult.Success')) {\r\n\t\t\t\tmodule.private.decrementActivityIndicator();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t* Handle data event returned from service, determines success of fail and calls the corresponding function.\r\n\t\t* @param {object} e The pubsub event.\r\n\t\t* @param {object} data Data object from service.\r\n\t\t*/\r\n\t\tmodule.private.handleDataConnectionNotificationBrowseSuccess = function (e, data) {\r\n\t\t\tvar response;\r\n\t\t\tresponse = generalUtilities.prop(data, 'response');\r\n\t\t\tresponse.Success = true;\r\n\r\n\t\t\tif (generalUtilities.prop(data, 'response.Count')) {\r\n\t\t\t\tmodule.private.massageData(response);\r\n\t\t\t}\r\n\r\n\t\t\tresponse.historyLink = 'connectionrequests';\r\n\t\t\tresponse.historyLinkText = RESAAS.Localization.Navigation.VIEW_CONNECTION_HISTORY;\r\n\t\t\tresponse.dismissAllowed = true;\r\n\t\t\tresponse.NoNotificationMessage = RESAAS.Localization.Navigation.TOOLBAR_NO_NEW_CONNECTION_REQUEST;\r\n response.showExpandNetworkMessage = true;\r\n\r\n if (response.Data.length > 0) {\r\n response.Data.forEach(function (notification) {\r\n if (generalUtilities.prop(notification, 'ContentMetadata.InvitationMessage')) {\r\n var message = notification.ContentMetadata.InvitationMessage;\r\n var isLongMessage = message.length > 200;\r\n notification.ContentMetadata.truncatedMessage = isLongMessage ? message.substring(0, 200) + '... ' : null;\r\n }\r\n });\r\n }\r\n\r\n\t\t\t//show/hide the activity indicator (red dot)\r\n\t\t\tmodule.private.showHideActivityIndicator(data);\r\n\r\n\t\t\t//inject the notification list\r\n elements.connectionList.html(notificationToolbarListCompiled(response));\r\n\r\n\r\n var seeMoreButtons = document.querySelectorAll('.js-invitation-message-see-more');\r\n if (seeMoreButtons.length > 0) {\r\n seeMoreButtons.forEach(function (button) {\r\n button.addEventListener('click', function () {\r\n var parent = this.closest('.re-notification-invitation-message');\r\n var fullMessage = parent.querySelector('.js-invitation-message-full');\r\n var truncatedMessage = parent.querySelector('.js-invitation-message-truncated');\r\n fullMessage.style.display = 'block';\r\n truncatedMessage.style.display = 'none';\r\n });\r\n });\r\n }\r\n\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t* Handles error types and publishes to loggly.\r\n\t\t* @param {object} e The pubsub event.\r\n\t\t* @param {object} data Data object from service.\r\n\t\t*/\r\n\t\tmodule.private.handleDataConnectionNotificationBrowseError = function (e, data) {\r\n\t\t\tvar status, errMsg;\r\n\r\n\t\t\tstatus = generalUtilities.prop(data, 'response.status');\r\n\t\t\tswitch (status) {\r\n\t\t\t\tcase '401':\r\n\t\t\t\t\terrMsg = RESAAS.Localization.Global.UNAUTHORIZED_USER_ERROR_MESSAGE;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase '500':\r\n\t\t\t\t\terrMsg = RESAAS.Localization.Global.GENERIC_WEBSERVICE_ERROR_MESSAGE\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\terrMsg = RESAAS.Localization.Global.GENERIC_WEBSERVICE_ERROR_MESSAGE\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t\tpubsub.publish('loggly.error', { 'message': 'connection browse failed to retrieve results: ' + JSON.stringify(data.response) });\r\n\r\n\t\t\tpubsub.publishSync('uiAction.MessageAdd', {\r\n\t\t\t\t'message': errMsg,\r\n\t\t\t\t'type': 'error'\r\n\t\t\t});\r\n\t\t};\r\n\t\t//#endregion\r\n\r\n\t\t//#region dom event handlers\r\n\r\n\t\t/**\r\n\t\t* Connection delete click handler\r\n\t\t* @param {object} e event\r\n\t\t* \r\n\t\t*/\r\n\t\tmodule.private.handleNotificationConnectionDeleteClick = function (e) {\r\n\t\t\te.preventDefault();\r\n\t\t\tvar requester, reciever, event;\r\n\t\t\treciever = [window.RESAAS.User2.FirstName, window.RESAAS.User2.LastName].join(\" \");\r\n\t\t\trequester = e.currentTarget.dataset.requestername;\r\n\t\t\tevent = e;\r\n\r\n\t\t\tsmoke.confirm(RESAAS.Localization.Global.SMOKE_HIDE_NOTIFICATION, function (e) {\r\n\t\t\t\tif (e) {\r\n\t\t\t\t\tpubsub.publish('relationship.dismissed', {\r\n\t\t\t\t\t\ttype: 'connection dismissed',\r\n\t\t\t\t\t\trequester: requester,\r\n\t\t\t\t\t\treceiver: reciever,\r\n\t\t\t\t\t\telement: 'notifications',\r\n\t\t\t\t\t\tcontent: 'relationship dismissed'\r\n\t\t\t\t\t});\r\n\t\t\t\t\tpubsub.publish('uiAction.NotificationDelete', { notificationId: event.target.dataset.notificationid });\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}, { ok: RESAAS.Localization.Global.HIDE, cancel: RESAAS.Localization.Global.CANCEL_TEXT });\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t* Handle click on the action, connects the users\r\n\t\t* @param {object} e Click event\r\n\t\t*/\r\n\t\tmodule.private.handleNotificationConnectionClick = function (e) {\r\n\t\t\te.preventDefault();\r\n\r\n\t\t\tvar requestOptions, request, serviceObject, nId, requester, reciever, cuId;\r\n\r\n\t\t\treciever = [window.RESAAS.User2.FirstName, window.RESAAS.User2.LastName].join(\" \");\r\n\t\t\trequester = e.currentTarget.dataset.requestername;\r\n\t\t\tnId = e.currentTarget.dataset.notificationid;\r\n\t\t\tcuId = e.currentTarget.dataset.creatoruserid;\r\n\r\n\t\t\trequestOptions = {\r\n\t\t\t\trequester: requester,\r\n\t\t\t\treciever: reciever,\r\n\t\t\t\tnotificationId: nId \r\n\t\t\t};\r\n\r\n\t\t\trequest = {\r\n\t\t\t\tcontact: {\r\n\t\t\t\t\tKnownContactUserId: cuId,\r\n\t\t\t\t\tRelationships: [{\r\n\t\t\t\t\t\tType: relationshiptypesData.browse().Connection,\r\n\t\t\t\t\t\tAction: 0\r\n\t\t\t\t\t}]\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\tserviceObject = moduleUtilities.createServiceObject(request, module.properties, requestOptions);\r\n\r\n\t\t\tpubsub.publish('uiHas.ConnectionAdd', serviceObject);\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t* Publish a notification browse request\r\n\t\t*/\r\n\t\tmodule.private.notificationConnectionBrowse = function () {\r\n\t\t\tvar request, requestOptions, serviceObject, notificationTypes;\r\n\t\t\t//seen in the request/response but not passed to the webservice (same as module.properties)\r\n\t\t\trequestOptions = {};\r\n\t\t\tnotificationTypes = notificationsEnumData.browse();\r\n\t\t\t//sent to webservice\r\n\t\t\trequest = {\r\n\t\t\t\tIncludeNotificationTypes: [notificationTypes.InviteToConnectNotification],\r\n\t\t\t\tRecordCount: 10\r\n\t\t\t};\r\n\r\n\t\t\tserviceObject = moduleUtilities.createServiceObject(request, module.properties, requestOptions);\r\n\r\n\t\t\t//service needs to be using publish2\r\n\t\t\tpubsub.publish('uiNeeds.NotificationBrowse2', serviceObject);\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t* Handle click on the connection icon, hide/shows notification list\r\n\t\t* @param {object} e Click event\r\n\t\t*/\r\n\t\tmodule.private.handleConnectionIconClick = function (e) {\r\n\r\n\r\n\t\t\tpubsub.publish('mixpanel.Intent', {\r\n\t\t\t\ttype: 'open connection notifications dropdown'\r\n\t\t\t});\r\n\r\n\t\t\tsetTimeout(function () {\r\n\t\t\t\tif ($(e.currentTarget).next(selectors.notificationList).is(':visible')) {\r\n\t\t\t\t\tmodule.private.notificationConnectionBrowse();\r\n\t\t\t\t}\r\n\t\t\t}, 0);\r\n\t\t};\r\n\r\n\t\tmodule.private.handleFindAgentClick = function handleUpsellClick(e) {\r\n\t\t\tif (generalUtilities.prop(window, 'RESAAS.MixPanel.trackEvent')) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tRESAAS.MixPanel.trackEvent(\r\n\t\t\t\t\t'Intent',\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttype: e.target.getAttribute('data-mixpanel-type'),\r\n\t\t\t\t\t\tfrom: e.target.getAttribute('data-mixpanel-from')\r\n\t\t\t\t\t},\r\n\t\t\t\t\te.target.getAttribute('href')\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t//#endregion\r\n\r\n\t\t/**\r\n\t\t* Initiates the module, creates a guid and binds dom events.\r\n\t\t* @param {object} [e] The pubsub event, optional depending module is self init or by pubsub event.\r\n\t\t* @param {object} [data] Data passed in by pubsub event, optional depending module is self init or by pubsub event.\r\n\t\t*/\r\n\t\tmodule.private.init = function (e, data) {\r\n\t\t\tvar html;\r\n\r\n\t\t\t//module config\r\n\t\t\tmodule.properties.guid = (data && data.guid) ? data.guid : generalUtilities.uuid();\r\n\r\n\t\t\t//elements\r\n\t\t\telements.body = $('body');\r\n\t\t\telements.notificationListWrapper = $(selectors.notificationListWrapper);\r\n\t\t\telements.connectionWrapper = $(selectors.connectionWrapper);\r\n\t\t\telements.connectionList = $(selectors.connectionList);\r\n\r\n\t\t\t//moment\r\n\t\t\tgeneralUtilities.configureMoment(moment);\r\n\r\n\t\t\t//inject pending message\r\n\t\t\telements.connectionList.html(notificationToolbarListCompiled({ pendingMessage: true }));\r\n\r\n\t\t\t//get count from dom\r\n\t\t\tmodule.private.getNotificationCountFromDom();\r\n\r\n\t\t\t//dom event binding\r\n\t\t\telements.notificationListWrapper.on('click', selectors.notificationConnect, module.private.handleNotificationConnectionClick);\r\n\t\t\telements.notificationListWrapper.on('click', selectors.notificationConnectDismiss, module.private.handleNotificationConnectionDeleteClick);\r\n\t\t\telements.connectionWrapper.on('click', selectors.connectionIcon, module.private.handleConnectionIconClick);\r\n\t\t\telements.notificationListWrapper.on('click', '.re-notification-expand-network .re-btn', module.private.handleFindAgentClick);\r\n\t\t};\r\n\r\n\t\t//#region external event bindings\r\n\r\n\t\tpubsub.subscribe('data.ConnectionAdd', module.private.handleDataNotificationConnection);\r\n\t\tpubsub.subscribe('data.NotificationBrowse2', module.private.handleDataConnectionNotificationBrowse);\r\n\t\tpubsub.subscribe('data.NotificationDelete', module.private.handleDataNotificationDelete);\r\n\r\n\t\tmodule.private.init();\r\n\r\n\t\t//#endregion\r\n\r\n\t\t//expose API\r\n\t\treturn module;\r\n\t}\r\n);\r\n","define([\r\n\t'jquery',\r\n\t'pubsub',\r\n\t'moduleUtilities',\r\n\t'generalUtilities',\r\n\t'notificationToolbarListCompiled',\r\n\t'moment',\r\n\t'notificationsEnumData',\r\n\t'notificationService'\r\n], function notificationToolbarGenericListControl(\r\n\t$,\r\n\tpubsub,\r\n\tmoduleUtilities,\r\n\tgeneralUtilities,\r\n\tnotificationToolbarListCompiled,\r\n\tmoment,\r\n\tnotificationsEnumData\r\n) {\r\n\t/**\r\n\t * re_notification_list_control\r\n\t * @exports notificationToolbarGenericListControl\r\n\t * @author John Allan\r\n\t */\r\n\r\n\t'use strict';\r\n\r\n\tvar module, selectors, elements, values;\r\n\r\n\tmodule = {};\r\n\tmodule.private = {};\r\n\tmodule.properties = {};\r\n\tselectors = {\r\n\t\tnotificationListWrapper: '.re-nav-notifications',\r\n\t\tnotificationList: '.js-notifications-list',\r\n\t\tnotificationIcon: '.js-notification'\r\n\t};\r\n\telements = {};\r\n\tvalues = {\r\n\t\trequesterRegexObj: /title=\"(.[^\"]+)\"/g,\r\n\t\tpositionScroll: 0\r\n\t};\r\n\r\n\t/**\r\n\t * Publish a notification browse request\r\n\t */\r\n\tmodule.private.notificationGenericBrowse = function notificationGenericBrowse() {\r\n\t\tvar request, requestOptions, serviceObject, notificationTypes;\r\n\t\t// seen in the request/response but not passed to the webservice (same as module.properties)\r\n\t\trequestOptions = {};\r\n\t\tnotificationTypes = notificationsEnumData.browse();\r\n\r\n\t\t// sent to webservice\r\n\t\trequest = {\r\n\t\t\tRecordCount: 10,\r\n\t\t\tIncludeDismissed: true,\r\n\t\t\tExcludeNotificationTypes: [\r\n\t\t\t\tnotificationTypes.InviteToConnectNotification,\r\n\t\t\t\tnotificationTypes.InviteToSellingCommunityNotification\r\n\t\t\t]\r\n\t\t};\r\n\t\tserviceObject = moduleUtilities.createServiceObject(request, module.properties, requestOptions);\r\n\r\n\t\t// service needs to be using publish2\r\n\t\tpubsub.publish('uiNeeds.NotificationBrowse2', serviceObject);\r\n\t};\r\n\r\n\t/**\r\n\t * massage data in irder to prettify date and format count message\r\n\t * @param {object} data Data object from service.\r\n\t */\r\n\tmodule.private.massageData = function massageData(data) {\r\n\t\tvar banner;\r\n\t\tif (Array.isArray(data.Data)) {\r\n\t\t\tdata.Data.forEach(function dataDataForEach(item) {\r\n\t\t\t\t// prettify/relativize dates\r\n\t\t\t\tif (item.hasOwnProperty('DateCreated')) {\r\n\t\t\t\t\tif (generalUtilities.prop(item, 'DateCreated')) {\r\n\t\t\t\t\t\titem.RelativeDate = moment(item.DateCreated + '+00:00').fromNow();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (item.hasOwnProperty('NotificationType')) {\r\n\t\t\t\t\titem.NotificationTypeName = 'generic';\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t// format count message\r\n\t\t\tdata.notificationCountMessage =\r\n\t\t\t\tdata.Data.length === 1\r\n\t\t\t\t\t? RESAAS.Localization.Global.NOTIFICATIONS_COUNT_MESSAGE_SINGULAR\r\n\t\t\t\t\t: generalUtilities.stringFormat(\r\n\t\t\t\t\t\t\tRESAAS.Localization.Global.NOTIFCATINOS_COUNT_MESSAGE_PLURAL,\r\n\t\t\t\t\t\t\tdata.Data.length\r\n\t\t\t\t\t );\r\n\r\n\t\t\t// inject premium banner\r\n\t\t\tif (data.Data.length && generalUtilities.prop(window, 'RESAAS.Environment.Experience') !== \"commercial\") {\r\n\t\t\t\tbanner = { banner: true };\r\n\r\n\t\t\t\tif (!generalUtilities.prop(window, 'RESAAS.User2.ReferralPro') && !generalUtilities.prop(window, 'RESAAS.User2.PremiumPlusBadge')) {\r\n\t\t\t\t\tbanner.upsell = true;\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\telse if (generalUtilities.prop(window, 'RESAAS.User2.PremiumPlusBadge')){\r\n\t\t\t\t\tbanner.premiumplus = true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tdata.Data.splice(3, 0, banner);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Handle data event returned from service, determines success of fail and calls the corresponding function.\r\n\t * @param {object} e The pubsub event.\r\n\t * @param {object} data Data object from service.\r\n\t */\r\n\tmodule.private.handleDataGenericNotificationBrowse = function handleDataGenericNotificationBrowse(e, data) {\r\n\t\tif (generalUtilities.prop(data, 'response.Data')) {\r\n\t\t\tmodule.private.handleDataGenericNotificationBrowseSuccess(e, data);\r\n\t\t} else {\r\n\t\t\tmodule.private.handleDataGenericNotificationBrowseError(e, data);\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Handle data event returned from service, determines success of fail and calls the corresponding function.\r\n\t * @param {object} e The pubsub event.\r\n\t * @param {object} data Data object from service.\r\n\t */\r\n\tmodule.private.handleDataGenericNotificationBrowseSuccess = function handleDataGenericNotificationBrowseSuccess(\r\n\t\te,\r\n\t\tdata\r\n\t) {\r\n\t\tvar response, notificationTypes, includedNotificationTypes;\r\n\r\n\t\tnotificationTypes = notificationsEnumData.browse();\r\n\t\tincludedNotificationTypes = generalUtilities.prop(data, 'request.IncludeNotificationTypes');\r\n\r\n\t\t// if connection requests are NOT the only notifications retrieved hide the unread indicator (red dot)\r\n\t\tif (\r\n\t\t\t!(\r\n\t\t\t\tincludedNotificationTypes &&\r\n\t\t\t\tincludedNotificationTypes.length === 1 &&\r\n\t\t\t\tincludedNotificationTypes.indexOf(notificationTypes.InviteToConnectNotification) === 0\r\n\t\t\t)\r\n\t\t) {\r\n\t\t\telements.notificationList.parent().removeClass('re-nav-hasactivity');\r\n\t\t}\r\n\r\n\t\t// if not own event exit\r\n\t\tif (!moduleUtilities.isOwnEvent(data, module.properties)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// show notification list\r\n\t\tresponse = generalUtilities.prop(data, 'response');\r\n\t\tresponse.Success = true;\r\n\r\n\t\tif (generalUtilities.prop(data, 'response.Count')) {\r\n\t\t\tmodule.private.massageData(response);\r\n\t\t}\r\n\r\n\t\tresponse.historyLink = 'notifications';\r\n\t\tresponse.historyLinkText = RESAAS.Localization.Navigation.VIEW_NOTIFICATIONS_HISTORY;\r\n\t\tresponse.dismissAllowed = false;\r\n\t\tresponse.NoNotificationMessage = RESAAS.Localization.Global.TOOLBAR_NO_NEW_NOTIFICATIONS;\r\n\r\n\t\t// inject the notification list\r\n\t\telements.notificationList.html(notificationToolbarListCompiled(response));\r\n\t};\r\n\r\n\t/**\r\n\t * Handles error types and publishes to loggly.\r\n\t * @param {object} e The pubsub event.\r\n\t * @param {object} data Data object from service.\r\n\t */\r\n\tmodule.private.handleDataGenericNotificationBrowseError = function handleDataGenericNotificationBrowseError(e, data) {\r\n\t\tvar status, errMsg;\r\n\r\n\t\tif (moduleUtilities.isOwnEvent(data, module.properties)) {\r\n\t\t\tstatus = generalUtilities.prop(data, 'response.status');\r\n\t\t\tswitch (status) {\r\n\t\t\t\tcase '401':\r\n\t\t\t\t\terrMsg = RESAAS.Localization.Global.Unauthorized_USER_ERROR_MESSAGE;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase '500':\r\n\t\t\t\t\terrMsg = RESAAS.Localization.Global.GENERIC_WEBSERVICE_ERROR_MESSAGE;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\terrMsg = RESAAS.Localization.Global.GENERIC_WEBSERVICE_ERROR_MESSAGE;\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t\tpubsub.publish('loggly.error', {\r\n\t\t\t\tmessage: generalUtilities.stringFormat(\r\n\t\t\t\t\t'connection browse failed to retrieve results: {0}',\r\n\t\t\t\t\tJSON.stringify(data.response)\r\n\t\t\t\t)\r\n\t\t\t});\r\n\r\n\t\t\tpubsub.publish('uiAction.MessageAdd', {\r\n\t\t\t\tmessage: errMsg,\r\n\t\t\t\ttype: 'error'\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Handle click on the notification icon, hide/shows notification list\r\n\t * @param {object} e Click event\r\n\t */\r\n\tmodule.private.handleNotificationIconClick = function handleNotificationIconClick(e) {\r\n\t\t// Preventing scrolling mobile notification menu is open\r\n\t\tif (\r\n\t\t\t$(e.currentTarget)\r\n\t\t\t\t.parent()\r\n\t\t\t\t.hasClass('re-nav-open')\r\n\t\t) {\r\n\t\t\tvalues.positionScroll = elements.window.scrollTop();\r\n\t\t\telements.body.css({ top: '-' + values.positionScroll + 'px' });\r\n\t\t\telements.html.addClass('re-compact-overflow-y-hidden');\r\n\t\t} else {\r\n\t\t\telements.html.removeClass('re-compact-overflow-y-hidden');\r\n\t\t\telements.window.scrollTop(values.positionScroll);\r\n\t\t}\r\n\r\n\t\tpubsub.publish('mixpanel.Intent', {\r\n\t\t\ttype: 'open notifications dropdown'\r\n\t\t});\r\n\r\n\t\t// the timeout is here to ensure it happens at the bottom of the event stack\r\n\t\t// the tree control does the reveal before this check takes place which is why\r\n\t\t// we call the service if the list is visible and not the other way around\r\n\t\t// @john.allan\r\n\t\tsetTimeout(function iconClickTimeout() {\r\n\t\t\tif (\r\n\t\t\t\t$(e.currentTarget)\r\n\t\t\t\t\t.next(selectors.notificationList)\r\n\t\t\t\t\t.is(':visible')\r\n\t\t\t) {\r\n\t\t\t\tmodule.private.notificationGenericBrowse();\r\n\t\t\t}\r\n\t\t}, 0);\r\n\t};\r\n\r\n\tmodule.private.handleUpsellClick = function handleUpsellClick(e) {\r\n\t\tif (generalUtilities.prop(window, 'RESAAS.MixPanel.trackEvent')) {\r\n\t\t\te.preventDefault();\r\n\t\t\tRESAAS.MixPanel.trackEvent(\r\n\t\t\t\t'Intent',\r\n\t\t\t\t{\r\n\t\t\t\t\ttype: e.target.getAttribute('data-mixpanel-type'),\r\n\t\t\t\t\tfrom: e.target.getAttribute('data-mixpanel-from')\r\n\t\t\t\t},\r\n\t\t\t\te.target.getAttribute('href')\r\n\t\t\t);\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Initiates the module, creates a guid and binds dom events.\r\n\t * @param {object} [e] The pubsub event, optional depending module is self init or by pubsub event.\r\n\t * @param {object} [data] Data passed in by pubsub event, optional depending module is self init or by pubsub event.\r\n\t */\r\n\tmodule.private.init = function init(e, data) {\r\n\t\t// module config\r\n\t\tmodule.properties.guid = data && data.guid ? data.guid : generalUtilities.uuid();\r\n\r\n\t\t// elements\r\n\t\telements.html = $('html');\r\n\t\telements.window = $(window);\r\n\t\telements.body = $('body');\r\n\t\telements.notificationListWrapper = $(selectors.notificationListWrapper);\r\n\t\telements.notificationList = $(selectors.notificationList);\r\n\r\n\t\t// moment\r\n\t\tgeneralUtilities.configureMoment(moment);\r\n\r\n\t\t// dom event binding\r\n\t\telements.notificationListWrapper.on(\r\n\t\t\t'click',\r\n\t\t\tselectors.notificationIcon,\r\n\t\t\tmodule.private.handleNotificationIconClick\r\n\t\t);\r\n\r\n\t\telements.notificationListWrapper.on('click', '.re-notification-upsell .re-btn', module.private.handleUpsellClick);\r\n\r\n\t\t// inject pending message\r\n\t\telements.notificationList.html(notificationToolbarListCompiled({ pendingMessage: true }));\r\n\t};\r\n\r\n\tpubsub.subscribe('data.NotificationBrowse2', module.private.handleDataGenericNotificationBrowse);\r\n\tpubsub.subscribe('uiAction.NotificationBrowse', module.private.notificationGenericBrowse);\r\n\r\n\tmodule.private.init();\r\n\r\n\t// expose API\r\n\treturn module;\r\n});\r\n","define(['pubsub', 'ajaxUtility', 'logglyController'], function(pubsub, ajaxUtility) {\r\n 'use strict';\r\n\r\n var module, values;\r\n\r\n module = {};\r\n module.private = {};\r\n values = {};\r\n\r\n if (window.google && window.google.maps) {\r\n values.geocoder = new google.maps.Geocoder();\r\n }\r\n\r\n module.private.handleGeoCodeAddressResponse = function(request, results, status) {\r\n var s;\r\n\r\n //determine status\r\n s = status == google.maps.GeocoderStatus.OK ? '200' : '400';\r\n\r\n //publish results\r\n pubsub.publish('dataGeoCodeAddress', {\r\n request: request,\r\n response: {\r\n status: s,\r\n data: results\r\n }\r\n });\r\n\r\n //log error if 400\r\n if (s === '400') {\r\n pubsub.publish('loggly.warning', {\r\n message: \"Geocode was not successful for '\" + request.address + \"' the following reason: \" + status\r\n });\r\n }\r\n };\r\n\r\n module.private.handleGeoCodePointResponse = function(request, results, status) {\r\n var s;\r\n\r\n //determine status\r\n s = status == google.maps.GeocoderStatus.OK ? '200' : '400';\r\n\r\n //publish results\r\n pubsub.publish('dataGeoCodeAddress', {\r\n request: request,\r\n response: {\r\n status: s,\r\n data: results\r\n }\r\n });\r\n\r\n //log error if 400\r\n if (s === '400') {\r\n pubsub.publish('loggly.warning', {\r\n message: \"Geocode was not successful for '\" + request.location.lat + \"' the following reason: \" + status\r\n });\r\n }\r\n };\r\n\r\n module.private.geoCodeAddress = function(e, data) {\r\n if (!values.geocoder) {\r\n return;\r\n }\r\n\r\n values.geocoder.geocode(\r\n {\r\n address: data.address\r\n },\r\n (function(request) {\r\n return function(results, status) {\r\n module.private.handleGeoCodeAddressResponse(request, results, status);\r\n };\r\n })(data)\r\n );\r\n };\r\n\r\n module.private.geoCodePoint = function(e, data) {\r\n values.geocoder.geocode(\r\n {\r\n location: {\r\n lat: parseFloat(data.location.lat),\r\n lng: parseFloat(data.location.lng)\r\n }\r\n },\r\n (function(request) {\r\n return function(results, status) {\r\n module.private.handleGeoCodePointResponse(request, results, status);\r\n };\r\n })(data)\r\n );\r\n };\r\n\r\n function addLocation(e, data) {\r\n var config;\r\n\r\n config = {\r\n method: 'POST',\r\n url: '/Services/UserInfoService.svc/json/SaveAccountDetails'\r\n };\r\n\r\n ajaxUtility.publish2(e, data, config);\r\n }\r\n\r\n pubsub.subscribe('uiNeeds.GeoCodePoint', module.private.geoCodePoint);\r\n pubsub.subscribe('uiWantsGeoCodeAddress', module.private.geoCodeAddress);\r\n pubsub.subscribe('uiHas.LocationAdd', addLocation);\r\n\r\n return module;\r\n});\r\n","define(['pubsub', 'ajaxUtility'],\n\n\tfunction (pubsub, ajaxUtility) {\n\t\t'use strict';\n\n\t\tfunction uiHasConnectionAdd(e, data) {\n\t\t\tvar config;\n\n\t\t\tconfig = {\n\t\t\t\t'method': 'POST',\n\t\t\t\t'url': '/Services/ContactService.svc/json/Save'\n\t\t\t};\n\n\t\t\tajaxUtility.publish2(e, data, config);\n\t\t}\n\n\t\tfunction uiNeedsConnectionBrowse(e, data) {\r\n\t\t\tvar config;\n\t\t\tconfig = {\r\n\t\t\t\t'method': 'GET',\n\t\t\t\t'url': '/Services/api/contacts/relationships'\r\n\t\t\t};\n\n\t\t\tajaxUtility.publish2(e, data, config);\r\n\t\t}\n\n\t\tpubsub.subscribe('uiHas.ConnectionAdd', uiHasConnectionAdd);\n\t\tpubsub.subscribe('uiNeeds.ConnectionBrowse', uiNeedsConnectionBrowse);\n\t}\n\n);","define(['jquery', 'pubsub', 'ajaxUtility', 'mixpanelControl'],\r\n\r\n\tfunction ($, pubsub, ajaxUtility) {\r\n\t\t'use strict';\r\n\r\n\r\n\t\tfunction updateUserLastActiveDate(e, data) {\r\n\t\t\tvar config;\r\n\r\n\t\t\tconfig = {\r\n\t\t\t\t'method': 'GET',\r\n\t\t\t\t'url': '/services/api/contentreach/ping'\r\n\t\t\t};\r\n\r\n\t\t\tajaxUtility.publish2(e, data, config);\r\n\t\t}\r\n\r\n\t\tpubsub.subscribe('uiHas.UserLastActiveDate', updateUserLastActiveDate);\r\n\t}\r\n\r\n);","define(['jquery', 'pubsub', 'ajaxUtility', 'mixpanelControl'],\r\n\r\n\tfunction ($, pubsub, ajaxUtility) {\r\n\t\t'use strict';\r\n\r\n\r\n\t\tfunction joinGroup(e, data) {\r\n\t\t\tvar config;\r\n\r\n\t\t\tconfig = {\r\n\t\t\t\t'method': 'POST',\r\n\t\t\t\t'url': '/Services/Api/UserGroup'\r\n\t\t\t};\r\n\r\n\t\t\tajaxUtility.publish2(e, data, config);\r\n\t\t}\r\n\r\n\t\tfunction getAllGroups(e, data) {\r\n\t\t\tvar config;\r\n\r\n\t\t\tconfig = {\r\n\t\t\t\t'method': 'GET',\r\n\t\t\t\t'url': '/Services/Api/UserGroup/GetAll'\r\n\t\t\t};\r\n\r\n\t\t\tajaxUtility.publish2(e, data, config);\r\n\t\t}\r\n\r\n\t\tpubsub.subscribe('uiHas.groupJoin', joinGroup);\r\n\t\tpubsub.subscribe('uiNeeds.GetUserGroupsAll', getAllGroups);\r\n\t}\r\n\r\n);","define(['pubsub', 'ajaxUtility'],\r\n\r\n\tfunction (pubsub, ajaxUtility) {\r\n\t\t'use strict';\r\n\r\n\t\tfunction uiNeedsMissedReblasts(e, data) {\r\n\t\t\tvar config;\r\n\t\t\tconfig = {\r\n\t\t\t\t'method': 'GET',\r\n\t\t\t\t'url': '/Services/Api/MissedReblasts',\r\n\t\t\t};\r\n\r\n\t\t\tajaxUtility.publish2(e, data, config);\r\n\t\t}\r\n\r\n\t\tpubsub.subscribe('uiNeeds.MissedReblastsBrowse', uiNeedsMissedReblasts);\r\n\r\n\t}\r\n\r\n);","define(['pubsub', 'ajaxUtility', 'generalUtilities'],\n\n\tfunction notificationService(pubsub, ajaxUtility, generalUtilities) {\n\n\t\tfunction uiNeedsNotificationBrowse(e, data) {\r\n\t\t\tvar config;\n\n\t\t\tconfig = {\r\n\t\t\t\t'method': 'GET',\n\t\t\t\t'url': '/Services/MainService.svc/json/GetNotificationsForUser'\r\n\t\t\t};\n\n\t\t\tajaxUtility.publish2(e, data, config);\r\n\t\t}\n\n\n\t\tfunction uiNeedsNotificationBrowse2(e, data) {\r\n\t\t\tvar config;\n\n\t\t\tconfig = {\r\n\t\t\t\t'method': 'GET',\n\t\t\t\t'url': '/Services/api/notifications'\r\n\t\t\t};\n\n\t\t\tajaxUtility.publish2(e, data, config);\r\n\t\t}\n\n\t\tfunction uiHasNotificationDelete(e, data) {\r\n\t\t\tvar config;\n\n\t\t\tconfig = {\r\n\t\t\t\t'method': 'POST',\n\t\t\t\t'url': '/Services/MainService.svc/json/HideNotificationForUser'\r\n\t\t\t};\n\n\t\t\tajaxUtility.publish2(e, data, config);\n\n\t\t}\n\n\t\tfunction uiHasNotificationVisit(e, data) {\r\n\t\t\tvar config;\n\n\t\t\tconfig = {\r\n\t\t\t\t'method': 'POST',\n\t\t\t\t'url': '/Services/api/notifications/visit'\r\n\t\t\t};\n\n\t\t\tajaxUtility.publish2(e, data, config);\n\n\t\t}\n\n\t\tfunction uiNeedsNotificationUnseen(e, data) {\r\n\t\t\tvar config;\n\n\t\t\tconfig = {\r\n\t\t\t\t'method': 'GET',\n\t\t\t\t'url': '/Services/api/notifications/unseen'\r\n\t\t\t};\n\n\t\t\tajaxUtility.publish2(e, data, config);\n\n\t\t}\n\n\t\tfunction uiHasNotificationWebForm(e, data) {\r\n\t\t\tvar config, reason;\n\t\t\t\n\t\t\tconfig = {\r\n\t\t\t\t'method': 'POST',\n\t\t\t\t'url': '/Services/api/notifications/webformcomplete?type=1'\r\n\t\t\t};\n\t\t\treason = generalUtilities.prop(data, 'request.reason');\n\n\t\t\tif (reason === 'instantref_success') {\n\t\t\t\tconfig.url = '/Services/api/notifications/webformcomplete?type=2';\n\t\t\t}\n\t\t\telse if (reason === 'instantref_cancel') {\n\t\t\t\tconfig.url = '/Services/api/notifications/webformcomplete?type=3';\n\t\t\t}\n\n\n\t\t\tajaxUtility.publish2(e, data, config);\n\t\t}\n\n\t\tfunction uiHasNotificationPhoneView(e, data) {\r\n\t\t\tvar config;\n\n\t\t\tconfig = {\r\n\t\t\t\t'method': 'POST',\n\t\t\t\t'url': '/Services/api/notifications/phoneview'\r\n\t\t\t};\n\n\t\t\tajaxUtility.publish2(e, data, config);\n\n\t\t}\n\n\t\tpubsub.subscribe('uiNeeds.NotificationBrowse', uiNeedsNotificationBrowse);\n\t\tpubsub.subscribe('uiNeeds.NotificationBrowse2', uiNeedsNotificationBrowse2);\n\t\tpubsub.subscribe('uiHas.NotificationDelete', uiHasNotificationDelete);\r\n\t\tpubsub.subscribe('uiHas.NotificationVisit', uiHasNotificationVisit);\r\n\t\tpubsub.subscribe('uiHas.NotificationWebForm', uiHasNotificationWebForm);\r\n\t\tpubsub.subscribe('uiNeeds.NotificationUnseen', uiNeedsNotificationUnseen);\n\t\tpubsub.subscribe('uiNeeds.NotificationPhoneView', uiHasNotificationPhoneView);\n\t}\n\n);\n","define(['jquery', 'pubsub', 'ajaxUtility', 'mixpanelControl'],\r\n\r\n\tfunction ($, pubsub, ajaxUtility) {\r\n\t\t'use strict';\r\n\r\n\r\n\t\tfunction sendIM(e, data) {\r\n\t\t\tvar config;\r\n\t\t\tconfig = {\r\n\t\t\t\t'method': 'POST',\r\n\t\t\t\t'url': '/Services/api/InstantMessage/Send'\r\n\t\t\t};\r\n\r\n\t\t\tajaxUtility.publish2(e, data, config);\r\n\t\t}\r\n\r\n\t\tfunction getConversations(e, data) {\r\n\t\t\tvar config;\r\n\r\n\t\t\tconfig = {\r\n\t\t\t\t'method': 'GET',\r\n\t\t\t\t'url': '/Services/api/InstantMessage/Conversations'\r\n\t\t\t};\r\n\t\t\tajaxUtility.publish2(e, data, config);\r\n\r\n\t\t}\r\n\r\n\t\tfunction markConversationRead(e, data) {\r\n\t\t\tvar config;\r\n\t\t\tconfig = {\r\n\t\t\t\t'method': 'POST',\r\n\t\t\t\t'url': '/services/api/instantMessage/markconversationread?conversationId=' + data.request.conversationId\r\n\t\t\t};\r\n\t\t\tajaxUtility.publish2(e, data, config);\r\n\t\t}\r\n\r\n\t\tfunction getMessages(e, data) {\r\n\r\n\t\t\tvar config;\r\n\r\n\t\t\tconfig = {\r\n\t\t\t\t'method': 'GET',\r\n\t\t\t\t'url': '/Services/api/InstantMessage/Conversation'\r\n\t\t\t};\r\n\t\t\tajaxUtility.publish2(e, data, config);\r\n\t\t}\r\n\r\n\t\tpubsub.subscribe('uiHas.imAdd', sendIM);\r\n\t\tpubsub.subscribe('uiNeeds.ConversationsBrowse', getConversations);\r\n\t\tpubsub.subscribe('uiNeeds.imBrowse', getMessages);\r\n\t\tpubsub.subscribe('uiHas.markConversationRead', markConversationRead);\r\n\r\n\t}\r\n\r\n);","define(['pubsub', 'ajaxUtility'],\r\n\r\n\tfunction (pubsub, ajaxUtility) {\r\n\t\t'use strict';\r\n\r\n\t\tfunction browse(e, data) {\r\n\t\t\tvar config;\r\n\t\t\tconfig = {\r\n\t\t\t\t'method': 'GET',\r\n\t\t\t\t'url': '/Services/Api/usersearch/Search',\r\n\t\t\t};\r\n\r\n\t\t\tajaxUtility.publish2(e, data, config);\r\n\t\t}\r\n\r\n\t\tpubsub.subscribe('uiNeedsUserSearchBrowse', browse);\r\n\r\n\t}\r\n\r\n);","define(['Handlebars', 'text!connectButtonPartial'],\n\r\n\tfunction (Handlebars, connectButtonPartial) {\r\n\t\t'use strict';\n\n\t\t//Handlebars.registerPartial('connectButtonPartial', connectButtonPartial);\n\n\t\treturn Handlebars.compile(connectButtonPartial);\r\n\t}\r\n);","define(['Handlebars', 'text!genericMessageDrawerTemplate'],\r\n\r\n\tfunction (Handlebars, genericMessageDrawerTemplate) {\r\n\t\t'use strict';\r\n\r\n\t\treturn Handlebars.compile(genericMessageDrawerTemplate);\r\n\t}\r\n\r\n);","define(['Handlebars', 'text!locationConfirmTemplate'],\r\n\r\n\tfunction (Handlebars, locationConfirmTemplate) {\r\n\t\t'use strict';\r\n\r\n\t\treturn Handlebars.compile(locationConfirmTemplate);\r\n\t}\r\n\r\n);","define(['Handlebars', 'text!notificationToolbarListTemplate'],\r\n\r\n\tfunction (Handlebars, notificationToolbarListTemplate) {\r\n\t\t'use strict';\r\n\r\n\t\tvar h = Handlebars.compile(notificationToolbarListTemplate);\r\n\r\n\t\treturn h; \r\n\t}\r\n\r\n);","define(['Handlebars', 'text!sendMessageTemplate'],\r\n\r\n\tfunction (Handlebars, sendMessageTemplate) {\r\n\t\t'use strict';\r\n\r\n\t\treturn Handlebars.compile(sendMessageTemplate);\r\n\t}\r\n\r\n);\r\n","/**\r\n * @fileOverview re_userlastactivedate_control.js\r\n *\r\n * @author May Montazer\r\n *\r\n * @events\r\n * Subscribe\r\n * 'uiHas.UserLastActiveDate\r\n */\r\n\r\ndefine(['jquery', 'pubsub', 'generalUtilities', 'updateUserLastActiveDateService'], function(\r\n $,\r\n pubsub,\r\n generalUtilities\r\n) {\r\n 'use strict';\r\n\r\n var module;\r\n\r\n module = {};\r\n module.private = {};\r\n module.properties = {};\r\n\r\n //#endregion\r\n\r\n //#region utilities\r\n\r\n /**\r\n * set the UserLastActiveTime session storage .\r\n * @param {object} data The success status data.\r\n */\r\n module.private.handleUserLastActiveDateSuccess = function() {\r\n if (window.Modernizr && window.Modernizr.sessionstorage) {\r\n sessionStorage.setItem('UserLastActiveTime', new Date().getTime());\r\n }\r\n };\r\n\r\n /**\r\n * Handle error\r\n * @param {object} e The pubsub event.\r\n * @param {object} data The UserrrLastActiveDate data.\r\n */\r\n module.private.handleUserLastActiveDateError = function(e, data) {\r\n pubsub.publish('loggly.error', {\r\n message: generalUtilities.stringFormat('User Last Active Date update is failed {0}', JSON.stringify(data))\r\n });\r\n };\r\n\r\n /**\r\n * handle data from contentreach service\r\n * @param {object} data The UserLastActiveTime data.\r\n */\r\n module.private.handleUserLastActiveDate = function(e, data) {\r\n if (generalUtilities.prop(data, 'response.status') && data.response.status === 200) {\r\n module.private.handleUserLastActiveDateSuccess();\r\n } else {\r\n module.private.handleUserLastActiveDateError(e, data);\r\n }\r\n };\r\n\r\n /**\r\n * update the user last active date.\r\n */\r\n module.private.updateUserLastActiveDate = function() {\r\n var fiveMinCheck;\r\n\r\n if (window.Modernizr && window.Modernizr.sessionstorage && sessionStorage.getItem('UserLastActiveTime')) {\r\n fiveMinCheck = new Date().getTime() - sessionStorage.getItem('UserLastActiveTime');\r\n\r\n // checking 5 min is over\r\n if (fiveMinCheck > 300000) {\r\n pubsub.publish('uiHas.UserLastActiveDate', {});\r\n }\r\n } else {\r\n pubsub.publish('uiHas.UserLastActiveDate', {});\r\n }\r\n };\r\n\r\n //#endregion\r\n\r\n /**\r\n * Initiates the module, creates a guid and binds dom events.\r\n * @param {object} [e] The pubsub event, optional depending module is self init or by pubsub event.\r\n * @param {object} [data] Data passed in by pubsub event, optional depending module is self init or by pubsub event.\r\n */\r\n module.private.init = function() {\r\n if (generalUtilities.prop(window, 'RESAAS.User2.UserId')) {\r\n module.private.updateUserLastActiveDate();\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n //#region external event bindings\r\n\r\n module.private.init();\r\n\r\n pubsub.subscribe('data.UserLastActiveDate', module.private.handleUserLastActiveDate);\r\n\r\n //#endregion\r\n\r\n //expose API\r\n return module;\r\n});\r\n","define(['Handlebars', 'text!userSearchGridTemplate', 'text!userSearchGridInternalPartial', 'text!userSearchGridExternalPartial',\n\t'text!userSearchGridGenericPartial', 'text!connectButtonPartial', 'text!sendMessageButtonPartial', 'text!userSearchGridNoResultsPartial', 'text!sendReferralButtonPartial', 'text!userSearchfeaturedpremiumPartial'],\n\r\n\tfunction (Handlebars, userSearchGridTemplate, userSearchGridInternalPartial, userSearchGridExternalPartial,\r\n\t\tuserSearchGridGenericPartial, connectButtonPartial, sendMessageButtonPartial, userSearchGridNoResultsPartial, sendReferralButtonPartial, userSearchfeaturedpremiumPartial) {\r\n\t\t'use strict';\n\t\tHandlebars.registerPartial('userSearchGridInternalPartial', userSearchGridInternalPartial);\n\t\tHandlebars.registerPartial('userSearchGridExternalPartial', userSearchGridExternalPartial);\n\t\tHandlebars.registerPartial('userSearchGridGenericPartial', userSearchGridGenericPartial);\n\t\tHandlebars.registerPartial('connectButtonPartial', connectButtonPartial);\n\t\tHandlebars.registerPartial('sendMessageButtonPartial', sendMessageButtonPartial);\n\t\tHandlebars.registerPartial('userSearchGridNoResultsPartial', userSearchGridNoResultsPartial);\n\t\tHandlebars.registerPartial('sendReferralButtonPartial', sendReferralButtonPartial);\n\t\tHandlebars.registerPartial('userSearchfeaturedpremiumPartial', userSearchfeaturedpremiumPartial);\n\n\t\treturn Handlebars.compile(userSearchGridTemplate);\r\n\t});\r\n","define([\r\n 'jquery',\r\n 'pubsub',\r\n 'generalUtilities',\r\n 'moduleUtilities',\r\n 'moment',\r\n 'userSearchGridCompiled',\r\n 'connectionUtilities',\r\n 'agentsSearchUtilities',\r\n 'languageSpokenData',\r\n 'messageControl2',\r\n 'trackPhoneNumberUtilities'\r\n], function userSearchGridControl(\r\n $,\r\n pubsub,\r\n generalUtilities,\r\n moduleUtilities,\r\n moment,\r\n userSearchGridCompiled,\r\n connectionUtilities,\r\n agentsSearchUtilities,\r\n languageSpokenGeneralData\r\n) {\r\n // set up\r\n // -------------------------------------------\r\n\r\n 'use strict';\r\n\r\n var module, selectors, elements, values, userSearchRendered, languagesList;\r\n\r\n module = {};\r\n module.private = {};\r\n module.properties = {};\r\n\r\n selectors = {};\r\n selectors.searchPage = '.js-usersearch-page';\r\n selectors.gridWrapper = '.js-usersearch-grid';\r\n selectors.expandPremiumDetailsButton = '.js-agenttile-expander';\r\n selectors.collapsePremiumDetailsButton = '.js-agenttile-collapse';\r\n selectors.agentTileMinimal = '.re-agenttile-minimal.re-agenttile-minimal-clickable';\r\n\r\n elements = {};\r\n\r\n values = {};\r\n\r\n userSearchRendered = false;\r\n\r\n languagesList = languageSpokenGeneralData.browse();\r\n\r\n // utilities\r\n // -------------------------------------------\r\n\r\n module.private.initElements = function initElements() {\r\n elements.body = $('body');\r\n elements.searchPage = $(selectors.searchPage);\r\n elements.gridWrapper = $(selectors.gridWrapper);\r\n return elements;\r\n };\r\n\r\n module.private.findLanguageByCode = function findLanguageByCode(code) {\r\n var iter;\r\n for (iter = 0; iter < languagesList.length; ++iter) {\r\n if (languagesList[iter].value.indexOf(code) !== -1) {\r\n return languagesList[iter].label;\r\n }\r\n }\r\n return code;\r\n };\r\n\r\n module.private.massageData = function massageData(data) {\r\n var i, l, it, resultList;\r\n var countryCode = generalUtilities.prop(RESAAS, 'User2.CountryId');\r\n var isAuthenticated = generalUtilities.prop(RESAAS, 'User2.UserId');\r\n var isCommercialExperience = generalUtilities.prop(RESAAS, 'Environment.Experience') === 'commercial';\r\n\r\n resultList = [];\r\n resultList.push.apply(resultList, data);\r\n\r\n for (i = 0, l = resultList.length; i < l; i++) {\r\n resultList[i].prettyCreationDate = moment(resultList[i].CreationDate).format('Y');\r\n resultList[i].connectionInfo = connectionUtilities.getConnectionInfo(resultList[i].UserId);\r\n\r\n if (resultList[i].Domain) {\r\n resultList[i].userListingsLink = resultList[i].Domain.replace('/profile', '/listings');\r\n resultList[i].sendReferralLink = resultList[i].Domain.replace('/profile', '/referral');\r\n resultList[i].userMentioned = generalUtilities.stringFormat('@{0}', resultList[i].Domain.split('/')[0]);\r\n }\r\n\r\n resultList[i].viewerAuthenticated = generalUtilities.prop(RESAAS, 'User2.UserId');\r\n\r\n resultList[i].isCommercial = isCommercialExperience;\r\n resultList[i].isFeatured = resultList[i].isCommercial || resultList[i].IsPremiumPlus;\r\n\r\n if (resultList[i].Phone) {\r\n resultList[i].phoneNumber = resultList[i].Phone;\r\n } else if (resultList[i].OfficePhone) {\r\n resultList[i].phoneNumber = resultList[i].OfficePhone;\r\n }\r\n\r\n resultList[i].showAddress =\r\n resultList[i].City || resultList[i].Province || resultList[i].Address || resultList[i].Country;\r\n\r\n // only show country if different from the users or the user is anonymous\r\n resultList[i].showCountry =\r\n resultList[i].CountryCode && (!isAuthenticated || resultList[i].CountryCode != countryCode);\r\n\r\n resultList[i].showCountryComma =\r\n resultList[i].showCountry && (resultList[i].City || resultList[i].Province || resultList[i].Address);\r\n\r\n resultList[i].FirmOrOffice = resultList[i].Firm || resultList[i].OfficeName;\r\n\r\n // only show counts if they are greater than 0\r\n if (resultList[i].ListingActiveCount) {\r\n resultList[i].activeListingText = generalUtilities.stringFormat(\r\n RESAAS.Localization.UserSearch.AGENT_TILE_ACTIVE_LISTINGS,\r\n resultList[i].ListingActiveCount\r\n );\r\n }\r\n if (resultList[i].ListingSoldCount) {\r\n resultList[i].soldListingText = generalUtilities.stringFormat(\r\n RESAAS.Localization.UserSearch.AGENT_TILE_SOLD_LISTINGS,\r\n resultList[i].ListingSoldCount\r\n );\r\n }\r\n if (resultList[i].ListingComingSoonCount) {\r\n resultList[i].ListingComingSoonCountText = generalUtilities.stringFormat(\r\n RESAAS.Localization.UserSearch.AGENT_TILE_PREMARKET_LISTINGS,\r\n resultList[i].ListingComingSoonCount\r\n );\r\n }\r\n\r\n if (\r\n resultList[i].ListingActiveCount ||\r\n resultList[i].ListingSoldCount ||\r\n resultList[i].ListingComingSoonCount\r\n ) {\r\n resultList[i].hasStats = true;\r\n }\r\n\r\n if (resultList[i].AwardedReferrals) {\r\n resultList[i].AwardedReferralsStr = resultList[i].AwardedReferrals > 1 ? generalUtilities.stringFormat(\r\n RESAAS.Localization.UserSearch.USER_SEARCH_AWARDED_REFERRALS,\r\n resultList[i].AwardedReferrals\r\n ) : generalUtilities.stringFormat(\r\n RESAAS.Localization.UserSearch.USER_SEARCH_AWARDED_REFERRAL,\r\n resultList[i].AwardedReferrals\r\n );\r\n }\r\n\r\n if (resultList[i].NetworkSize) {\r\n resultList[i].NetworkSizeStr = resultList[i].NetworkSize > 1 ? generalUtilities.stringFormat(\r\n RESAAS.Localization.UserSearch.USER_SEARCH_NETWORK_SIZES,\r\n resultList[i].NetworkSize\r\n ) : generalUtilities.stringFormat(\r\n RESAAS.Localization.UserSearch.USER_SEARCH_NETWORK_SIZE,\r\n resultList[i].NetworkSize\r\n );\r\n }\r\n\r\n // copy enhanced profile up a level\r\n if (resultList[i].EnhancedProfile) {\r\n resultList[i].LicenseNumber = resultList[i].EnhancedProfile.LicenseNumber;\r\n resultList[i].StartedIn = resultList[i].EnhancedProfile.StartedIn;\r\n if (resultList[i].EnhancedProfile.StartedIn) {\r\n resultList[i].YearsExp =\r\n new Date().getFullYear() - parseInt(resultList[i].EnhancedProfile.StartedIn, 10);\r\n if (resultList[i].YearsExp > 1) {\r\n resultList[i].YearsExpStr = generalUtilities.stringFormat(\r\n RESAAS.Localization.UserSearch.USER_SEARCH_YEARS_EXP,\r\n resultList[i].YearsExp\r\n );\r\n } else {\r\n resultList[i].YearsExpStr = \"1 Year of Experience\";\r\n }\r\n }\r\n resultList[i].AreasOfExpertise = resultList[i].EnhancedProfile.AreasOfExpertise;\r\n resultList[i].Awards = resultList[i].EnhancedProfile.Awards;\r\n resultList[i].Credentials = resultList[i].EnhancedProfile.Credentials;\r\n resultList[i].Languages = resultList[i].EnhancedProfile.Languages;\r\n resultList[i].FacebookUrl = resultList[i].EnhancedProfile.FacebookUrl;\r\n resultList[i].LinkedInUrl = resultList[i].EnhancedProfile.LinkedInUrl;\r\n resultList[i].TwitterUrl = resultList[i].EnhancedProfile.TwitterUrl;\r\n resultList[i].InstagramUrl = resultList[i].EnhancedProfile.InstagramUrl;\r\n resultList[i].LogoUrl = resultList[i].EnhancedProfile.LogoUrl;\r\n }\r\n\r\n // transform languages list to english\r\n if (resultList[i].Languages) {\r\n for (it = 0; it < resultList[i].Languages.length; ++it) {\r\n resultList[i].Languages[it] = module.private.findLanguageByCode(resultList[i].Languages[it]);\r\n }\r\n }\r\n\r\n // professional agents can only send direct referrals\r\n resultList[i].showReferralButton = !generalUtilities.prop(RESAAS, 'User2.IsPendingProfessional');\r\n }\r\n\r\n \r\n\r\n return resultList;\r\n };\r\n\r\n module.private.injectNonUserItems = function injectNonUserItems(data, user, env) {\r\n var isCommercialExperience = generalUtilities.prop(env, 'Experience') === 'commercial';\r\n var isRemax = generalUtilities.prop(env, 'Experience') === 'remax';\r\n var isPremiumPlus = generalUtilities.prop(user, 'PremiumPlus');\r\n var isAuthenticated = generalUtilities.prop(user, 'UserId');\r\n\r\n var firstNotFeatured, firstFeatured;\r\n var featuredTitle, agentsTitle, upsellCTA;\r\n\r\n var resultList = [];\r\n resultList.push.apply(resultList, data);\r\n\r\n if (resultList.length && !isCommercialExperience && !isRemax) {\r\n upsellCTA = { upsellCTA: true };\r\n featuredTitle = { featuredTitle: true };\r\n agentsTitle = { agentTitle: true };\r\n\r\n // add featured title\r\n firstFeatured = resultList.findIndex(function findIndexTest(i) {\r\n return i.isFeatured;\r\n });\r\n\r\n if (firstFeatured >= 0) {\r\n resultList.unshift(featuredTitle);\r\n }\r\n\r\n // add agents title\r\n firstNotFeatured = resultList.findIndex(function findIndexTest(i) {\r\n return i.isFeatured === false;\r\n });\r\n\r\n if (firstNotFeatured >= 0) {\r\n resultList.splice(firstNotFeatured, 0, agentsTitle);\r\n }\r\n\r\n // add upsellCTA\r\n firstFeatured = resultList.findIndex(function findIndexTest(i) {\r\n return i.isFeatured;\r\n });\r\n\r\n if (isAuthenticated && !isPremiumPlus) {\r\n upsellCTA.featuredAgentName = generalUtilities.prop(resultList[firstFeatured], 'Firstname');\r\n upsellCTA.Firstname = generalUtilities.prop(user, 'FirstName');\r\n upsellCTA.Lastname = generalUtilities.prop(user, 'LastName');\r\n upsellCTA.City = generalUtilities.prop(user, 'City');\r\n upsellCTA.Province = generalUtilities.prop(user, 'State');\r\n // cannot get OfficeName from profile in User2 yet, needs a BE ticket\r\n // upsellCTA.OFficeName generalUtilities.prop('RESAAS', 'User2.PorfileOfficeName')\r\n upsellCTA.Firm = generalUtilities.prop(user, 'FirmName');\r\n upsellCTA.FirmOrOffice = !!upsellCTA.Firm; // || upsellCTA.OfficeName;\r\n upsellCTA.showAddress = !!upsellCTA.City || !!upsellCTA.Province;\r\n upsellCTA.noClick = true;\r\n resultList.splice(firstFeatured + 1, 0, upsellCTA);\r\n }\r\n }\r\n\r\n return resultList;\r\n };\r\n\r\n module.private.setupStartingTile = function setupStartingTile(arr) {\r\n var addImageTile = { starterTile: true };\r\n arr.unshift(addImageTile);\r\n };\r\n\r\n module.private.chooseTemplate = function chooseTemplate(data) {\r\n var template;\r\n\r\n template = {\r\n userSearchGridExternal: false,\r\n userSearchGridInternal: false,\r\n userSearchGridGeneric: false\r\n };\r\n\r\n if (generalUtilities.prop(RESAAS, 'User2.IsProfessional')) {\r\n if (\r\n (data.request.FirmId && data.request.ExcludeFirmId) === true ||\r\n (data.request.GroupId && data.request.ExcludeGroupId)\r\n ) {\r\n template.userSearchGridExternal = true;\r\n } else if (data.request.FirmId || data.request.GroupId) {\r\n template.userSearchGridInternal = true;\r\n } else {\r\n template.userSearchGridGeneric = true;\r\n }\r\n } else {\r\n template.userSearchGridGeneric = true;\r\n }\r\n\r\n return template;\r\n };\r\n\r\n // event handlers\r\n // -------------------------------------------\r\n module.private.handleConnectionPromise = function handleConnectionPromise() {\r\n connectionUtilities.getConnectionPromise().then(function getConnectionPromiseThen() {\r\n if (userSearchRendered) {\r\n module.private.handleUserSearchBrowseSuccess(values.userSearch);\r\n }\r\n });\r\n };\r\n module.private.handleUserSearchBrowseSuccess = function handleUserSearchBrowseSuccess(data) {\r\n var newData, action, remainingUsers;\r\n\r\n newData = Object.assign({}, data);\r\n action = newData.intent === 'search' ? 'html' : 'append';\r\n remainingUsers = agentsSearchUtilities.private.rowItemRemainder(newData);\r\n\r\n if (remainingUsers > 0) {\r\n newData.response.Data.splice(newData.response.Data.length - remainingUsers, remainingUsers);\r\n }\r\n\r\n newData.template = module.private.chooseTemplate(newData);\r\n\r\n newData.response.Data = module.private.massageData(newData.response.Data); \r\n\r\n if (newData.template.userSearchGridGeneric && action === 'html') {\r\n newData.response.Data = module.private.injectNonUserItems(newData.response.Data, generalUtilities.prop(window, 'RESAAS.User2'), generalUtilities.prop(window, 'RESAAS.Environment'));\r\n }\r\n\r\n values.userSearch = newData;\r\n\r\n if (newData.template.userSearchGridInternal) {\r\n if (data.intent === 'search' && data.padding === 1) {\r\n module.private.setupStartingTile(newData.response.Data);\r\n }\r\n }\r\n\r\n newData.noConnections = newData.response.Count === 0 && data.request.RelationshipSearch === '2';\r\n newData.FirmAgent = generalUtilities.prop(RESAAS, 'User2.FirmName')\r\n ? generalUtilities.stringFormat(\r\n RESAAS.Localization.UserSearch.STARTING_BUILDING_NETWORK_FIRM_AGENTS,\r\n generalUtilities.prop(RESAAS, 'User2.FirmName')\r\n )\r\n : false;\r\n newData.noAgents = newData.response.Count === 0 && data.request.RelationshipSearch !== '2';\r\n\r\n elements.gridWrapper[action](userSearchGridCompiled(newData));\r\n userSearchRendered = true;\r\n };\r\n\r\n module.private.handleUserSearchBrowseError = function handleUserSearchBrowseError(data) {\r\n elements.gridWrapper.children().remove();\r\n pubsub.publish('uiAction.MessageAdd', {\r\n message: RESAAS.Localization.UserSearch.USER_SEARCH_ERROR_RESULTS,\r\n type: 'error'\r\n });\r\n pubsub.publish('loggly.error', { message: 'User search failed: ' + JSON.stringify(data) });\r\n };\r\n\r\n module.private.handleDataUserSearchBrowse = function handleDataUserSearchBrowse(e, data) {\r\n if (data && data.request && !data.request.SkipCount) {\r\n agentsSearchUtilities.trackInMixpanel(data);\r\n }\r\n\r\n if (moduleUtilities.isOwnEvent(data, module.properties)) {\r\n elements.gridWrapper.removeClass('re-usersearch-submitting');\r\n if (data && data.response && data.response.Success) {\r\n module.private.handleUserSearchBrowseSuccess(data);\r\n // error\r\n } else {\r\n module.private.handleUserSearchBrowseError(data);\r\n }\r\n }\r\n };\r\n\r\n module.private.handleUiNeedsUserSearchBrowse = function handleUiNeedsUserSearchBrowse(e, data) {\r\n if (moduleUtilities.isOwnEvent(data, module.properties)) {\r\n elements.gridWrapper.addClass('re-usersearch-submitting');\r\n }\r\n };\r\n\r\n module.private.handleExpandPremiumDetails = function handleExpandPremiumDetails(e) {\r\n $(e.currentTarget.parentElement).removeClass('collapse');\r\n $(e.currentTarget.parentElement).addClass('expand');\r\n e.currentTarget.nextElementSibling.style.maxHeight = generalUtilities.stringFormat(\r\n '{0}px',\r\n e.currentTarget.nextElementSibling.scrollHeight + 100\r\n );\r\n\r\n setTimeout(function wait() {\r\n if (document.body.contains(e.currentTarget)) {\r\n e.currentTarget.nextElementSibling.style = '';\r\n }\r\n }, 1000);\r\n };\r\n\r\n module.private.handleCollapsePremiumDetails = function handleExpandCollapseDetails(e) {\r\n var tertiaryContent = e.currentTarget.parentElement.parentElement.parentElement.parentElement;\r\n $(tertiaryContent.parentElement).addClass('collapse');\r\n $(tertiaryContent.parentElement).removeClass('expand');\r\n tertiaryContent.style.maxHeight = generalUtilities.stringFormat('{0}px', tertiaryContent.scrollHeight + 100);\r\n setTimeout(function wait() {\r\n if (document.body.contains(e.currentTarget)) {\r\n tertiaryContent.style.maxHeight = '0px';\r\n }\r\n }, 100);\r\n };\r\n\r\n module.private.handleAgentTileMinimalClick = function handleAgentTileMinimalClick(e) {\r\n e.preventDefault();\r\n generalUtilities.redirect($(e.currentTarget).find('.re-agenttile-profilelink').attr('href'));\r\n };\r\n\r\n module.private.init = function init(e, data) {\r\n // set values\r\n module.properties.guid = data && data.guid ? data.guid : generalUtilities.uuid();\r\n\r\n generalUtilities.configureMoment(moment);\r\n\r\n // set cachable elements\r\n module.private.initElements();\r\n module.private.handleConnectionPromise();\r\n\r\n // click handlers\r\n elements.body.on('click', selectors.expandPremiumDetailsButton, module.private.handleExpandPremiumDetails);\r\n elements.body.on('click', selectors.collapsePremiumDetailsButton, module.private.handleCollapsePremiumDetails);\r\n elements.body.on('click', selectors.agentTileMinimal, module.private.handleAgentTileMinimalClick);\r\n };\r\n\r\n // external event bindings\r\n //-------------------------------------------\r\n\r\n pubsub.subscribe('uiWantsUserSearchGridControlInit', module.private.init);\r\n pubsub.subscribe('uiNeedsUserSearchBrowse', module.private.handleUiNeedsUserSearchBrowse);\r\n pubsub.subscribe('dataUserSearchBrowse', module.private.handleDataUserSearchBrowse);\r\n\r\n // expose API\r\n //-------------------------------------------\r\n return module;\r\n});\r\n","define([\n\t'jquery', 'pubsub', 'generalUtilities', 'moduleUtilities'],\n\nfunction ($, pubsub, generalUtilities, moduleUtilities) {\n\t'use strict';\n\n\t//set up\n\t//-------------------------------------------\n\n\tvar module, selectors, elements, values, $progressContainer;\n\n\tmodule = {};\n\tmodule.private = {};\n\tmodule.properties = {};\n\n\tselectors = {};\n\tselectors.countWrapper = '.js-agent-count-wrapper';\n\tselectors.countAgents = '.js-agent-count';\n\n\telements = {};\n\n\tvalues = {};\n\n\t//utilities\n\t//-------------------------------------------\n\n\tmodule.private.getAgentCountData = function (data) {\r\n\t\tvar displayData, presentAgents, totalAgents, currentAgents;\n\n\t\ttotalAgents = data.response.Count;\n\n\t\tcurrentAgents = data.request.SkipCount || 0;\n\t\tcurrentAgents += data.response.Data.length;\n\n\t\tdisplayData = {\r\n\t\t\tpresentAgents: currentAgents,\n\t\t\ttotalAgents: totalAgents\r\n\t\t};\n\n\t\treturn displayData;\r\n\t};\n\n module.private.determineAgentMessage = function (countData) {\n var isCommercial = generalUtilities.prop(window, 'RESAAS.Environment.Experience') === 'commercial';\n\t\tif (window.location.pathname.indexOf('brokeros') > -1) {\r\n\t\t\treturn generalUtilities.stringFormat(RESAAS.Localization.UserSearch.USER_SEARCH_AGENT_COUNT, countData.presentAgents, countData.totalAgents);\r\n\t\t}\n\t\telse {\n if (countData.totalAgents === 1) {\r\n if (isCommercial) {\r\n return \"1 broker found matching your search criteria.\";\r\n } else {\r\n return RESAAS.Localization.UserSearch.USER_SEARCH_SUMMARY_RESULT_TEXT_SINGLE;\r\n }\r\n } else {\r\n if (isCommercial) {\r\n return generalUtilities.stringFormat(\"{0} brokers found matching your search criteria.\", countData.totalAgents);\r\n } else {\r\n return generalUtilities.stringFormat(RESAAS.Localization.UserSearch.USER_SEARCH_SUMMARY_RESULT_TEXT, countData.totalAgents);\r\n }\r\n\t\t\t}\r\n\t\t}\r\n\t}\n\n\tmodule.private.handleUserSearchBrowseSuccess = function (data) {\r\n\t\tvar countData, hasAgents, $countWrapper, $agentCount, $countAgents, isEmptySearch, request;\n\n\t\t$countWrapper = $(selectors.countWrapper);\n\t\t$countAgents = $(selectors.countAgents);\n\n\t\tcountData = module.private.getAgentCountData(data);\n\t\tisEmptySearch = true;\n\t\trequest = data.request;\n\n\t\tif (request._subjectName || request._locationName || request.Name || request.Keywords || request.YearsOfExperience || request.LanguagesSpoken ) {\r\n\t\t\tisEmptySearch = false;\r\n\t\t}\n\n\t\thasAgents = (countData.totalAgents !== 0);\n\n\t\tif (!hasAgents) {\r\n\t\t\t$countAgents.hide();\r\n\t\t} else {\r\n\t\t\t$countWrapper.html('
');\n\t\t\t$agentCount = $(selectors.countAgents);\n\t\t\tif (isEmptySearch) {\r\n\t\t\t\t$agentCount.text(\" \");\r\n\t\t\t} else {\r\n\t\t\t\t$agentCount.text(module.private.determineAgentMessage(countData));\r\n\t\t\t}\r\n\t\t}\r\n\t};\n\n\t//event handlers\n\t//-------------------------------------------\n\n\tmodule.private.handleDataUserSearchBrowse = function (e, data) {\r\n\t\tif (moduleUtilities.isOwnEvent(data, module.properties)) {\r\n\t\t\tif (generalUtilities.prop(data,'response.Success')) {\r\n\t\t\t\tmodule.private.handleUserSearchBrowseSuccess(data);\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\n\tmodule.private.init = function (e, data) {\n\t\t//set values\n\t\tmodule.properties.guid = (data && data.guid) ? data.guid : generalUtilities.uuid();\n\t}\n\n\t//external event bindings\n\t//-------------------------------------------\r\n\n\tpubsub.subscribe('uiAction.UserSearchResultSummaryControlInit', module.private.init);\n\tpubsub.subscribe('dataUserSearchBrowse', module.private.handleDataUserSearchBrowse);\n\n\t//expose API\n\t//-------------------------------------------\n\treturn module;\r\n}\n);\n","define([\r\n\t'pubsub', 'generalUtilities', 'stickySidebar'],\r\n\r\n\tfunction (pubsub, generalUtilities) {\r\n\t\t'use strict';\r\n\t\t/**\r\n\t\t* re_usersearch_scroll_control\r\n\t\t* @exports usersearchScrollControl\r\n\t\t* @author John Allan\r\n\t\t*/\r\n\t\t//#region set up\r\n\r\n\t\tvar module, selectors, elements, values;\r\n\r\n\t\tmodule = {};\r\n\t\t/** @module */\r\n\t\tmodule.private = {};\r\n\t\tmodule.properties = {};\r\n\r\n\t\tselectors = {\r\n\t\t\tanonymousNavigation: '.re-page-navigation-anonymous',\r\n\t\t\twrapper: '.re-page-content',\r\n\t\t\tcontent: '.re-usersearch-results',\r\n\t\t\tstickySidebar: '.re-usersearch-stickysidebar',\r\n\t\t\tstickySidebarInner: '.js-usersearch-stickysidebar-inner'\r\n\t\t};\r\n\r\n\t\telements = {};\r\n\t\tvalues = {};\r\n\r\n\t\t//#endregion\r\n\r\n\t\t//#region utilities\r\n\r\n\t\t/**\r\n\t\t* Sticks the sticky element.\r\n\t\t* @example\r\n\t\t* module.private.stick();\r\n\t\t*/\r\n\t\tmodule.private.stick = function () {\r\n\t\t\tif (values.sticky) {\r\n\t\t\t\tmodule.private.unStick();\r\n\t\t\t}\r\n\r\n\t\t\t//setup sticky nav\r\n\t\t\tvalues.sticky = new StickySidebar(selectors.stickySidebar, {\r\n\t\t\t\tcontainerSelector: selectors.wrapper,\r\n\t\t\t\tinnerWrapperSelector: selectors.stickySidebarInner,\r\n\t\t\t\ttopSpacing: values.topSpacing,\r\n\t\t\t\tbottomSpacing: values.bottomSpacing\r\n\t\t\t});\r\n\r\n\t\t\t//watch the nav and page for size changes\r\n\t\t\tvalues.ro.observe(elements.content);\r\n\t\t\tvalues.ro.observe(elements.stickySidebarInner);\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t* Updates the sticky element posiiton.\r\n\t\t* @example\r\n\t\t* module.private.update();\r\n\t\t*/\r\n\t\tmodule.private.update = function () {\r\n\t\t\tif (values.sticky) {\r\n\t\t\t\tvalues.sticky.updateSticky();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t* Unsticks the sticky element removing all styles and event bindings.\r\n\t\t* @example\r\n\t\t* module.private.unStick();\r\n\t\t*/\r\n\t\tmodule.private.unStick = function () {\r\n\t\t\tif (values.sticky) {\r\n\t\t\t\tvalues.sticky.destroy();\r\n\t\t\t\tdelete values.sticky;\r\n\t\t\t}\r\n\r\n\t\t\tvalues.ro.unobserve(elements.content);\r\n\t\t\tvalues.ro.unobserve(elements.stickySidebarInner);\r\n\t\t};\r\n\r\n\t\t//#endregion\r\n\r\n\t\t//#region pubsub event handlers\r\n\r\n\t\t/**\r\n\t\t* Handle uiAction.NavigationStateChanged setting up or tearing down the sticky.\r\n\t\t* @param {object} e The pubsub event.\r\n\t\t* @param {object} data Data object from service.\r\n\t\t*/\r\n\t\tmodule.private.handleUiActionNavigationStateChanged = function (e, data) {\r\n\t\t\tif (data.isCompact) {\r\n\t\t\t\tmodule.private.unStick();\r\n\t\t\t} else {\r\n\t\t\t\tmodule.private.stick();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t//#endregion\r\n\r\n\t\t/**\r\n\t\t* Initiates the module, creates a guid and binds dom events.\r\n\t\t* @param {object} [e] The pubsub event, optional depending module is self init or by pubsub event.\r\n\t\t* @param {object} [data] Data passed in by pubsub event, optional depending module is self init or by pubsub event.\r\n\t\t*/\r\n\t\tmodule.private.init = function (e, data) {\r\n\t\t\tvar navigationState, isAnonymous;\r\n\r\n\t\t\tif (!window.requestAnimationFrame || !Function.prototype.bind) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\t//module config\r\n\t\t\tmodule.properties.guid = (data && data.guid) ? data.guid : generalUtilities.uuid();\r\n\r\n\t\t\t//get current page state\r\n\t\t\telements.stickySidebar = document.querySelector(selectors.stickySidebar);\r\n\t\t\tnavigationState = generalUtilities.getNavigationState();\r\n\t\t\tisAnonymous = document.querySelector(selectors.anonymousNavigation);\r\n\r\n\t\t\tvalues.topSpacing = (isAnonymous) ? 20 : 70;\r\n\t\t\tvalues.bottomSpacing = 20;\r\n\r\n\t\t\t//if left navigation exists\r\n\t\t\tif (elements.stickySidebar) {\r\n\r\n\t\t\t\t//create resize observer\r\n\t\t\t\tvalues.ro = new ResizeObserver(function (entries, observer) {\r\n\t\t\t\t\tmodule.private.update();\r\n\t\t\t\t});\r\n\r\n\t\t\t\t//find DOM elements\r\n\t\t\t\telements.content = document.querySelector(selectors.content);\r\n\t\t\t\telements.stickySidebarInner = document.querySelector(selectors.stickySidebarInner);\r\n\r\n\t\t\t\t//listen for changes in navigationState.isCompact\r\n\t\t\t\tpubsub.subscribe('uiAction.NavigationStateChanged', module.private.handleUiActionNavigationStateChanged);\r\n\r\n\t\t\t\t//if we are not in compact mode\r\n\t\t\t\tif (!navigationState.isCompact) {\r\n\t\t\t\t\tmodule.private.stick();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t//#region external event bindings\r\n\r\n\t\tmodule.private.init();\r\n\r\n\t\t//#endregion\r\n\r\n\t\t//expose API\r\n\t\treturn module;\r\n\t}\r\n);\r\n","define([\r\n\t'pubsub', 'addressService'],\r\n\r\n\tfunction (pubsub) {\r\n\t\t'use strict';\r\n\r\n\t\tvar module = {};\r\n\t\tmodule.private = {};\r\n\r\n\t\tmodule.geoCodeAddress = function (address) {\r\n\t\t\tvar geoCodeDeferred;\r\n\r\n\t\t\t//create a promise for the google geocode request\r\n\t\t\tgeoCodeDeferred = Q.defer();\r\n\r\n\t\t\t//request the geocode\r\n\t\t\tpubsub.publish('uiWantsGeoCodeAddress', {\r\n\t\t\t\t'address': address,\r\n\t\t\t\t'deferred': geoCodeDeferred\r\n\t\t\t});\r\n\r\n\t\t\treturn geoCodeDeferred.promise;\r\n\t\t};\r\n\r\n\t\t//geocodepoint\r\n\t\tmodule.geoCodePoint = function (latitude, longtitude) {\r\n\t\t\tvar geoCodeDeferred;\r\n\r\n\t\t\t//create a promise for the google geocode request\r\n\t\t\tgeoCodeDeferred = Q.defer();\r\n\r\n\t\t\t//request the geocode\r\n\t\t\tpubsub.publish('uiNeeds.GeoCodePoint', {\r\n\t\t\t\t'location': {\r\n\t\t\t\t\tlat: latitude,\r\n\t\t\t\t\tlng: longtitude\r\n\t\t\t\t},\r\n\t\t\t\t'deferred': geoCodeDeferred\r\n\t\t\t});\r\n\r\n\t\t\treturn geoCodeDeferred.promise;\r\n\t\t};\r\n\r\n\t\tmodule.private.handleDataGeoCode = function (e, data) {\r\n\t\t\tvar action;\r\n\r\n\t\t\t//select how to resolve the promise based on the status\r\n\t\t\taction = (data.response.status === '200') ? 'resolve' : 'reject';\r\n\r\n\t\t\t//resolve the promise\r\n\t\t\tdata.request.deferred[action](data);\r\n\t\t};\r\n\r\n\t\tpubsub.subscribe('dataGeoCodeAddress', module.private.handleDataGeoCode);\r\n\t\treturn module;\r\n\t\t\r\n\t}\r\n);","// exports agentsSearchUtilities\r\ndefine([\r\n\t'jquery',\r\n\t'pubsub',\r\n\t'generalUtilities',\r\n 'moduleUtilities',\r\n 'countriesData',\r\n\t'validator',\r\n\t'Handlebars',\r\n 'text!agentsDistancePartial',\r\n\t'locationAutoCompleteControl'\r\n], function agentsSearchUtilities(\r\n\t$,\r\n\tpubsub,\r\n\tgeneralUtilities,\r\n moduleUtilities,\r\n countriesData,\r\n\tvalidationUtilities,\r\n\tHandlebars,\r\n agentsDistancePartial\r\n) {\r\n\t'use strict';\r\n\r\n\t// #region setup\r\n\tvar module, selectors, values;\r\n\r\n\tmodule = {};\r\n\tmodule.private = {};\r\n\tmodule.properties = {};\r\n\r\n\tselectors = {};\r\n\tselectors.searchFormContainer = '.js-usersearch-search-inner';\r\n\tselectors.searchForm = '.js-usersearch-form'; //\r\n\tselectors.searchInputs = '.js-usersearch-input';\r\n\tselectors.searchFormSubmit = '.js-usersearch-submit';\r\n\tselectors.searchLocationInput = '.js-usersearch-location-input';\r\n\tselectors.searchLocationButton = '.js-usersearch-location-btn';\r\n\tselectors.searchFieldInput = '.js-usersearch-field-input';\r\n\tselectors.searchFormResetBtn = '.js-usersearch-reset-btn';\r\n\tselectors.distanceRange = '#range-input';\r\n selectors.distanceUnit = 'input[name=distanceUnit]';\r\n selectors.distanceConatiner = '.js-distance-container';\r\n\r\n\tvalues = {};\r\n\r\n Handlebars.registerPartial('agentsDistancePartial', agentsDistancePartial);\r\n values.agentsDistancePartialHtml = Handlebars.compile(agentsDistancePartial);\r\n\t// #endregion\r\n\t// #region utilities\r\n\r\n\tmodule.private.createRequest = function createRequest(formValues, user) {\r\n var request;\r\n\r\n\t\trequest = formValues;\r\n\r\n\t\t// when adding any standard properties make sure to update the grid control so it doesnt render the total count\r\n\t\t// re_usersearch_grid_control.js (131)\r\n\r\n\t\trequest.RecordCount = 33;\r\n\r\n\t\tswitch (formValues._subjectType) {\r\n\t\t\tcase 'group':\r\n request.GroupUniqueName = formValues._subject;\r\n request.RelationshipSearch = 0;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'firm':\r\n\t\t\t\trequest.FirmUniqueName = formValues._subject;\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t// do nothing\r\n }\r\n\r\n if (generalUtilities.prop(user, 'UserId') && generalUtilities.prop(user,'PremiumPlus')) {\r\n request.FeaturedUserId = user.UserId;\r\n }\r\n\r\n\t\treturn request;\r\n };\r\n module.private.renderDistanceDropDown = function (showDistance) {\r\n var $html;\r\n\r\n $html = values.agentsDistancePartialHtml({ showDistance: showDistance });\r\n\r\n $(selectors.distanceConatiner).html($html);\r\n }\r\n\r\n\tmodule.private.doSearch = function doSearch(source) {\r\n\t\tvar request, requestOptions, $form, formValues, serviceObject, haveGeoPoint, haveGeoPoly;\r\n \r\n\t\trequestOptions = {\r\n\t\t\tintent: 'search'\r\n };\r\n\r\n\t\t$form = $(selectors.searchForm);\r\n\r\n formValues = validationUtilities.serializeObject($form);\r\n\r\n\t\thaveGeoPoint = formValues.Longitude && formValues.Latitude;\r\n\t\thaveGeoPoly =\r\n\t\t\tformValues.Longitude1 &&\r\n\t\t\tformValues.Latitude1 &&\r\n\t\t\tformValues.Longitude2 &&\r\n\t\t\tformValues.Latitude2 &&\r\n\t\t\tformValues.Longitude3 &&\r\n\t\t\tformValues.Latitude3 &&\r\n\t\t\tformValues.Longitude4 &&\r\n\t\t\tformValues.Latitude4;\r\n\r\n if (!haveGeoPoint && !haveGeoPoly && !formValues.CountryCode) {\r\n formValues._locationName = '';\r\n formValues.Distance = null;\r\n $form.find(selectors.searchLocationInput).val('');\r\n module.private.renderDistanceDropDown(false);\r\n\t\t}\r\n\r\n request = module.private.createRequest(formValues, generalUtilities.prop(window, 'RESAAS.User2'));\r\n\r\n\t\tif (typeof source === 'string' ) {\r\n\t\t\trequest.source = source;\r\n }\r\n\r\n\t\tserviceObject = moduleUtilities.createServiceObject(request, module.properties, requestOptions);\r\n\t\tgeneralUtilities.disableAndWaitFor(selectors.searchFormSubmit, 'dataUserSearchBrowse');\r\n\t\tpubsub.publish('uiNeedsUserSearchBrowse', serviceObject);\r\n\r\n\t\treturn true;\r\n\t};\r\n\r\n\tmodule.trackInMixpanel = function trackInMixpanel(query) {\r\n\t\tvar arr, temp, keys, data;\r\n\r\n\t\tdata = query.request;\r\n\r\n\t\tif (!data) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tarr = [];\r\n\t\ttemp = {};\r\n\t\ttemp.source = data.source || 'manual';\r\n\t\ttemp.from = window.pageType;\r\n\t\ttemp.type = 'user-discovery';\r\n\t\ttemp['search result count'] = query.response.Count;\r\n\r\n\t\tif (data._locationName && data._locationName !== '') {\r\n\t\t\ttemp['search location'] = data._locationName;\r\n\t\t}\r\n\t\tif (data.Name && data.Name !== '') {\r\n\t\t\ttemp['search name'] = data.Name;\r\n\t\t}\r\n\t\tif (data.Keywords && data.Keywords !== '') {\r\n\t\t\ttemp['search Keywords'] = data.Keywords;\r\n\t\t}\r\n\t\tif (data.YearsOfExperience && data.YearsOfExperience !== '') {\r\n\t\t\ttemp['search YearsOfExperience'] = data.YearsOfExperience;\r\n\t\t}\r\n\t\tif (data.RelationshipSearch && data.RelationshipSearch !== '') {\r\n\t\t\ttemp['search RelationshipSearch'] = data.RelationshipSearch;\r\n\t\t}\r\n\t\tif (data.LanguagesSpoken && data.LanguagesSpoken !== '') {\r\n\t\t\ttemp['search LanguagesSpoken'] = data.LanguagesSpoken;\r\n\t\t}\r\n\t\tif (data._subjectType && data._subjectType === 'group') {\r\n temp['search group'] = data._subject;\r\n temp['search group name'] = data._subjectName;\r\n\t\t}\r\n\t\tif (data._subjectType && data._subjectType === 'firm') {\r\n temp['search firm'] = data._subject;\r\n temp['search firm name'] = data._subjectName;\r\n\t\t}\r\n\r\n\t\tkeys = Object.keys(data);\r\n\t\tkeys.forEach(function keysForEach(key) {\r\n\t\t\tif (key === '_locationName' && data[key]) {\r\n\t\t\t\tarr.push('location');\r\n\t\t\t} else if (key === 'Name' && data[key]) {\r\n\t\t\t\tarr.push('name');\r\n\t\t\t} else if (key === 'Keywords' && data[key]) {\r\n\t\t\t\tarr.push('Keywords');\r\n\t\t\t} else if (key === 'YearsOfExperience' && data[key]) {\r\n\t\t\t\tarr.push('YearsOfExperience');\r\n\t\t\t} else if (key === '_subjectType' && data[key] === 'group') {\r\n\t\t\t\tarr.push('group');\r\n\t\t\t} else if (key === '_subjectType' && data[key] === 'firm') {\r\n\t\t\t\tarr.push('firm');\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\ttemp.category = arr;\r\n\r\n\t\tpubsub.publish('mixpanel.Search', temp);\r\n\r\n\t\treturn true;\r\n\t};\r\n\r\n\tmodule.private.setUpLocationAutocomplete = function setUpLocationAutocomplete() {\r\n\t\tvar data;\r\n\t\tdata = {\r\n\t\t\ttextInputId: '_locationName',\r\n\t\t\ttype: 'geocode',\r\n\t\t\tforceSelect: true,\r\n\t\t\tcallbackFunction: module.private.handleLocationChanged,\r\n\t\t\tclearFunction: module.private.clearLocationInputs\r\n\t\t};\r\n\r\n\t\tpubsub.publish('uiWantsToSetupLocationAutocomplete', data);\r\n\t};\r\n\r\n\tmodule.private.clearLocationInputs = function clearLocationInputs() {\r\n\t\tvar $form = $(selectors.searchForm);\r\n\t\t$form.find('input[name=\"Latitude\"]').val('');\r\n\t\t$form.find('input[name=\"Longitude\"]').val('');\r\n\t\t$form.find('input[name=\"Latitude1\"]').val('');\r\n\t\t$form.find('input[name=\"Longitude1\"]').val('');\r\n\t\t$form.find('input[name=\"Latitude2\"]').val('');\r\n\t\t$form.find('input[name=\"Longitude2\"]').val('');\r\n\t\t$form.find('input[name=\"Latitude3\"]').val('');\r\n\t\t$form.find('input[name=\"Longitude3\"]').val('');\r\n\t\t$form.find('input[name=\"Latitude4\"]').val('');\r\n $form.find('input[name=\"Longitude4\"]').val('');\r\n $form.find('input[name=\"CountryCode\"]').val('');\r\n $form.find('input[name=\"SearchType\"]').val('');\r\n module.private.renderDistanceDropDown(false);\r\n\t};\r\n\r\n\tmodule.private.updateLocationInputsSingleLatLng = function updateLocationInputsSingleLatLng(place) {\r\n\t\tvar $form, lat, lng;\r\n\t\t$form = $(selectors.searchForm);\r\n\t\tlat = place.geometry.location.lat();\r\n\t\tlng = place.geometry.location.lng();\r\n\r\n\t\t$form.find('input[name=\"Latitude\"]').val(lat);\r\n\t\t$form.find('input[name=\"Longitude\"]').val(lng);\r\n\t};\r\n\r\n\tmodule.private.updateLocationInputsPolygonLatLng = function updateLocationInputsPolygonLatLng(place) {\r\n\t\tvar $form, NElat, NElng, SWlat, SWlng, NWlat, NWlng, SElat, SElng;\r\n\r\n\t\t$form = $(selectors.searchForm);\r\n\t\t// get 2 points lat lng, calculate the other 2 points\r\n\t\tNElat = place.geometry.viewport.getNorthEast().lat();\r\n\t\tNElng = place.geometry.viewport.getNorthEast().lng();\r\n\t\tSWlat = place.geometry.viewport.getSouthWest().lat();\r\n\t\tSWlng = place.geometry.viewport.getSouthWest().lng();\r\n\r\n\t\tNWlat = NElat;\r\n\t\tNWlng = SWlng;\r\n\t\tSElat = SWlat;\r\n\t\tSElng = NElng;\r\n\r\n\t\t// update the form fields to draw a box, going counter-clockwise\r\n\t\t$form.find('input[name=\"Latitude1\"]').val(NElat);\r\n\t\t$form.find('input[name=\"Longitude1\"]').val(NElng);\r\n\t\t$form.find('input[name=\"Latitude2\"]').val(NWlat);\r\n\t\t$form.find('input[name=\"Longitude2\"]').val(NWlng);\r\n\t\t$form.find('input[name=\"Latitude3\"]').val(SWlat);\r\n\t\t$form.find('input[name=\"Longitude3\"]').val(SWlng);\r\n\t\t$form.find('input[name=\"Latitude4\"]').val(SElat);\r\n\t\t$form.find('input[name=\"Longitude4\"]').val(SElng);\r\n\t};\r\n\r\n\t// event handlers\r\n\t//-------------------------------------------\r\n\r\n module.private.handleFieldChanged = function handleFieldChanged(e) {\r\n var $form;\r\n if (generalUtilities.prop(e, 'target.name') === \"RelationshipSearch\") {\r\n $form = $(selectors.searchForm);\r\n if (e.target.value !== \"0\" && e.target.value !== \"1\" && e.target.value !== \"2\") {\r\n $form.find('input[name=\"_subject\"]').val(e.target.value);\r\n if (e.target.getAttribute('data-searchtype') === 'firm') {\r\n $form.find('input[name=\"_subjectType\"]').val('firm');\r\n } else {\r\n $form.find('input[name=\"_subjectType\"]').val('group');\r\n }\r\n $form.find('input[name=\"_subjectName\"]').val(e.target.getAttribute('data-groupname'));\r\n } else {\r\n $form.find('input[name=\"_subject\"]').val('');\r\n $form.find('input[name=\"_subjectType\"]').val('');\r\n $form.find('input[name=\"_subjectName\"]').val(e.target.getAttribute(''));\r\n }\r\n }\r\n\t\tmodule.private.doSearch();\r\n };\r\n\r\n\tmodule.private.handleLocationChanged = function handleLocationChanged(place) {\r\n var adminAreaLevel, types, countryCode, i, component;\r\n\t\tif (generalUtilities.prop(place, 'geometry.location')) {\r\n\t\t\t// place is a locationAutocomplete.getPlace();\r\n\t\t\ttypes = generalUtilities.prop(place, 'types');\r\n\t\t\tadminAreaLevel = null;\r\n\t\t\tif (types) {\r\n\t\t\t\tadminAreaLevel = types[0];\r\n\t\t\t}\r\n\r\n\t\t\t// for state (administrative area level 1 to 5)\r\n\t\t\tif (adminAreaLevel && adminAreaLevel.indexOf('administrative_area_level_') > -1) {\r\n module.private.updateLocationInputsPolygonLatLng(place);\r\n module.private.renderDistanceDropDown(false);\r\n\t\t\t\t// for country\r\n\t\t\t} else if (adminAreaLevel === 'country') {\r\n module.private.updateLocationInputsPolygonLatLng(place);\r\n module.private.renderDistanceDropDown(false);\r\n\t\t\t\t// for address or city or neighborhoods etc\r\n\t\t\t} else {\r\n module.private.updateLocationInputsSingleLatLng(place);\r\n module.private.renderDistanceDropDown(true);\r\n }\r\n\r\n // find the country code\r\n if (place.address_components) {\r\n countryCode = null;\r\n for (i = 0; i < place.address_components.length; i++) {\r\n component = place.address_components[i];\r\n if (component.types[0] === 'country') {\r\n countryCode = component.short_name;\r\n $(selectors.searchForm)\r\n .find('input[name=\"CountryCode\"]')\r\n .val(countryCode);\r\n if (types && types.includes(\"country\")) {\r\n $(selectors.searchForm)\r\n .find('input[name=\"SearchType\"]')\r\n .val(1);\r\n } \r\n break;\r\n }\r\n }\r\n }\r\n\r\n\t\t\t$(selectors.searchForm)\r\n\t\t\t\t.find('input[name=\"Name\"]')\r\n .focus();\r\n\r\n module.private.doSearch();\r\n }\r\n\t\t\r\n\t};\r\n\r\n\tmodule.private.handleDataUserLocationBrowse = function handleDataUserLocationBrowse(e, data) {\r\n\t\tvar $form;\r\n\r\n\t\tif (!data.lat || !data.lng || !data.addressName) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t$form = $(selectors.searchForm);\r\n\t\tif ($form) {\r\n\t\t\t$form.find('input[name=\"Latitude\"]').val(data.lat);\r\n\t\t\t$form.find('input[name=\"Longitude\"]').val(data.lng);\r\n $form.find('input[name=\"_locationName\"]').val(data.addressName);\r\n $form.find('input[name=\"CountryCode\"]').val(data.countryCode);\r\n $form.find('input[name=\"SearchType\"]').val('');\r\n module.private.renderDistanceDropDown(true);\r\n\t\t\tmodule.private.doSearch();\r\n\t\t}\r\n\t};\r\n\r\n\tmodule.private.rowItemRemainder = function rowItemRemainder(data) {\r\n\t\tvar remainingUsers, nonPremiumUsers;\r\n\r\n\t\t// if load more exist \r\n\t\tif (data.response.Count > data.request.RecordCount && data.response.Data.length === data.request.RecordCount) {\r\n\r\n\t\t\tnonPremiumUsers = data.response.Data.filter(function premiumUsersNumbers(agent) {\r\n\t\t\t\treturn agent.IsPremium === false\r\n\t\t\t}).length;\r\n\r\n\t\t\tremainingUsers = nonPremiumUsers % 3;\r\n\r\n\t\t\treturn remainingUsers;\r\n\t\t}\r\n\r\n\t\treturn 0;\r\n }\r\n\r\n module.private.getUserLocation = function getUserLocation(user) {\r\n var locationParts, countryName;\r\n\r\n locationParts = [];\r\n if (user.CountryId) {\r\n countryName = generalUtilities.localizeResource(countriesData.read({ id: user.CountryId }).resourceName);\r\n\r\n // add Address if it exists\r\n if (user.Address) {\r\n locationParts.unshift(user.Address);\r\n }\r\n\r\n // add City if it exists\r\n if (user.City) {\r\n locationParts.push(user.City);\r\n }\r\n\r\n // add State if it exists\r\n if (user.State) {\r\n locationParts.push(user.State);\r\n }\r\n\r\n locationParts.push(countryName);\r\n }\r\n\r\n return locationParts.length > 0 ? locationParts.join(', ') : '';\r\n };\r\n\r\n\tmodule.private.init = function init(e, data) {\r\n\t\tmodule.properties.guid = data && data.guid ? data.guid : generalUtilities.uuid();\r\n\t};\r\n\r\n\tmodule.bindHandleFieldChanged = function bindHandleFieldChanged() {\r\n\t\t$('body').off('change', selectors.searchFieldInput, module.private.handleFieldChanged);\r\n\t\t$('body').on('change', selectors.searchFieldInput, module.private.handleFieldChanged);\r\n\t};\r\n\tmodule.bindhandleDataUserLocationBrowse = function bindhandleDataUserLocationBrowse(){\r\n\t\tpubsub.subscribe('data.UserLocationBrowse', module.private.handleDataUserLocationBrowse);\r\n\t};\r\n\r\n\tmodule.setUpLocationAutocomplete = module.private.setUpLocationAutocomplete;\r\n module.doSearch = module.private.doSearch;\r\n module.getUserLocation = module.private.getUserLocation;\r\n module.renderDistanceDropDown = module.private.renderDistanceDropDown;\r\n\r\n\tpubsub.subscribe('uiWantsAgentsSearchControlInit', module.private.init);\r\n\r\n\t// #endregion\r\n\treturn module;\r\n});\r\n","define(['pubsub', 'moduleUtilities', 'generalUtilities', 'connectionService'], function(\r\n pubsub,\r\n moduleUtilities,\r\n generalUtilities\r\n) {\r\n 'use strict';\r\n /**\r\n * re_connection_utilities\r\n * @exports connectionUtilities\r\n * @author John Allan\r\n */\r\n //#region set up\r\n\r\n var module, values, getConnectionData, getConnectionDataResolved;\r\n\r\n module = {};\r\n /** @module */\r\n module.private = {};\r\n module.properties = {};\r\n values = {};\r\n\r\n values.totalConnected = 0;\r\n\r\n getConnectionData = Q.defer();\r\n getConnectionDataResolved = false;\r\n //#endregion\r\n\r\n //#region utilities\r\n module.private.getConnectionData = function() {\r\n if (generalUtilities.prop(RESAAS, 'User2.IsProfessional')) {\r\n pubsub.publish('uiNeeds.ConnectionBrowse', {});\r\n }\r\n };\r\n\r\n module.private.getConnectionInfo = function(values, userId, currentUserId) {\r\n if (currentUserId === userId) {\r\n return { isSelf: true };\r\n }\r\n\r\n if (getConnectionDataResolved) {\r\n return generalUtilities.prop(values, ['connections', userId].join('.'));\r\n } else {\r\n return { connectionInfoNotReady: true };\r\n }\r\n };\r\n\r\n //#endregion\r\n\r\n //#region pubsub event handlers\r\n\r\n /**\r\n * Handle data event returned from service, determines success of fail and calls the corresponding function.\r\n * @param {object} e The pubsub event.\r\n * @param {object} data Data object from service.\r\n */\r\n module.private.handleDataConnectionBrowse = function(e, data) {\r\n if (\r\n !generalUtilities.prop(data, 'response.status') &&\r\n generalUtilities.prop(data, 'response.statusText') !== 'error'\r\n ) {\r\n values.totalConnected = data.response.reduce(function(a, c) {\r\n if (c.Connected) {\r\n return a + 1;\r\n }\r\n return a;\r\n }, 0);\r\n values.connections = generalUtilities.arrayToHash(data.response, 'UserId');\r\n } else {\r\n values.totalConnected = 0;\r\n values.connections = undefined;\r\n }\r\n\r\n getConnectionData.resolve(true);\r\n getConnectionDataResolved = true;\r\n };\r\n\r\n //#endregion\r\n\r\n /**\r\n * Initiates the module, creates a guid and binds dom events.\r\n * @param {object} [e] The pubsub event, optional depending module is self init or by pubsub event.\r\n * @param {object} [data] Data passed in by pubsub event, optional depending module is self init or by pubsub event.\r\n */\r\n module.private.init = function(e, data) {\r\n //module config\r\n module.properties.guid = data && data.guid ? data.guid : generalUtilities.uuid();\r\n\r\n //elements\r\n module.private.getConnectionData();\r\n };\r\n\r\n //#region external event bindings\r\n\r\n pubsub.subscribe('data.ConnectionBrowse', module.private.handleDataConnectionBrowse);\r\n //whenever a new connection is made, refresh the data\r\n pubsub.subscribe('data.ConnectionAdd', module.private.getConnectionData);\r\n\r\n //#endregion\r\n\r\n //#region public API\r\n module.getConnectionInfo = function(userId) {\r\n return module.private.getConnectionInfo(values, userId, RESAAS.User2.UserId);\r\n };\r\n\r\n module.getTotalConnected = function() {\r\n return values.totalConnected;\r\n };\r\n\r\n module.getConnectionPromise = function() {\r\n return getConnectionData.promise;\r\n };\r\n\r\n //#endregion\r\n\r\n module.private.init();\r\n\r\n //expose API\r\n return module;\r\n});\r\n","/**\r\n * @fileOverview Overlay() setup\r\n *\r\n * @author John Allan\r\n */\r\n\r\n/*! RESAAS - Licensed under MIT */\r\n\r\ndefine('overLay', ['jquery','pubsub', 'smoke', 'generalUtilities'], function overlayUtilities($, pubsub, smoke, generalUtilities) {\r\n\treturn function overlayUtilitiesInstance() {\r\n\t\t'use strict';\r\n\r\n\t\tvar settings, elements, module;\r\n\r\n\t\tsettings = {\r\n\t\t\tbackgroundSelector: '.js-overlay-background',\r\n\t\t\tdisplaySelector: '.js-overlay-display',\r\n\t\t\tcontentSelector: '.js-overlay-content',\r\n\t\t\tcloseSelector: '.js-overlay-close-btn',\r\n\t\t\toverflowClass: 're-overlay-stick-content',\r\n\t\t\toverlayOpenClass: 're-overlay-open',\r\n\t\t\tpageContentSelector: '.re-page-outer-wrapper',\r\n\t\t\ttopOffset: 75,\r\n\t\t\tidprefix: 'oid-',\r\n\t\t\tidattr: 'data-oid',\r\n\t\t\tdefaults: {\r\n\t\t\t\twatchFormData: true\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\twindow.re_overlay_utilities_values = window.re_overlay_utilities_values || {};\r\n\t\telements = {};\r\n\t\tmodule = {};\r\n\t\tmodule.private = {};\r\n\r\n\t\t// Public Methods\r\n\r\n\t\tmodule.openOverlay = function openOverlay(html, o) {\r\n\t\t\tvar overlay, display, scrollTop, oid, options, offset;\r\n\r\n\t\t\t// store reference to elements\r\n\t\t\toverlay = $(html);\r\n\t\t\tdisplay = overlay.find(settings.displaySelector);\r\n\t\t\toid = module.private.createUniqueId();\r\n\t\t\toptions = $.extend({}, o);\r\n\r\n\t\t\t// attach oid\r\n\t\t\toverlay.attr(settings.idattr, oid);\r\n\r\n\t\t\t// find the page scroll offset\r\n\t\t\tscrollTop = elements.document.scrollTop();\r\n\t\t\toptions.scrollTop = scrollTop;\r\n\r\n\t\t\t// set window to top\r\n\t\t\twindow.scrollTo(0, 0);\r\n\r\n\t\t\t// save overlay reference\r\n\t\t\tmodule.private.saveOverlayReference(overlay);\r\n\r\n\t\t\t// save form state\r\n\t\t\tmodule.private.saveFormState(overlay, oid);\r\n\r\n\t\t\t// save overlay config\r\n\t\t\tmodule.private.saveOverlayConfig(options, oid);\r\n\r\n\t\t\t// set the top position of our overlay\r\n\t\t\toffset = window.re_overlay_utilities_values.overlays.length * settings.topOffset;\r\n\t\t\tdisplay.css('top', offset);\r\n\r\n\t\t\t// bind events\r\n\t\t\toverlay.on('click', settings.closeSelector, module.private.handleCloseClick);\r\n\r\n\t\t\tif (options.modal !== true) {\r\n\t\t\t\toverlay.on('click', settings.backgroundSelector, module.private.handleCloseClick);\r\n\t\t\t}\r\n\r\n\t\t\t// stop body scroll\r\n\t\t\t$('html').addClass(settings.overlayOpenClass);\r\n\t\t\t$(settings.pageContentSelector).addClass(settings.overflowClass).css({\r\n\t\t\t\ttop: scrollTop * -1,\r\n\t\t\t});\r\n\r\n\t\t\t// add our overlay to DOM\r\n\t\t\telements.body.append(overlay);\r\n\r\n\t\t\treturn overlay;\r\n\t\t};\r\n\r\n\t\tmodule.getCurrentOverlay = function getCurrentOverlay() {\r\n\t\t\tvar overlay, l;\r\n\r\n\t\t\tl = window.re_overlay_utilities_values.overlays.length;\r\n\r\n\t\t\toverlay = l ? window.re_overlay_utilities_values.overlays[l - 1] : null;\r\n\r\n\t\t\treturn overlay;\r\n\t\t};\r\n\r\n\t\tmodule.closeAllOverlays = function closeAllOverlays(force) {\r\n\t\t\tvar f, overlaysLength;\r\n\r\n\t\t\tf = force || false;\r\n\t\t\toverlaysLength = generalUtilities.prop(window, 're_overlay_utilities_values.overlays.length');\r\n\r\n\t\t\tif (overlaysLength) {\r\n\t\t\t\twhile (window.re_overlay_utilities_values.overlays.length) {\r\n\t\t\t\t\tmodule.closeOverlay(f);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tmodule.closeOverlay = function closeOverlay(force) {\r\n\t\t\tvar o, overlay, oid, overlaysLength;\r\n\r\n\t\t\toverlaysLength = generalUtilities.prop(window, 're_overlay_utilities_values.overlays.length');\r\n\r\n\t\t\tif (overlaysLength) {\r\n\t\t\t\to = window.re_overlay_utilities_values.overlays[overlaysLength - 1];\r\n\t\t\t\toverlay = module.getCurrentOverlay();\r\n\t\t\t\toid = $(overlay).attr('data-oid');\r\n\r\n if (typeof window.re_overlay_utilities_values.overlayConfig[oid].onClose === 'function') {\r\n window.re_overlay_utilities_values.overlayConfig[oid].onClose();\r\n }\r\n\r\n\t\t\t\tif (\r\n\t\t\t\t\t!force &&\r\n\t\t\t\t\tmodule.private.formHasChanged(o) &&\r\n\t\t\t\t\twindow.re_overlay_utilities_values.overlayConfig[oid].watchFormData === true\r\n\t\t\t\t) {\r\n\t\t\t\t\tsmoke.confirm(\r\n\t\t\t\t\t\tRESAAS.Localization.Global.EXIT_NOW_AND_LOSE_FORM_DATA,\r\n\t\t\t\t\t\tfunction smokeConfirmCallback(e) {\r\n\t\t\t\t\t\t\tif (e) {\r\n\t\t\t\t\t\t\t\tmodule.private.closeCurrentOverlay(oid);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t{ ok: RESAAS.Localization.Global.OK_CAP, cancel: RESAAS.Localization.Global.CANCEL_CAP }\r\n\t\t\t\t\t);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tmodule.private.closeCurrentOverlay(oid);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tmodule.saveCurrentOverlayFormState = function saveCurrentOverlayFormState() {\r\n\t\t\tvar overlay, oid;\r\n\r\n\t\t\toverlay = module.getCurrentOverlay();\r\n\t\t\toid = $(overlay).attr('data-oid');\r\n\t\t\tmodule.private.saveFormState(overlay, oid);\r\n\t\t};\r\n\r\n\t\t// Private Functions\r\n\r\n\t\tmodule.private.createUniqueId = function createUniqueId(prefix) {\r\n\t\t\tvar pre;\r\n\r\n\t\t\tpre = prefix || settings.idprefix;\r\n\t\t\twindow.re_overlay_utilities_values.guidIndex = window.re_overlay_utilities_values.guidIndex\r\n\t\t\t\t? window.re_overlay_utilities_values.guidIndex + 1\r\n\t\t\t\t: 1;\r\n\r\n\t\t\treturn pre + window.re_overlay_utilities_values.guidIndex;\r\n\t\t};\r\n\r\n\t\tmodule.private.closeCurrentOverlay = function closeCurrentOverlay(oid) {\r\n\t\t\tvar config, o;\r\n\r\n\t\t\tif (window.re_overlay_utilities_values.overlays.length === 1) {\r\n\t\t\t\t$(settings.pageContentSelector).removeClass(settings.overflowClass);\r\n\t\t\t\t$('html').removeClass(settings.overlayOpenClass);\r\n\t\t\t}\r\n\r\n\t\t\tconfig = window.re_overlay_utilities_values.overlayConfig[oid];\r\n\t\t\twindow.scrollTo(0, config.scrollTop);\r\n\r\n\t\t\to = window.re_overlay_utilities_values.overlays.pop();\r\n\t\t\to.remove();\r\n\t\t};\r\n\r\n\t\tmodule.private.saveOverlayReference = function saveOverlayReference(overlay) {\r\n\t\t\tif (window.re_overlay_utilities_values.overlays === undefined) {\r\n\t\t\t\twindow.re_overlay_utilities_values.overlays = [];\r\n\t\t\t}\r\n\t\t\twindow.re_overlay_utilities_values.overlays.push(overlay);\r\n\t\t};\r\n\r\n\t\tmodule.private.saveFormState = function saveFormState(overlay, oid) {\r\n\t\t\tvar formels, formdata;\r\n\r\n\t\t\tformels = overlay.find(':input');\r\n\t\t\twindow.re_overlay_utilities_values.formStates = window.re_overlay_utilities_values.formStates || {};\r\n\r\n\t\t\tif (formels.length === 0) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\tformdata = formels.serialize();\r\n\t\t\twindow.re_overlay_utilities_values.formStates[oid] = formdata;\r\n\t\t};\r\n\r\n\t\tmodule.private.saveOverlayConfig = function saveOverlayConfig(options, oid) {\r\n\t\t\tvar config;\r\n\r\n\t\t\tconfig = $.extend(true, {}, settings.defaults, options);\r\n\r\n\t\t\twindow.re_overlay_utilities_values.overlayConfig = window.re_overlay_utilities_values.overlayConfig || {};\r\n\t\t\twindow.re_overlay_utilities_values.overlayConfig[oid] = config;\r\n\t\t};\r\n\r\n\t\tmodule.private.formHasChanged = function formHasChanged(o) {\r\n\t\t\tvar current, id;\r\n\r\n\t\t\tid = o.attr(settings.idattr);\r\n\t\t\tif (window.re_overlay_utilities_values.formStates[id]) {\r\n\t\t\t\tcurrent = o.find(':input').serialize();\r\n\t\t\t\tif (current === window.re_overlay_utilities_values.formStates[id]) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\treturn false;\r\n\t\t};\r\n\r\n\t\t// Event Handlers\r\n\r\n\t\tmodule.private.handleCloseClick = function handleCloseClick(e) {\r\n\t\t\tvar mixpanelAttr, dataAttr;\r\n\t\t\tmixpanelAttr= {};\r\n\t\t\te.preventDefault();\r\n\r\n\t\t\tif (e.target.dataset.mixpanelName) {\r\n\t\t\t\tdataAttr = e.target.dataset;\r\n\t\t\t\tmixpanelAttr.name = dataAttr.mixpanelName;\r\n\t\t\t\tif (dataAttr.mixpanelFrom) { mixpanelAttr.from = dataAttr.mixpanelFrom; }\r\n\t\t\t\tif (dataAttr.mixpanelContext) { mixpanelAttr.context = dataAttr.mixpanelContext; }\r\n\t\t\t\tif (dataAttr.mixpanelType) { mixpanelAttr.type = dataAttr.mixpanelType; }\r\n\t\t\t\tpubsub.publish('mixpanel.Intent', mixpanelAttr);\r\n\t\t\t}\r\n\r\n\t\t\tmodule.closeOverlay();\r\n\t\t};\r\n\r\n\t\tmodule.init = function init() {\r\n\t\t\t// cache element references\r\n\t\t\telements.html = $('html');\r\n\t\t\telements.body = $('body');\r\n\t\t\telements.document = $(document);\r\n\t\t};\r\n\r\n\t\treturn module;\r\n\t};\r\n});\r\n","/**\r\n * re_track_phonenumber.js\r\n * @author May Montazer\r\n */\r\ndefine(['jquery', 'pubsub', 'generalUtilities', 'moduleUtilities'], function(\r\n $,\r\n pubsub,\r\n generalUtilities,\r\n moduleUtilities\r\n) {\r\n //set up\r\n //-------------------------------------------\r\n\r\n 'use strict';\r\n\r\n var module, selectors, values, elements;\r\n\r\n module = {};\r\n module.private = {};\r\n module.properties = {};\r\n\r\n selectors = {};\r\n elements = {};\r\n values = {};\r\n\r\n selectors.phoneNumberBtn = '.js-phone-track';\r\n\r\n //event handlers\r\n //-------------------------------------------\r\n\r\n /**\r\n * handleTrackPhone\r\n * @param {object} e event\r\n * @param {object} data response data\r\n */\r\n module.private.handleTrackPhone = function(userId) {\r\n var requestOptions, request, serviceObject;\r\n\r\n requestOptions = {};\r\n\r\n request = { targetUserId: userId };\r\n\r\n serviceObject = moduleUtilities.createServiceObject(request, module.properties, requestOptions);\r\n\r\n pubsub.publish('uiNeeds.NotificationPhoneView', serviceObject);\r\n };\r\n\r\n /**\r\n * Handle data event returned from service, determines success of fail and calls the corresponding function.\r\n * @param {object} e The pubsub event.\r\n * @param {object} data Data object from service.\r\n */\r\n module.private.handleDataTrackPhone = function(e, data) {\r\n var status;\r\n status = generalUtilities.prop(data, 'response.status');\r\n if (status !== 200) {\r\n pubsub.publish('loggly.error', {\r\n message: 'send notification phone view is failed - pageType: ' + window.pageType + JSON.stringify(data)\r\n });\r\n }\r\n };\r\n\r\n module.private.trackPhoneNumber = function revealPhoneNumber(e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n if (\r\n $(e.currentTarget)\r\n .find('span')\r\n .hasClass('js-btn-reveal-phone')\r\n ) {\r\n var dataContext = e.currentTarget.dataset.context;\r\n var dataPhoneNumber = e.currentTarget.dataset.phonenumber;\r\n e.currentTarget.innerText = dataPhoneNumber;\r\n e.currentTarget.href = generalUtilities.stringFormat('tel:{0}', dataPhoneNumber);\r\n $(e.currentTarget)\r\n .find('span')\r\n .removeClass('js-btn-reveal-phone');\r\n\r\n // send a notfication\r\n module.private.handleTrackPhone(e.currentTarget.dataset.userid);\r\n\r\n // mixpanel\r\n var mixData = {\r\n type: 'reveal phone'\r\n };\r\n\r\n if (dataContext) {\r\n mixData.context = dataContext;\r\n }\r\n\r\n pubsub.publish('mixpanel.Intent', mixData);\r\n }\r\n };\r\n\r\n module.private.init = function(e, data) {\r\n var dateCreated;\r\n\r\n dateCreated = generalUtilities.prop(window, 'RESAAS.User2.CreatedDate');\r\n\r\n //set values\r\n module.properties.guid = data && data.guid ? data.guid : generalUtilities.uuid();\r\n\r\n elements.body = $('.re-page-outer-wrapper');\r\n\r\n //set internal event bindings\r\n elements.body.on('click', selectors.phoneNumberBtn, module.private.trackPhoneNumber);\r\n };\r\n\r\n //external event bindings\r\n //-------------------------------------------\r\n\r\n pubsub.subscribe('data.NotificationPhoneView', module.private.handleDataTrackPhone);\r\n\r\n module.private.init();\r\n\r\n //expose API\r\n //-------------------------------------------\r\n return module;\r\n});\r\n","/**\r\n * sticky-sidebar - A JavaScript plugin for making smart and high performance.\r\n * @version v3.3.1\r\n * @link https://github.com/abouolia/sticky-sidebar\r\n * @author Ahmed Bouhuolia\r\n * @license The MIT License (MIT)\r\n**/\r\n!function (t, e) { \"object\" == typeof exports && \"undefined\" != typeof module ? e(exports) : \"function\" == typeof define && define.amd ? define([\"exports\"], e) : e(t.StickySidebar = {}) }(this, function (t) { \"use strict\"; \"undefined\" != typeof window ? window : \"undefined\" != typeof global ? global : \"undefined\" != typeof self && self; var e, i, n = (function (t, e) { (function (t) { Object.defineProperty(t, \"__esModule\", { value: !0 }); var l, n, e = function () { function n(t, e) { for (var i = 0; i < e.length; i++) { var n = e[i]; n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), Object.defineProperty(t, n.key, n) } } return function (t, e, i) { return e && n(t.prototype, e), i && n(t, i), t } }(), i = (l = \".stickySidebar\", n = { topSpacing: 0, bottomSpacing: 0, containerSelector: !1, innerWrapperSelector: \".inner-wrapper-sticky\", stickyClass: \"is-affixed\", resizeSensor: !0, minWidth: !1 }, function () { function c(t) { var e = this, i = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {}; if (function (t, e) { if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\") }(this, c), this.options = c.extend(n, i), this.sidebar = \"string\" == typeof t ? document.querySelector(t) : t, void 0 === this.sidebar) throw new Error(\"There is no specific sidebar element.\"); this.sidebarInner = !1, this.container = this.sidebar.parentElement, this.affixedType = \"STATIC\", this.direction = \"down\", this.support = { transform: !1, transform3d: !1 }, this._initialized = !1, this._reStyle = !1, this._breakpoint = !1, this.dimensions = { translateY: 0, maxTranslateY: 0, topSpacing: 0, lastTopSpacing: 0, bottomSpacing: 0, lastBottomSpacing: 0, sidebarHeight: 0, sidebarWidth: 0, containerTop: 0, containerHeight: 0, viewportHeight: 0, viewportTop: 0, lastViewportTop: 0 }, [\"handleEvent\"].forEach(function (t) { e[t] = e[t].bind(e) }), this.initialize() } return e(c, [{ key: \"initialize\", value: function () { var i = this; if (this._setSupportFeatures(), this.options.innerWrapperSelector && (this.sidebarInner = this.sidebar.querySelector(this.options.innerWrapperSelector), null === this.sidebarInner && (this.sidebarInner = !1)), !this.sidebarInner) { var t = document.createElement(\"div\"); for (t.setAttribute(\"class\", \"inner-wrapper-sticky\"), this.sidebar.appendChild(t); this.sidebar.firstChild != t;)t.appendChild(this.sidebar.firstChild); this.sidebarInner = this.sidebar.querySelector(\".inner-wrapper-sticky\") } if (this.options.containerSelector) { var e = document.querySelectorAll(this.options.containerSelector); if ((e = Array.prototype.slice.call(e)).forEach(function (t, e) { t.contains(i.sidebar) && (i.container = t) }), !e.length) throw new Error(\"The container does not contains on the sidebar.\") } \"function\" != typeof this.options.topSpacing && (this.options.topSpacing = parseInt(this.options.topSpacing) || 0), \"function\" != typeof this.options.bottomSpacing && (this.options.bottomSpacing = parseInt(this.options.bottomSpacing) || 0), this._widthBreakpoint(), this.calcDimensions(), this.stickyPosition(), this.bindEvents(), this._initialized = !0 } }, { key: \"bindEvents\", value: function () { window.addEventListener(\"resize\", this, { passive: !0, capture: !1 }), window.addEventListener(\"scroll\", this, { passive: !0, capture: !1 }), this.sidebar.addEventListener(\"update\" + l, this), this.options.resizeSensor && \"undefined\" != typeof ResizeSensor && (new ResizeSensor(this.sidebarInner, this.handleEvent), new ResizeSensor(this.container, this.handleEvent)) } }, { key: \"handleEvent\", value: function (t) { this.updateSticky(t) } }, { key: \"calcDimensions\", value: function () { if (!this._breakpoint) { var t = this.dimensions; t.containerTop = c.offsetRelative(this.container).top, t.containerHeight = this.container.clientHeight, t.containerBottom = t.containerTop + t.containerHeight, t.sidebarHeight = this.sidebarInner.offsetHeight, t.sidebarWidth = this.sidebarInner.offsetWidth, t.viewportHeight = window.innerHeight, t.maxTranslateY = t.containerHeight - t.sidebarHeight, this._calcDimensionsWithScroll() } } }, { key: \"_calcDimensionsWithScroll\", value: function () { var t = this.dimensions; t.sidebarLeft = c.offsetRelative(this.sidebar).left, t.viewportTop = document.documentElement.scrollTop || document.body.scrollTop, t.viewportBottom = t.viewportTop + t.viewportHeight, t.viewportLeft = document.documentElement.scrollLeft || document.body.scrollLeft, t.topSpacing = this.options.topSpacing, t.bottomSpacing = this.options.bottomSpacing, \"function\" == typeof t.topSpacing && (t.topSpacing = parseInt(t.topSpacing(this.sidebar)) || 0), \"function\" == typeof t.bottomSpacing && (t.bottomSpacing = parseInt(t.bottomSpacing(this.sidebar)) || 0), \"VIEWPORT-TOP\" === this.affixedType ? t.topSpacing < t.lastTopSpacing && (t.translateY += t.lastTopSpacing - t.topSpacing, this._reStyle = !0) : \"VIEWPORT-BOTTOM\" === this.affixedType && t.bottomSpacing < t.lastBottomSpacing && (t.translateY += t.lastBottomSpacing - t.bottomSpacing, this._reStyle = !0), t.lastTopSpacing = t.topSpacing, t.lastBottomSpacing = t.bottomSpacing } }, { key: \"isSidebarFitsViewport\", value: function () { var t = this.dimensions, e = \"down\" === this.scrollDirection ? t.lastBottomSpacing : t.lastTopSpacing; return this.dimensions.sidebarHeight + e < this.dimensions.viewportHeight } }, { key: \"observeScrollDir\", value: function () { var t = this.dimensions; if (t.lastViewportTop !== t.viewportTop) { var e = \"down\" === this.direction ? Math.min : Math.max; t.viewportTop === e(t.viewportTop, t.lastViewportTop) && (this.direction = \"down\" === this.direction ? \"up\" : \"down\") } } }, { key: \"getAffixType\", value: function () { this._calcDimensionsWithScroll(); var t = this.dimensions, e = t.viewportTop + t.topSpacing, i = this.affixedType; return e <= t.containerTop || t.containerHeight <= t.sidebarHeight ? (t.translateY = 0, i = \"STATIC\") : i = \"up\" === this.direction ? this._getAffixTypeScrollingUp() : this._getAffixTypeScrollingDown(), t.translateY = Math.max(0, t.translateY), t.translateY = Math.min(t.containerHeight, t.translateY), t.translateY = Math.round(t.translateY), t.lastViewportTop = t.viewportTop, i } }, { key: \"_getAffixTypeScrollingDown\", value: function () { var t = this.dimensions, e = t.sidebarHeight + t.containerTop, i = t.viewportTop + t.topSpacing, n = t.viewportBottom - t.bottomSpacing, o = this.affixedType; return this.isSidebarFitsViewport() ? t.sidebarHeight + i >= t.containerBottom ? (t.translateY = t.containerBottom - e, o = \"CONTAINER-BOTTOM\") : i >= t.containerTop && (t.translateY = i - t.containerTop, o = \"VIEWPORT-TOP\") : t.containerBottom <= n ? (t.translateY = t.containerBottom - e, o = \"CONTAINER-BOTTOM\") : e + t.translateY <= n ? (t.translateY = n - e, o = \"VIEWPORT-BOTTOM\") : t.containerTop + t.translateY <= i && 0 !== t.translateY && t.maxTranslateY !== t.translateY && (o = \"VIEWPORT-UNBOTTOM\"), o } }, { key: \"_getAffixTypeScrollingUp\", value: function () { var t = this.dimensions, e = t.sidebarHeight + t.containerTop, i = t.viewportTop + t.topSpacing, n = t.viewportBottom - t.bottomSpacing, o = this.affixedType; return i <= t.translateY + t.containerTop ? (t.translateY = i - t.containerTop, o = \"VIEWPORT-TOP\") : t.containerBottom <= n ? (t.translateY = t.containerBottom - e, o = \"CONTAINER-BOTTOM\") : this.isSidebarFitsViewport() || t.containerTop <= i && 0 !== t.translateY && t.maxTranslateY !== t.translateY && (o = \"VIEWPORT-UNBOTTOM\"), o } }, { key: \"_getStyle\", value: function (t) { if (void 0 !== t) { var e = { inner: {}, outer: {} }, i = this.dimensions; switch (t) { case \"VIEWPORT-TOP\": e.inner = { position: \"fixed\", top: i.topSpacing, left: i.sidebarLeft - i.viewportLeft, width: i.sidebarWidth }; break; case \"VIEWPORT-BOTTOM\": e.inner = { position: \"fixed\", top: \"auto\", left: i.sidebarLeft, bottom: i.bottomSpacing, width: i.sidebarWidth }; break; case \"CONTAINER-BOTTOM\": case \"VIEWPORT-UNBOTTOM\": var n = this._getTranslate(0, i.translateY + \"px\"); e.inner = n ? { transform: n } : { position: \"absolute\", top: i.translateY, width: i.sidebarWidth } }switch (t) { case \"VIEWPORT-TOP\": case \"VIEWPORT-BOTTOM\": case \"VIEWPORT-UNBOTTOM\": case \"CONTAINER-BOTTOM\": e.outer = { height: i.sidebarHeight, position: \"relative\" } }return e.outer = c.extend({ height: \"\", position: \"\" }, e.outer), e.inner = c.extend({ position: \"relative\", top: \"\", left: \"\", bottom: \"\", width: \"\", transform: \"\" }, e.inner), e } } }, { key: \"stickyPosition\", value: function (t) { if (!this._breakpoint) { t = this._reStyle || t || !1, this.options.topSpacing, this.options.bottomSpacing; var e = this.getAffixType(), i = this._getStyle(e); if ((this.affixedType != e || t) && e) { var n = \"affix.\" + e.toLowerCase().replace(\"viewport-\", \"\") + l; for (var o in c.eventTrigger(this.sidebar, n), \"STATIC\" === e ? c.removeClass(this.sidebar, this.options.stickyClass) : c.addClass(this.sidebar, this.options.stickyClass), i.outer) { var s = \"number\" == typeof i.outer[o] ? \"px\" : \"\"; this.sidebar.style[o] = i.outer[o] + s } for (var r in i.inner) { var a = \"number\" == typeof i.inner[r] ? \"px\" : \"\"; this.sidebarInner.style[r] = i.inner[r] + a } var p = \"affixed.\" + e.toLowerCase().replace(\"viewport-\", \"\") + l; c.eventTrigger(this.sidebar, p) } else this._initialized && (this.sidebarInner.style.left = i.inner.left); this.affixedType = e } } }, { key: \"_widthBreakpoint\", value: function () { window.innerWidth <= this.options.minWidth ? (this._breakpoint = !0, this.affixedType = \"STATIC\", this.sidebar.removeAttribute(\"style\"), c.removeClass(this.sidebar, this.options.stickyClass), this.sidebarInner.removeAttribute(\"style\")) : this._breakpoint = !1 } }, { key: \"updateSticky\", value: function () { var t, e = this, i = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {}; this._running || (this._running = !0, t = i.type, requestAnimationFrame(function () { switch (t) { case \"scroll\": e._calcDimensionsWithScroll(), e.observeScrollDir(), e.stickyPosition(); break; case \"resize\": default: e._widthBreakpoint(), e.calcDimensions(), e.stickyPosition(!0) }e._running = !1 })) } }, { key: \"_setSupportFeatures\", value: function () { var t = this.support; t.transform = c.supportTransform(), t.transform3d = c.supportTransform(!0) } }, { key: \"_getTranslate\", value: function () { var t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : 0, e = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : 0, i = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : 0; return this.support.transform3d ? \"translate3d(\" + t + \", \" + e + \", \" + i + \")\" : !!this.support.translate && \"translate(\" + t + \", \" + e + \")\" } }, { key: \"destroy\", value: function () { window.removeEventListener(\"resize\", this, { capture: !1 }), window.removeEventListener(\"scroll\", this, { capture: !1 }), this.sidebar.classList.remove(this.options.stickyClass), this.sidebar.style.minHeight = \"\", this.sidebar.removeEventListener(\"update\" + l, this); var t = { inner: {}, outer: {} }; for (var e in t.inner = { position: \"\", top: \"\", left: \"\", bottom: \"\", width: \"\", transform: \"\" }, t.outer = { height: \"\", position: \"\" }, t.outer) this.sidebar.style[e] = t.outer[e]; for (var i in t.inner) this.sidebarInner.style[i] = t.inner[i]; this.options.resizeSensor && \"undefined\" != typeof ResizeSensor && (ResizeSensor.detach(this.sidebarInner, this.handleEvent), ResizeSensor.detach(this.container, this.handleEvent)) } }], [{ key: \"supportTransform\", value: function (t) { var i = !1, e = t ? \"perspective\" : \"transform\", n = e.charAt(0).toUpperCase() + e.slice(1), o = document.createElement(\"support\").style; return (e + \" \" + [\"Webkit\", \"Moz\", \"O\", \"ms\"].join(n + \" \") + n).split(\" \").forEach(function (t, e) { if (void 0 !== o[t]) return i = t, !1 }), i } }, { key: \"eventTrigger\", value: function (t, e, i) { try { var n = new CustomEvent(e, { detail: i }) } catch (t) { (n = document.createEvent(\"CustomEvent\")).initCustomEvent(e, !0, !0, i) } t.dispatchEvent(n) } }, { key: \"extend\", value: function (t, e) { var i = {}; for (var n in t) void 0 !== e[n] ? i[n] = e[n] : i[n] = t[n]; return i } }, { key: \"offsetRelative\", value: function (t) { var e = { left: 0, top: 0 }; do { var i = t.offsetTop, n = t.offsetLeft; isNaN(i) || (e.top += i), isNaN(n) || (e.left += n), t = \"BODY\" === t.tagName ? t.parentElement : t.offsetParent } while (t); return e } }, { key: \"addClass\", value: function (t, e) { c.hasClass(t, e) || (t.classList ? t.classList.add(e) : t.className += \" \" + e) } }, { key: \"removeClass\", value: function (t, e) { c.hasClass(t, e) && (t.classList ? t.classList.remove(e) : t.className = t.className.replace(new RegExp(\"(^|\\\\b)\" + e.split(\" \").join(\"|\") + \"(\\\\b|$)\", \"gi\"), \" \")) } }, { key: \"hasClass\", value: function (t, e) { return t.classList ? t.classList.contains(e) : new RegExp(\"(^| )\" + e + \"( |$)\", \"gi\").test(t.className) } }, { key: \"defaults\", get: function () { return n } }]), c }()); t.default = i, window.StickySidebar = i })(e) }(e = { exports: {} }, e.exports), e.exports), o = (i = n) && i.__esModule && Object.prototype.hasOwnProperty.call(i, \"default\") ? i.default : i; t.default = o, t.__moduleExports = n, Object.defineProperty(t, \"__esModule\", { value: !0 }) });","/*** IMPORTS FROM imports-loader ***/\nvar jQuery = require(\"jquery\");\n\n/*! jQuery UI - v1.12.0 - 2016-07-29\r\n* http://jqueryui.com\r\n* Includes: widget.js, position.js, data.js, keycode.js, scroll-parent.js, unique-id.js, widgets/sortable.js, widgets/autocomplete.js, widgets/menu.js, widgets/mouse.js, effect.js, effects/effect-blind.js, effects/effect-bounce.js, effects/effect-clip.js, effects/effect-drop.js, effects/effect-explode.js, effects/effect-fade.js, effects/effect-fold.js, effects/effect-highlight.js, effects/effect-puff.js, effects/effect-pulsate.js, effects/effect-scale.js, effects/effect-shake.js, effects/effect-size.js, effects/effect-slide.js, effects/effect-transfer.js\r\n* Copyright jQuery Foundation and other contributors; Licensed MIT */\r\n\r\n(function (t) { \"function\" == typeof define && define.amd ? define([\"jquery\"], t) : t(jQuery) })(function (t) {\r\n\tt.ui = t.ui || {}, t.ui.version = \"1.12.0\"; var e = 0, i = Array.prototype.slice; t.cleanData = function (e) { return function (i) { var s, n, o; for (o = 0; null != (n = i[o]) ; o++) try { s = t._data(n, \"events\"), s && s.remove && t(n).triggerHandler(\"remove\") } catch (a) { } e(i) } }(t.cleanData), t.widget = function (e, i, s) { var n, o, a, r = {}, l = e.split(\".\")[0]; e = e.split(\".\")[1]; var h = l + \"-\" + e; return s || (s = i, i = t.Widget), t.isArray(s) && (s = t.extend.apply(null, [{}].concat(s))), t.expr[\":\"][h.toLowerCase()] = function (e) { return !!t.data(e, h) }, t[l] = t[l] || {}, n = t[l][e], o = t[l][e] = function (t, e) { return this._createWidget ? (arguments.length && this._createWidget(t, e), void 0) : new o(t, e) }, t.extend(o, n, { version: s.version, _proto: t.extend({}, s), _childConstructors: [] }), a = new i, a.options = t.widget.extend({}, a.options), t.each(s, function (e, s) { return t.isFunction(s) ? (r[e] = function () { function t() { return i.prototype[e].apply(this, arguments) } function n(t) { return i.prototype[e].apply(this, t) } return function () { var e, i = this._super, o = this._superApply; return this._super = t, this._superApply = n, e = s.apply(this, arguments), this._super = i, this._superApply = o, e } }(), void 0) : (r[e] = s, void 0) }), o.prototype = t.widget.extend(a, { widgetEventPrefix: n ? a.widgetEventPrefix || e : e }, r, { constructor: o, namespace: l, widgetName: e, widgetFullName: h }), n ? (t.each(n._childConstructors, function (e, i) { var s = i.prototype; t.widget(s.namespace + \".\" + s.widgetName, o, i._proto) }), delete n._childConstructors) : i._childConstructors.push(o), t.widget.bridge(e, o), o }, t.widget.extend = function (e) { for (var s, n, o = i.call(arguments, 1), a = 0, r = o.length; r > a; a++) for (s in o[a]) n = o[a][s], o[a].hasOwnProperty(s) && void 0 !== n && (e[s] = t.isPlainObject(n) ? t.isPlainObject(e[s]) ? t.widget.extend({}, e[s], n) : t.widget.extend({}, n) : n); return e }, t.widget.bridge = function (e, s) { var n = s.prototype.widgetFullName || e; t.fn[e] = function (o) { var a = \"string\" == typeof o, r = i.call(arguments, 1), l = this; return a ? this.each(function () { var i, s = t.data(this, n); return \"instance\" === o ? (l = s, !1) : s ? t.isFunction(s[o]) && \"_\" !== o.charAt(0) ? (i = s[o].apply(s, r), i !== s && void 0 !== i ? (l = i && i.jquery ? l.pushStack(i.get()) : i, !1) : void 0) : t.error(\"no such method '\" + o + \"' for \" + e + \" widget instance\") : t.error(\"cannot call methods on \" + e + \" prior to initialization; \" + \"attempted to call method '\" + o + \"'\") }) : (r.length && (o = t.widget.extend.apply(null, [o].concat(r))), this.each(function () { var e = t.data(this, n); e ? (e.option(o || {}), e._init && e._init()) : t.data(this, n, new s(o, this)) })), l } }, t.Widget = function () { }, t.Widget._childConstructors = [], t.Widget.prototype = { widgetName: \"widget\", widgetEventPrefix: \"\", defaultElement: \"
\", options: { classes: {}, disabled: !1, create: null }, _createWidget: function (i, s) { s = t(s || this.defaultElement || this)[0], this.element = t(s), this.uuid = e++, this.eventNamespace = \".\" + this.widgetName + this.uuid, this.bindings = t(), this.hoverable = t(), this.focusable = t(), this.classesElementLookup = {}, s !== this && (t.data(s, this.widgetFullName, this), this._on(!0, this.element, { remove: function (t) { t.target === s && this.destroy() } }), this.document = t(s.style ? s.ownerDocument : s.document || s), this.window = t(this.document[0].defaultView || this.document[0].parentWindow)), this.options = t.widget.extend({}, this.options, this._getCreateOptions(), i), this._create(), this.options.disabled && this._setOptionDisabled(this.options.disabled), this._trigger(\"create\", null, this._getCreateEventData()), this._init() }, _getCreateOptions: function () { return {} }, _getCreateEventData: t.noop, _create: t.noop, _init: t.noop, destroy: function () { var e = this; this._destroy(), t.each(this.classesElementLookup, function (t, i) { e._removeClass(i, t) }), this.element.off(this.eventNamespace).removeData(this.widgetFullName), this.widget().off(this.eventNamespace).removeAttr(\"aria-disabled\"), this.bindings.off(this.eventNamespace) }, _destroy: t.noop, widget: function () { return this.element }, option: function (e, i) { var s, n, o, a = e; if (0 === arguments.length) return t.widget.extend({}, this.options); if (\"string\" == typeof e) if (a = {}, s = e.split(\".\"), e = s.shift(), s.length) { for (n = a[e] = t.widget.extend({}, this.options[e]), o = 0; s.length - 1 > o; o++) n[s[o]] = n[s[o]] || {}, n = n[s[o]]; if (e = s.pop(), 1 === arguments.length) return void 0 === n[e] ? null : n[e]; n[e] = i } else { if (1 === arguments.length) return void 0 === this.options[e] ? null : this.options[e]; a[e] = i } return this._setOptions(a), this }, _setOptions: function (t) { var e; for (e in t) this._setOption(e, t[e]); return this }, _setOption: function (t, e) { return \"classes\" === t && this._setOptionClasses(e), this.options[t] = e, \"disabled\" === t && this._setOptionDisabled(e), this }, _setOptionClasses: function (e) { var i, s, n; for (i in e) n = this.classesElementLookup[i], e[i] !== this.options.classes[i] && n && n.length && (s = t(n.get()), this._removeClass(n, i), s.addClass(this._classes({ element: s, keys: i, classes: e, add: !0 }))) }, _setOptionDisabled: function (t) { this._toggleClass(this.widget(), this.widgetFullName + \"-disabled\", null, !!t), t && (this._removeClass(this.hoverable, null, \"ui-state-hover\"), this._removeClass(this.focusable, null, \"ui-state-focus\")) }, enable: function () { return this._setOptions({ disabled: !1 }) }, disable: function () { return this._setOptions({ disabled: !0 }) }, _classes: function (e) { function i(i, o) { var a, r; for (r = 0; i.length > r; r++) a = n.classesElementLookup[i[r]] || t(), a = e.add ? t(t.unique(a.get().concat(e.element.get()))) : t(a.not(e.element).get()), n.classesElementLookup[i[r]] = a, s.push(i[r]), o && e.classes[i[r]] && s.push(e.classes[i[r]]) } var s = [], n = this; return e = t.extend({ element: this.element, classes: this.options.classes || {} }, e), e.keys && i(e.keys.match(/\\S+/g) || [], !0), e.extra && i(e.extra.match(/\\S+/g) || []), s.join(\" \") }, _removeClass: function (t, e, i) { return this._toggleClass(t, e, i, !1) }, _addClass: function (t, e, i) { return this._toggleClass(t, e, i, !0) }, _toggleClass: function (t, e, i, s) { s = \"boolean\" == typeof s ? s : i; var n = \"string\" == typeof t || null === t, o = { extra: n ? e : i, keys: n ? t : e, element: n ? this.element : t, add: s }; return o.element.toggleClass(this._classes(o), s), this }, _on: function (e, i, s) { var n, o = this; \"boolean\" != typeof e && (s = i, i = e, e = !1), s ? (i = n = t(i), this.bindings = this.bindings.add(i)) : (s = i, i = this.element, n = this.widget()), t.each(s, function (s, a) { function r() { return e || o.options.disabled !== !0 && !t(this).hasClass(\"ui-state-disabled\") ? (\"string\" == typeof a ? o[a] : a).apply(o, arguments) : void 0 } \"string\" != typeof a && (r.guid = a.guid = a.guid || r.guid || t.guid++); var l = s.match(/^([\\w:-]*)\\s*(.*)$/), h = l[1] + o.eventNamespace, c = l[2]; c ? n.on(h, c, r) : i.on(h, r) }) }, _off: function (e, i) { i = (i || \"\").split(\" \").join(this.eventNamespace + \" \") + this.eventNamespace, e.off(i).off(i), this.bindings = t(this.bindings.not(e).get()), this.focusable = t(this.focusable.not(e).get()), this.hoverable = t(this.hoverable.not(e).get()) }, _delay: function (t, e) { function i() { return (\"string\" == typeof t ? s[t] : t).apply(s, arguments) } var s = this; return setTimeout(i, e || 0) }, _hoverable: function (e) { this.hoverable = this.hoverable.add(e), this._on(e, { mouseenter: function (e) { this._addClass(t(e.currentTarget), null, \"ui-state-hover\") }, mouseleave: function (e) { this._removeClass(t(e.currentTarget), null, \"ui-state-hover\") } }) }, _focusable: function (e) { this.focusable = this.focusable.add(e), this._on(e, { focusin: function (e) { this._addClass(t(e.currentTarget), null, \"ui-state-focus\") }, focusout: function (e) { this._removeClass(t(e.currentTarget), null, \"ui-state-focus\") } }) }, _trigger: function (e, i, s) { var n, o, a = this.options[e]; if (s = s || {}, i = t.Event(i), i.type = (e === this.widgetEventPrefix ? e : this.widgetEventPrefix + e).toLowerCase(), i.target = this.element[0], o = i.originalEvent) for (n in o) n in i || (i[n] = o[n]); return this.element.trigger(i, s), !(t.isFunction(a) && a.apply(this.element[0], [i].concat(s)) === !1 || i.isDefaultPrevented()) } }, t.each({ show: \"fadeIn\", hide: \"fadeOut\" }, function (e, i) { t.Widget.prototype[\"_\" + e] = function (s, n, o) { \"string\" == typeof n && (n = { effect: n }); var a, r = n ? n === !0 || \"number\" == typeof n ? i : n.effect || i : e; n = n || {}, \"number\" == typeof n && (n = { duration: n }), a = !t.isEmptyObject(n), n.complete = o, n.delay && s.delay(n.delay), a && t.effects && t.effects.effect[r] ? s[e](n) : r !== e && s[r] ? s[r](n.duration, n.easing, o) : s.queue(function (i) { t(this)[e](), o && o.call(s[0]), i() }) } }), t.widget, function () { function e(t, e, i) { return [parseFloat(t[0]) * (p.test(t[0]) ? e / 100 : 1), parseFloat(t[1]) * (p.test(t[1]) ? i / 100 : 1)] } function i(e, i) { return parseInt(t.css(e, i), 10) || 0 } function s(e) { var i = e[0]; return 9 === i.nodeType ? { width: e.width(), height: e.height(), offset: { top: 0, left: 0 } } : t.isWindow(i) ? { width: e.width(), height: e.height(), offset: { top: e.scrollTop(), left: e.scrollLeft() } } : i.preventDefault ? { width: 0, height: 0, offset: { top: i.pageY, left: i.pageX } } : { width: e.outerWidth(), height: e.outerHeight(), offset: e.offset() } } var n, o, a = Math.max, r = Math.abs, l = Math.round, h = /left|center|right/, c = /top|center|bottom/, u = /[\\+\\-]\\d+(\\.[\\d]+)?%?/, d = /^\\w+/, p = /%$/, f = t.fn.position; o = function () { var e = t(\"
\").css(\"position\", \"absolute\").appendTo(\"body\").offset({ top: 1.5, left: 1.5 }), i = 1.5 === e.offset().top; return e.remove(), o = function () { return i }, i }, t.position = { scrollbarWidth: function () { if (void 0 !== n) return n; var e, i, s = t(\"
\"), o = s.children()[0]; return t(\"body\").append(s), e = o.offsetWidth, s.css(\"overflow\", \"scroll\"), i = o.offsetWidth, e === i && (i = s[0].clientWidth), s.remove(), n = e - i }, getScrollInfo: function (e) { var i = e.isWindow || e.isDocument ? \"\" : e.element.css(\"overflow-x\"), s = e.isWindow || e.isDocument ? \"\" : e.element.css(\"overflow-y\"), n = \"scroll\" === i || \"auto\" === i && e.width < e.element[0].scrollWidth, o = \"scroll\" === s || \"auto\" === s && e.height < e.element[0].scrollHeight; return { width: o ? t.position.scrollbarWidth() : 0, height: n ? t.position.scrollbarWidth() : 0 } }, getWithinInfo: function (e) { var i = t(e || window), s = t.isWindow(i[0]), n = !!i[0] && 9 === i[0].nodeType, o = !s && !n; return { element: i, isWindow: s, isDocument: n, offset: o ? t(e).offset() : { left: 0, top: 0 }, scrollLeft: i.scrollLeft(), scrollTop: i.scrollTop(), width: i.outerWidth(), height: i.outerHeight() } } }, t.fn.position = function (n) { if (!n || !n.of) return f.apply(this, arguments); n = t.extend({}, n); var p, g, m, _, v, b, y = t(n.of), w = t.position.getWithinInfo(n.within), k = t.position.getScrollInfo(w), x = (n.collision || \"flip\").split(\" \"), C = {}; return b = s(y), y[0].preventDefault && (n.at = \"left top\"), g = b.width, m = b.height, _ = b.offset, v = t.extend({}, _), t.each([\"my\", \"at\"], function () { var t, e, i = (n[this] || \"\").split(\" \"); 1 === i.length && (i = h.test(i[0]) ? i.concat([\"center\"]) : c.test(i[0]) ? [\"center\"].concat(i) : [\"center\", \"center\"]), i[0] = h.test(i[0]) ? i[0] : \"center\", i[1] = c.test(i[1]) ? i[1] : \"center\", t = u.exec(i[0]), e = u.exec(i[1]), C[this] = [t ? t[0] : 0, e ? e[0] : 0], n[this] = [d.exec(i[0])[0], d.exec(i[1])[0]] }), 1 === x.length && (x[1] = x[0]), \"right\" === n.at[0] ? v.left += g : \"center\" === n.at[0] && (v.left += g / 2), \"bottom\" === n.at[1] ? v.top += m : \"center\" === n.at[1] && (v.top += m / 2), p = e(C.at, g, m), v.left += p[0], v.top += p[1], this.each(function () { var s, h, c = t(this), u = c.outerWidth(), d = c.outerHeight(), f = i(this, \"marginLeft\"), b = i(this, \"marginTop\"), D = u + f + i(this, \"marginRight\") + k.width, T = d + b + i(this, \"marginBottom\") + k.height, I = t.extend({}, v), M = e(C.my, c.outerWidth(), c.outerHeight()); \"right\" === n.my[0] ? I.left -= u : \"center\" === n.my[0] && (I.left -= u / 2), \"bottom\" === n.my[1] ? I.top -= d : \"center\" === n.my[1] && (I.top -= d / 2), I.left += M[0], I.top += M[1], o() || (I.left = l(I.left), I.top = l(I.top)), s = { marginLeft: f, marginTop: b }, t.each([\"left\", \"top\"], function (e, i) { t.ui.position[x[e]] && t.ui.position[x[e]][i](I, { targetWidth: g, targetHeight: m, elemWidth: u, elemHeight: d, collisionPosition: s, collisionWidth: D, collisionHeight: T, offset: [p[0] + M[0], p[1] + M[1]], my: n.my, at: n.at, within: w, elem: c }) }), n.using && (h = function (t) { var e = _.left - I.left, i = e + g - u, s = _.top - I.top, o = s + m - d, l = { target: { element: y, left: _.left, top: _.top, width: g, height: m }, element: { element: c, left: I.left, top: I.top, width: u, height: d }, horizontal: 0 > i ? \"left\" : e > 0 ? \"right\" : \"center\", vertical: 0 > o ? \"top\" : s > 0 ? \"bottom\" : \"middle\" }; u > g && g > r(e + i) && (l.horizontal = \"center\"), d > m && m > r(s + o) && (l.vertical = \"middle\"), l.important = a(r(e), r(i)) > a(r(s), r(o)) ? \"horizontal\" : \"vertical\", n.using.call(this, t, l) }), c.offset(t.extend(I, { using: h })) }) }, t.ui.position = { fit: { left: function (t, e) { var i, s = e.within, n = s.isWindow ? s.scrollLeft : s.offset.left, o = s.width, r = t.left - e.collisionPosition.marginLeft, l = n - r, h = r + e.collisionWidth - o - n; e.collisionWidth > o ? l > 0 && 0 >= h ? (i = t.left + l + e.collisionWidth - o - n, t.left += l - i) : t.left = h > 0 && 0 >= l ? n : l > h ? n + o - e.collisionWidth : n : l > 0 ? t.left += l : h > 0 ? t.left -= h : t.left = a(t.left - r, t.left) }, top: function (t, e) { var i, s = e.within, n = s.isWindow ? s.scrollTop : s.offset.top, o = e.within.height, r = t.top - e.collisionPosition.marginTop, l = n - r, h = r + e.collisionHeight - o - n; e.collisionHeight > o ? l > 0 && 0 >= h ? (i = t.top + l + e.collisionHeight - o - n, t.top += l - i) : t.top = h > 0 && 0 >= l ? n : l > h ? n + o - e.collisionHeight : n : l > 0 ? t.top += l : h > 0 ? t.top -= h : t.top = a(t.top - r, t.top) } }, flip: { left: function (t, e) { var i, s, n = e.within, o = n.offset.left + n.scrollLeft, a = n.width, l = n.isWindow ? n.scrollLeft : n.offset.left, h = t.left - e.collisionPosition.marginLeft, c = h - l, u = h + e.collisionWidth - a - l, d = \"left\" === e.my[0] ? -e.elemWidth : \"right\" === e.my[0] ? e.elemWidth : 0, p = \"left\" === e.at[0] ? e.targetWidth : \"right\" === e.at[0] ? -e.targetWidth : 0, f = -2 * e.offset[0]; 0 > c ? (i = t.left + d + p + f + e.collisionWidth - a - o, (0 > i || r(c) > i) && (t.left += d + p + f)) : u > 0 && (s = t.left - e.collisionPosition.marginLeft + d + p + f - l, (s > 0 || u > r(s)) && (t.left += d + p + f)) }, top: function (t, e) { var i, s, n = e.within, o = n.offset.top + n.scrollTop, a = n.height, l = n.isWindow ? n.scrollTop : n.offset.top, h = t.top - e.collisionPosition.marginTop, c = h - l, u = h + e.collisionHeight - a - l, d = \"top\" === e.my[1], p = d ? -e.elemHeight : \"bottom\" === e.my[1] ? e.elemHeight : 0, f = \"top\" === e.at[1] ? e.targetHeight : \"bottom\" === e.at[1] ? -e.targetHeight : 0, g = -2 * e.offset[1]; 0 > c ? (s = t.top + p + f + g + e.collisionHeight - a - o, (0 > s || r(c) > s) && (t.top += p + f + g)) : u > 0 && (i = t.top - e.collisionPosition.marginTop + p + f + g - l, (i > 0 || u > r(i)) && (t.top += p + f + g)) } }, flipfit: { left: function () { t.ui.position.flip.left.apply(this, arguments), t.ui.position.fit.left.apply(this, arguments) }, top: function () { t.ui.position.flip.top.apply(this, arguments), t.ui.position.fit.top.apply(this, arguments) } } } }(), t.ui.position, t.extend(t.expr[\":\"], { data: t.expr.createPseudo ? t.expr.createPseudo(function (e) { return function (i) { return !!t.data(i, e) } }) : function (e, i, s) { return !!t.data(e, s[3]) } }), t.ui.keyCode = { BACKSPACE: 8, COMMA: 188, DELETE: 46, DOWN: 40, END: 35, ENTER: 13, ESCAPE: 27, HOME: 36, LEFT: 37, PAGE_DOWN: 34, PAGE_UP: 33, PERIOD: 190, RIGHT: 39, SPACE: 32, TAB: 9, UP: 38 }, t.fn.scrollParent = function (e) { var i = this.css(\"position\"), s = \"absolute\" === i, n = e ? /(auto|scroll|hidden)/ : /(auto|scroll)/, o = this.parents().filter(function () { var e = t(this); return s && \"static\" === e.css(\"position\") ? !1 : n.test(e.css(\"overflow\") + e.css(\"overflow-y\") + e.css(\"overflow-x\")) }).eq(0); return \"fixed\" !== i && o.length ? o : t(this[0].ownerDocument || document) }, t.fn.extend({ uniqueId: function () { var t = 0; return function () { return this.each(function () { this.id || (this.id = \"ui-id-\" + ++t) }) } }(), removeUniqueId: function () { return this.each(function () { /^ui-id-\\d+$/.test(this.id) && t(this).removeAttr(\"id\") }) } }), t.ui.ie = !!/msie [\\w.]+/.exec(navigator.userAgent.toLowerCase()); var s = !1; t(document).on(\"mouseup\", function () { s = !1 }), t.widget(\"ui.mouse\", { version: \"1.12.0\", options: { cancel: \"input, textarea, button, select, option\", distance: 1, delay: 0 }, _mouseInit: function () { var e = this; this.element.on(\"mousedown.\" + this.widgetName, function (t) { return e._mouseDown(t) }).on(\"click.\" + this.widgetName, function (i) { return !0 === t.data(i.target, e.widgetName + \".preventClickEvent\") ? (t.removeData(i.target, e.widgetName + \".preventClickEvent\"), i.stopImmediatePropagation(), !1) : void 0 }), this.started = !1 }, _mouseDestroy: function () { this.element.off(\".\" + this.widgetName), this._mouseMoveDelegate && this.document.off(\"mousemove.\" + this.widgetName, this._mouseMoveDelegate).off(\"mouseup.\" + this.widgetName, this._mouseUpDelegate) }, _mouseDown: function (e) { if (!s) { this._mouseMoved = !1, this._mouseStarted && this._mouseUp(e), this._mouseDownEvent = e; var i = this, n = 1 === e.which, o = \"string\" == typeof this.options.cancel && e.target.nodeName ? t(e.target).closest(this.options.cancel).length : !1; return n && !o && this._mouseCapture(e) ? (this.mouseDelayMet = !this.options.delay, this.mouseDelayMet || (this._mouseDelayTimer = setTimeout(function () { i.mouseDelayMet = !0 }, this.options.delay)), this._mouseDistanceMet(e) && this._mouseDelayMet(e) && (this._mouseStarted = this._mouseStart(e) !== !1, !this._mouseStarted) ? (e.preventDefault(), !0) : (!0 === t.data(e.target, this.widgetName + \".preventClickEvent\") && t.removeData(e.target, this.widgetName + \".preventClickEvent\"), this._mouseMoveDelegate = function (t) { return i._mouseMove(t) }, this._mouseUpDelegate = function (t) { return i._mouseUp(t) }, this.document.on(\"mousemove.\" + this.widgetName, this._mouseMoveDelegate).on(\"mouseup.\" + this.widgetName, this._mouseUpDelegate), e.preventDefault(), s = !0, !0)) : !0 } }, _mouseMove: function (e) { if (this._mouseMoved) { if (t.ui.ie && (!document.documentMode || 9 > document.documentMode) && !e.button) return this._mouseUp(e); if (!e.which) if (e.originalEvent.altKey || e.originalEvent.ctrlKey || e.originalEvent.metaKey || e.originalEvent.shiftKey) this.ignoreMissingWhich = !0; else if (!this.ignoreMissingWhich) return this._mouseUp(e) } return (e.which || e.button) && (this._mouseMoved = !0), this._mouseStarted ? (this._mouseDrag(e), e.preventDefault()) : (this._mouseDistanceMet(e) && this._mouseDelayMet(e) && (this._mouseStarted = this._mouseStart(this._mouseDownEvent, e) !== !1, this._mouseStarted ? this._mouseDrag(e) : this._mouseUp(e)), !this._mouseStarted) }, _mouseUp: function (e) { this.document.off(\"mousemove.\" + this.widgetName, this._mouseMoveDelegate).off(\"mouseup.\" + this.widgetName, this._mouseUpDelegate), this._mouseStarted && (this._mouseStarted = !1, e.target === this._mouseDownEvent.target && t.data(e.target, this.widgetName + \".preventClickEvent\", !0), this._mouseStop(e)), this._mouseDelayTimer && (clearTimeout(this._mouseDelayTimer), delete this._mouseDelayTimer), this.ignoreMissingWhich = !1, s = !1, e.preventDefault() }, _mouseDistanceMet: function (t) { return Math.max(Math.abs(this._mouseDownEvent.pageX - t.pageX), Math.abs(this._mouseDownEvent.pageY - t.pageY)) >= this.options.distance }, _mouseDelayMet: function () { return this.mouseDelayMet }, _mouseStart: function () { }, _mouseDrag: function () { }, _mouseStop: function () { }, _mouseCapture: function () { return !0 } }), t.widget(\"ui.sortable\", t.ui.mouse, {\r\n\t\tversion: \"1.12.0\", widgetEventPrefix: \"sort\", ready: !1, options: { appendTo: \"parent\", axis: !1, connectWith: !1, containment: !1, cursor: \"auto\", cursorAt: !1, dropOnEmpty: !0, forcePlaceholderSize: !1, forceHelperSize: !1, grid: !1, handle: !1, helper: \"original\", items: \"> *\", opacity: !1, placeholder: !1, revert: !1, scroll: !0, scrollSensitivity: 20, scrollSpeed: 20, scope: \"default\", tolerance: \"intersect\", zIndex: 1e3, activate: null, beforeStop: null, change: null, deactivate: null, out: null, over: null, receive: null, remove: null, sort: null, start: null, stop: null, update: null }, _isOverAxis: function (t, e, i) { return t >= e && e + i > t }, _isFloating: function (t) { return /left|right/.test(t.css(\"float\")) || /inline|table-cell/.test(t.css(\"display\")) }, _create: function () { this.containerCache = {}, this._addClass(\"ui-sortable\"), this.refresh(), this.offset = this.element.offset(), this._mouseInit(), this._setHandleClassName(), this.ready = !0 }, _setOption: function (t, e) { this._super(t, e), \"handle\" === t && this._setHandleClassName() }, _setHandleClassName: function () { var e = this; this._removeClass(this.element.find(\".ui-sortable-handle\"), \"ui-sortable-handle\"), t.each(this.items, function () { e._addClass(this.instance.options.handle ? this.item.find(this.instance.options.handle) : this.item, \"ui-sortable-handle\") }) }, _destroy: function () { this._mouseDestroy(); for (var t = this.items.length - 1; t >= 0; t--) this.items[t].item.removeData(this.widgetName + \"-item\"); return this }, _mouseCapture: function (e, i) { var s = null, n = !1, o = this; return this.reverting ? !1 : this.options.disabled || \"static\" === this.options.type ? !1 : (this._refreshItems(e), t(e.target).parents().each(function () { return t.data(this, o.widgetName + \"-item\") === o ? (s = t(this), !1) : void 0 }), t.data(e.target, o.widgetName + \"-item\") === o && (s = t(e.target)), s ? !this.options.handle || i || (t(this.options.handle, s).find(\"*\").addBack().each(function () { this === e.target && (n = !0) }), n) ? (this.currentItem = s, this._removeCurrentsFromItems(), !0) : !1 : !1) }, _mouseStart: function (e, i, s) { var n, o, a = this.options; if (this.currentContainer = this, this.refreshPositions(), this.helper = this._createHelper(e), this._cacheHelperProportions(), this._cacheMargins(), this.scrollParent = this.helper.scrollParent(), this.offset = this.currentItem.offset(), this.offset = { top: this.offset.top - this.margins.top, left: this.offset.left - this.margins.left }, t.extend(this.offset, { click: { left: e.pageX - this.offset.left, top: e.pageY - this.offset.top }, parent: this._getParentOffset(), relative: this._getRelativeOffset() }), this.helper.css(\"position\", \"absolute\"), this.cssPosition = this.helper.css(\"position\"), this.originalPosition = this._generatePosition(e), this.originalPageX = e.pageX, this.originalPageY = e.pageY, a.cursorAt && this._adjustOffsetFromHelper(a.cursorAt), this.domPosition = { prev: this.currentItem.prev()[0], parent: this.currentItem.parent()[0] }, this.helper[0] !== this.currentItem[0] && this.currentItem.hide(), this._createPlaceholder(), a.containment && this._setContainment(), a.cursor && \"auto\" !== a.cursor && (o = this.document.find(\"body\"), this.storedCursor = o.css(\"cursor\"), o.css(\"cursor\", a.cursor), this.storedStylesheet = t(\"\").appendTo(o)), a.opacity && (this.helper.css(\"opacity\") && (this._storedOpacity = this.helper.css(\"opacity\")), this.helper.css(\"opacity\", a.opacity)), a.zIndex && (this.helper.css(\"zIndex\") && (this._storedZIndex = this.helper.css(\"zIndex\")), this.helper.css(\"zIndex\", a.zIndex)), this.scrollParent[0] !== this.document[0] && \"HTML\" !== this.scrollParent[0].tagName && (this.overflowOffset = this.scrollParent.offset()), this._trigger(\"start\", e, this._uiHash()), this._preserveHelperProportions || this._cacheHelperProportions(), !s) for (n = this.containers.length - 1; n >= 0; n--) this.containers[n]._trigger(\"activate\", e, this._uiHash(this)); return t.ui.ddmanager && (t.ui.ddmanager.current = this), t.ui.ddmanager && !a.dropBehaviour && t.ui.ddmanager.prepareOffsets(this, e), this.dragging = !0, this._addClass(this.helper, \"ui-sortable-helper\"), this._mouseDrag(e), !0 }, _mouseDrag: function (e) { var i, s, n, o, a = this.options, r = !1; for (this.position = this._generatePosition(e), this.positionAbs = this._convertPositionTo(\"absolute\"), this.lastPositionAbs || (this.lastPositionAbs = this.positionAbs), this.options.scroll && (this.scrollParent[0] !== this.document[0] && \"HTML\" !== this.scrollParent[0].tagName ? (this.overflowOffset.top + this.scrollParent[0].offsetHeight - e.pageY < a.scrollSensitivity ? this.scrollParent[0].scrollTop = r = this.scrollParent[0].scrollTop + a.scrollSpeed : e.pageY - this.overflowOffset.top < a.scrollSensitivity && (this.scrollParent[0].scrollTop = r = this.scrollParent[0].scrollTop - a.scrollSpeed), this.overflowOffset.left + this.scrollParent[0].offsetWidth - e.pageX < a.scrollSensitivity ? this.scrollParent[0].scrollLeft = r = this.scrollParent[0].scrollLeft + a.scrollSpeed : e.pageX - this.overflowOffset.left < a.scrollSensitivity && (this.scrollParent[0].scrollLeft = r = this.scrollParent[0].scrollLeft - a.scrollSpeed)) : (e.pageY - this.document.scrollTop() < a.scrollSensitivity ? r = this.document.scrollTop(this.document.scrollTop() - a.scrollSpeed) : this.window.height() - (e.pageY - this.document.scrollTop()) < a.scrollSensitivity && (r = this.document.scrollTop(this.document.scrollTop() + a.scrollSpeed)), e.pageX - this.document.scrollLeft() < a.scrollSensitivity ? r = this.document.scrollLeft(this.document.scrollLeft() - a.scrollSpeed) : this.window.width() - (e.pageX - this.document.scrollLeft()) < a.scrollSensitivity && (r = this.document.scrollLeft(this.document.scrollLeft() + a.scrollSpeed))), r !== !1 && t.ui.ddmanager && !a.dropBehaviour && t.ui.ddmanager.prepareOffsets(this, e)), this.positionAbs = this._convertPositionTo(\"absolute\"), this.options.axis && \"y\" === this.options.axis || (this.helper[0].style.left = this.position.left + \"px\"), this.options.axis && \"x\" === this.options.axis || (this.helper[0].style.top = this.position.top + \"px\"), i = this.items.length - 1; i >= 0; i--) if (s = this.items[i], n = s.item[0], o = this._intersectsWithPointer(s), o && s.instance === this.currentContainer && n !== this.currentItem[0] && this.placeholder[1 === o ? \"next\" : \"prev\"]()[0] !== n && !t.contains(this.placeholder[0], n) && (\"semi-dynamic\" === this.options.type ? !t.contains(this.element[0], n) : !0)) { if (this.direction = 1 === o ? \"down\" : \"up\", \"pointer\" !== this.options.tolerance && !this._intersectsWithSides(s)) break; this._rearrange(e, s), this._trigger(\"change\", e, this._uiHash()); break } return this._contactContainers(e), t.ui.ddmanager && t.ui.ddmanager.drag(this, e), this._trigger(\"sort\", e, this._uiHash()), this.lastPositionAbs = this.positionAbs, !1 }, _mouseStop: function (e, i) { if (e) { if (t.ui.ddmanager && !this.options.dropBehaviour && t.ui.ddmanager.drop(this, e), this.options.revert) { var s = this, n = this.placeholder.offset(), o = this.options.axis, a = {}; o && \"x\" !== o || (a.left = n.left - this.offset.parent.left - this.margins.left + (this.offsetParent[0] === this.document[0].body ? 0 : this.offsetParent[0].scrollLeft)), o && \"y\" !== o || (a.top = n.top - this.offset.parent.top - this.margins.top + (this.offsetParent[0] === this.document[0].body ? 0 : this.offsetParent[0].scrollTop)), this.reverting = !0, t(this.helper).animate(a, parseInt(this.options.revert, 10) || 500, function () { s._clear(e) }) } else this._clear(e, i); return !1 } }, cancel: function () { if (this.dragging) { this._mouseUp({ target: null }), \"original\" === this.options.helper ? (this.currentItem.css(this._storedCSS), this._removeClass(this.currentItem, \"ui-sortable-helper\")) : this.currentItem.show(); for (var e = this.containers.length - 1; e >= 0; e--) this.containers[e]._trigger(\"deactivate\", null, this._uiHash(this)), this.containers[e].containerCache.over && (this.containers[e]._trigger(\"out\", null, this._uiHash(this)), this.containers[e].containerCache.over = 0) } return this.placeholder && (this.placeholder[0].parentNode && this.placeholder[0].parentNode.removeChild(this.placeholder[0]), \"original\" !== this.options.helper && this.helper && this.helper[0].parentNode && this.helper.remove(), t.extend(this, { helper: null, dragging: !1, reverting: !1, _noFinalSort: null }), this.domPosition.prev ? t(this.domPosition.prev).after(this.currentItem) : t(this.domPosition.parent).prepend(this.currentItem)), this }, serialize: function (e) { var i = this._getItemsAsjQuery(e && e.connected), s = []; return e = e || {}, t(i).each(function () { var i = (t(e.item || this).attr(e.attribute || \"id\") || \"\").match(e.expression || /(.+)[\\-=_](.+)/); i && s.push((e.key || i[1] + \"[]\") + \"=\" + (e.key && e.expression ? i[1] : i[2])) }), !s.length && e.key && s.push(e.key + \"=\"), s.join(\"&\") }, toArray: function (e) { var i = this._getItemsAsjQuery(e && e.connected), s = []; return e = e || {}, i.each(function () { s.push(t(e.item || this).attr(e.attribute || \"id\") || \"\") }), s }, _intersectsWith: function (t) { var e = this.positionAbs.left, i = e + this.helperProportions.width, s = this.positionAbs.top, n = s + this.helperProportions.height, o = t.left, a = o + t.width, r = t.top, l = r + t.height, h = this.offset.click.top, c = this.offset.click.left, u = \"x\" === this.options.axis || s + h > r && l > s + h, d = \"y\" === this.options.axis || e + c > o && a > e + c, p = u && d; return \"pointer\" === this.options.tolerance || this.options.forcePointerForContainers || \"pointer\" !== this.options.tolerance && this.helperProportions[this.floating ? \"width\" : \"height\"] > t[this.floating ? \"width\" : \"height\"] ? p : e + this.helperProportions.width / 2 > o && a > i - this.helperProportions.width / 2 && s + this.helperProportions.height / 2 > r && l > n - this.helperProportions.height / 2 }, _intersectsWithPointer: function (t) { var e, i, s = \"x\" === this.options.axis || this._isOverAxis(this.positionAbs.top + this.offset.click.top, t.top, t.height), n = \"y\" === this.options.axis || this._isOverAxis(this.positionAbs.left + this.offset.click.left, t.left, t.width), o = s && n; return o ? (e = this._getDragVerticalDirection(), i = this._getDragHorizontalDirection(), this.floating ? \"right\" === i || \"down\" === e ? 2 : 1 : e && (\"down\" === e ? 2 : 1)) : !1 }, _intersectsWithSides: function (t) { var e = this._isOverAxis(this.positionAbs.top + this.offset.click.top, t.top + t.height / 2, t.height), i = this._isOverAxis(this.positionAbs.left + this.offset.click.left, t.left + t.width / 2, t.width), s = this._getDragVerticalDirection(), n = this._getDragHorizontalDirection(); return this.floating && n ? \"right\" === n && i || \"left\" === n && !i : s && (\"down\" === s && e || \"up\" === s && !e) }, _getDragVerticalDirection: function () { var t = this.positionAbs.top - this.lastPositionAbs.top; return 0 !== t && (t > 0 ? \"down\" : \"up\") }, _getDragHorizontalDirection: function () { var t = this.positionAbs.left - this.lastPositionAbs.left; return 0 !== t && (t > 0 ? \"right\" : \"left\") }, refresh: function (t) { return this._refreshItems(t), this._setHandleClassName(), this.refreshPositions(), this }, _connectWith: function () { var t = this.options; return t.connectWith.constructor === String ? [t.connectWith] : t.connectWith }, _getItemsAsjQuery: function (e) { function i() { r.push(this) } var s, n, o, a, r = [], l = [], h = this._connectWith(); if (h && e) for (s = h.length - 1; s >= 0; s--) for (o = t(h[s], this.document[0]), n = o.length - 1; n >= 0; n--) a = t.data(o[n], this.widgetFullName), a && a !== this && !a.options.disabled && l.push([t.isFunction(a.options.items) ? a.options.items.call(a.element) : t(a.options.items, a.element).not(\".ui-sortable-helper\").not(\".ui-sortable-placeholder\"), a]); for (l.push([t.isFunction(this.options.items) ? this.options.items.call(this.element, null, { options: this.options, item: this.currentItem }) : t(this.options.items, this.element).not(\".ui-sortable-helper\").not(\".ui-sortable-placeholder\"), this]), s = l.length - 1; s >= 0; s--) l[s][0].each(i); return t(r) }, _removeCurrentsFromItems: function () { var e = this.currentItem.find(\":data(\" + this.widgetName + \"-item)\"); this.items = t.grep(this.items, function (t) { for (var i = 0; e.length > i; i++) if (e[i] === t.item[0]) return !1; return !0 }) }, _refreshItems: function (e) { this.items = [], this.containers = [this]; var i, s, n, o, a, r, l, h, c = this.items, u = [[t.isFunction(this.options.items) ? this.options.items.call(this.element[0], e, { item: this.currentItem }) : t(this.options.items, this.element), this]], d = this._connectWith(); if (d && this.ready) for (i = d.length - 1; i >= 0; i--) for (n = t(d[i], this.document[0]), s = n.length - 1; s >= 0; s--) o = t.data(n[s], this.widgetFullName), o && o !== this && !o.options.disabled && (u.push([t.isFunction(o.options.items) ? o.options.items.call(o.element[0], e, { item: this.currentItem }) : t(o.options.items, o.element), o]), this.containers.push(o)); for (i = u.length - 1; i >= 0; i--) for (a = u[i][1], r = u[i][0], s = 0, h = r.length; h > s; s++) l = t(r[s]), l.data(this.widgetName + \"-item\", a), c.push({ item: l, instance: a, width: 0, height: 0, left: 0, top: 0 }) }, refreshPositions: function (e) { this.floating = this.items.length ? \"x\" === this.options.axis || this._isFloating(this.items[0].item) : !1, this.offsetParent && this.helper && (this.offset.parent = this._getParentOffset()); var i, s, n, o; for (i = this.items.length - 1; i >= 0; i--) s = this.items[i], s.instance !== this.currentContainer && this.currentContainer && s.item[0] !== this.currentItem[0] || (n = this.options.toleranceElement ? t(this.options.toleranceElement, s.item) : s.item, e || (s.width = n.outerWidth(), s.height = n.outerHeight()), o = n.offset(), s.left = o.left, s.top = o.top); if (this.options.custom && this.options.custom.refreshContainers) this.options.custom.refreshContainers.call(this); else for (i = this.containers.length - 1; i >= 0; i--) o = this.containers[i].element.offset(), this.containers[i].containerCache.left = o.left, this.containers[i].containerCache.top = o.top, this.containers[i].containerCache.width = this.containers[i].element.outerWidth(), this.containers[i].containerCache.height = this.containers[i].element.outerHeight(); return this }, _createPlaceholder: function (e) { e = e || this; var i, s = e.options; s.placeholder && s.placeholder.constructor !== String || (i = s.placeholder, s.placeholder = { element: function () { var s = e.currentItem[0].nodeName.toLowerCase(), n = t(\"<\" + s + \">\", e.document[0]); return e._addClass(n, \"ui-sortable-placeholder\", i || e.currentItem[0].className)._removeClass(n, \"ui-sortable-helper\"), \"tbody\" === s ? e._createTrPlaceholder(e.currentItem.find(\"tr\").eq(0), t(\"\", e.document[0]).appendTo(n)) : \"tr\" === s ? e._createTrPlaceholder(e.currentItem, n) : \"img\" === s && n.attr(\"src\", e.currentItem.attr(\"src\")), i || n.css(\"visibility\", \"hidden\"), n }, update: function (t, n) { (!i || s.forcePlaceholderSize) && (n.height() || n.height(e.currentItem.innerHeight() - parseInt(e.currentItem.css(\"paddingTop\") || 0, 10) - parseInt(e.currentItem.css(\"paddingBottom\") || 0, 10)), n.width() || n.width(e.currentItem.innerWidth() - parseInt(e.currentItem.css(\"paddingLeft\") || 0, 10) - parseInt(e.currentItem.css(\"paddingRight\") || 0, 10))) } }), e.placeholder = t(s.placeholder.element.call(e.element, e.currentItem)), e.currentItem.after(e.placeholder), s.placeholder.update(e, e.placeholder) }, _createTrPlaceholder: function (e, i) { var s = this; e.children().each(function () { t(\" \", s.document[0]).attr(\"colspan\", t(this).attr(\"colspan\") || 1).appendTo(i) }) }, _contactContainers: function (e) {\r\n\t\t\tvar i, s, n, o, a, r, l, h, c, u, d = null, p = null;\r\n\t\t\tfor (i = this.containers.length - 1; i >= 0; i--) if (!t.contains(this.currentItem[0], this.containers[i].element[0])) if (this._intersectsWith(this.containers[i].containerCache)) { if (d && t.contains(this.containers[i].element[0], d.element[0])) continue; d = this.containers[i], p = i } else this.containers[i].containerCache.over && (this.containers[i]._trigger(\"out\", e, this._uiHash(this)), this.containers[i].containerCache.over = 0); if (d) if (1 === this.containers.length) this.containers[p].containerCache.over || (this.containers[p]._trigger(\"over\", e, this._uiHash(this)), this.containers[p].containerCache.over = 1); else { for (n = 1e4, o = null, c = d.floating || this._isFloating(this.currentItem), a = c ? \"left\" : \"top\", r = c ? \"width\" : \"height\", u = c ? \"pageX\" : \"pageY\", s = this.items.length - 1; s >= 0; s--) t.contains(this.containers[p].element[0], this.items[s].item[0]) && this.items[s].item[0] !== this.currentItem[0] && (l = this.items[s].item.offset()[a], h = !1, e[u] - l > this.items[s][r] / 2 && (h = !0), n > Math.abs(e[u] - l) && (n = Math.abs(e[u] - l), o = this.items[s], this.direction = h ? \"up\" : \"down\")); if (!o && !this.options.dropOnEmpty) return; if (this.currentContainer === this.containers[p]) return this.currentContainer.containerCache.over || (this.containers[p]._trigger(\"over\", e, this._uiHash()), this.currentContainer.containerCache.over = 1), void 0; o ? this._rearrange(e, o, null, !0) : this._rearrange(e, null, this.containers[p].element, !0), this._trigger(\"change\", e, this._uiHash()), this.containers[p]._trigger(\"change\", e, this._uiHash(this)), this.currentContainer = this.containers[p], this.options.placeholder.update(this.currentContainer, this.placeholder), this.containers[p]._trigger(\"over\", e, this._uiHash(this)), this.containers[p].containerCache.over = 1 }\r\n\t\t}, _createHelper: function (e) { var i = this.options, s = t.isFunction(i.helper) ? t(i.helper.apply(this.element[0], [e, this.currentItem])) : \"clone\" === i.helper ? this.currentItem.clone() : this.currentItem; return s.parents(\"body\").length || t(\"parent\" !== i.appendTo ? i.appendTo : this.currentItem[0].parentNode)[0].appendChild(s[0]), s[0] === this.currentItem[0] && (this._storedCSS = { width: this.currentItem[0].style.width, height: this.currentItem[0].style.height, position: this.currentItem.css(\"position\"), top: this.currentItem.css(\"top\"), left: this.currentItem.css(\"left\") }), (!s[0].style.width || i.forceHelperSize) && s.width(this.currentItem.width()), (!s[0].style.height || i.forceHelperSize) && s.height(this.currentItem.height()), s }, _adjustOffsetFromHelper: function (e) { \"string\" == typeof e && (e = e.split(\" \")), t.isArray(e) && (e = { left: +e[0], top: +e[1] || 0 }), \"left\" in e && (this.offset.click.left = e.left + this.margins.left), \"right\" in e && (this.offset.click.left = this.helperProportions.width - e.right + this.margins.left), \"top\" in e && (this.offset.click.top = e.top + this.margins.top), \"bottom\" in e && (this.offset.click.top = this.helperProportions.height - e.bottom + this.margins.top) }, _getParentOffset: function () { this.offsetParent = this.helper.offsetParent(); var e = this.offsetParent.offset(); return \"absolute\" === this.cssPosition && this.scrollParent[0] !== this.document[0] && t.contains(this.scrollParent[0], this.offsetParent[0]) && (e.left += this.scrollParent.scrollLeft(), e.top += this.scrollParent.scrollTop()), (this.offsetParent[0] === this.document[0].body || this.offsetParent[0].tagName && \"html\" === this.offsetParent[0].tagName.toLowerCase() && t.ui.ie) && (e = { top: 0, left: 0 }), { top: e.top + (parseInt(this.offsetParent.css(\"borderTopWidth\"), 10) || 0), left: e.left + (parseInt(this.offsetParent.css(\"borderLeftWidth\"), 10) || 0) } }, _getRelativeOffset: function () { if (\"relative\" === this.cssPosition) { var t = this.currentItem.position(); return { top: t.top - (parseInt(this.helper.css(\"top\"), 10) || 0) + this.scrollParent.scrollTop(), left: t.left - (parseInt(this.helper.css(\"left\"), 10) || 0) + this.scrollParent.scrollLeft() } } return { top: 0, left: 0 } }, _cacheMargins: function () { this.margins = { left: parseInt(this.currentItem.css(\"marginLeft\"), 10) || 0, top: parseInt(this.currentItem.css(\"marginTop\"), 10) || 0 } }, _cacheHelperProportions: function () { this.helperProportions = { width: this.helper.outerWidth(), height: this.helper.outerHeight() } }, _setContainment: function () { var e, i, s, n = this.options; \"parent\" === n.containment && (n.containment = this.helper[0].parentNode), (\"document\" === n.containment || \"window\" === n.containment) && (this.containment = [0 - this.offset.relative.left - this.offset.parent.left, 0 - this.offset.relative.top - this.offset.parent.top, \"document\" === n.containment ? this.document.width() : this.window.width() - this.helperProportions.width - this.margins.left, (\"document\" === n.containment ? this.document.height() || document.body.parentNode.scrollHeight : this.window.height() || this.document[0].body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top]), /^(document|window|parent)$/.test(n.containment) || (e = t(n.containment)[0], i = t(n.containment).offset(), s = \"hidden\" !== t(e).css(\"overflow\"), this.containment = [i.left + (parseInt(t(e).css(\"borderLeftWidth\"), 10) || 0) + (parseInt(t(e).css(\"paddingLeft\"), 10) || 0) - this.margins.left, i.top + (parseInt(t(e).css(\"borderTopWidth\"), 10) || 0) + (parseInt(t(e).css(\"paddingTop\"), 10) || 0) - this.margins.top, i.left + (s ? Math.max(e.scrollWidth, e.offsetWidth) : e.offsetWidth) - (parseInt(t(e).css(\"borderLeftWidth\"), 10) || 0) - (parseInt(t(e).css(\"paddingRight\"), 10) || 0) - this.helperProportions.width - this.margins.left, i.top + (s ? Math.max(e.scrollHeight, e.offsetHeight) : e.offsetHeight) - (parseInt(t(e).css(\"borderTopWidth\"), 10) || 0) - (parseInt(t(e).css(\"paddingBottom\"), 10) || 0) - this.helperProportions.height - this.margins.top]) }, _convertPositionTo: function (e, i) { i || (i = this.position); var s = \"absolute\" === e ? 1 : -1, n = \"absolute\" !== this.cssPosition || this.scrollParent[0] !== this.document[0] && t.contains(this.scrollParent[0], this.offsetParent[0]) ? this.scrollParent : this.offsetParent, o = /(html|body)/i.test(n[0].tagName); return { top: i.top + this.offset.relative.top * s + this.offset.parent.top * s - (\"fixed\" === this.cssPosition ? -this.scrollParent.scrollTop() : o ? 0 : n.scrollTop()) * s, left: i.left + this.offset.relative.left * s + this.offset.parent.left * s - (\"fixed\" === this.cssPosition ? -this.scrollParent.scrollLeft() : o ? 0 : n.scrollLeft()) * s } }, _generatePosition: function (e) { var i, s, n = this.options, o = e.pageX, a = e.pageY, r = \"absolute\" !== this.cssPosition || this.scrollParent[0] !== this.document[0] && t.contains(this.scrollParent[0], this.offsetParent[0]) ? this.scrollParent : this.offsetParent, l = /(html|body)/i.test(r[0].tagName); return \"relative\" !== this.cssPosition || this.scrollParent[0] !== this.document[0] && this.scrollParent[0] !== this.offsetParent[0] || (this.offset.relative = this._getRelativeOffset()), this.originalPosition && (this.containment && (e.pageX - this.offset.click.left < this.containment[0] && (o = this.containment[0] + this.offset.click.left), e.pageY - this.offset.click.top < this.containment[1] && (a = this.containment[1] + this.offset.click.top), e.pageX - this.offset.click.left > this.containment[2] && (o = this.containment[2] + this.offset.click.left), e.pageY - this.offset.click.top > this.containment[3] && (a = this.containment[3] + this.offset.click.top)), n.grid && (i = this.originalPageY + Math.round((a - this.originalPageY) / n.grid[1]) * n.grid[1], a = this.containment ? i - this.offset.click.top >= this.containment[1] && i - this.offset.click.top <= this.containment[3] ? i : i - this.offset.click.top >= this.containment[1] ? i - n.grid[1] : i + n.grid[1] : i, s = this.originalPageX + Math.round((o - this.originalPageX) / n.grid[0]) * n.grid[0], o = this.containment ? s - this.offset.click.left >= this.containment[0] && s - this.offset.click.left <= this.containment[2] ? s : s - this.offset.click.left >= this.containment[0] ? s - n.grid[0] : s + n.grid[0] : s)), { top: a - this.offset.click.top - this.offset.relative.top - this.offset.parent.top + (\"fixed\" === this.cssPosition ? -this.scrollParent.scrollTop() : l ? 0 : r.scrollTop()), left: o - this.offset.click.left - this.offset.relative.left - this.offset.parent.left + (\"fixed\" === this.cssPosition ? -this.scrollParent.scrollLeft() : l ? 0 : r.scrollLeft()) } }, _rearrange: function (t, e, i, s) { i ? i[0].appendChild(this.placeholder[0]) : e.item[0].parentNode.insertBefore(this.placeholder[0], \"down\" === this.direction ? e.item[0] : e.item[0].nextSibling), this.counter = this.counter ? ++this.counter : 1; var n = this.counter; this._delay(function () { n === this.counter && this.refreshPositions(!s) }) }, _clear: function (t, e) { function i(t, e, i) { return function (s) { i._trigger(t, s, e._uiHash(e)) } } this.reverting = !1; var s, n = []; if (!this._noFinalSort && this.currentItem.parent().length && this.placeholder.before(this.currentItem), this._noFinalSort = null, this.helper[0] === this.currentItem[0]) { for (s in this._storedCSS) (\"auto\" === this._storedCSS[s] || \"static\" === this._storedCSS[s]) && (this._storedCSS[s] = \"\"); this.currentItem.css(this._storedCSS), this._removeClass(this.currentItem, \"ui-sortable-helper\") } else this.currentItem.show(); for (this.fromOutside && !e && n.push(function (t) { this._trigger(\"receive\", t, this._uiHash(this.fromOutside)) }), !this.fromOutside && this.domPosition.prev === this.currentItem.prev().not(\".ui-sortable-helper\")[0] && this.domPosition.parent === this.currentItem.parent()[0] || e || n.push(function (t) { this._trigger(\"update\", t, this._uiHash()) }), this !== this.currentContainer && (e || (n.push(function (t) { this._trigger(\"remove\", t, this._uiHash()) }), n.push(function (t) { return function (e) { t._trigger(\"receive\", e, this._uiHash(this)) } }.call(this, this.currentContainer)), n.push(function (t) { return function (e) { t._trigger(\"update\", e, this._uiHash(this)) } }.call(this, this.currentContainer)))), s = this.containers.length - 1; s >= 0; s--) e || n.push(i(\"deactivate\", this, this.containers[s])), this.containers[s].containerCache.over && (n.push(i(\"out\", this, this.containers[s])), this.containers[s].containerCache.over = 0); if (this.storedCursor && (this.document.find(\"body\").css(\"cursor\", this.storedCursor), this.storedStylesheet.remove()), this._storedOpacity && this.helper.css(\"opacity\", this._storedOpacity), this._storedZIndex && this.helper.css(\"zIndex\", \"auto\" === this._storedZIndex ? \"\" : this._storedZIndex), this.dragging = !1, e || this._trigger(\"beforeStop\", t, this._uiHash()), this.placeholder[0].parentNode.removeChild(this.placeholder[0]), this.cancelHelperRemoval || (this.helper[0] !== this.currentItem[0] && this.helper.remove(), this.helper = null), !e) { for (s = 0; n.length > s; s++) n[s].call(this, t); this._trigger(\"stop\", t, this._uiHash()) } return this.fromOutside = !1, !this.cancelHelperRemoval }, _trigger: function () { t.Widget.prototype._trigger.apply(this, arguments) === !1 && this.cancel() }, _uiHash: function (e) { var i = e || this; return { helper: i.helper, placeholder: i.placeholder || t([]), position: i.position, originalPosition: i.originalPosition, offset: i.positionAbs, item: i.currentItem, sender: e ? e.element : null } }\r\n\t}), t.ui.safeActiveElement = function (t) { var e; try { e = t.activeElement } catch (i) { e = t.body } return e || (e = t.body), e.nodeName || (e = t.body), e }, t.widget(\"ui.menu\", { version: \"1.12.0\", defaultElement: \"
    \", delay: 300, options: { icons: { submenu: \"ui-icon-caret-1-e\" }, items: \"> *\", menus: \"ul\", position: { my: \"left top\", at: \"right top\" }, role: \"menu\", blur: null, focus: null, select: null }, _create: function () { this.activeMenu = this.element, this.mouseHandled = !1, this.element.uniqueId().attr({ role: this.options.role, tabIndex: 0 }), this._addClass(\"ui-menu\", \"ui-widget ui-widget-content\"), this._on({ \"mousedown .ui-menu-item\": function (t) { t.preventDefault() }, \"click .ui-menu-item\": function (e) { var i = t(e.target), s = t(t.ui.safeActiveElement(this.document[0])); !this.mouseHandled && i.not(\".ui-state-disabled\").length && (this.select(e), e.isPropagationStopped() || (this.mouseHandled = !0), i.has(\".ui-menu\").length ? this.expand(e) : !this.element.is(\":focus\") && s.closest(\".ui-menu\").length && (this.element.trigger(\"focus\", [!0]), this.active && 1 === this.active.parents(\".ui-menu\").length && clearTimeout(this.timer))) }, \"mouseenter .ui-menu-item\": function (e) { if (!this.previousFilter) { var i = t(e.target).closest(\".ui-menu-item\"), s = t(e.currentTarget); i[0] === s[0] && (this._removeClass(s.siblings().children(\".ui-state-active\"), null, \"ui-state-active\"), this.focus(e, s)) } }, mouseleave: \"collapseAll\", \"mouseleave .ui-menu\": \"collapseAll\", focus: function (t, e) { var i = this.active || this.element.find(this.options.items).eq(0); e || this.focus(t, i) }, blur: function (e) { this._delay(function () { var i = !t.contains(this.element[0], t.ui.safeActiveElement(this.document[0])); i && this.collapseAll(e) }) }, keydown: \"_keydown\" }), this.refresh(), this._on(this.document, { click: function (t) { this._closeOnDocumentClick(t) && this.collapseAll(t), this.mouseHandled = !1 } }) }, _destroy: function () { var e = this.element.find(\".ui-menu-item\").removeAttr(\"role aria-disabled\"), i = e.children(\".ui-menu-item-wrapper\").removeUniqueId().removeAttr(\"tabIndex role aria-haspopup\"); this.element.removeAttr(\"aria-activedescendant\").find(\".ui-menu\").addBack().removeAttr(\"role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex\").removeUniqueId().show(), i.children().each(function () { var e = t(this); e.data(\"ui-menu-submenu-caret\") && e.remove() }) }, _keydown: function (e) { var i, s, n, o, a = !0; switch (e.keyCode) { case t.ui.keyCode.PAGE_UP: this.previousPage(e); break; case t.ui.keyCode.PAGE_DOWN: this.nextPage(e); break; case t.ui.keyCode.HOME: this._move(\"first\", \"first\", e); break; case t.ui.keyCode.END: this._move(\"last\", \"last\", e); break; case t.ui.keyCode.UP: this.previous(e); break; case t.ui.keyCode.DOWN: this.next(e); break; case t.ui.keyCode.LEFT: this.collapse(e); break; case t.ui.keyCode.RIGHT: this.active && !this.active.is(\".ui-state-disabled\") && this.expand(e); break; case t.ui.keyCode.ENTER: case t.ui.keyCode.SPACE: this._activate(e); break; case t.ui.keyCode.ESCAPE: this.collapse(e); break; default: a = !1, s = this.previousFilter || \"\", n = String.fromCharCode(e.keyCode), o = !1, clearTimeout(this.filterTimer), n === s ? o = !0 : n = s + n, i = this._filterMenuItems(n), i = o && -1 !== i.index(this.active.next()) ? this.active.nextAll(\".ui-menu-item\") : i, i.length || (n = String.fromCharCode(e.keyCode), i = this._filterMenuItems(n)), i.length ? (this.focus(e, i), this.previousFilter = n, this.filterTimer = this._delay(function () { delete this.previousFilter }, 1e3)) : delete this.previousFilter } a && e.preventDefault() }, _activate: function (t) { this.active && !this.active.is(\".ui-state-disabled\") && (this.active.children(\"[aria-haspopup='true']\").length ? this.expand(t) : this.select(t)) }, refresh: function () { var e, i, s, n, o, a = this, r = this.options.icons.submenu, l = this.element.find(this.options.menus); this._toggleClass(\"ui-menu-icons\", null, !!this.element.find(\".ui-icon\").length), s = l.filter(\":not(.ui-menu)\").hide().attr({ role: this.options.role, \"aria-hidden\": \"true\", \"aria-expanded\": \"false\" }).each(function () { var e = t(this), i = e.prev(), s = t(\"\").data(\"ui-menu-submenu-caret\", !0); a._addClass(s, \"ui-menu-icon\", \"ui-icon \" + r), i.attr(\"aria-haspopup\", \"true\").prepend(s), e.attr(\"aria-labelledby\", i.attr(\"id\")) }), this._addClass(s, \"ui-menu\", \"ui-widget ui-widget-content ui-front\"), e = l.add(this.element), i = e.find(this.options.items), i.not(\".ui-menu-item\").each(function () { var e = t(this); a._isDivider(e) && a._addClass(e, \"ui-menu-divider\", \"ui-widget-content\") }), n = i.not(\".ui-menu-item, .ui-menu-divider\"), o = n.children().not(\".ui-menu\").uniqueId().attr({ tabIndex: -1, role: this._itemRole() }), this._addClass(n, \"ui-menu-item\")._addClass(o, \"ui-menu-item-wrapper\"), i.filter(\".ui-state-disabled\").attr(\"aria-disabled\", \"true\"), this.active && !t.contains(this.element[0], this.active[0]) && this.blur() }, _itemRole: function () { return { menu: \"menuitem\", listbox: \"option\" }[this.options.role] }, _setOption: function (t, e) { if (\"icons\" === t) { var i = this.element.find(\".ui-menu-icon\"); this._removeClass(i, null, this.options.icons.submenu)._addClass(i, null, e.submenu) } this._super(t, e) }, _setOptionDisabled: function (t) { this._super(t), this.element.attr(\"aria-disabled\", t + \"\"), this._toggleClass(null, \"ui-state-disabled\", !!t) }, focus: function (t, e) { var i, s, n; this.blur(t, t && \"focus\" === t.type), this._scrollIntoView(e), this.active = e.first(), s = this.active.children(\".ui-menu-item-wrapper\"), this._addClass(s, null, \"ui-state-active\"), this.options.role && this.element.attr(\"aria-activedescendant\", s.attr(\"id\")), n = this.active.parent().closest(\".ui-menu-item\").children(\".ui-menu-item-wrapper\"), this._addClass(n, null, \"ui-state-active\"), t && \"keydown\" === t.type ? this._close() : this.timer = this._delay(function () { this._close() }, this.delay), i = e.children(\".ui-menu\"), i.length && t && /^mouse/.test(t.type) && this._startOpening(i), this.activeMenu = e.parent(), this._trigger(\"focus\", t, { item: e }) }, _scrollIntoView: function (e) { var i, s, n, o, a, r; this._hasScroll() && (i = parseFloat(t.css(this.activeMenu[0], \"borderTopWidth\")) || 0, s = parseFloat(t.css(this.activeMenu[0], \"paddingTop\")) || 0, n = e.offset().top - this.activeMenu.offset().top - i - s, o = this.activeMenu.scrollTop(), a = this.activeMenu.height(), r = e.outerHeight(), 0 > n ? this.activeMenu.scrollTop(o + n) : n + r > a && this.activeMenu.scrollTop(o + n - a + r)) }, blur: function (t, e) { e || clearTimeout(this.timer), this.active && (this._removeClass(this.active.children(\".ui-menu-item-wrapper\"), null, \"ui-state-active\"), this._trigger(\"blur\", t, { item: this.active }), this.active = null) }, _startOpening: function (t) { clearTimeout(this.timer), \"true\" === t.attr(\"aria-hidden\") && (this.timer = this._delay(function () { this._close(), this._open(t) }, this.delay)) }, _open: function (e) { var i = t.extend({ of: this.active }, this.options.position); clearTimeout(this.timer), this.element.find(\".ui-menu\").not(e.parents(\".ui-menu\")).hide().attr(\"aria-hidden\", \"true\"), e.show().removeAttr(\"aria-hidden\").attr(\"aria-expanded\", \"true\").position(i) }, collapseAll: function (e, i) { clearTimeout(this.timer), this.timer = this._delay(function () { var s = i ? this.element : t(e && e.target).closest(this.element.find(\".ui-menu\")); s.length || (s = this.element), this._close(s), this.blur(e), this._removeClass(s.find(\".ui-state-active\"), null, \"ui-state-active\"), this.activeMenu = s }, this.delay) }, _close: function (t) { t || (t = this.active ? this.active.parent() : this.element), t.find(\".ui-menu\").hide().attr(\"aria-hidden\", \"true\").attr(\"aria-expanded\", \"false\") }, _closeOnDocumentClick: function (e) { return !t(e.target).closest(\".ui-menu\").length }, _isDivider: function (t) { return !/[^\\-\\u2014\\u2013\\s]/.test(t.text()) }, collapse: function (t) { var e = this.active && this.active.parent().closest(\".ui-menu-item\", this.element); e && e.length && (this._close(), this.focus(t, e)) }, expand: function (t) { var e = this.active && this.active.children(\".ui-menu \").find(this.options.items).first(); e && e.length && (this._open(e.parent()), this._delay(function () { this.focus(t, e) })) }, next: function (t) { this._move(\"next\", \"first\", t) }, previous: function (t) { this._move(\"prev\", \"last\", t) }, isFirstItem: function () { return this.active && !this.active.prevAll(\".ui-menu-item\").length }, isLastItem: function () { return this.active && !this.active.nextAll(\".ui-menu-item\").length }, _move: function (t, e, i) { var s; this.active && (s = \"first\" === t || \"last\" === t ? this.active[\"first\" === t ? \"prevAll\" : \"nextAll\"](\".ui-menu-item\").eq(-1) : this.active[t + \"All\"](\".ui-menu-item\").eq(0)), s && s.length && this.active || (s = this.activeMenu.find(this.options.items)[e]()), this.focus(i, s) }, nextPage: function (e) { var i, s, n; return this.active ? (this.isLastItem() || (this._hasScroll() ? (s = this.active.offset().top, n = this.element.height(), this.active.nextAll(\".ui-menu-item\").each(function () { return i = t(this), 0 > i.offset().top - s - n }), this.focus(e, i)) : this.focus(e, this.activeMenu.find(this.options.items)[this.active ? \"last\" : \"first\"]())), void 0) : (this.next(e), void 0) }, previousPage: function (e) { var i, s, n; return this.active ? (this.isFirstItem() || (this._hasScroll() ? (s = this.active.offset().top, n = this.element.height(), this.active.prevAll(\".ui-menu-item\").each(function () { return i = t(this), i.offset().top - s + n > 0 }), this.focus(e, i)) : this.focus(e, this.activeMenu.find(this.options.items).first())), void 0) : (this.next(e), void 0) }, _hasScroll: function () { return this.element.outerHeight() < this.element.prop(\"scrollHeight\") }, select: function (e) { this.active = this.active || t(e.target).closest(\".ui-menu-item\"); var i = { item: this.active }; this.active.has(\".ui-menu\").length || this.collapseAll(e, !0), this._trigger(\"select\", e, i) }, _filterMenuItems: function (e) { var i = e.replace(/[\\-\\[\\]{}()*+?.,\\\\\\^$|#\\s]/g, \"\\\\$&\"), s = RegExp(\"^\" + i, \"i\"); return this.activeMenu.find(this.options.items).filter(\".ui-menu-item\").filter(function () { return s.test(t.trim(t(this).children(\".ui-menu-item-wrapper\").text())) }) } }), t.widget(\"ui.autocomplete\", { version: \"1.12.0\", defaultElement: \"\", options: { appendTo: null, autoFocus: !1, delay: 300, minLength: 1, position: { my: \"left top\", at: \"left bottom\", collision: \"none\" }, source: null, change: null, close: null, focus: null, open: null, response: null, search: null, select: null }, requestIndex: 0, pending: 0, _create: function () { var e, i, s, n = this.element[0].nodeName.toLowerCase(), o = \"textarea\" === n, a = \"input\" === n; this.isMultiLine = o || !a && this._isContentEditable(this.element), this.valueMethod = this.element[o || a ? \"val\" : \"text\"], this.isNewMenu = !0, this._addClass(\"ui-autocomplete-input\"), this.element.attr(\"autocomplete\", \"off\"), this._on(this.element, { keydown: function (n) { if (this.element.prop(\"readOnly\")) return e = !0, s = !0, i = !0, void 0; e = !1, s = !1, i = !1; var o = t.ui.keyCode; switch (n.keyCode) { case o.PAGE_UP: e = !0, this._move(\"previousPage\", n); break; case o.PAGE_DOWN: e = !0, this._move(\"nextPage\", n); break; case o.UP: e = !0, this._keyEvent(\"previous\", n); break; case o.DOWN: e = !0, this._keyEvent(\"next\", n); break; case o.ENTER: this.menu.active && (e = !0, n.preventDefault(), this.menu.select(n)); break; case o.TAB: this.menu.active && this.menu.select(n); break; case o.ESCAPE: this.menu.element.is(\":visible\") && (this.isMultiLine || this._value(this.term), this.close(n), n.preventDefault()); break; default: i = !0, this._searchTimeout(n) } }, keypress: function (s) { if (e) return e = !1, (!this.isMultiLine || this.menu.element.is(\":visible\")) && s.preventDefault(), void 0; if (!i) { var n = t.ui.keyCode; switch (s.keyCode) { case n.PAGE_UP: this._move(\"previousPage\", s); break; case n.PAGE_DOWN: this._move(\"nextPage\", s); break; case n.UP: this._keyEvent(\"previous\", s); break; case n.DOWN: this._keyEvent(\"next\", s) } } }, input: function (t) { return s ? (s = !1, t.preventDefault(), void 0) : (this._searchTimeout(t), void 0) }, focus: function () { this.selectedItem = null, this.previous = this._value() }, blur: function (t) { return this.cancelBlur ? (delete this.cancelBlur, void 0) : (clearTimeout(this.searching), this.close(t), this._change(t), void 0) } }), this._initSource(), this.menu = t(\"
      \").appendTo(this._appendTo()).menu({ role: null }).hide().menu(\"instance\"), this._addClass(this.menu.element, \"ui-autocomplete\", \"ui-front\"), this._on(this.menu.element, { mousedown: function (e) { e.preventDefault(), this.cancelBlur = !0, this._delay(function () { delete this.cancelBlur, this.element[0] !== t.ui.safeActiveElement(this.document[0]) && this.element.trigger(\"focus\") }) }, menufocus: function (e, i) { var s, n; return this.isNewMenu && (this.isNewMenu = !1, e.originalEvent && /^mouse/.test(e.originalEvent.type)) ? (this.menu.blur(), this.document.one(\"mousemove\", function () { t(e.target).trigger(e.originalEvent) }), void 0) : (n = i.item.data(\"ui-autocomplete-item\"), !1 !== this._trigger(\"focus\", e, { item: n }) && e.originalEvent && /^key/.test(e.originalEvent.type) && this._value(n.value), s = i.item.attr(\"aria-label\") || n.value, s && t.trim(s).length && (this.liveRegion.children().hide(), t(\"
      \").text(s).appendTo(this.liveRegion)), void 0) }, menuselect: function (e, i) { var s = i.item.data(\"ui-autocomplete-item\"), n = this.previous; this.element[0] !== t.ui.safeActiveElement(this.document[0]) && (this.element.trigger(\"focus\"), this.previous = n, this._delay(function () { this.previous = n, this.selectedItem = s })), !1 !== this._trigger(\"select\", e, { item: s }) && this._value(s.value), this.term = this._value(), this.close(e), this.selectedItem = s } }), this.liveRegion = t(\"
      \", { role: \"status\", \"aria-live\": \"assertive\", \"aria-relevant\": \"additions\" }).appendTo(this.document[0].body), this._addClass(this.liveRegion, null, \"ui-helper-hidden-accessible\"), this._on(this.window, { beforeunload: function () { this.element.removeAttr(\"autocomplete\") } }) }, _destroy: function () { clearTimeout(this.searching), this.element.removeAttr(\"autocomplete\"), this.menu.element.remove(), this.liveRegion.remove() }, _setOption: function (t, e) { this._super(t, e), \"source\" === t && this._initSource(), \"appendTo\" === t && this.menu.element.appendTo(this._appendTo()), \"disabled\" === t && e && this.xhr && this.xhr.abort() }, _isEventTargetInWidget: function (e) { var i = this.menu.element[0]; return e.target === this.element[0] || e.target === i || t.contains(i, e.target) }, _closeOnClickOutside: function (t) { this._isEventTargetInWidget(t) || this.close() }, _appendTo: function () { var e = this.options.appendTo; return e && (e = e.jquery || e.nodeType ? t(e) : this.document.find(e).eq(0)), e && e[0] || (e = this.element.closest(\".ui-front, dialog\")), e.length || (e = this.document[0].body), e }, _initSource: function () { var e, i, s = this; t.isArray(this.options.source) ? (e = this.options.source, this.source = function (i, s) { s(t.ui.autocomplete.filter(e, i.term)) }) : \"string\" == typeof this.options.source ? (i = this.options.source, this.source = function (e, n) { s.xhr && s.xhr.abort(), s.xhr = t.ajax({ url: i, data: e, dataType: \"json\", success: function (t) { n(t) }, error: function () { n([]) } }) }) : this.source = this.options.source }, _searchTimeout: function (t) { clearTimeout(this.searching), this.searching = this._delay(function () { var e = this.term === this._value(), i = this.menu.element.is(\":visible\"), s = t.altKey || t.ctrlKey || t.metaKey || t.shiftKey; (!e || e && !i && !s) && (this.selectedItem = null, this.search(null, t)) }, this.options.delay) }, search: function (t, e) { return t = null != t ? t : this._value(), this.term = this._value(), t.length < this.options.minLength ? this.close(e) : this._trigger(\"search\", e) !== !1 ? this._search(t) : void 0 }, _search: function (t) { this.pending++, this._addClass(\"ui-autocomplete-loading\"), this.cancelSearch = !1, this.source({ term: t }, this._response()) }, _response: function () { var e = ++this.requestIndex; return t.proxy(function (t) { e === this.requestIndex && this.__response(t), this.pending--, this.pending || this._removeClass(\"ui-autocomplete-loading\") }, this) }, __response: function (t) { t && (t = this._normalize(t)), this._trigger(\"response\", null, { content: t }), !this.options.disabled && t && t.length && !this.cancelSearch ? (this._suggest(t), this._trigger(\"open\")) : this._close() }, close: function (t) { this.cancelSearch = !0, this._close(t) }, _close: function (t) { this._off(this.document, \"mousedown\"), this.menu.element.is(\":visible\") && (this.menu.element.hide(), this.menu.blur(), this.isNewMenu = !0, this._trigger(\"close\", t)) }, _change: function (t) { this.previous !== this._value() && this._trigger(\"change\", t, { item: this.selectedItem }) }, _normalize: function (e) { return e.length && e[0].label && e[0].value ? e : t.map(e, function (e) { return \"string\" == typeof e ? { label: e, value: e } : t.extend({}, e, { label: e.label || e.value, value: e.value || e.label }) }) }, _suggest: function (e) { var i = this.menu.element.empty(); this._renderMenu(i, e), this.isNewMenu = !0, this.menu.refresh(), i.show(), this._resizeMenu(), i.position(t.extend({ of: this.element }, this.options.position)), this.options.autoFocus && this.menu.next(), this._on(this.document, { mousedown: \"_closeOnClickOutside\" }) }, _resizeMenu: function () { var t = this.menu.element; t.outerWidth(Math.max(t.width(\"\").outerWidth() + 1, this.element.outerWidth())) }, _renderMenu: function (e, i) { var s = this; t.each(i, function (t, i) { s._renderItemData(e, i) }) }, _renderItemData: function (t, e) { return this._renderItem(t, e).data(\"ui-autocomplete-item\", e) }, _renderItem: function (e, i) { return t(\"
    • \").append(t(\"
      \").text(i.label)).appendTo(e) }, _move: function (t, e) { return this.menu.element.is(\":visible\") ? this.menu.isFirstItem() && /^previous/.test(t) || this.menu.isLastItem() && /^next/.test(t) ? (this.isMultiLine || this._value(this.term), this.menu.blur(), void 0) : (this.menu[t](e), void 0) : (this.search(null, e), void 0) }, widget: function () { return this.menu.element }, _value: function () { return this.valueMethod.apply(this.element, arguments) }, _keyEvent: function (t, e) { (!this.isMultiLine || this.menu.element.is(\":visible\")) && (this._move(t, e), e.preventDefault()) }, _isContentEditable: function (t) { if (!t.length) return !1; var e = t.prop(\"contentEditable\"); return \"inherit\" === e ? this._isContentEditable(t.parent()) : \"true\" === e } }), t.extend(t.ui.autocomplete, { escapeRegex: function (t) { return t.replace(/[\\-\\[\\]{}()*+?.,\\\\\\^$|#\\s]/g, \"\\\\$&\") }, filter: function (e, i) { var s = RegExp(t.ui.autocomplete.escapeRegex(i), \"i\"); return t.grep(e, function (t) { return s.test(t.label || t.value || t) }) } }), t.widget(\"ui.autocomplete\", t.ui.autocomplete, { options: { messages: { noResults: \"No search results.\", results: function (t) { return t + (t > 1 ? \" results are\" : \" result is\") + \" available, use up and down arrow keys to navigate.\" } } }, __response: function (e) { var i; this._superApply(arguments), this.options.disabled || this.cancelSearch || (i = e && e.length ? this.options.messages.results(e.length) : this.options.messages.noResults, this.liveRegion.children().hide(), t(\"
      \").text(i).appendTo(this.liveRegion)) } }), t.ui.autocomplete; var n = \"ui-effects-\", o = \"ui-effects-style\", a = \"ui-effects-animated\", r = t; t.effects = { effect: {} }, function (t, e) {\r\n\t\tfunction i(t, e, i) { var s = u[e.type] || {}; return null == t ? i || !e.def ? null : e.def : (t = s.floor ? ~~t : parseFloat(t), isNaN(t) ? e.def : s.mod ? (t + s.mod) % s.mod : 0 > t ? 0 : t > s.max ? s.max : t) } function s(i) { var s = h(), n = s._rgba = []; return i = i.toLowerCase(), f(l, function (t, o) { var a, r = o.re.exec(i), l = r && o.parse(r), h = o.space || \"rgba\"; return l ? (a = s[h](l), s[c[h].cache] = a[c[h].cache], n = s._rgba = a._rgba, !1) : e }), n.length ? (\"0,0,0,0\" === n.join() && t.extend(n, o.transparent), s) : o[i] } function n(t, e, i) { return i = (i + 1) % 1, 1 > 6 * i ? t + 6 * (e - t) * i : 1 > 2 * i ? e : 2 > 3 * i ? t + 6 * (e - t) * (2 / 3 - i) : t } var o, a = \"backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor\", r = /^([\\-+])=\\s*(\\d+\\.?\\d*)/, l = [{ re: /rgba?\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*(?:,\\s*(\\d?(?:\\.\\d+)?)\\s*)?\\)/, parse: function (t) { return [t[1], t[2], t[3], t[4]] } }, { re: /rgba?\\(\\s*(\\d+(?:\\.\\d+)?)\\%\\s*,\\s*(\\d+(?:\\.\\d+)?)\\%\\s*,\\s*(\\d+(?:\\.\\d+)?)\\%\\s*(?:,\\s*(\\d?(?:\\.\\d+)?)\\s*)?\\)/, parse: function (t) { return [2.55 * t[1], 2.55 * t[2], 2.55 * t[3], t[4]] } }, { re: /#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/, parse: function (t) { return [parseInt(t[1], 16), parseInt(t[2], 16), parseInt(t[3], 16)] } }, { re: /#([a-f0-9])([a-f0-9])([a-f0-9])/, parse: function (t) { return [parseInt(t[1] + t[1], 16), parseInt(t[2] + t[2], 16), parseInt(t[3] + t[3], 16)] } }, { re: /hsla?\\(\\s*(\\d+(?:\\.\\d+)?)\\s*,\\s*(\\d+(?:\\.\\d+)?)\\%\\s*,\\s*(\\d+(?:\\.\\d+)?)\\%\\s*(?:,\\s*(\\d?(?:\\.\\d+)?)\\s*)?\\)/, space: \"hsla\", parse: function (t) { return [t[1], t[2] / 100, t[3] / 100, t[4]] } }], h = t.Color = function (e, i, s, n) { return new t.Color.fn.parse(e, i, s, n) }, c = { rgba: { props: { red: { idx: 0, type: \"byte\" }, green: { idx: 1, type: \"byte\" }, blue: { idx: 2, type: \"byte\" } } }, hsla: { props: { hue: { idx: 0, type: \"degrees\" }, saturation: { idx: 1, type: \"percent\" }, lightness: { idx: 2, type: \"percent\" } } } }, u = { \"byte\": { floor: !0, max: 255 }, percent: { max: 1 }, degrees: { mod: 360, floor: !0 } }, d = h.support = {}, p = t(\"

      \")[0], f = t.each; p.style.cssText = \"background-color:rgba(1,1,1,.5)\", d.rgba = p.style.backgroundColor.indexOf(\"rgba\") > -1, f(c, function (t, e) { e.cache = \"_\" + t, e.props.alpha = { idx: 3, type: \"percent\", def: 1 } }), h.fn = t.extend(h.prototype, {\r\n\t\t\tparse: function (n, a, r, l) { if (n === e) return this._rgba = [null, null, null, null], this; (n.jquery || n.nodeType) && (n = t(n).css(a), a = e); var u = this, d = t.type(n), p = this._rgba = []; return a !== e && (n = [n, a, r, l], d = \"array\"), \"string\" === d ? this.parse(s(n) || o._default) : \"array\" === d ? (f(c.rgba.props, function (t, e) { p[e.idx] = i(n[e.idx], e) }), this) : \"object\" === d ? (n instanceof h ? f(c, function (t, e) { n[e.cache] && (u[e.cache] = n[e.cache].slice()) }) : f(c, function (e, s) { var o = s.cache; f(s.props, function (t, e) { if (!u[o] && s.to) { if (\"alpha\" === t || null == n[t]) return; u[o] = s.to(u._rgba) } u[o][e.idx] = i(n[t], e, !0) }), u[o] && 0 > t.inArray(null, u[o].slice(0, 3)) && (u[o][3] = 1, s.from && (u._rgba = s.from(u[o]))) }), this) : e }, is: function (t) { var i = h(t), s = !0, n = this; return f(c, function (t, o) { var a, r = i[o.cache]; return r && (a = n[o.cache] || o.to && o.to(n._rgba) || [], f(o.props, function (t, i) { return null != r[i.idx] ? s = r[i.idx] === a[i.idx] : e })), s }), s }, _space: function () { var t = [], e = this; return f(c, function (i, s) { e[s.cache] && t.push(i) }), t.pop() }, transition: function (t, e) { var s = h(t), n = s._space(), o = c[n], a = 0 === this.alpha() ? h(\"transparent\") : this, r = a[o.cache] || o.to(a._rgba), l = r.slice(); return s = s[o.cache], f(o.props, function (t, n) { var o = n.idx, a = r[o], h = s[o], c = u[n.type] || {}; null !== h && (null === a ? l[o] = h : (c.mod && (h - a > c.mod / 2 ? a += c.mod : a - h > c.mod / 2 && (a -= c.mod)), l[o] = i((h - a) * e + a, n))) }), this[n](l) }, blend: function (e) { if (1 === this._rgba[3]) return this; var i = this._rgba.slice(), s = i.pop(), n = h(e)._rgba; return h(t.map(i, function (t, e) { return (1 - s) * n[e] + s * t })) }, toRgbaString: function () { var e = \"rgba(\", i = t.map(this._rgba, function (t, e) { return null == t ? e > 2 ? 1 : 0 : t }); return 1 === i[3] && (i.pop(), e = \"rgb(\"), e + i.join() + \")\" }, toHslaString: function () { var e = \"hsla(\", i = t.map(this.hsla(), function (t, e) { return null == t && (t = e > 2 ? 1 : 0), e && 3 > e && (t = Math.round(100 * t) + \"%\"), t }); return 1 === i[3] && (i.pop(), e = \"hsl(\"), e + i.join() + \")\" }, toHexString: function (e) {\r\n\t\t\t\tvar i = this._rgba.slice(), s = i.pop();\r\n\t\t\t\treturn e && i.push(~~(255 * s)), \"#\" + t.map(i, function (t) { return t = (t || 0).toString(16), 1 === t.length ? \"0\" + t : t }).join(\"\")\r\n\t\t\t}, toString: function () { return 0 === this._rgba[3] ? \"transparent\" : this.toRgbaString() }\r\n\t\t}), h.fn.parse.prototype = h.fn, c.hsla.to = function (t) { if (null == t[0] || null == t[1] || null == t[2]) return [null, null, null, t[3]]; var e, i, s = t[0] / 255, n = t[1] / 255, o = t[2] / 255, a = t[3], r = Math.max(s, n, o), l = Math.min(s, n, o), h = r - l, c = r + l, u = .5 * c; return e = l === r ? 0 : s === r ? 60 * (n - o) / h + 360 : n === r ? 60 * (o - s) / h + 120 : 60 * (s - n) / h + 240, i = 0 === h ? 0 : .5 >= u ? h / c : h / (2 - c), [Math.round(e) % 360, i, u, null == a ? 1 : a] }, c.hsla.from = function (t) { if (null == t[0] || null == t[1] || null == t[2]) return [null, null, null, t[3]]; var e = t[0] / 360, i = t[1], s = t[2], o = t[3], a = .5 >= s ? s * (1 + i) : s + i - s * i, r = 2 * s - a; return [Math.round(255 * n(r, a, e + 1 / 3)), Math.round(255 * n(r, a, e)), Math.round(255 * n(r, a, e - 1 / 3)), o] }, f(c, function (s, n) { var o = n.props, a = n.cache, l = n.to, c = n.from; h.fn[s] = function (s) { if (l && !this[a] && (this[a] = l(this._rgba)), s === e) return this[a].slice(); var n, r = t.type(s), u = \"array\" === r || \"object\" === r ? s : arguments, d = this[a].slice(); return f(o, function (t, e) { var s = u[\"object\" === r ? t : e.idx]; null == s && (s = d[e.idx]), d[e.idx] = i(s, e) }), c ? (n = h(c(d)), n[a] = d, n) : h(d) }, f(o, function (e, i) { h.fn[e] || (h.fn[e] = function (n) { var o, a = t.type(n), l = \"alpha\" === e ? this._hsla ? \"hsla\" : \"rgba\" : s, h = this[l](), c = h[i.idx]; return \"undefined\" === a ? c : (\"function\" === a && (n = n.call(this, c), a = t.type(n)), null == n && i.empty ? this : (\"string\" === a && (o = r.exec(n), o && (n = c + parseFloat(o[2]) * (\"+\" === o[1] ? 1 : -1))), h[i.idx] = n, this[l](h))) }) }) }), h.hook = function (e) { var i = e.split(\" \"); f(i, function (e, i) { t.cssHooks[i] = { set: function (e, n) { var o, a, r = \"\"; if (\"transparent\" !== n && (\"string\" !== t.type(n) || (o = s(n)))) { if (n = h(o || n), !d.rgba && 1 !== n._rgba[3]) { for (a = \"backgroundColor\" === i ? e.parentNode : e; (\"\" === r || \"transparent\" === r) && a && a.style;) try { r = t.css(a, \"backgroundColor\"), a = a.parentNode } catch (l) { } n = n.blend(r && \"transparent\" !== r ? r : \"_default\") } n = n.toRgbaString() } try { e.style[i] = n } catch (l) { } } }, t.fx.step[i] = function (e) { e.colorInit || (e.start = h(e.elem, i), e.end = h(e.end), e.colorInit = !0), t.cssHooks[i].set(e.elem, e.start.transition(e.end, e.pos)) } }) }, h.hook(a), t.cssHooks.borderColor = { expand: function (t) { var e = {}; return f([\"Top\", \"Right\", \"Bottom\", \"Left\"], function (i, s) { e[\"border\" + s + \"Color\"] = t }), e } }, o = t.Color.names = { aqua: \"#00ffff\", black: \"#000000\", blue: \"#0000ff\", fuchsia: \"#ff00ff\", gray: \"#808080\", green: \"#008000\", lime: \"#00ff00\", maroon: \"#800000\", navy: \"#000080\", olive: \"#808000\", purple: \"#800080\", red: \"#ff0000\", silver: \"#c0c0c0\", teal: \"#008080\", white: \"#ffffff\", yellow: \"#ffff00\", transparent: [null, null, null, 0], _default: \"#ffffff\" }\r\n\t}(r), function () { function e(e) { var i, s, n = e.ownerDocument.defaultView ? e.ownerDocument.defaultView.getComputedStyle(e, null) : e.currentStyle, o = {}; if (n && n.length && n[0] && n[n[0]]) for (s = n.length; s--;) i = n[s], \"string\" == typeof n[i] && (o[t.camelCase(i)] = n[i]); else for (i in n) \"string\" == typeof n[i] && (o[i] = n[i]); return o } function i(e, i) { var s, o, a = {}; for (s in i) o = i[s], e[s] !== o && (n[s] || (t.fx.step[s] || !isNaN(parseFloat(o))) && (a[s] = o)); return a } var s = [\"add\", \"remove\", \"toggle\"], n = { border: 1, borderBottom: 1, borderColor: 1, borderLeft: 1, borderRight: 1, borderTop: 1, borderWidth: 1, margin: 1, padding: 1 }; t.each([\"borderLeftStyle\", \"borderRightStyle\", \"borderBottomStyle\", \"borderTopStyle\"], function (e, i) { t.fx.step[i] = function (t) { (\"none\" !== t.end && !t.setAttr || 1 === t.pos && !t.setAttr) && (r.style(t.elem, i, t.end), t.setAttr = !0) } }), t.fn.addBack || (t.fn.addBack = function (t) { return this.add(null == t ? this.prevObject : this.prevObject.filter(t)) }), t.effects.animateClass = function (n, o, a, r) { var l = t.speed(o, a, r); return this.queue(function () { var o, a = t(this), r = a.attr(\"class\") || \"\", h = l.children ? a.find(\"*\").addBack() : a; h = h.map(function () { var i = t(this); return { el: i, start: e(this) } }), o = function () { t.each(s, function (t, e) { n[e] && a[e + \"Class\"](n[e]) }) }, o(), h = h.map(function () { return this.end = e(this.el[0]), this.diff = i(this.start, this.end), this }), a.attr(\"class\", r), h = h.map(function () { var e = this, i = t.Deferred(), s = t.extend({}, l, { queue: !1, complete: function () { i.resolve(e) } }); return this.el.animate(this.diff, s), i.promise() }), t.when.apply(t, h.get()).done(function () { o(), t.each(arguments, function () { var e = this.el; t.each(this.diff, function (t) { e.css(t, \"\") }) }), l.complete.call(a[0]) }) }) }, t.fn.extend({ addClass: function (e) { return function (i, s, n, o) { return s ? t.effects.animateClass.call(this, { add: i }, s, n, o) : e.apply(this, arguments) } }(t.fn.addClass), removeClass: function (e) { return function (i, s, n, o) { return arguments.length > 1 ? t.effects.animateClass.call(this, { remove: i }, s, n, o) : e.apply(this, arguments) } }(t.fn.removeClass), toggleClass: function (e) { return function (i, s, n, o, a) { return \"boolean\" == typeof s || void 0 === s ? n ? t.effects.animateClass.call(this, s ? { add: i } : { remove: i }, n, o, a) : e.apply(this, arguments) : t.effects.animateClass.call(this, { toggle: i }, s, n, o) } }(t.fn.toggleClass), switchClass: function (e, i, s, n, o) { return t.effects.animateClass.call(this, { add: i, remove: e }, s, n, o) } }) }(), function () { function e(e, i, s, n) { return t.isPlainObject(e) && (i = e, e = e.effect), e = { effect: e }, null == i && (i = {}), t.isFunction(i) && (n = i, s = null, i = {}), (\"number\" == typeof i || t.fx.speeds[i]) && (n = s, s = i, i = {}), t.isFunction(s) && (n = s, s = null), i && t.extend(e, i), s = s || i.duration, e.duration = t.fx.off ? 0 : \"number\" == typeof s ? s : s in t.fx.speeds ? t.fx.speeds[s] : t.fx.speeds._default, e.complete = n || i.complete, e } function i(e) { return !e || \"number\" == typeof e || t.fx.speeds[e] ? !0 : \"string\" != typeof e || t.effects.effect[e] ? t.isFunction(e) ? !0 : \"object\" != typeof e || e.effect ? !1 : !0 : !0 } function s(t, e) { var i = e.outerWidth(), s = e.outerHeight(), n = /^rect\\((-?\\d*\\.?\\d*px|-?\\d+%|auto),?\\s*(-?\\d*\\.?\\d*px|-?\\d+%|auto),?\\s*(-?\\d*\\.?\\d*px|-?\\d+%|auto),?\\s*(-?\\d*\\.?\\d*px|-?\\d+%|auto)\\)$/, o = n.exec(t) || [\"\", 0, i, s, 0]; return { top: parseFloat(o[1]) || 0, right: \"auto\" === o[2] ? i : parseFloat(o[2]), bottom: \"auto\" === o[3] ? s : parseFloat(o[3]), left: parseFloat(o[4]) || 0 } } t.expr && t.expr.filters && t.expr.filters.animated && (t.expr.filters.animated = function (e) { return function (i) { return !!t(i).data(a) || e(i) } }(t.expr.filters.animated)), t.uiBackCompat !== !1 && t.extend(t.effects, { save: function (t, e) { for (var i = 0, s = e.length; s > i; i++) null !== e[i] && t.data(n + e[i], t[0].style[e[i]]) }, restore: function (t, e) { for (var i, s = 0, o = e.length; o > s; s++) null !== e[s] && (i = t.data(n + e[s]), t.css(e[s], i)) }, setMode: function (t, e) { return \"toggle\" === e && (e = t.is(\":hidden\") ? \"show\" : \"hide\"), e }, createWrapper: function (e) { if (e.parent().is(\".ui-effects-wrapper\")) return e.parent(); var i = { width: e.outerWidth(!0), height: e.outerHeight(!0), \"float\": e.css(\"float\") }, s = t(\"

      \").addClass(\"ui-effects-wrapper\").css({ fontSize: \"100%\", background: \"transparent\", border: \"none\", margin: 0, padding: 0 }), n = { width: e.width(), height: e.height() }, o = document.activeElement; try { o.id } catch (a) { o = document.body } return e.wrap(s), (e[0] === o || t.contains(e[0], o)) && t(o).trigger(\"focus\"), s = e.parent(), \"static\" === e.css(\"position\") ? (s.css({ position: \"relative\" }), e.css({ position: \"relative\" })) : (t.extend(i, { position: e.css(\"position\"), zIndex: e.css(\"z-index\") }), t.each([\"top\", \"left\", \"bottom\", \"right\"], function (t, s) { i[s] = e.css(s), isNaN(parseInt(i[s], 10)) && (i[s] = \"auto\") }), e.css({ position: \"relative\", top: 0, left: 0, right: \"auto\", bottom: \"auto\" })), e.css(n), s.css(i).show() }, removeWrapper: function (e) { var i = document.activeElement; return e.parent().is(\".ui-effects-wrapper\") && (e.parent().replaceWith(e), (e[0] === i || t.contains(e[0], i)) && t(i).trigger(\"focus\")), e } }), t.extend(t.effects, { version: \"1.12.0\", define: function (e, i, s) { return s || (s = i, i = \"effect\"), t.effects.effect[e] = s, t.effects.effect[e].mode = i, s }, scaledDimensions: function (t, e, i) { if (0 === e) return { height: 0, width: 0, outerHeight: 0, outerWidth: 0 }; var s = \"horizontal\" !== i ? (e || 100) / 100 : 1, n = \"vertical\" !== i ? (e || 100) / 100 : 1; return { height: t.height() * n, width: t.width() * s, outerHeight: t.outerHeight() * n, outerWidth: t.outerWidth() * s } }, clipToBox: function (t) { return { width: t.clip.right - t.clip.left, height: t.clip.bottom - t.clip.top, left: t.clip.left, top: t.clip.top } }, unshift: function (t, e, i) { var s = t.queue(); e > 1 && s.splice.apply(s, [1, 0].concat(s.splice(e, i))), t.dequeue() }, saveStyle: function (t) { t.data(o, t[0].style.cssText) }, restoreStyle: function (t) { t[0].style.cssText = t.data(o) || \"\", t.removeData(o) }, mode: function (t, e) { var i = t.is(\":hidden\"); return \"toggle\" === e && (e = i ? \"show\" : \"hide\"), (i ? \"hide\" === e : \"show\" === e) && (e = \"none\"), e }, getBaseline: function (t, e) { var i, s; switch (t[0]) { case \"top\": i = 0; break; case \"middle\": i = .5; break; case \"bottom\": i = 1; break; default: i = t[0] / e.height } switch (t[1]) { case \"left\": s = 0; break; case \"center\": s = .5; break; case \"right\": s = 1; break; default: s = t[1] / e.width } return { x: s, y: i } }, createPlaceholder: function (e) { var i, s = e.css(\"position\"), o = e.position(); return e.css({ marginTop: e.css(\"marginTop\"), marginBottom: e.css(\"marginBottom\"), marginLeft: e.css(\"marginLeft\"), marginRight: e.css(\"marginRight\") }).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()), /^(static|relative)/.test(s) && (s = \"absolute\", i = t(\"<\" + e[0].nodeName + \">\").insertAfter(e).css({ display: /^(inline|ruby)/.test(e.css(\"display\")) ? \"inline-block\" : \"block\", visibility: \"hidden\", marginTop: e.css(\"marginTop\"), marginBottom: e.css(\"marginBottom\"), marginLeft: e.css(\"marginLeft\"), marginRight: e.css(\"marginRight\"), \"float\": e.css(\"float\") }).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()).addClass(\"ui-effects-placeholder\"), e.data(n + \"placeholder\", i)), e.css({ position: s, left: o.left, top: o.top }), i }, removePlaceholder: function (t) { var e = n + \"placeholder\", i = t.data(e); i && (i.remove(), t.removeData(e)) }, cleanUp: function (e) { t.effects.restoreStyle(e), t.effects.removePlaceholder(e) }, setTransition: function (e, i, s, n) { return n = n || {}, t.each(i, function (t, i) { var o = e.cssUnit(i); o[0] > 0 && (n[i] = o[0] * s + o[1]) }), n } }), t.fn.extend({ effect: function () { function i(e) { function i() { l.removeData(a), t.effects.cleanUp(l), \"hide\" === s.mode && l.hide(), r() } function r() { t.isFunction(h) && h.call(l[0]), t.isFunction(e) && e() } var l = t(this); s.mode = u.shift(), t.uiBackCompat === !1 || o ? \"none\" === s.mode ? (l[c](), r()) : n.call(l[0], s, i) : (l.is(\":hidden\") ? \"hide\" === c : \"show\" === c) ? (l[c](), r()) : n.call(l[0], s, r) } var s = e.apply(this, arguments), n = t.effects.effect[s.effect], o = n.mode, r = s.queue, l = r || \"fx\", h = s.complete, c = s.mode, u = [], d = function (e) { var i = t(this), s = t.effects.mode(i, c) || o; i.data(a, !0), u.push(s), o && (\"show\" === s || s === o && \"hide\" === s) && i.show(), o && \"none\" === s || t.effects.saveStyle(i), t.isFunction(e) && e() }; return t.fx.off || !n ? c ? this[c](s.duration, h) : this.each(function () { h && h.call(this) }) : r === !1 ? this.each(d).each(i) : this.queue(l, d).queue(l, i) }, show: function (t) { return function (s) { if (i(s)) return t.apply(this, arguments); var n = e.apply(this, arguments); return n.mode = \"show\", this.effect.call(this, n) } }(t.fn.show), hide: function (t) { return function (s) { if (i(s)) return t.apply(this, arguments); var n = e.apply(this, arguments); return n.mode = \"hide\", this.effect.call(this, n) } }(t.fn.hide), toggle: function (t) { return function (s) { if (i(s) || \"boolean\" == typeof s) return t.apply(this, arguments); var n = e.apply(this, arguments); return n.mode = \"toggle\", this.effect.call(this, n) } }(t.fn.toggle), cssUnit: function (e) { var i = this.css(e), s = []; return t.each([\"em\", \"px\", \"%\", \"pt\"], function (t, e) { i.indexOf(e) > 0 && (s = [parseFloat(i), e]) }), s }, cssClip: function (t) { return t ? this.css(\"clip\", \"rect(\" + t.top + \"px \" + t.right + \"px \" + t.bottom + \"px \" + t.left + \"px)\") : s(this.css(\"clip\"), this) }, transfer: function (e, i) { var s = t(this), n = t(e.to), o = \"fixed\" === n.css(\"position\"), a = t(\"body\"), r = o ? a.scrollTop() : 0, l = o ? a.scrollLeft() : 0, h = n.offset(), c = { top: h.top - r, left: h.left - l, height: n.innerHeight(), width: n.innerWidth() }, u = s.offset(), d = t(\"
      \").appendTo(\"body\").addClass(e.className).css({ top: u.top - r, left: u.left - l, height: s.innerHeight(), width: s.innerWidth(), position: o ? \"fixed\" : \"absolute\" }).animate(c, e.duration, e.easing, function () { d.remove(), t.isFunction(i) && i() }) } }), t.fx.step.clip = function (e) { e.clipInit || (e.start = t(e.elem).cssClip(), \"string\" == typeof e.end && (e.end = s(e.end, e.elem)), e.clipInit = !0), t(e.elem).cssClip({ top: e.pos * (e.end.top - e.start.top) + e.start.top, right: e.pos * (e.end.right - e.start.right) + e.start.right, bottom: e.pos * (e.end.bottom - e.start.bottom) + e.start.bottom, left: e.pos * (e.end.left - e.start.left) + e.start.left }) } }(), function () { var e = {}; t.each([\"Quad\", \"Cubic\", \"Quart\", \"Quint\", \"Expo\"], function (t, i) { e[i] = function (e) { return Math.pow(e, t + 2) } }), t.extend(e, { Sine: function (t) { return 1 - Math.cos(t * Math.PI / 2) }, Circ: function (t) { return 1 - Math.sqrt(1 - t * t) }, Elastic: function (t) { return 0 === t || 1 === t ? t : -Math.pow(2, 8 * (t - 1)) * Math.sin((80 * (t - 1) - 7.5) * Math.PI / 15) }, Back: function (t) { return t * t * (3 * t - 2) }, Bounce: function (t) { for (var e, i = 4; ((e = Math.pow(2, --i)) - 1) / 11 > t;); return 1 / Math.pow(4, 3 - i) - 7.5625 * Math.pow((3 * e - 2) / 22 - t, 2) } }), t.each(e, function (e, i) { t.easing[\"easeIn\" + e] = i, t.easing[\"easeOut\" + e] = function (t) { return 1 - i(1 - t) }, t.easing[\"easeInOut\" + e] = function (t) { return .5 > t ? i(2 * t) / 2 : 1 - i(-2 * t + 2) / 2 } }) }(); var l = t.effects; t.effects.define(\"blind\", \"hide\", function (e, i) { var s = { up: [\"bottom\", \"top\"], vertical: [\"bottom\", \"top\"], down: [\"top\", \"bottom\"], left: [\"right\", \"left\"], horizontal: [\"right\", \"left\"], right: [\"left\", \"right\"] }, n = t(this), o = e.direction || \"up\", a = n.cssClip(), r = { clip: t.extend({}, a) }, l = t.effects.createPlaceholder(n); r.clip[s[o][0]] = r.clip[s[o][1]], \"show\" === e.mode && (n.cssClip(r.clip), l && l.css(t.effects.clipToBox(r)), r.clip = a), l && l.animate(t.effects.clipToBox(r), e.duration, e.easing), n.animate(r, { queue: !1, duration: e.duration, easing: e.easing, complete: i }) }), t.effects.define(\"bounce\", function (e, i) { var s, n, o, a = t(this), r = e.mode, l = \"hide\" === r, h = \"show\" === r, c = e.direction || \"up\", u = e.distance, d = e.times || 5, p = 2 * d + (h || l ? 1 : 0), f = e.duration / p, g = e.easing, m = \"up\" === c || \"down\" === c ? \"top\" : \"left\", _ = \"up\" === c || \"left\" === c, v = 0, b = a.queue().length; for (t.effects.createPlaceholder(a), o = a.css(m), u || (u = a[\"top\" === m ? \"outerHeight\" : \"outerWidth\"]() / 3), h && (n = { opacity: 1 }, n[m] = o, a.css(\"opacity\", 0).css(m, _ ? 2 * -u : 2 * u).animate(n, f, g)), l && (u /= Math.pow(2, d - 1)), n = {}, n[m] = o; d > v; v++) s = {}, s[m] = (_ ? \"-=\" : \"+=\") + u, a.animate(s, f, g).animate(n, f, g), u = l ? 2 * u : u / 2; l && (s = { opacity: 0 }, s[m] = (_ ? \"-=\" : \"+=\") + u, a.animate(s, f, g)), a.queue(i), t.effects.unshift(a, b, p + 1) }), t.effects.define(\"clip\", \"hide\", function (e, i) { var s, n = {}, o = t(this), a = e.direction || \"vertical\", r = \"both\" === a, l = r || \"horizontal\" === a, h = r || \"vertical\" === a; s = o.cssClip(), n.clip = { top: h ? (s.bottom - s.top) / 2 : s.top, right: l ? (s.right - s.left) / 2 : s.right, bottom: h ? (s.bottom - s.top) / 2 : s.bottom, left: l ? (s.right - s.left) / 2 : s.left }, t.effects.createPlaceholder(o), \"show\" === e.mode && (o.cssClip(n.clip), n.clip = s), o.animate(n, { queue: !1, duration: e.duration, easing: e.easing, complete: i }) }), t.effects.define(\"drop\", \"hide\", function (e, i) { var s, n = t(this), o = e.mode, a = \"show\" === o, r = e.direction || \"left\", l = \"up\" === r || \"down\" === r ? \"top\" : \"left\", h = \"up\" === r || \"left\" === r ? \"-=\" : \"+=\", c = \"+=\" === h ? \"-=\" : \"+=\", u = { opacity: 0 }; t.effects.createPlaceholder(n), s = e.distance || n[\"top\" === l ? \"outerHeight\" : \"outerWidth\"](!0) / 2, u[l] = h + s, a && (n.css(u), u[l] = c + s, u.opacity = 1), n.animate(u, { queue: !1, duration: e.duration, easing: e.easing, complete: i }) }), t.effects.define(\"explode\", \"hide\", function (e, i) { function s() { b.push(this), b.length === u * d && n() } function n() { p.css({ visibility: \"visible\" }), t(b).remove(), i() } var o, a, r, l, h, c, u = e.pieces ? Math.round(Math.sqrt(e.pieces)) : 3, d = u, p = t(this), f = e.mode, g = \"show\" === f, m = p.show().css(\"visibility\", \"hidden\").offset(), _ = Math.ceil(p.outerWidth() / d), v = Math.ceil(p.outerHeight() / u), b = []; for (o = 0; u > o; o++) for (l = m.top + o * v, c = o - (u - 1) / 2, a = 0; d > a; a++) r = m.left + a * _, h = a - (d - 1) / 2, p.clone().appendTo(\"body\").wrap(\"
      \").css({ position: \"absolute\", visibility: \"visible\", left: -a * _, top: -o * v }).parent().addClass(\"ui-effects-explode\").css({ position: \"absolute\", overflow: \"hidden\", width: _, height: v, left: r + (g ? h * _ : 0), top: l + (g ? c * v : 0), opacity: g ? 0 : 1 }).animate({ left: r + (g ? 0 : h * _), top: l + (g ? 0 : c * v), opacity: g ? 1 : 0 }, e.duration || 500, e.easing, s) }), t.effects.define(\"fade\", \"toggle\", function (e, i) { var s = \"show\" === e.mode; t(this).css(\"opacity\", s ? 0 : 1).animate({ opacity: s ? 1 : 0 }, { queue: !1, duration: e.duration, easing: e.easing, complete: i }) }), t.effects.define(\"fold\", \"hide\", function (e, i) { var s = t(this), n = e.mode, o = \"show\" === n, a = \"hide\" === n, r = e.size || 15, l = /([0-9]+)%/.exec(r), h = !!e.horizFirst, c = h ? [\"right\", \"bottom\"] : [\"bottom\", \"right\"], u = e.duration / 2, d = t.effects.createPlaceholder(s), p = s.cssClip(), f = { clip: t.extend({}, p) }, g = { clip: t.extend({}, p) }, m = [p[c[0]], p[c[1]]], _ = s.queue().length; l && (r = parseInt(l[1], 10) / 100 * m[a ? 0 : 1]), f.clip[c[0]] = r, g.clip[c[0]] = r, g.clip[c[1]] = 0, o && (s.cssClip(g.clip), d && d.css(t.effects.clipToBox(g)), g.clip = p), s.queue(function (i) { d && d.animate(t.effects.clipToBox(f), u, e.easing).animate(t.effects.clipToBox(g), u, e.easing), i() }).animate(f, u, e.easing).animate(g, u, e.easing).queue(i), t.effects.unshift(s, _, 4) }), t.effects.define(\"highlight\", \"show\", function (e, i) { var s = t(this), n = { backgroundColor: s.css(\"backgroundColor\") }; \"hide\" === e.mode && (n.opacity = 0), t.effects.saveStyle(s), s.css({ backgroundImage: \"none\", backgroundColor: e.color || \"#ffff99\" }).animate(n, { queue: !1, duration: e.duration, easing: e.easing, complete: i }) }), t.effects.define(\"size\", function (e, i) { var s, n, o, a = t(this), r = [\"fontSize\"], l = [\"borderTopWidth\", \"borderBottomWidth\", \"paddingTop\", \"paddingBottom\"], h = [\"borderLeftWidth\", \"borderRightWidth\", \"paddingLeft\", \"paddingRight\"], c = e.mode, u = \"effect\" !== c, d = e.scale || \"both\", p = e.origin || [\"middle\", \"center\"], f = a.css(\"position\"), g = a.position(), m = t.effects.scaledDimensions(a), _ = e.from || m, v = e.to || t.effects.scaledDimensions(a, 0); t.effects.createPlaceholder(a), \"show\" === c && (o = _, _ = v, v = o), n = { from: { y: _.height / m.height, x: _.width / m.width }, to: { y: v.height / m.height, x: v.width / m.width } }, (\"box\" === d || \"both\" === d) && (n.from.y !== n.to.y && (_ = t.effects.setTransition(a, l, n.from.y, _), v = t.effects.setTransition(a, l, n.to.y, v)), n.from.x !== n.to.x && (_ = t.effects.setTransition(a, h, n.from.x, _), v = t.effects.setTransition(a, h, n.to.x, v))), (\"content\" === d || \"both\" === d) && n.from.y !== n.to.y && (_ = t.effects.setTransition(a, r, n.from.y, _), v = t.effects.setTransition(a, r, n.to.y, v)), p && (s = t.effects.getBaseline(p, m), _.top = (m.outerHeight - _.outerHeight) * s.y + g.top, _.left = (m.outerWidth - _.outerWidth) * s.x + g.left, v.top = (m.outerHeight - v.outerHeight) * s.y + g.top, v.left = (m.outerWidth - v.outerWidth) * s.x + g.left), a.css(_), (\"content\" === d || \"both\" === d) && (l = l.concat([\"marginTop\", \"marginBottom\"]).concat(r), h = h.concat([\"marginLeft\", \"marginRight\"]), a.find(\"*[width]\").each(function () { var i = t(this), s = t.effects.scaledDimensions(i), o = { height: s.height * n.from.y, width: s.width * n.from.x, outerHeight: s.outerHeight * n.from.y, outerWidth: s.outerWidth * n.from.x }, a = { height: s.height * n.to.y, width: s.width * n.to.x, outerHeight: s.height * n.to.y, outerWidth: s.width * n.to.x }; n.from.y !== n.to.y && (o = t.effects.setTransition(i, l, n.from.y, o), a = t.effects.setTransition(i, l, n.to.y, a)), n.from.x !== n.to.x && (o = t.effects.setTransition(i, h, n.from.x, o), a = t.effects.setTransition(i, h, n.to.x, a)), u && t.effects.saveStyle(i), i.css(o), i.animate(a, e.duration, e.easing, function () { u && t.effects.restoreStyle(i) }) })), a.animate(v, { queue: !1, duration: e.duration, easing: e.easing, complete: function () { var e = a.offset(); 0 === v.opacity && a.css(\"opacity\", _.opacity), u || (a.css(\"position\", \"static\" === f ? \"relative\" : f).offset(e), t.effects.saveStyle(a)), i() } }) }), t.effects.define(\"scale\", function (e, i) { var s = t(this), n = e.mode, o = parseInt(e.percent, 10) || (0 === parseInt(e.percent, 10) ? 0 : \"effect\" !== n ? 0 : 100), a = t.extend(!0, { from: t.effects.scaledDimensions(s), to: t.effects.scaledDimensions(s, o, e.direction || \"both\"), origin: e.origin || [\"middle\", \"center\"] }, e); e.fade && (a.from.opacity = 1, a.to.opacity = 0), t.effects.effect.size.call(this, a, i) }), t.effects.define(\"puff\", \"hide\", function (e, i) { var s = t.extend(!0, {}, e, { fade: !0, percent: parseInt(e.percent, 10) || 150 }); t.effects.effect.scale.call(this, s, i) }), t.effects.define(\"pulsate\", \"show\", function (e, i) { var s = t(this), n = e.mode, o = \"show\" === n, a = \"hide\" === n, r = o || a, l = 2 * (e.times || 5) + (r ? 1 : 0), h = e.duration / l, c = 0, u = 1, d = s.queue().length; for ((o || !s.is(\":visible\")) && (s.css(\"opacity\", 0).show(), c = 1) ; l > u; u++) s.animate({ opacity: c }, h, e.easing), c = 1 - c; s.animate({ opacity: c }, h, e.easing), s.queue(i), t.effects.unshift(s, d, l + 1) }), t.effects.define(\"shake\", function (e, i) { var s = 1, n = t(this), o = e.direction || \"left\", a = e.distance || 20, r = e.times || 3, l = 2 * r + 1, h = Math.round(e.duration / l), c = \"up\" === o || \"down\" === o ? \"top\" : \"left\", u = \"up\" === o || \"left\" === o, d = {}, p = {}, f = {}, g = n.queue().length; for (t.effects.createPlaceholder(n), d[c] = (u ? \"-=\" : \"+=\") + a, p[c] = (u ? \"+=\" : \"-=\") + 2 * a, f[c] = (u ? \"-=\" : \"+=\") + 2 * a, n.animate(d, h, e.easing) ; r > s; s++) n.animate(p, h, e.easing).animate(f, h, e.easing); n.animate(p, h, e.easing).animate(d, h / 2, e.easing).queue(i), t.effects.unshift(n, g, l + 1) }), t.effects.define(\"slide\", \"show\", function (e, i) { var s, n, o = t(this), a = { up: [\"bottom\", \"top\"], down: [\"top\", \"bottom\"], left: [\"right\", \"left\"], right: [\"left\", \"right\"] }, r = e.mode, l = e.direction || \"left\", h = \"up\" === l || \"down\" === l ? \"top\" : \"left\", c = \"up\" === l || \"left\" === l, u = e.distance || o[\"top\" === h ? \"outerHeight\" : \"outerWidth\"](!0), d = {}; t.effects.createPlaceholder(o), s = o.cssClip(), n = o.position()[h], d[h] = (c ? -1 : 1) * u + n, d.clip = o.cssClip(), d.clip[a[l][1]] = d.clip[a[l][0]], \"show\" === r && (o.cssClip(d.clip), o.css(h, d[h]), d.clip = s, d[h] = n), o.animate(d, { queue: !1, duration: e.duration, easing: e.easing, complete: i }) }); var l; t.uiBackCompat !== !1 && (l = t.effects.define(\"transfer\", function (e, i) { t(this).transfer(e, i) }))\r\n});\n","module.exports = \"
      \\r\\n\\t{{#if showDistance}}\\r\\n\\t\\t\\r\\n\\t\\t\\r\\n\\t{{/if}}\\r\\n
      \"","module.exports = \"
      \\r\\n\\t
      \\r\\n\\t\\t{{LocalizeResource 'UserSearch.SEARCH_FORM'}}\\r\\n\\t\\t\\r\\n\\t\\t
      \\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t
      \\r\\n\\t\\t
      \\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t
      \\r\\n\\t\\t{{> agentsDistancePartial}}\\r\\n\\t\\t
      \\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
      \\r\\n\\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
      \\r\\n\\r\\n\\t\\t\\t{{#if userAuthorized}}\\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t\\tSEARCH\\r\\n\\t\\t\\t\\t
        \\r\\n\\t\\t\\t\\t\\t
      • \\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t{{#if isCommercial }}\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t{{else}}\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t{{/if}}\\r\\n\\t\\t\\t\\t\\t
      • \\r\\n\\t\\t\\t\\t\\t
      • \\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
      • \\r\\n\\t\\t\\t\\t\\t{{#if hasFirm}}\\r\\n\\t\\t\\t\\t\\t
      • \\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
      • \\r\\n\\t\\t\\t\\t\\t{{/if}}\\r\\n\\r\\n\\t\\t\\t\\t\\t{{#each topGroupList}}\\r\\n\\t\\t\\t\\t\\t
      • \\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
      • \\r\\n\\t\\t\\t\\t\\t{{/each}}\\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t
        \\r\\n\\t\\t\\t\\t\\t{{#each bottomGroupList}}\\r\\n\\t\\t\\t\\t\\t
      • \\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
      • \\r\\n\\t\\t\\t\\t\\t{{/each}}\\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t{{#if bottomGroupList}}\\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t{{/if}}\\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t{{/if}}\\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t\\t{{LocalizeResource 'UserSearch.USER_SEARCH_LANGUAGE_SPOKEN'}}\\r\\n\\t\\t\\t\\t{{> agentsSearchLanguageSpokenPartial}}\\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
      \\r\\n\\t\\t
      \\r\\n\\t\\t\\r\\n\\t
      \\r\\n
      \\r\\n\\r\\n
      \\r\\n\\r\\n
      \"","module.exports = \"
      \\r\\n
        \\r\\n {{#each topLanguageSpokenList}}\\r\\n
      • \\r\\n \\r\\n \\r\\n
      • \\r\\n {{/each}}\\r\\n
      \\r\\n
        \\r\\n {{#each restLanguageSpokenList}}\\r\\n
      • \\r\\n \\r\\n \\r\\n
      • \\r\\n {{/each}}\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n \\r\\n
      \\r\\n
      \"","module.exports = \"{{#unless connectionInfo.isSelf}}\\r\\n\\t{{#if connectionInfo.Connected}}\\r\\n\\t\\t\\r\\n\\t{{else if connectionInfo.ImFollowing}}\\r\\n\\t\\t\\r\\n\\t{{else if connectionInfo.FollowingMe}}\\r\\n\\t\\t\\r\\n\\t{{else if connectionInfo.connectionInfoNotReady}}\\r\\n\\t\\t\\r\\n\\t{{else}}\\r\\n\\t\\t\\r\\n\\t{{/if}}\\r\\n{{/unless}}\"","module.exports = \"{{#unless connectionInfo.isSelf}}\\r\\n {{LocalizeResource 'UserSearch.SEND_A_MESSAGE_BUTTON'}}\\r\\n{{/unless}}\"","module.exports = \"{{#unless connectionInfo.isSelf}}\\r\\n {{#if showReferralButton}}\\r\\n\\t\\t\\r\\n\\t\\t\\t{{LocalizeResource 'Global.REFERRAL_SEND_REFERRAL_BUTTON'}}\\r\\n\\t\\t\\r\\n {{/if}}\\r\\n{{/unless}}\"","module.exports = \"
    • \\r\\n\\t
      \\r\\n\\t\\r\\n\\t\\t
      \\r\\n\\t\\t\\t\\r\\n\\t\\t
      \\r\\n\\t\\t
      \\r\\n\\t\\t\\t

      {{Title}}

      \\r\\n\\t\\t\\t

      {{Body}}

      \\r\\n\\t\\t
      \\r\\n\\t
      \\r\\n
    • \"","module.exports = \"
      \\r\\n\\t
      \\r\\n\\t
      \\r\\n\\t\\t\\r\\n\\t\\t\\t{{LocalizeResource 'CLOSE'}}\\r\\n\\t\\t\\r\\n\\t\\t
      \\r\\n\\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t{{{LocalizeResource 'LOCATION_UPDATE_TITLE_TEXT'}}}\\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t
      \\r\\n\\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t

      {{LocalizeResource 'LOCATION_UPDATE_DESCRIPTION_TEXT'}}

      \\r\\n\\t\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t\\t{{LocalizeResource 'UPDATE_MY_LOCATION'}}\\r\\n\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t
      \\r\\n\\t\\t
      \\r\\n\\t
      \\r\\n
      \\r\\n\"","module.exports = \"
        \\r\\n\\t{{#if Success}}\\r\\n\\t{{#each Data}}\\r\\n\\t{{#if banner}}\\r\\n\\t\\t{{#if upsell}}\\r\\n\\t\\t\\t
      • \\r\\n\\t\\t\\t\\t
        \\r\\n\\t\\t\\t\\t\\t
        \\r\\n\\t\\t\\t\\t
        \\r\\n\\t\\t\\t\\t
        \\r\\n\\t\\t\\t\\t\\t

        {{LocalizeResource 'Navigation.NOTIFICATION_UPSELL_TITLE'}}

        \\r\\n\\t\\t\\t\\t\\t

        {{LocalizeResource 'Navigation.NOTIFICATION_UPSELL_COPY'}}

        \\r\\n\\t\\t\\t\\t
        \\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t
      • \\r\\n\\t\\t{{else}}\\r\\n\\t\\t\\t
      • \\r\\n\\t\\t\\t\\t{{#if premiumplus}}\\r\\n\\t\\t\\t\\t
        \\r\\n\\t\\t\\t\\t\\t
        \\r\\n\\t\\t\\t\\t
        \\r\\n\\t\\t\\t\\t
        \\r\\n\\t\\t\\t\\t\\t

        {{LocalizeResource 'Navigation.NOTIFICATION_PREMIUMPLUS_REMINDER_TITLE'}}

        \\r\\n\\t\\t\\t\\t\\t

        {{LocalizeResource 'Navigation.NOTIFICATION_PREMIUM_REMINDER_COPY'}}

        \\r\\n\\t\\t\\t\\t
        \\r\\n\\t\\t\\t\\t{{else}}\\r\\n\\t\\t\\t\\t\\t
        \\r\\n\\t\\t\\t\\t\\t\\t
        \\r\\n\\t\\t\\t\\t\\t
        \\r\\n\\t\\t\\t\\t\\t
        \\r\\n\\t\\t\\t\\t\\t\\t

        {{LocalizeResource 'Navigation.NOTIFICATION_PREMIUM_REMINDER_TITLE'}}

        \\r\\n\\t\\t\\t\\t\\t\\t

        {{LocalizeResource 'Navigation.NOTIFICATION_PREMIUM_REMINDER_COPY'}}

        \\r\\n\\t\\t\\t\\t\\t
        \\r\\n\\t\\t\\t\\t{{/if}}\\r\\n\\t\\t\\t
      • \\r\\n\\t\\t{{/if}}\\r\\n\\t{{else}}\\r\\n\\t\\t
      • \\r\\n\\t\\t\\t
          \\r\\n\\t\\t\\t\\t
        • \\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t
        • \\r\\n\\t\\t\\t\\t
        • \\r\\n\\t\\t\\t\\t\\t
          {{{Message}}}
          \\r\\n\\t\\t\\t\\t\\t{{RelativeDate}}\\r\\n\\t\\t\\t\\t
        • \\r\\n\\t\\t\\t\\t
        • \\r\\n\\t\\t\\t\\t\\t{{#if ActionLink}}\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t{{/if}}\\r\\n\\t\\t\\t\\t\\t{{#if ../dismissAllowed}}\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t{{/if}}\\r\\n\\t\\t\\t\\t
        • \\r\\n\\t\\t\\t\\t{{#if ContentMetadata.InvitationMessage}}\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t
        • \\r\\n\\t\\t\\t\\t\\t\\t{{#if ContentMetadata.truncatedMessage}}\\r\\n\\t\\t\\t\\t\\t\\t\\t

          {{ContentMetadata.InvitationMessage}}

          \\r\\n\\t\\t\\t\\t\\t\\t\\t

          {{ContentMetadata.truncatedMessage}}see more

          \\r\\n\\t\\t\\t\\t\\t\\t{{else}}\\r\\n\\t\\t\\t\\t\\t\\t\\t

          {{ContentMetadata.InvitationMessage}}

          \\r\\n\\t\\t\\t\\t\\t\\t{{/if}}\\r\\n\\t\\t\\t\\t\\t
        • \\t\\t\\t\\r\\n\\t\\t\\t\\t{{/if}}\\r\\n\\t\\t\\t
        \\r\\n\\t\\t
      • \\r\\n\\t{{/if}}\\r\\n\\t{{/each}}\\r\\n\\t
      • {{NoNotificationMessage}}
      • \\r\\n\\t{{else}}\\r\\n\\t{{#if pendingMessage}}\\r\\n\\t
      • {{LocalizeResource 'Global.NOTIFICATION_RETRIEVAL_PENDING'}}
      • \\r\\n\\t{{else}}\\r\\n\\t
      • {{LocalizeResource 'Global.NOTIFICATION_RETRIEVAL_ERROR'}}
      • \\r\\n\\t{{/if}}\\r\\n\\t{{/if}}\\r\\n\\t{{#if showExpandNetworkMessage}}\\r\\n\\t
      • \\r\\n\\t\\t
        \\r\\n\\t\\t\\t
        \\r\\n\\t\\t
        \\r\\n\\t\\t
        \\r\\n\\t\\t\\t

        {{LocalizeResource 'Global.EXPAND_YOUR_NETWORK'}}

        \\r\\n\\t\\t\\t

        {{LocalizeResource 'Global.EXPAND_YOUR_NETWORK_DESCRIPTION'}}

        \\r\\n\\t\\t
        \\r\\n\\t\\t\\r\\n\\t
      • \\r\\n\\t{{/if}}\\r\\n
      \\r\\n\\r\\n{{historyLinkText}}\"","module.exports = \"
      \\r\\n\\t
      \\r\\n\\t
      \\r\\n\\t\\t\\r\\n\\t\\t\\t{{LocalizeResource 'CLOSE'}}\\r\\n\\t\\t\\r\\n\\t\\t
      \\r\\n\\t\\t\\t
      {{LocalizeResource 'SEND_MESSAGE_POPUP_ADD_A_NOTE'}}
      \\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t

      {{{IntroMessage}}}

      \\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t
      \\r\\n\\t\\t
      \\r\\n\\t
      \\r\\n
      \\r\\n\"","module.exports = \"
      \\r\\n\\t
      \\r\\n\\t\\t
      \\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\\"{{{Firstname}}}\\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t
      \\r\\n
      \\r\\n
      {{{Firstname}}} {{{Lastname}}}
      \\r\\n {{#if FirmOrOffice}}\\r\\n
      \\r\\n {{#if Firm}}{{{Firm}}}{{/if}}\\r\\n {{#unless Firm}}{{#if OfficeName}}{{{OfficeName}}}{{/if}}{{/unless}}\\r\\n
      \\r\\n {{/if}}\\r\\n {{#if showAddress}}
      {{#if Address}}{{{Address}}}{{#if City}}, {{/if}}{{/if}}{{{City}}}{{#if Province}}{{#if City}}, {{/if}}{{{Province}}}{{/if}}{{#if showCountry}}{{#if showCountryComma}}, {{/if}}{{{Country}}}{{/if}}
      {{/if}}\\r\\n
      \\r\\n
      \\r\\n {{#if YearsExpStr}}\\r\\n
      \\r\\n {{YearsExpStr}}\\r\\n
      \\r\\n {{/if}}\\r\\n {{#if hasStats}}\\r\\n
      \\r\\n \\r\\n
      \\r\\n {{/if}}\\r\\n {{#if AwardedReferrals}}\\r\\n
      \\r\\n {{AwardedReferralsStr}}\\r\\n
      \\r\\n {{/if}}\\r\\n {{#if NetworkSize}}\\r\\n
      \\r\\n {{NetworkSizeStr}}\\r\\n
      \\r\\n {{/if}}\\r\\n
      \\r\\n\\r\\n\\t\\t\\t
      \\r\\n\\t\\t
      \\r\\n\\t\\t\\r\\n
      \\r\\n {{#if viewerAuthenticated}}\\r\\n {{> sendReferralButtonPartial}}\\r\\n {{> connectButtonPartial greyDisabled='true'}}\\r\\n {{> sendMessageButtonPartial}}\\r\\n {{#if phoneNumber}}\\r\\n \\r\\n CALL ME\\r\\n \\r\\n {{/if}}\\r\\n {{/if}}\\r\\n
      \\r\\n\\t\\t\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n {{#if Biography}}
      {{{Biography}}}
      {{/if}}\\r\\n {{#if LogoUrl}}\\\"logo\\\"{{/if}}\\r\\n
      \\r\\n
      \\r\\n \\r\\n {{#if AreasOfExpertise}}\\r\\n
      \\r\\n
      {{LocalizeResource 'Dashboard.ENH_AREAS_EXPERTISE'}}
      \\r\\n
        \\r\\n {{#each AreasOfExpertise}}\\r\\n
      • {{this.Name}}
      • \\r\\n {{/each}}\\r\\n
      \\r\\n
      \\r\\n {{/if}}\\r\\n {{#if Awards}}\\r\\n
      \\r\\n
      {{LocalizeResource 'Dashboard.ENH_AWARDS_RECOGNITION'}}
      \\r\\n
        \\r\\n {{#each Awards}}\\r\\n
      • {{this}}
      • \\r\\n {{/each}}\\r\\n
      \\r\\n
      \\r\\n {{/if}}\\r\\n {{#if Credentials}}\\r\\n
      \\r\\n
      {{LocalizeResource 'Dashboard.ENH_CREDENTIALS_QUALIFICATIONS'}}
      \\r\\n
        \\r\\n {{#each Credentials}}\\r\\n
      • {{this}}
      • \\r\\n {{/each}}\\r\\n
      \\r\\n
      \\r\\n {{/if}}\\r\\n {{#if Languages}}\\r\\n
      \\r\\n
      {{LocalizeResource 'Dashboard.ENH_LANGUAGES_SPOKEN'}}
      \\r\\n
        \\r\\n {{#each Languages}}\\r\\n
      • {{this}}
      • \\r\\n {{/each}}\\r\\n
      \\r\\n
      \\r\\n {{/if}}\\r\\n {{#if LicenseNumber}}\\r\\n
      \\r\\n
      {{LocalizeResource 'Dashboard.ENH_LICENSE_NUMBER'}}
      \\r\\n
      {{LicenseNumber}}
      \\r\\n
      \\r\\n {{/if}}\\r\\n {{#if prettyCreationDate}}\\r\\n
      \\r\\n
      {{LocalizeResource 'UserSearch.USER_SEARCH_RESAAS_MEMBER'}}
      \\r\\n
      {{prettyCreationDate}}
      \\r\\n
      \\r\\n {{/if}}\\r\\n {{#if prettyLastActivityDate}}\\r\\n
      \\r\\n
      {{LocalizeResource 'UserSearch.USER_SEARCH_LAST_ACTIVE'}}
      \\r\\n
      {{prettyLastActivityDate}}
      \\r\\n
      \\r\\n {{/if}}\\r\\n
      \\r\\n
      \\r\\n {{#if FacebookUrl}}{{/if}}\\r\\n {{#if TwitterUrl}}{{/if}}\\r\\n {{#if LinkedInUrl}}{{/if}}\\r\\n {{#if InstagramUrl}}{{/if}}\\r\\n {{#if WebsiteUrl}}{{/if}}\\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n
      \\r\\n\\t
      \\r\\n
      \"","module.exports = \"\"","module.exports = \"
      \\r\\n\\t
      \\r\\n\\t\\t{{#if IsPremium}}\\r\\n\\t\\t
      \\r\\n\\t\\t{{/if}}\\r\\n\\t\\t{{#unless noClick}}\\r\\n\\t\\t\\r\\n\\t\\t{{/unless}}\\r\\n\\t\\t\\t{{{Firstname}}} {{{Lastname}}}\\r\\n\\t\\t{{#unless noClick}}\\r\\n\\t\\t\\r\\n\\t\\t{{/unless}}\\r\\n\\t
      \\r\\n\\t
      \\r\\n\\t\\t{{#if FirmOrOffice }}\\r\\n\\t\\t\\r\\n\\t\\t\\t{{#if Firm}}{{{Firm}}}{{/if}}\\r\\n\\t\\t\\t{{#unless Firm}}{{#if OfficeName}}{{{OfficeName}}}{{/if}}{{/unless}}\\r\\n\\t\\t\\r\\n\\t\\t{{/if}}\\r\\n\\t\\t{{#if showAddress}}\\r\\n\\t\\t\\r\\n\\t\\t\\t{{{City}}}{{#if Province}}{{#if City}}, {{/if}}{{{Province}}}{{/if}}{{#if showCountry}}{{#if showCountryComma}}, {{/if}}{{{Country}}}{{/if}}\\r\\n\\t\\t\\r\\n\\t\\t{{/if}}\\r\\n\\t
      \\r\\n
      \"","module.exports = \"{{#if starterTile}}\\r\\n\\t\\r\\n{{else}}\\r\\n\\t
      \\r\\n\\t\\t
      \\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t{{> sendReferralButtonPartial}}\\r\\n\\t\\t\\t\\t\\t{{> connectButtonPartial}}\\r\\n\\t\\t\\t\\t\\t{{> sendMessageButtonPartial}}\\r\\n\\t\\t\\t\\t
      \\r\\n {{#if phoneNumber}}\\r\\n \\r\\n {{phoneNumber}}\\r\\n \\r\\n {{/if}}\\r\\n\\t\\t\\t\\t{{#if hasStats}}\\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t\\t
      {{{activeListingText}}}
      \\r\\n\\t\\t\\t\\t\\t\\t\\t
      {{{soldListingText}}}
      \\r\\n\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t{{else}}\\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t{{/if}}\\r\\n\\t\\t\\t
      \\r\\n\\t\\t
      \\r\\n\\t
      \\r\\n{{/if}}\"","module.exports = \"
      \\r\\n
      \\r\\n\\t\\r\\n\\t
      \\r\\n\\t\\t{{#if noAgents}}\\r\\n\\t\\t{{LocalizeResource 'UserSearch.USER_SEARCH_OOPS'}}\\r\\n\\t\\t\\r\\n\\t\\t\\t{{{LocalizeResource 'UserSearch.USER_SEARCH_NOT_FOUND_UPSELL'}}}\\r\\n\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t{{/if}}\\r\\n\\t\\t{{#if noConnections}}\\r\\n\\t\\t{{{LocalizeResource 'UserSearch.STARTING_BUILDING_NETWORK_TITLE'}}}\\r\\n\\t\\t\\r\\n\\t\\t\\t{{{LocalizeResource 'UserSearch.STARTING_BUILDING_NETWORK_SUBTITLE'}}}
      \\r\\n\\t\\t
      \\r\\n\\t\\t
      \\r\\n\\t\\t\\t\\r\\n\\t\\t\\t{{#if FirmAgent}}\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t{{/if}}\\r\\n\\t\\t\\t\\r\\n\\t\\t
      \\r\\n\\t\\t{{/if}}\\r\\n\\t
      \\r\\n
      \\r\\n\"","module.exports = \"{{#if response.Data}}\\r\\n\\t{{#each response.Data}}\\r\\n\\t\\t{{#if ../template.userSearchGridExternal}}\\r\\n\\t\\t\\t{{> userSearchGridExternalPartial external=../../template.userSearchGridExternal}}\\r\\n\\t\\t{{else if ../template.userSearchGridInternal}}\\r\\n\\t\\t\\t{{> userSearchGridInternalPartial internal=../../template.userSearchGridInternal}}\\r\\n\\t\\t{{else if featuredTitle}}\\r\\n\\t\\t\\t

      Featured Agents

      \\r\\n\\t\\t{{else if upsellCTA}}\\r\\n\\t\\t\\t
      \\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\t

      Join the Community, Be Seen

      \\r\\n\\t\\t\\t\\t\\t\\t

      \\r\\n\\t\\t\\t\\t\\t\\t\\t{{#if featuredAgentName}}\\r\\n\\t\\t\\t\\t\\t\\t\\t{{featuredAgentName}} uses RESAAS Ultimate for increased visibilty and you can too!\\r\\n\\t\\t\\t\\t\\t\\t\\t{{else}}\\r\\n\\t\\t\\t\\t\\t\\t\\tUnlock enhanced visibility and connect with a global network using RESAAS Ultimate!\\r\\n\\t\\t\\t\\t\\t\\t\\t{{/if}}\\r\\n\\t\\t\\t\\t\\t\\t

      \\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t\\t\\tJoin Now\\r\\n\\t\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t
      \\r\\n\\t\\t\\t\\t{{> userSearchGridGenericPartial}}\\r\\n\\t\\t\\t
      \\r\\n\\t\\t{{else if agentTitle}}\\r\\n\\t\\t\\t

      Agents

      \\r\\n\\t\\t{{else}}\\r\\n\\t\\t\\t{{#if isFeatured}}\\r\\n\\t\\t\\t\\t{{> userSearchfeaturedpremiumPartial}}\\r\\n\\t\\t\\t{{else}}\\r\\n\\t\\t\\t\\t{{> userSearchGridGenericPartial}}\\r\\n\\t\\t\\t{{/if}}\\r\\n\\t\\t{{/if}}\\r\\n\\t{{/each}}\\r\\n{{/if}}\\r\\n\\r\\n{{#if noAgents}}\\r\\n\\t{{> userSearchGridNoResultsPartial}}\\r\\n{{/if}}\\r\\n{{#if noConnections}}\\r\\n{{> userSearchGridNoResultsPartial}}\\r\\n{{/if}}\\r\\n{{#if someAgents}}\\r\\n\\t{{> userSearchGridNoResultsPartial}}\\r\\n{{/if}}\\r\\n\"","module.exports = Pusher;","module.exports = jQuery;"],"names":["$","pubsub","generalUtilities","moduleUtilities","module","private","properties","determineQueryElements","data","queryObject","requestObject","request","prop","Name","Keywords","RelationshipSearch","LanguagesSpoken","YearsOfExperience","_locationName","_subjectName","decodeURIComponent","Latitude","Latitude1","Latitude2","Latitude3","Latitude4","Longitude","Longitude1","Longitude2","Longitude3","Longitude4","_subjectType","_subject","CountryCode","SearchType","handleDataUserSearchBrowseSuccess","e","queryString","url","Modernizr","history","param","stringFormat","window","location","pathname","replaceState","handleDataUserSearchBrowse","response","Success","isOwnEvent","init","guid","uuid","subscribe","agentsSearchUtilities","agentListGuid","publish","watch","mpDataFrom","rowItemRemainder","Handlebars","agentsSearchFormTemplate","agentsSearchLanguageSpokenPartial","languageSpokenGeneralData","selectors","values","qTipConfig","elements","keyWordToolTip","selector","text","RESAAS","Localization","UserSearch","USER_SEARCH_KEYWORDS_TOOLTIP","FirmToolTip","TIP_ENTER_AT_LEAST_THREE_CHARS","YearOfExpToolTip","USER_SEARCH_YEARS_OF_EXPERIENCE_TOOLTIP","searchFormContainer","searchForm","searchInputs","searchFormSubmit","searchLocationInput","searchLocationButton","searchFormResetBtn","distanceInput","usersearchnearmebtn","usersearchmyfirmbtn","distanceConatiner","geoCodeTimeout","registerPartial","agentsSearchFormHtml","compile","bindqTip","each","key","value","qtip","content","position","my","at","target","viewport","adjust","method","hide","event","show","solo","style","def","classes","tip","corner","width","height","border","events","render","api","body","on","tooltip","getDeepLink","obj","deepLinkPath","deepLinkQuery","getDeepLinkPath","getDeepLinkQuery","search","Object","keys","length","defaultUserLocation","extend","pathArray","_show","_type","split","toUpperCase","slice","query","queryStringToObject","renderForm","$html","formData","allLanguageSpokenList","languagesSpoken","useMiles","User2","CountryId","browse","forEach","element","indexOf","checked","userAuthorized","hasFirm","isCommercial","getUserLocation","topLanguageSpokenList","restLanguageSpokenList","html","renderDistanceDropDown","handleSearchFormSubmit","preventDefault","handleNearMeBtn","handleResetForm","click","handleMyFirmBtn","disableAndWaitFor","val","this","doSearch","type","from","pageType","handleClickApply","handleDistanceInputChange","renderPage","params","setUpLocationAutocomplete","handleDataGetUserGroupsAll","groupList","group","topGroupList","bottomGroupList","message","JSON","stringify","filter","g","UniqueName","FirmGroupType","index","findIndex","splice","GroupName","unshift","getUserGroupsAll","serviceObject","createServiceObject","bindHandleFieldChanged","bindhandleDataUserLocationBrowse","actions","settings","accordionLinkSelector","accordionLinkSelectedClass","accordionSectionSelector","accordionSectionVisibleClass","bind","$this","id","attr","hasClass","removeClass","expand","unbind","$target","off","find","accordionLinks","accordionSections","$accordionLink","remove","addClass","overLay","validator","connectButtonCompiled","relationshiptypesData","sendMessageCompiled","connectionUtilities","overLayModule","constraints","connectBtn","sendmessageForm","maximum","join","handleDataConnectionError","errorMsg","submitBtn","SaveResult","Message","Global","RELATIONSHIP_ALREADY_EXISTS","GENERIC_WEBSERVICE_ERROR_MESSAGE","document","getElementById","classList","closeOverlay","validateMessageForm","form","validateAndWatch","handleConnectRequest","userId","connectAction","requestOptions","connectaction","contact","KnownContactUserId","InvitationMessage","Relationships","Type","Connection","Action","handleSendMessageSubmit","$currentTarget","sendMessageForm","recipientUserId","currentTarget","serializeObject","handleDataConnectionSuccess","successMsg","templateData","requester","receiver","FirstName","LastName","autoDelete","perpetuate","connectionInfo","UserId","ImFollowing","FollowingMe","Connected","greyDisabled","querySelector","outerHTML","handleDataConnectionAdd","success","handleConnectionClick","totalConnected","daysAgoCreated","getTotalConnected","daysAgo","getDateYMD","Date","stopPropagation","ContactUserId","IntroMessage","SEND_MESSAGE_POPUP_DESC_1","Connectaction","openOverlay","addEventListener","navInboxContainer","inboxRedDot","animateRedDot","setTimeout","channel","UserPusherChannel","state","cacheSuffix","responsePrefix","requestPrefix","loadMoreIntent","initEvent","loadMoreBtn","skipCount","cache","handleMoreDataRequest","msg","count","dataLength","nextData","cacheGUID","replace","css","intent","Data","padding","RecordCount","criteria","SkipCount","watchedService","handleLoadMoreClick","watchedEvent","handlePlaceChange","autocomplete","place","getPlace","callbackFunction","acceptPolygon","COULD_NOT_FIND_LOCATION","handleKeydown","keyCode","handleInput","forceSelect","clearFunction","handleFocus","input","handleGetCurrentPosition","circle","google","maps","Circle","center","lat","coords","latitude","lng","longitude","radius","accuracy","setBounds","getBounds","observeAutocompleteAttribute","elementId","observerHack","MutationObserver","disconnect","observe","attributes","attributeFilter","setUpLocationAutoComplete","useGeoLocate","undefined","textInputId","places","Autocomplete","types","addListener","navigator","geolocation","getCurrentPosition","genericMessageDrawerCompiled","notificationsContainer","notificationsList","notificationItem","notificationClose","notificationDrawer","config","drawerContainer","handleDataPusher","ShowDrawerMessage","getNavigationState","isCompact","Event","createNotification","getIndexByMsgId","i","NotificationId","Title","SenderFirstName","SenderLastName","Body","NotificationDeepLink","ConversationDeepLink","addParamsToUrlQueryString","notificationId","MixpanelType","injectNotification","deleteNotification","drawerSize","prepend","ConversationId","fadeOut","timeToLive","handleNotificationClick","redirect","href","handleNotificationDismiss","dataset","notificationid","container","append","addressUtility","getLocation","getLocationDeferred","Q","defer","resolve","reject","promise","geoCodePoint","userSearchByLocation","getLocationPromise","getAddressPromise","result","address","countryId","addressName","countryCode","then","all","spread","getLocationResult","getAddressResult","component","addressResult","lastResult","address_components","short_name","formatted_address","catch","USER_GEOLOCATION_UNABLE_TO_RETRIEVE_LOCATION","finally","getCountryById","getCountryByName","l","name","countryDropdown","getElementsByName","options","option","textContent","trim","toLowerCase","label","locationConfirmCompiled","verifyUserWithoutLocation","showLocationUpdateOverlay","showOverlay","sessionstorage","sessionStorage","getItem","setItem","activityListWrapper","activityPanel","activityLink","activityItems","newReblastsBtn","listenPusher","Environment","PusherNewReblastChannel","handleDataRealTimeNewReblast","$parent","newReblast","FeedId","parent","$self","$text","parseInt","missedReblastsBrowse","filterMissedReblastData","dataFilter","Array","isArray","item","MissedReblastCount","push","handleDataMissedReblasts","handleDataMissedReblastsSuccess","handleDataMissedReblastsError","filteredData","hideFeedsIndicator","dataId","CONTROL_ID","navContainer","feedApp","groupCreate","handleGroupCreateClick","localstorage","localStorage","accordionOpen","accordion","toggleAccordion","experienceNav","handleToggleAccordionClick","not","siblings","slideUp","toggleClass","slideToggle","experiencesSubnav","experienceItem","experienceNotification","handleExperienceClick","arr","reblastUrl","isInternalLink","link","domainUrl","isActivityLink","targetExperience","currentExperience","redirectPageCB","targetexperience","hostname","setCookie","scrollTo","pushState","reload","inviteIcon","inputHref","copyButton","inviteForm","inviteOption","inviteBtn","errorMessage","email","inviteWithEmailForm","InviteEmail","Navigation","INVITE_WITH_EMAIL_VALIDATION","presence","inviteClicked","context","copyInviteClicked","focus","select","setSelectionRange","execCommand","inviteOptionClicked","mixpaneltype","inviteBtnClicked","invalid","validate","showErrors","Email","Invite","handleDataInviteError","handleDataInviteSuccess","INVITE_AGENT_SUCCEEDED","handleDataInvite","applicationUrl","returnUrl","encodeURIComponent","hash","navMobile","navPrimary","navSecondary","mobileNavToggle","activityItem","positionScroll","navOpenClass","navItemOpenClass","closeMobileMenu","skipScrollReset","scrollTop","openMobileMenu","top","removeAttr","handleMobileToggleClick","opening","handleClickActivityItem","navMobileToggle","leftNavigation","pageContent","pageWrapper","stickySidebar","stickySidebarInner","stickNavigation","navigation","unStickNavigation","StickySidebar","containerSelector","innerWrapperSelector","topSpacing","bottomSpacing","ro","navContainerInnerInner","updateNavigation","updateSticky","destroy","unobserve","handleUiActionNavigationStateChanged","navigationState","requestAnimationFrame","Function","prototype","ResizeObserver","entries","observer","nav","navItem","primaryNavListItem","footer","activeClass","highlightClass","openClass","publishState","force","currentState","currentStateString","previousStateString","urlToNavSelectors","dashboard","domHash","activeTab","regexResult","currentReblastTab","urlQuery","groupUniquName","decodedUrl","secondary","primary","ReturnUrl","DefaultGroupUniqueName","isO","IsProfessional","match","ReferralDetails","ReferralType","setCurrentPage","activeClasses","currentSelectors","$selected","allLinks","add","closest","children","slideDown","debounce","experienceSwitcher","navItemOpen","flyOutMenu","openSecondaryNavigation","animate","closeExperienceSwitcher","closeSecondaryNavigation","handleSecondaryNavigation","next","handleNavigationClose","handleGenericNavClick","handleHtmlClick","handleDownloadAppClick","MixPanel","trackEvent","navItemPrimary","navSecondaryExperiences","navDialpad","downloadApp","ev","notificationUnseenBrowse","handleDataNotificationUnseen","r","Connections","connectionIcon","innerText","innerHTML","Notifications","notificationIcon","HasNewInstantMessage","notificationsEnumData","notificationListWrapper","notificationDelete","handleDataNotificationDeleteError","handleDataNotificationDeleteSuccess","$nItem","handleDataNotificationDelete","handleNotificationDeleteClick","notificationListWrappers","markNotificationAsVisited","authenticated","handleDataNotificationVisitError","handleDataNotificationVisit","status","handleClick","$notification","visited","mp_from","notificationToolbarListCompiled","smoke","moment","connectionWrapper","notificationConnect","notificationConnectDismiss","connectionList","notificationCount","requesterRegexObj","getNotificationCountFromDom","massageData","regexArr","map","hasOwnProperty","RelativeDate","DateCreated","fromNow","ActionLink","ACCEPT","NotificationTypeName","exec","RequesterName","notificationCountMessage","NOTIFICATIONS_COUNT_MESSAGE_SINGULAR","NOTIFCATINOS_COUNT_MESSAGE_PLURAL","showHideActivityIndicator","action","notifications","decrementActivityIndicator","handleDataNotificationConnectionError","handleDataNotificationConnectionSuccess","res","reciever","handleDataNotificationConnection","handleDataConnectionNotificationBrowse","handleDataConnectionNotificationBrowseSuccess","handleDataConnectionNotificationBrowseError","historyLink","historyLinkText","VIEW_CONNECTION_HISTORY","dismissAllowed","NoNotificationMessage","TOOLBAR_NO_NEW_CONNECTION_REQUEST","showExpandNetworkMessage","notification","ContentMetadata","isLongMessage","truncatedMessage","substring","seeMoreButtons","querySelectorAll","button","fullMessage","display","errMsg","UNAUTHORIZED_USER_ERROR_MESSAGE","publishSync","handleNotificationConnectionDeleteClick","requestername","confirm","SMOKE_HIDE_NOTIFICATION","ok","HIDE","cancel","CANCEL_TEXT","handleNotificationConnectionClick","creatoruserid","notificationConnectionBrowse","IncludeNotificationTypes","InviteToConnectNotification","handleConnectionIconClick","notificationList","is","handleFindAgentClick","getAttribute","configureMoment","pendingMessage","notificationGenericBrowse","notificationTypes","IncludeDismissed","ExcludeNotificationTypes","InviteToSellingCommunityNotification","banner","premiumplus","upsell","handleDataGenericNotificationBrowse","handleDataGenericNotificationBrowseSuccess","handleDataGenericNotificationBrowseError","includedNotificationTypes","VIEW_NOTIFICATIONS_HISTORY","TOOLBAR_NO_NEW_NOTIFICATIONS","Unauthorized_USER_ERROR_MESSAGE","handleNotificationIconClick","handleUpsellClick","ajaxUtility","geocoder","Geocoder","handleGeoCodeAddressResponse","results","s","GeocoderStatus","OK","handleGeoCodePointResponse","geoCodeAddress","geocode","parseFloat","publish2","reason","conversationId","connectButtonPartial","genericMessageDrawerTemplate","locationConfirmTemplate","notificationToolbarListTemplate","sendMessageTemplate","handleUserLastActiveDateSuccess","getTime","handleUserLastActiveDateError","handleUserLastActiveDate","updateUserLastActiveDate","userSearchGridTemplate","userSearchGridInternalPartial","userSearchGridExternalPartial","userSearchGridGenericPartial","sendMessageButtonPartial","userSearchGridNoResultsPartial","sendReferralButtonPartial","userSearchfeaturedpremiumPartial","userSearchGridCompiled","userSearchRendered","languagesList","searchPage","gridWrapper","expandPremiumDetailsButton","collapsePremiumDetailsButton","agentTileMinimal","initElements","findLanguageByCode","code","iter","it","resultList","isAuthenticated","isCommercialExperience","apply","prettyCreationDate","CreationDate","format","getConnectionInfo","Domain","userListingsLink","sendReferralLink","userMentioned","viewerAuthenticated","isFeatured","IsPremiumPlus","Phone","phoneNumber","OfficePhone","showAddress","City","Province","Address","Country","showCountry","showCountryComma","FirmOrOffice","Firm","OfficeName","ListingActiveCount","activeListingText","AGENT_TILE_ACTIVE_LISTINGS","ListingSoldCount","soldListingText","AGENT_TILE_SOLD_LISTINGS","ListingComingSoonCount","ListingComingSoonCountText","AGENT_TILE_PREMARKET_LISTINGS","hasStats","AwardedReferrals","AwardedReferralsStr","USER_SEARCH_AWARDED_REFERRALS","USER_SEARCH_AWARDED_REFERRAL","NetworkSize","NetworkSizeStr","USER_SEARCH_NETWORK_SIZES","USER_SEARCH_NETWORK_SIZE","EnhancedProfile","LicenseNumber","StartedIn","YearsExp","getFullYear","YearsExpStr","USER_SEARCH_YEARS_EXP","AreasOfExpertise","Awards","Credentials","Languages","FacebookUrl","LinkedInUrl","TwitterUrl","InstagramUrl","LogoUrl","showReferralButton","injectNonUserItems","user","env","firstNotFeatured","firstFeatured","featuredTitle","agentsTitle","upsellCTA","isRemax","isPremiumPlus","agentTitle","featuredAgentName","Firstname","Lastname","noClick","setupStartingTile","starterTile","chooseTemplate","template","userSearchGridExternal","userSearchGridInternal","userSearchGridGeneric","FirmId","ExcludeFirmId","GroupId","ExcludeGroupId","handleConnectionPromise","getConnectionPromise","handleUserSearchBrowseSuccess","userSearch","newData","remainingUsers","assign","noConnections","Count","FirmAgent","STARTING_BUILDING_NETWORK_FIRM_AGENTS","noAgents","handleUserSearchBrowseError","USER_SEARCH_ERROR_RESULTS","trackInMixpanel","handleUiNeedsUserSearchBrowse","handleExpandPremiumDetails","parentElement","nextElementSibling","maxHeight","scrollHeight","contains","handleCollapsePremiumDetails","tertiaryContent","handleAgentTileMinimalClick","countWrapper","countAgents","getAgentCountData","totalAgents","currentAgents","presentAgents","determineAgentMessage","countData","USER_SEARCH_AGENT_COUNT","USER_SEARCH_SUMMARY_RESULT_TEXT_SINGLE","USER_SEARCH_SUMMARY_RESULT_TEXT","$countWrapper","$agentCount","$countAgents","isEmptySearch","anonymousNavigation","wrapper","stick","sticky","unStick","update","isAnonymous","geoCodeDeferred","longtitude","handleDataGeoCode","deferred","countriesData","validationUtilities","agentsDistancePartial","searchFieldInput","distanceRange","distanceUnit","agentsDistancePartialHtml","createRequest","formValues","GroupUniqueName","FirmUniqueName","FeaturedUserId","showDistance","source","$form","haveGeoPoint","haveGeoPoly","Distance","temp","category","handleLocationChanged","clearLocationInputs","updateLocationInputsSingleLatLng","geometry","updateLocationInputsPolygonLatLng","NElat","NElng","SWlat","SWlng","NWlat","NWlng","SElat","SElng","getNorthEast","getSouthWest","handleFieldChanged","adminAreaLevel","includes","handleDataUserLocationBrowse","agent","IsPremium","locationParts","countryName","localizeResource","read","resourceName","State","getConnectionData","getConnectionDataResolved","currentUserId","isSelf","connectionInfoNotReady","handleDataConnectionBrowse","connections","reduce","a","c","arrayToHash","backgroundSelector","displaySelector","contentSelector","closeSelector","overflowClass","overlayOpenClass","pageContentSelector","topOffset","idprefix","idattr","defaults","watchFormData","re_overlay_utilities_values","o","overlay","oid","offset","createUniqueId","saveOverlayReference","saveFormState","saveOverlayConfig","overlays","handleCloseClick","modal","getCurrentOverlay","closeAllOverlays","f","overlaysLength","overlayConfig","onClose","formHasChanged","EXIT_NOW_AND_LOSE_FORM_DATA","closeCurrentOverlay","OK_CAP","CANCEL_CAP","saveCurrentOverlayFormState","prefix","pre","guidIndex","pop","formels","formdata","formStates","serialize","mixpanelAttr","dataAttr","mixpanelName","mixpanelFrom","mixpanelContext","mixpanelType","phoneNumberBtn","handleTrackPhone","targetUserId","handleDataTrackPhone","trackPhoneNumber","dataContext","dataPhoneNumber","phonenumber","userid","mixData","t","self","n","defineProperty","enumerable","configurable","writable","stickyClass","resizeSensor","minWidth","arguments","TypeError","sidebar","Error","sidebarInner","affixedType","direction","support","transform","transform3d","_initialized","_reStyle","_breakpoint","dimensions","translateY","maxTranslateY","lastTopSpacing","lastBottomSpacing","sidebarHeight","sidebarWidth","containerTop","containerHeight","viewportHeight","viewportTop","lastViewportTop","initialize","_setSupportFeatures","createElement","setAttribute","appendChild","firstChild","call","_widthBreakpoint","calcDimensions","stickyPosition","bindEvents","passive","capture","ResizeSensor","handleEvent","offsetRelative","clientHeight","containerBottom","offsetHeight","offsetWidth","innerHeight","_calcDimensionsWithScroll","sidebarLeft","left","documentElement","viewportBottom","viewportLeft","scrollLeft","scrollDirection","Math","min","max","_getAffixTypeScrollingUp","_getAffixTypeScrollingDown","round","isSidebarFitsViewport","inner","outer","bottom","_getTranslate","getAffixType","_getStyle","eventTrigger","p","innerWidth","removeAttribute","_running","observeScrollDir","supportTransform","translate","removeEventListener","minHeight","detach","charAt","CustomEvent","detail","createEvent","initCustomEvent","dispatchEvent","offsetTop","offsetLeft","isNaN","tagName","offsetParent","className","RegExp","test","get","default","exports","__esModule","__moduleExports","ui","version","cleanData","_data","triggerHandler","widget","h","Widget","concat","expr","_createWidget","_proto","_childConstructors","isFunction","_super","_superApply","widgetEventPrefix","constructor","namespace","widgetName","widgetFullName","bridge","isPlainObject","fn","jquery","pushStack","error","_init","defaultElement","disabled","create","eventNamespace","bindings","hoverable","focusable","classesElementLookup","_on","ownerDocument","defaultView","parentWindow","_getCreateOptions","_create","_setOptionDisabled","_trigger","_getCreateEventData","noop","_destroy","_removeClass","removeData","shift","_setOptions","_setOption","_setOptionClasses","_classes","_toggleClass","enable","disable","unique","extra","_addClass","_off","_delay","_hoverable","mouseenter","mouseleave","_focusable","focusin","focusout","originalEvent","trigger","isDefaultPrevented","effect","duration","isEmptyObject","complete","delay","effects","easing","queue","nodeType","isWindow","pageY","pageX","outerWidth","outerHeight","abs","u","d","appendTo","scrollbarWidth","clientWidth","getScrollInfo","isDocument","scrollWidth","getWithinInfo","of","m","_","v","b","y","w","within","k","x","collision","C","D","T","I","M","marginLeft","marginTop","targetWidth","targetHeight","elemWidth","elemHeight","collisionPosition","collisionWidth","collisionHeight","elem","using","horizontal","vertical","important","fit","flip","flipfit","createPseudo","BACKSPACE","COMMA","DELETE","DOWN","END","ENTER","ESCAPE","HOME","LEFT","PAGE_DOWN","PAGE_UP","PERIOD","RIGHT","SPACE","TAB","UP","scrollParent","parents","eq","uniqueId","removeUniqueId","ie","userAgent","distance","_mouseInit","_mouseDown","stopImmediatePropagation","started","_mouseDestroy","_mouseMoveDelegate","_mouseUpDelegate","_mouseMoved","_mouseStarted","_mouseUp","_mouseDownEvent","which","nodeName","_mouseCapture","mouseDelayMet","_mouseDelayTimer","_mouseDistanceMet","_mouseDelayMet","_mouseStart","_mouseMove","documentMode","altKey","ctrlKey","metaKey","shiftKey","ignoreMissingWhich","_mouseDrag","_mouseStop","clearTimeout","mouse","ready","axis","connectWith","containment","cursor","cursorAt","dropOnEmpty","forcePlaceholderSize","forceHelperSize","grid","handle","helper","items","opacity","placeholder","revert","scroll","scrollSensitivity","scrollSpeed","scope","tolerance","zIndex","activate","beforeStop","change","deactivate","out","over","receive","sort","start","stop","_isOverAxis","_isFloating","containerCache","refresh","_setHandleClassName","instance","reverting","_refreshItems","addBack","currentItem","_removeCurrentsFromItems","currentContainer","refreshPositions","_createHelper","_cacheHelperProportions","_cacheMargins","margins","_getParentOffset","relative","_getRelativeOffset","cssPosition","originalPosition","_generatePosition","originalPageX","originalPageY","_adjustOffsetFromHelper","domPosition","prev","_createPlaceholder","_setContainment","storedCursor","storedStylesheet","_storedOpacity","_storedZIndex","overflowOffset","_uiHash","_preserveHelperProportions","containers","ddmanager","current","dropBehaviour","prepareOffsets","dragging","positionAbs","_convertPositionTo","lastPositionAbs","_intersectsWithPointer","_intersectsWithSides","_rearrange","_contactContainers","drag","drop","_clear","_storedCSS","parentNode","removeChild","_noFinalSort","after","_getItemsAsjQuery","connected","attribute","expression","toArray","_intersectsWith","helperProportions","forcePointerForContainers","floating","_getDragVerticalDirection","_getDragHorizontalDirection","_connectWith","String","grep","toleranceElement","custom","refreshContainers","_createTrPlaceholder","clone","right","insertBefore","nextSibling","counter","before","fromOutside","cancelHelperRemoval","sender","safeActiveElement","activeElement","icons","submenu","menus","role","blur","activeMenu","mouseHandled","tabIndex","isPropagationStopped","has","active","timer","previousFilter","collapseAll","keydown","_closeOnDocumentClick","_keydown","previousPage","nextPage","_move","previous","collapse","_activate","fromCharCode","filterTimer","_filterMenuItems","nextAll","_isDivider","_itemRole","menu","listbox","_scrollIntoView","first","_close","_startOpening","_hasScroll","_open","isFirstItem","prevAll","isLastItem","autoFocus","minLength","close","open","requestIndex","pending","isMultiLine","_isContentEditable","valueMethod","isNewMenu","_keyEvent","_value","term","_searchTimeout","keypress","selectedItem","cancelBlur","searching","_change","_initSource","_appendTo","mousedown","menufocus","one","liveRegion","menuselect","beforeunload","xhr","abort","_isEventTargetInWidget","_closeOnClickOutside","ajax","dataType","_search","cancelSearch","_response","proxy","__response","_normalize","_suggest","empty","_renderMenu","_resizeMenu","_renderItemData","_renderItem","escapeRegex","messages","noResults","floor","mod","_rgba","re","parse","space","transparent","Color","rgba","props","red","idx","green","blue","hsla","hue","saturation","lightness","percent","degrees","cssText","backgroundColor","alpha","_default","to","inArray","_space","transition","blend","toRgbaString","toHslaString","toHexString","toString","_hsla","hook","cssHooks","set","fx","step","colorInit","end","pos","borderColor","names","aqua","black","fuchsia","gray","lime","maroon","navy","olive","purple","silver","teal","white","yellow","getComputedStyle","currentStyle","camelCase","borderBottom","borderLeft","borderRight","borderTop","borderWidth","margin","setAttr","prevObject","animateClass","speed","el","diff","Deferred","when","done","toggle","switchClass","speeds","filters","animated","uiBackCompat","save","restore","setMode","createWrapper","fontSize","background","wrap","removeWrapper","replaceWith","define","mode","scaledDimensions","clipToBox","clip","dequeue","saveStyle","restoreStyle","getBaseline","createPlaceholder","marginBottom","marginRight","insertAfter","visibility","removePlaceholder","cleanUp","setTransition","cssUnit","cssClip","transfer","clipInit","pow","Sine","cos","PI","Circ","sqrt","Elastic","sin","Back","Bounce","up","down","times","pieces","ceil","overflow","size","horizFirst","backgroundImage","color","scale","origin","fade","Pusher","jQuery"],"sourceRoot":""}