{"version":3,"file":"re_agents_initialiser.a2dd48ed0d1d3edb48bc.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: 'Global.LOCALIZED_EN_LANGUAGE_NAME', value: 'en-GB,en-US,en-UD' },\r\n { label: 'Global.LOCALIZED_ES_LANGUAGE_NAME', value: 'es-LA,es-ES' },\r\n { label: 'Global.LOCALIZED_CHINESE_CANTONESE_LANGUAGE_NAME', value: 'zh-HK,zh-Hans,zh-Hant' },\r\n { label: 'Global.LOCALIZED_CHINESE_LANGUAGE_NAME', value: 'zh-CN,zh-TW,zh-Hans,zh-Hant' },\r\n { label: 'Global.LOCALIZED_FR_LANGUAGE_NAME', value: 'fr-CA,fr-FR' },\r\n { label: 'Global.LOCALIZED_FILIPINO_LANGUAGE_NAME', value: 'tl-PH,fil-PH' },\r\n { label: 'Global.LOCALIZED_AFRIKAANS_LANGUAGE_NAME', value: 'af-ZA' },\r\n { label: 'Global.LOCALIZED_ALBANIAN_LANGUAGE_NAME', value: 'sq-AL' },\r\n { label: 'Global.LOCALIZED_AMHARIC_LANGUAGE_NAME', value: 'am-ET' },\r\n { label: 'Global.LOCALIZED_AR_LANGUAGE_NAME', value: 'ar-AR' },\r\n { label: 'Global.LOCALIZED_AM_LANGUAGE_NAME', value: 'hy-AM' },\r\n { label: 'Global.LOCALIZED_AS_LANGUAGE_NAME', value: 'as-IN' },\r\n { label: 'Global.LOCALIZED_AZARBAIJANI_LANGUAGE_NAME', value: 'az-AZ' },\r\n { label: 'Global.LOCALIZED_BASQUE_LANGUAGE_NAME', value: 'eu-ES' },\r\n { label: 'Global.LOCALIZED_BELARUSIAN_LANGUAGE_NAME', value: 'be-BY' },\r\n { label: 'Global.LOCALIZED_BENGALI_LANGUAGE_NAME', value: 'bn-IN' },\r\n { label: 'Global.LOCALIZED_BARBER_LANGUAGE_NAME', value: 'tz-MA' },\r\n { label: 'Global.LOCALIZED_BOSNIA_LANGUAGE_NAME', value: 'bs-BA' },\r\n { label: 'Global.LOCALIZED_BRETON_LANGUAGE_NAME', value: 'br-FR' },\r\n { label: 'Global.LOCALIZED_BULGARIAN_LANGUAGE_NAME', value: 'bg-BG' },\r\n { label: 'Global.LOCALIZED_MY_LANGUAGE_NAME', value: 'my-MM' },\r\n { label: 'Global.LOCALIZED_CATALAN_LANGUAGE_NAME', value: 'ca-ES' },\r\n { label: 'Global.LOCALIZED_CEBUANO_LANGUAGE_NAME', value: 'cx-PH' },\r\n { label: 'Global.LOCALIZED_CORSICAN_LANGUAGE_NAME', value: 'co-FR' },\r\n { label: 'Global.LOCALIZED_HRVATSKI_LANGUAGE_NAME', value: 'hr-HR' },\r\n { label: 'Global.LOCALIZED_CZECH_LANGUAGE_NAME', value: 'cs-CZ' },\r\n { label: 'Global.LOCALIZED_DANISH_LANGUAGE_NAME', value: 'da-DK' },\r\n { label: 'Global.LOCALIZED_DUTCH_LANGUAGE_NAME', value: 'nl-NL,nl-BE' },\r\n { label: 'Global.LOCALIZED_ESPERANTO_LANGUAGE_NAME', value: 'eo-EO' },\r\n { label: 'Global.LOCALIZED_ESTONIAN_LANGUAGE_NAME', value: 'et-EE' },\r\n { label: 'Global.LOCALIZED_FAROESE_LANGUAGE_NAME', value: 'fo-FO' },\r\n { label: 'Global.LOCALIZED_FINLAND_LANGUAGE_NAME', value: 'fi-FI' },\r\n { label: 'Global.LOCALIZED_FRISIAN_LANGUAGE_NAME', value: 'fy-NL' },\r\n { label: 'Global.LOCALIZED_FULA_LANGUAGE_NAME', value: 'ff-NG' },\r\n { label: 'Global.LOCALIZED_GALICIAN_LANGUAGE_NAME', value: 'gl-ES' },\r\n { label: 'Global.LOCALIZED_GEORGIAN_LANGUAGE_NAME', value: 'ka-GE' },\r\n { label: 'Global.LOCALIZED_GN_LANGUAGE_NAME', value: 'gn-PY' },\r\n { label: 'Global.LOCALIZED_DE_LANGUAGE_NAME', value: 'de-DE' },\r\n { label: 'Global.LOCALIZED_EL_LANGUAGE_NAME', value: 'el-GR' },\r\n { label: 'Global.LOCALIZED_GU_LANGUAGE_NAME', value: 'gu-IN' },\r\n { label: 'Global.LOCALIZED_HAITIAN_LANGUAGE_NAME', value: 'ht-HT' },\r\n { label: 'Global.LOCALIZED_HE_LANGUAGE_NAME', value: 'he-IL' },\r\n { label: 'Global.LOCALIZED_HI_LANGUAGE_NAME', value: 'hi-IN' },\r\n { label: 'Global.LOCALIZED_HU_LANGUAGE_NAME', value: 'hu-HU' },\r\n { label: 'Global.LOCALIZED_ICELANDIC_LANGUAGE_NAME', value: 'is-IS' },\r\n { label: 'Global.LOCALIZED_ID_LANGUAGE_NAME', value: 'id-ID' },\r\n { label: 'Global.LOCALIZED_IRISH_LANGUAGE_NAME', value: 'ga-IE' },\r\n { label: 'Global.LOCALIZED_IT_LANGUAGE_NAME', value: 'it-IT' },\r\n { label: 'Global.LOCALIZED_JA_LANGUAGE_NAME', value: 'ja-JP,ja-KS' },\r\n { label: 'Global.LOCALIZED_BASAJAWA_LANGUAGE_NAME', value: 'jv-ID' },\r\n { label: 'Global.LOCALIZED_KK_LANGUAGE_NAME', value: 'kk-KZ' },\r\n { label: 'Global.LOCALIZED_KHAMER_LANGUAGE_NAME', value: 'km-KH' },\r\n { label: 'Global.LOCALIZED_RW_LANGUAGE_NAME', value: 'rw-RW' },\r\n { label: 'Global.LOCALIZED_KO_LANGUAGE_NAME', value: 'ko-KR' },\r\n { label: 'Global.LOCALIZED_KURDISH_LANGUAGE_NAME', value: 'ku-TR' },\r\n { label: 'Global.LOCALIZED_SORANI_LANGUAGE_NAME', value: 'cb-IQ' },\r\n { label: 'Global.LOCALIZED_KY_LANGUAGE_NAME', value: 'ky-KG' },\r\n { label: 'Global.LOCALIZED_LAO_LANGUAGE_NAME', value: 'lo-LA' },\r\n { label: 'Global.LOCALIZED_LATVIAN_LANGUAGE_NAME', value: 'lv-LV' },\r\n { label: 'Global.LOCALIZED_LITHUANIAN_LANGUAGE_NAME', value: 'lt-LT' },\r\n { label: 'Global.LOCALIZED_MK_LANGUAGE_NAME', value: 'mk-MK' },\r\n { label: 'Global.LOCALIZED_MALAGASY_LANGUAGE_NAME', value: 'mg-MG' },\r\n { label: 'Global.LOCALIZED_MALAY_LANGUAGE_NAME', value: 'ms-MY' },\r\n { label: 'Global.LOCALIZED_MALAYALAM_LANGUAGE_NAME', value: 'ml-IN' },\r\n { label: 'Global.LOCALIZED_MALTESE_LANGUAGE_NAME', value: 'mt-MT' },\r\n { label: 'Global.LOCALIZED_MARATHI_LANGUAGE_NAME', value: 'mr-IN' },\r\n { label: 'Global.LOCALIZED_MONGOLIAN_LANGUAGE_NAME', value: 'mn-MN' },\r\n { label: 'Global.LOCALIZED_NEPALI_LANGUAGE_NAME', value: 'ne-NP' },\r\n { label: 'Global.LOCALIZED_NN_LANGUAGE_NAME', value: 'nn-NO,nb-NO' },\r\n { label: 'Global.LOCALIZED_ODIA_LANGUAGE_NAME', value: 'or-IN' },\r\n { label: 'Global.LOCALIZED_PASHTO_LANGUAGE_NAME', value: 'ps-AF' },\r\n { label: 'Global.LOCALIZED_PERSIAN_LANGUAGE_NAME', value: 'fa-IR' },\r\n { label: 'Global.LOCALIZED_PL_LANGUAGE_NAME', value: 'pl-PL' },\r\n { label: 'Global.LOCALIZED_PT_LANGUAGE_NAME', value: 'pt-PT,pt-BR' },\r\n { label: 'Global.LOCALIZED_PA_LANGUAGE_NAME', value: 'pa-IN' },\r\n { label: 'Global.LOCALIZED_ROMANIAN_LANGUAGE_NAME', value: 'ro-RO' },\r\n { label: 'Global.LOCALIZED_RUSSIAN_LANGUAGE_NAME', value: 'ru-RU' },\r\n { label: 'Global.LOCALIZED_SN_LANGUAGE_NAME', value: 'sn-ZW' },\r\n { label: 'Global.LOCALIZED_SERBIAN_LANGUAGE_NAME', value: 'sr-RS' },\r\n { label: 'Global.LOCALIZED_SZ_LANGUAGE_NAME', value: 'sz-PL' },\r\n { label: 'Global.LOCALIZED_SINHALA_LANGUAGE_NAME', value: 'si-LK' },\r\n { label: 'Global.LOCALIZED_SK_LANGUAGE_NAME', value: 'sk-SK' },\r\n { label: 'Global.LOCALIZED_SLOVENE_LANGUAGE_NAME', value: 'sl-SI' },\r\n { label: 'Global.LOCALIZED_SOMALI_LANGUAGE_NAME', value: 'so-SO' },\r\n { label: 'Global.LOCALIZED_SWAHILI_LANGUAGE_NAME', value: 'sw-KE' },\r\n { label: 'Global.LOCALIZED_SWEDISH_LANGUAGE_NAME', value: 'sv-SE' },\r\n { label: 'Global.LOCALIZED_SYRIAC_LANGUAGE_NAME', value: 'sy-SY' },\r\n { label: 'Global.LOCALIZED_TAJIK_LANGUAGE_NAME', value: 'tg-TJ' },\r\n { label: 'Global.LOCALIZED_TA_LANGUAGE_NAME', value: 'ta-IN' },\r\n { label: 'Global.LOCALIZED_TATAR_LANGUAGE_NAME', value: 'tt-RU' },\r\n { label: 'Global.LOCALIZED_TELUGUE_LANGUAGE_NAME', value: 'te-IN' },\r\n { label: 'Global.LOCALIZED_TH_LANGUAGE_NAME', value: 'th-TH' },\r\n { label: 'Global.LOCALIZED_TR_LANGUAGE_NAME', value: 'tr-TR' },\r\n { label: 'Global.LOCALIZED_UKRAINIAN_LANGUAGE_NAME', value: 'uk-UA' },\r\n { label: 'Global.LOCALIZED_URDU_LANGUAGE_NAME', value: 'ur-PK' },\r\n { label: 'Global.LOCALIZED_UZBEK_LANGUAGE_NAME.', value: 'uz-UZ' },\r\n { label: 'Global.LOCALIZED_VIETNAMESE_LANGUAGE_NAME', value: 'vi-VN' },\r\n { label: 'Global.LOCALIZED_WELSH_LANGUAGE_NAME', value: 'cy-GB' },\r\n { label: 'Global.LOCALIZED_ZZ_LANGUAGE_NAME', value: 'zz-TR' }\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 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) {\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(\"
\").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\"","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