{"version":3,"sources":["Feature.Subscriptions.js"],"names":["onloadRecaptchaCallback","window","grecaptcha","render","sitekey","$","data","callback","token","val","expired-callback","args","document","ready","msgContainer","msgNumber","btn","inhibitors","counter","division","category","subscriptionManagerIds","disableCode","currentPage","subscriptionsContainer","form","validator","split","filter","id","length","map","toLowerCase","leadEntityId","submitSuccessUrl","submitErrUrl","atLeastOneValidationMsg","submitMsg","text","displayDuration","msgNum","timeoutCallback","setTimeout","slideUp","slideDown","relateInputWithLabel","checkbox","label","checkboxId","prop","getAvailableSubsApi","OnlyLatestRequestCallback","toggleSubmitBtn","querySelector","callToEnable","inhibitor","inhibitorIndex","indexOf","push","setAttribute","splice","removeAttribute","submitPreferences","ajax","successCallback","isUnsubscribeAll","isNeverContactAgain","preferences","getSubscriptionPreferences","url","type","EntityId","Preferences","UnsubscribeAll","NeverContactAgain","success","getSubmitPreferencesAjaxRequest","errorCallback","lead","FirstName","LastName","EmailAddress","AddressCountryCode","subscriptionPreferences","leadSource","location","href","gdpr1","checked","error","getSubmitLeadAjaxRequest","setGlobalSelectVisibility","subscriptions","populateSubscriptionCheckboxes","availableSubscriptions","isManagement","categories","i","subscription","CategoryName","name","enum","Category","html","indices","Object","keys","section","createCategoryContainer","j","subOption","createCheckbox","Name","subOptionsContainer","SubscriptionManagerId","IsUserSubscribed","categoryContainer","find","attr","subscriptionCheckboxes","subCheckbox","subManagerId","Key","Value","console","categoryName","categoryContainerTemplate","append","labelTxt","container","checkboxTemplate","field","change","e","isChecked","target","on","parent","get","optionContainer","categoryCheckbox","settings","submitHandler","ignore","rules","required","value","element","param","minlength","messages","submit","preventDefault","createElement","entityId","domain","Subscriptions","GlobalUnsubscribe","DoNotContact","subs","sub"],"mappings":"AAwbA,SAASA,0BACRC,OAAOC,WAAWC,OAAO,sBAAuB,CAC/CC,QAAWC,EAAE,wBAAwBC,KAAK,iBACpCC,SAAY,SAASC,GACjBH,EAAE,qBAAqBI,IAAI,SAE/BC,mBAAoB,SAAUC,GAC1BN,EAAE,qBAAqBI,IAAI,OA/bvCJ,EAAEO,UAAUC,MAAM,WACjB,IA8Z6BC,EACxBC,EA/BsBC,EACtBC,EATAC,EApP8BC,EAAUC,EAAUC,EAClDC,EACHC,EAtIEC,EAAyBnB,EAAE,4BAC9BoB,EAAOpB,EAAE,sBACTqB,EAAYD,EAAKnB,KAAK,aAEnBa,EAAWM,EAAKnB,KAAK,YACxBc,EAAWK,EAAKnB,KAAK,YACrBe,EAAyBI,EAAKnB,KAAK,+BACjCqB,MAAM,KAAKC,OAAO,SAASC,GACf,OAAmB,EAAZA,EAAGC,SACXC,IAAI,SAASF,GACxB,OAAOA,EAAGG,gBAEZC,EAAeR,EAAKnB,KAAK,kBAEtB4B,EAAmBT,EAAKnB,KAAK,oBAChC6B,EAAeV,EAAKnB,KAAK,kBACzB8B,EAA0BX,EAAKnB,KAAK,yBACpC+B,GA6Y4BvB,EA7YIT,EAAE,aA8Y9BU,EAAY,EAET,SAASuB,EAAMC,GACrB,IAAIC,IAAWzB,EACd0B,EAAkB,KAEfF,IACHE,EAAkB,WACjBC,WAAW,WAENF,GAAUzB,GACbD,EAAa6B,QAAQ,MAEpBJ,KAILzB,EAAa6B,QAAQ,IAAK,WACzB7B,EAAawB,KAAKA,GAAMM,UAAU,IAAKH,OA9ZtCI,GAqWC3B,EAAU,EACP,SAAS4B,EAAUC,GACzB,IAAIC,EAAa,kBAAmB9B,EACpCb,EAAEyC,GAAUG,KAAK,KAAMD,GACvB3C,EAAE0C,GAAOE,KAAK,MAAOD,KAxWtBE,EAAsBC,4BACtBC,GA2W0BpC,EA3WUJ,SAASyC,cAAc,4CA4WvDpC,EAAa,GAEV,SAASqC,EAAcC,GAC7B,IAAIC,EAAiBvC,EAAWwC,QAAQF,GAGxC,IAAKD,EAOJ,OALuB,GAAnBE,GACHvC,EAAWyC,KAAKH,QAGjBvC,EAAI2C,aAAa,WAAY,aAMP,GAAnBH,GACHvC,EAAW2C,OAAOJ,EAAgB,GAIV,GAArBvC,EAAWa,QACdd,EAAI6C,gBAAgB,cArSvB,SAASC,IACR,IAAIhD,EAAeT,EAAE,aAEf+C,GAAgB,EAAO,eAC7Bf,EAAUvB,EAAaR,KAAK,eAE5BD,EAAE0D,KAAK9B,EAoMR,SAAyC+B,GACxC,IAAIC,EAAmB5D,EAAE,oBAAoB4C,KAAK,WACjDiB,EAAsB7D,EAAE,kBAAkB4C,KAAK,WAC/CkB,EAAeF,GAAqBC,EAEjC,GADAE,IAEJ,MAAO,CACNC,IAAK,6CACLC,KAAM,OACNhE,KAAM,CACLiE,SAAUtC,EACVuC,YAAaL,EACbM,eAAgBR,EAChBS,kBAAmBR,GAEpBS,QAAS,SAASrE,GAEL8C,GAAgB,EAAM,eAE9BY,GACHA,EAAgB1D,KAvNhBsE,CACDZ,gBAAkB,WACjB3B,EAAUvB,EAAaR,KAAK,sBAAuB,MACjDuE,cAAgB,WAClBxC,EAAUvB,EAAaR,KAAK,uBAkKhC,WACC,IAAI6D,EAAcC,IAClB,MAAO,CACNC,IAAK,iEACLC,KAAM,OACNhE,KAAM,CACLwE,KAAM,CACLC,UAAW1E,EAAE,UAAUI,MACvBuE,SAAU3E,EAAE,UAAUI,MACtBwE,aAAc5E,EAAE,UAAUI,MAC1ByE,mBAAoB7E,EAAE,YAAYI,OAEnC0E,wBAAyB,CACxBX,YAAaL,EACbM,gBAAgB,EAChBC,mBAAmB,GAEpBU,WAAYnF,OAAOoF,SAASC,KAC5BC,MAAOlF,EAAE,WAAW,GAAGmF,SAExBb,QAAS,SAASrE,GACjBL,OAAOoF,SAASC,KAAOpD,GAExBuD,MAAO,WACNxF,OAAOoF,SAASC,KAAOnD,IAxLtBuD,IAuDJ,SAASC,EAA0BC,IAE7BA,GAAiBA,EAAc9D,QAAU,EAC7CzB,EAAE,kCAAkCsC,UAEpCtC,EAAE,kCAAkCuC,YAItC,SAASiD,EAA+BC,EAAwBC,GAO/D,IAHA,IAAIC,EAAa,GAGRC,EAAI,EAAGA,EAAIH,EAAuBhE,OAAQmE,IAElDD,GADAE,EAAeJ,EAAuBG,IACdE,cAAgB,CACvCC,KAAMF,EAAaC,aACnBE,KAAMH,EAAaI,UAKrB9E,EAAuB+E,KAAK,IAY5B,IAAIC,EAAUC,OAAOC,KAAKV,GAC1B,IAASC,EAAI,EAAGA,EAAIO,EAAQ1E,OAAQmE,IAOnC,IANA,IAAI7E,EAAW4E,EAAWQ,EAAQP,IAG9BU,EAAUC,EAAwBxF,EAASgF,KAAM5E,EAAuB,IAGnEqF,EAAI,EAAGA,EAAIf,EAAuBhE,OAAQ+E,IAAK,CACvD,IAAIX,EAAeJ,EAAuBe,GAC1C,GAAIX,EAAaI,UAAYlF,EAASiF,KAAtC,CAKA,IAAIS,EAAYC,EAAeb,EAAac,KAAML,EAAQM,qBAC1DH,EAAUhE,SAASa,aAAa,+BAAgCuC,EAAagB,uBAC7EJ,EAAUhE,SAASa,aAAa,OAAQ,uBAEpCuC,EAAaiB,kBAAuD,IAAlCrB,EAAuBhE,SAAiBiE,KAE7E1F,EAAEsG,EAAQS,mBAAmBC,KAAK,sBAChCC,KAAK,WAAW,GAGlBjH,EAAEyG,EAAUhE,UACVwE,KAAK,WAAW,GAGdpB,EAAaiB,kBAChB9G,EAAEyG,EAAUhE,UAAUwE,KAAK,kBAAkB,MAOlD,SAASlD,IAKR,IAJA,IAAImD,EAAyBlH,EAAE,0DAC9B8D,EAAc,GAGN8B,EAAI,EAAGA,EAAIsB,EAAuBzF,OAAQmE,IAAK,CACvD,IAAIuB,EAAcD,EAAuBtB,GACxCwB,EAAepH,EAAEmH,GAAalH,KAAK,2BAI/BmH,IAQCpH,EAAEmH,GAAaF,KAAK,qBAAuBjH,EAAEmH,GAAavE,KAAK,YAMrEkB,EAAYT,KAAK,CAACgE,IAAKD,EAAcE,MAAOH,EAAYhC,UAbvDoC,QAAQnC,MACP,kFACE+B,EAAY3F,IAcjB,OAAOsC,EA0DR,SAASyC,EAAwBiB,EAAcrG,GAC9C,IAAIsG,EAA4BzH,EAAE,gCAAgCkG,OACjEa,EAAoB/G,EAAEyH,GACtBhF,EAAWsE,EAAkBC,KAAK,SAClCtE,EAAQqE,EAAkBC,KAAK,SAAS/E,KAAKuF,GAC7CZ,EAAsBG,EAAkBC,KAAK,mCAO9C,OALAhH,EAAEmB,GAAwBuG,OAAOX,GAGjCvE,EAAqBC,EAAS,GAAIC,EAAM,IAEjC,CACNqE,kBAAmBA,EAAkB,GACrCH,oBAAqBA,EAAoB,IAI3C,SAASF,EAAeiB,EAAUC,GACjC,IAAIC,EAAmB7H,EAAE,0BAA0BkG,OAClD4B,EAAQ9H,EAAE6H,GACVpF,EAAWzC,EAAE8H,GAAOvG,OAAO,SAC3BmB,EAAQ1C,EAAE8H,GAAOvG,OAAO,SAASU,KAAK0F,GAMvC,OAJAnF,EAAqBC,EAAS,GAAIC,EAAM,IACxC1C,EAAE4H,GAAWF,OAAOjF,GACpBzC,EAAE4H,GAAWF,OAAOhF,GAEb,CAAED,SAAUA,EAAS,GAAIC,MAAOA,EAAM,IA5V9C1C,EAAE,wBAAwB+H,OAAO,SAASC,GACzC,IACCC,EADcD,EAAEE,OACK/C,QAGtBhE,EACE6F,KAAK,0BACLpE,KAAK,UAAWqF,GAChBF,WAIH/H,EAAE,oCAAoC+H,OAAO,SAASC,GACtCA,EAAEE,OACK/C,SAIrBhE,EACE6F,KAAK,0BACLpE,KAAK,WAAW,GAChBmF,WAKJ5G,EAAuBgH,GAAG,SAAU,0BAA2B,SAASH,GACvE,IAAIvF,EAAWuF,EAAEE,OAChBD,EAAYxF,EAAS0C,QACtBnF,EAAEyC,GAAU2F,SACVpB,KAAK,0BACLpE,KAAK,UAAWqF,GAEdA,EAEHjI,EAAE,oCAAoC4C,KAAK,WAAW,GAGtD5C,EAAE,wBAAwB4C,KAAK,WAAW,KAK5CzB,EAAuBgH,GAAG,SAAU,yDAA0D,SAASH,GACtG,IAAIvF,EAAWzC,EAAEgI,EAAEE,QAClBD,EAAYxF,EAAS4F,IAAI,GAAGlD,QAC5BmD,EAAkB7F,EAAS2F,SAC3BG,EAAmBD,EAAgBF,SAASpB,KAAK,sBAElD,GAAIiB,EAOH,OALAM,EAAiB3F,KAAK,WAAW,GAGjC5C,EAAE,oBAAoB4C,KAAK,WAAW,QACtC5C,EAAE,kBAAkB4C,KAAK,WAAW,GAKc,GAAhD0F,EAAgBtB,KAAK,iBAAiBvF,QACxC8G,EAAiB3F,KAAK,WAAW,GAIlC5C,EAAE,wBAAwB4C,KAAK,WAAW,KAGvCvB,GACHA,EAAUmH,SAASC,cAAgBhF,EAGnCpC,EAAUmH,SAASE,OAAS,iCAG5BrH,EAAUmH,SAASG,MAAM,sBAAwB,CAChDC,SAAU,SAASC,EAAOC,EAASC,GAClC,OAAO/I,EAAE,0CAA0CyB,OAAS,GAE7DuH,UAAW,GAEZ3H,EAAUmH,SAASS,SAAS,sBAAwB,CAAEL,SAAU7G,IAG1DX,EAAK8H,OAAO,SAASlB,GACjBA,EAAEmB,iBACF1F,MAsBwB3C,EAlBTA,EAkBmBC,EAlBTA,EAkBmBC,EAlBTA,EAmBzCC,EAAc,kCACjBC,EAAcX,SAAS6I,cAAc,MAE1BnE,KAAOrF,OAAOoF,SAASC,KACnClC,GAAgB,EAAO9B,GAEvB4B,EAAoBa,KAAK9B,EACtB,CACDoC,IAAK,wDACLC,KAAM,OACNhE,KAAM,CACUoJ,SAAUzH,EACV0H,OAAQpI,EAAY+D,MAEpCX,QAAS,SAASrE,GACjBuF,EAA+BvF,EAAKsJ,eAAe,GACnDvJ,EAAE,oBAAoB4C,KAAK,UAAW3C,EAAKuJ,mBAC3CxJ,EAAE,kBAAkB4C,KAAK,UAAW3C,EAAKwJ,cACzCnE,EAA0BrF,EAAKsJ,eAG/BvJ,EAAE,UAAUI,IAAIH,EAAKyE,WACrB1E,EAAE,UAAUI,IAAIH,EAAK0E,UACrB5B,GAAgB,EAAM9B,KAGtB,CACD+C,IAAK,qDACLC,KAAM,OACNhE,KAAM,CACLqJ,OAAQpI,EAAY+D,KACpBnE,SAAUA,EACVC,SAAUA,GAECuD,QAAS,SAAUoF,GAEM,EAAhC1I,EAAuBS,SAC1BiI,EAAOA,EAAKnI,OAAO,SAASoI,GAC3B,OAEM,EAFC3I,EAAuBoC,QAC5BuG,EAAI9C,sBAAsBlF,kBAK9B6D,EAA+BkE,GAC/BpE,EAA0BoE,GAC1B3G,GAAgB,EAAM9B","file":"Feature.Subscriptions.min.js","sourcesContent":["$(document).ready(function() {\n\tvar subscriptionsContainer = $('#subscriptions-container'),\n\t\tform = $('#subscription-form'),\n\t\tvalidator = form.data('validator');\n\n\tvar division = form.data('division'),\n\t\tcategory = form.data('category'),\n\t\tsubscriptionManagerIds = form.data('subscription-management-ids')\n\t\t\t.split(',').filter(function(id) {\n return id.length > 0;\n }).map(function(id) {\n\t\t\t\treturn id.toLowerCase();\n\t\t\t}),\n\t\tleadEntityId = form.data('lead-entity-id');\n\n\tvar submitSuccessUrl = form.data('success-redirect'),\n\t\tsubmitErrUrl = form.data('error-redirect'),\n\t\tatLeastOneValidationMsg = form.data('atleastone-validation'),\n\t\tsubmitMsg = newMessageDisplayer($('#messages'));\n\n\tvar relateInputWithLabel = newInputLabelMapper(),\n\t\tgetAvailableSubsApi = OnlyLatestRequestCallback(),\n\t\ttoggleSubmitBtn = GetButtonToggleFn(document.querySelector('#subscription-form button[type=\"submit\"]'));\n\n\t// Select/unselect all (global)\n\t$('#select-unselect-all').change(function(e) {\n\t\tvar checkbox = e.target,\n\t\t\tisChecked = checkbox.checked;\n\n\t\t// check/uncheck all subscriptions\n\t\tsubscriptionsContainer\n\t\t\t.find('input[type=\"checkbox\"]')\n\t\t\t.prop('checked', isChecked)\n\t\t\t.change();\n\t});\n\n\t// Unselect all when \"Unsubscribe all\" or \"Never contact me again\" are checked\n\t$('#unsubscribe-all, #never-contact').change(function(e) {\n\t\tvar checkbox = e.target,\n\t\t\tisChecked = checkbox.checked;\n\n\t\t// uncheck subscriptions if unsubscribe-all is checked\n\t\tif (isChecked) {\n\t\t\tsubscriptionsContainer\n\t\t\t\t.find('input[type=\"checkbox\"]')\n\t\t\t\t.prop('checked', false)\n\t\t\t\t.change();\n\t\t}\n\t});\n\n\t// Select/unselect all (category)\n\tsubscriptionsContainer.on('change', 'input.category-checkbox', function(e) {\n\t\tvar checkbox = e.target,\n\t\t\tisChecked = checkbox.checked;\n\t\t$(checkbox).parent()\n\t\t\t.find('input[type=\"checkbox\"]')\n\t\t\t.prop('checked', isChecked);\n\n\t\tif (isChecked) {\n\t\t\t// uncheck 'Unsubscribe All'\n\t\t\t$('#unsubscribe-all, #never-contact').prop('checked', false);\n\t\t} else {\n\t\t\t// uncheck select/unselect all if any checkbox is unselected\n\t\t\t$('#select-unselect-all').prop('checked', false);\n\t\t}\n\t});\n\n\t// Subscription option checkboxes\n\tsubscriptionsContainer.on('change', '.subscription-options-container input[type=\"checkbox\"]', function(e) {\n\t\tvar checkbox = $(e.target),\n\t\t\tisChecked = checkbox.get(0).checked,\n\t\t\toptionContainer = checkbox.parent(),\n\t\t\tcategoryCheckbox = optionContainer.parent().find('.category-checkbox');\n\n\t\tif (isChecked) {\n\t\t\t// check category box\n\t\t\tcategoryCheckbox.prop('checked', true);\n\n\t\t\t// uncheck termination checkboxes\n\t\t\t$('#unsubscribe-all').prop('checked', false);\n\t\t\t$('#never-contact').prop('checked', false);\n\t\t\treturn;\n\t\t}\n\n\t\t// uncheck category if no children are selected\n\t\tif(optionContainer.find('input:checked').length == 0) {\n\t\t\tcategoryCheckbox.prop('checked', false);\n\t\t}\n\n\t\t// uncheck select/unselect all if any checkbox is unselected\n\t\t$('#select-unselect-all').prop('checked', false);\n\t});\n\n\tif (validator) {\n\t\tvalidator.settings.submitHandler = submitPreferences;\n\n\t\t// don't ignore captcha-verifier\n\t\tvalidator.settings.ignore = ':hidden:not(#captcha-verifier)';\n\n\t\t// Require at least one subscription when handling 'new subscription signup'\n\t\tvalidator.settings.rules['spray-subscription'] = {\n\t\t\trequired: function(value, element, param) {\n\t\t\t\treturn $('#subscriptions-container input:checked').length < 1;\n\t\t\t},\n\t\t\tminlength: 1\n\t\t};\n\t\tvalidator.settings.messages['spray-subscription'] = { required: atLeastOneValidationMsg };\n\t} else {\n\t\t// validator will not be available if no [data-val] inputs are in form\n form.submit(function(e) {\n e.preventDefault();\n submitPreferences();\n });\n }\n\n\tgetAvailableSubscriptions(division, category, subscriptionManagerIds);\n\n\tfunction submitPreferences() {\n\t\tvar msgContainer = $('#messages');\n\n toggleSubmitBtn(false, 'form-submit');\n\t\tsubmitMsg(msgContainer.data('submit-msg'));\n\n\t\t$.ajax(leadEntityId\n\t\t\t? getSubmitPreferencesAjaxRequest(\n\t\t\t\tsuccessCallback = function() {\n\t\t\t\t\tsubmitMsg(msgContainer.data('submit-success-msg'), 10000);\n\t\t\t\t}, errorCallback = function() {\n\t\t\t\t\tsubmitMsg(msgContainer.data('submit-error-msg'));\n\t\t\t\t})\n\t\t\t: getSubmitLeadAjaxRequest());\n\t};\n\n\tfunction getAvailableSubscriptions(division, category, subscriptionManagerIds) {\n\t\tvar disableCode = 'fetchingAvailableSubscriptions',\n\t\t\tcurrentPage = document.createElement('a');\n\n\t\tcurrentPage.href = window.location.href;\n\t\ttoggleSubmitBtn(false, disableCode);\n\n\t\tgetAvailableSubsApi.ajax(leadEntityId\n\t\t\t? {\n\t\t\t\turl: \"/api/spray/subscriptions/GetAllSubscriptionsForEntity\",\n\t\t\t\ttype: \"POST\",\n\t\t\t\tdata: {\n entityId: leadEntityId,\n domain: currentPage.href\n\t\t\t\t},\n\t\t\t\tsuccess: function(data) {\n\t\t\t\t\tpopulateSubscriptionCheckboxes(data.Subscriptions, true);\n\t\t\t\t\t$('#unsubscribe-all').prop('checked', data.GlobalUnsubscribe);\n\t\t\t\t\t$('#never-contact').prop('checked', data.DoNotContact);\n\t\t\t\t\tsetGlobalSelectVisibility(data.Subscriptions);\n\n\t\t\t\t\t// populate lead info (firstname, lastname)\n\t\t\t\t\t$('#fname').val(data.FirstName);\n\t\t\t\t\t$('#lname').val(data.LastName);\n\t\t\t\t\ttoggleSubmitBtn(true, disableCode);\n }\n\t\t\t}\n\t\t\t: {\n\t\t\t\turl: \"/api/spray/subscriptions/GetAvailableSubscriptions\",\n\t\t\t\ttype: \"POST\",\n\t\t\t\tdata: {\n\t\t\t\t\tdomain: currentPage.href,\n\t\t\t\t\tdivision: division,\n\t\t\t\t\tcategory: category\n\t\t\t\t},\n success: function (subs) {\n // filter subscriptions based on subscriptionManagerId if provided\n\t\t\t\t\tif (subscriptionManagerIds.length > 0) {\n\t\t\t\t\t\tsubs = subs.filter(function(sub) {\n\t\t\t\t\t\t\treturn subscriptionManagerIds.indexOf(\n\t\t\t\t\t\t\t\t\tsub.SubscriptionManagerId.toLowerCase()\n\t\t\t\t\t\t\t\t) > -1;\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\tpopulateSubscriptionCheckboxes(subs);\n\t\t\t\t\tsetGlobalSelectVisibility(subs);\n\t\t\t\t\ttoggleSubmitBtn(true, disableCode);\n }\n\t\t\t});\n\t}\n\n\tfunction setGlobalSelectVisibility(subscriptions) {\n\t\t// only show select/unselect all when multiple subscriptions are available\n\t\tif (!subscriptions || subscriptions.length <= 1) {\n\t\t\t$('#select-unselect-all-container').slideUp();\n\t\t} else {\n\t\t\t$('#select-unselect-all-container').slideDown();\n\t\t}\n\t}\n\n\tfunction populateSubscriptionCheckboxes(availableSubscriptions, isManagement) {\n\t\t// Dictionary that maps CategoryName to a category object.\n\t\t// An array is not used here to keep duplicates out of the set.\n\t\t// example { \"CategoryName\": {name: \"CategoryName\", enum: 1}, ...}\n\t\tvar categories = {};\n\n\t\t// Populate categories{}\n\t\tfor (var i = 0; i < availableSubscriptions.length; i++) {\n\t\t\tsubscription = availableSubscriptions[i];\n\t\t\tcategories[subscription.CategoryName] = {\n\t\t\t\tname: subscription.CategoryName,\n\t\t\t\tenum: subscription.Category\n\t\t\t};\n\t\t}\n\n\t\t// Clear old subscription options to make way for incoming options\n\t\tsubscriptionsContainer.html('');\n\n\t\t// Iterate through categories, creating DOM structure to mirror pattern used in Forms\n\t\t//\n\t\t//