{"version":3,"file":"site.min.js","names":["handleMultiSelectClick","otherOption","checked","closest","addClass","attr","removeClass","removeAttr","iframeResize","container","targetIFrame","find","length","constrainByHeight","toLowerCase","constrainByWidth","width","windowHeight","$","window","height","iFrameWidth","iFrameHeight","css","getBaseURL","url","baseUrl","pathArray","split","protocol","dayjs","extend","dayjs_plugin_utc","dayjs_plugin_timezone","dayjs_plugin_localizedFormat","dayjs_plugin_advancedFormat","dayjs_plugin_customParseFormat","swipe","swipeLeft","event","direction","distance","duration","fingerCount","carousel","swipeRight","threshold","fn","carouselHeights","tallest","items","this","heights","normalizeHeights","each","push","Math","max","apply","topMargin","on","jQuery","document","ready","e","stopImmediatePropagation","slide","link","first","destination","open","location","href","clickHandler","target","siblings","is","hasClass","parents","body","off","parent","message","data","globalModal","GlobalModal","openGlobalModal","origin","ajax","method","done","textStatus","request","undefined","closeGlobalModal","globalThis","gage","HandleAjaxFail","menuItem","submenuItem","accomodateHeader","innerHeight","headerHeight","outerHeight","hide","parentEl","toggleClass","children","slideToggle","debounce","momDate","val","format","innerText","isValid","NZProfileFields","constructor","widget","_widget","initialize","_widgetId","parseInt","bindControls","me","currentTarget","text","pathname","otherRow","otherField","isPostalAddressSameasPhysicalAddress","el","county","zipCode","postalAddressCountry","postalAddressStateProvince","postalAddressZipPostal","empty","params","countryID","countryType","type","dataType","contentType","zipCodeRegexMessage","zipCodeRegex","results","value","key","append","mobilephone","businessphone","phoneRegexMessage","phoneRegex","form","removeData","validator","unobtrusive","parse","preventDefault","remove","setPostalAddress","valid","companyName","otherCompanyName","after","RegExp","test","validationCheckBox","otherTextBox","imageOne","imageTwo","uploadProfileImage","trigger","index","item","Quiz","isQuizCompleted","isPassed","canTryAgain","submittingAnswer","StartQuiz","$quizWrapper","stopTimer","quizID","score","response","success","status","errorHeadline","errorText","modal","rID","identifier","elapsedSeconds","totalSeconds","questionsAlreadyAnswered","i","startTimer","SelectQuizAnswer","SelectQuizMatch","proceed","SubmitAnswer","$quizQuestion","quizLanguageID","questionID","answerID","answers","ItemId","MatchedItemId","timedOut","dto","QuizLanguageID","QuestionID","AnswerID","Answers","TimedOut","JSON","stringify","processData","headers","RequestVerificationToken","getAntiForgeryToken","isCorrect","mustAnswerCorrect","currentQuestionNumber","allowRetry","isCompleted","html","title","NextQuestion","TrackWidget","completedWithNext","interval","quiz","autoStart","second","totalMinutes","minute","hour","floor","hours","timer2","setInterval","timer","clearInterval","minutes","seconds","reload","log","menuopt","bodyClickHandler","buttonText","trim","originalLength","substring","match","matchId","questionContainer","complete","CatalogProductList","LoadMore","button","buildParams","ViewType","categoryIds","map","get","join","ItemCategory","toString","when","submitAjaxRequest","_pageIndex","getResponseHeader","_totalPages","showMobileFilter","options","content","_globalModal","hideMobileFilter","_categoryIdentifier","_take","_sortBy","sortBy","applySort","host","urlQueryString","search","removeRegex","replace","history","replaceState","applyFilter","values","enablesmultipledownload","prop","array","pcaIdentfiers","assigmentIdentfiers","eq","xScreenPos","screenX","yScreenPos","screenY","productContainer","xLocation","pageX","offset","left","yLocation","pageY","top","outerWidth","customizationcontainer","norecordscontainer","Identifier","Take","PageIndex","SortBy","show","compareArrays","array1","array2","difference","inArray","getParameterByName","name","exec","decodeURIComponent","ShoppingCartList","UpdateItem","cartItemId","quantity","Id","Quantity","deleteItem","deleteCartImageItem","imageId","ImageId","shoppingcarturl","deleteCartStaplesItem","productId","clientProductId","deleteCartAdobeItem","deleteCartAdobeCommerceItem","adobeCommerceProductId","cartrow","participantInfo","noItemsInforow","GetParticipantInfo","UpdateCart","cartItemCount","updateCartItemCount","deleteItemOnly","cancelText","removeAllText","removeCartOnlyText","removeCartTitleText","removeCartContinueText","removeCartOkText","bootbox","confirm","buttons","label","className","cancel","callback","result","dialog","removecartonly","removeall","listContainer","removeCartImageItemText","updateCartButton","ValidateCart","checkOutCartUrl","midQuantityAllowedMessage","minQuantityAllowedMessage","maxQuantityAllowedMessage","proceed1","proceed2","minQuantityAllowed","maxQuantityAllowed","alert","shoppingCartUrl","pleaseWaitMessageForCart","CartID","Price","TotalPrice","formatColumn","Delete","itemQuantity","waitingDialog","CatalogProductDetail","FinalizeItem","ValidateItemQuantity","CheckAttribute","fadeIn","setTimeout","fadeOut","OrderNow","limited","currentCartItemCount","maxQuantityAllowedEverMessage","productNotAvailableMessage","redirectUrl","orderedCount","availableCount","newCount","addressId","participantOrderId","detailLink","refreshCartCount","cartUrl","AddItemToCart","CheckSkuExists","selectedQuantity","attributes","selectedSku","Attributes","updatedCartId","productskusincart","skuItems","confirmText","updateButton","addButton","cancelButton","size","update","add","attributeCount","GetItemFromAttributes","formattedPrice","price","bypassCheckoutProcessForZeroCostOrders","isInventoryEnabled","quantityInHand","skuName","min","minPerOrder","maxPerOrder","GetCustomizedItemFromAttributes","_identifier","ProductId","_productId","ProductCustomizationId","_quantity","dropDown","textarea","assetLibraryType","oldValue","mismatchValueForAssetLibrary","mismatchValue","valueToDisplay","setEmailInformation","setMicrositeInformation","setMicrositeLookupUrl","setSocialPostInformation","setDirectMailInformation","setApproximateCostContainer","numberOfContacts","formattedNumberOfContacts","totalPrice","appxroximateCostCopy","openDirectMailUploadedListRecipients","OpenDirectMailUploadModal","self","SetNames","isScheduled","appendWithLaunchName","appendWithArchiveDate","utc","Date","toISOString","microsoftFriendlyName","contactListName","GlobalPopulateTimeZones","itemId","ReloadForCustomizationAndOrder","ConfigureDatePicker","ConfigureTimePicker","bindLocalizedTime","openEmailUploadedListRecipients","verifyEmailContainer","linkFromConfirmationEmailContainer","senderIdentity","CheckIsEmailInVerifiedDomain","verifiedMessage","sendGridConfirmationLinkDTO","isVerified","exceptionErrors","SendCreateRequest","OpenUploadModal","recipentlist","email","fail","errorThrown","originalList","appendTo","assignmentIdentifier","locale","GetDirectMailUploadModal","classes","confirmContainer","fileUploadContainer","tableBody","uploadType","noSelectedFileMessage","fileNameRequired","formData","FormData","element","getElementById","file","files","errorMessage","numberOfEntries","contactListId","dropdown","dropdownContainer","directMailListSelectorButton","emailSendDetailsContainer","appendToName","local","GetUploadModal","mapFieldNameLabel","fileHeaderNames","isDefault","headerName","hasMismatchedColumnNames","missingFieldsCount","entriesWithMissingData","entriesWithInvalidEmailData","dropdownclone","emailListSelectorButton","contactLists","id","isReposted","fromEmail","IsValidFromEmailAddress","verifiedDomainList","restrictToVerifiedDomainsOnly","isValidDomainForEmail","domain","verifiedDomainListArray","indexOf","caller","fromAddress","verifyFromAddressAft","cache","traditional","userExists","SetVerificationData","OpenSendGridConfirmationLinkModal","submitContainer","nickName","from_Email","from_Name","reply_To","address","city","country","isNewUserCreated","userCreated","verified","error","errors","field","canSendRequestAgain","getSenderInformationFormAft","existingUser","emailAddress","getConfirmationLinkFormaft","buttonId","table","DataTable","pageLength","searching","dom","click","localDate","DisplayDateInLocalFormat","Checkout","canProceedToSubmit","AddOrder","btn","addressRequiredMessage","OrderNotesRequired","OrderNotes","firstName","lastName","FirstName","LastName","GetDistributorAddresses","GetAddressForm","showNames","ShowAddressForm","mode","action","sourceButton","responseMessage","ValidateShippingAddress","address2","state","phoneNumber","addressName","AddParticipantAddress","_a","_b","_c","_d","_e","_f","validators","emailValidator","zipValidator","phoneValidator","postal","phone","countryId","found","ShowAddressSelector","distributorCompanyAddressId","AddShippingAddress","RefreshCheckout","pleaseWaitMessageForcheckout","saveAddressButton","selectedAddressId","DeleteAddress","deleteAddress","cartCount","getStorageCartItemCount","userToken","localStorageIsAvailable","setStorageCartItemCount","itemKey","localStorage","setItem","sessionStorage","getItem","initCartCountMonitor","myCartCount","globalCartCount","cartWidget","addCommas","str","parts","main","len","output","charAt","formatted","decimalPlaces","currency","toFixed","toLocaleString","Search","SortAscending","Skip","PerformSearch","Title","Description","SuppressTypeColumn","SearchType","SearchTerm","SortField","trackSearchLink","encodeURIComponent","replaceWith","insertBefore","hash","viewCompletionList","s","o","r","a","m","analyticField","q","arguments","l","createElement","getElementsByTagName","async","src","parentNode","ga","hitType","page","copyToClipboardFunction","dataset","for","input","style","marginLeft","nextSibling","focus","select","execCommand","currentNumberDisplayed","ApplyGageToolTip","AccountTransaction","parseFloat","ShowHideFilter","SelectDeselectFacet","_sortAscending","LoadData","participantOrderLineItemId","relatedTarget","showDetail","ShowPager","newHeader","oldHeader","ApplyFilter","SendCompositionEmail","expand","widgetContainer","parentContainer","next","detailContainer","icon","actionid","source","transactiontype","participantactivityid","showaccount","showdepositsource","activityname","isadmin","suppressViewLink","GetOrderDetail","slideDown","prompt","inputType","Download","transactionType","actionId","participantActivityId","activityName","showAccount","showDepositSource","isAdmin","SetPager","twbsPagination","initiateStartPageClick","totalPages","startPage","onPageClick","filterClose","BuildParams","list","filterType","$dropdown","$indicator","dropdownIsClosed","$facetIndicator","contentWidgetID","filterID","UpdateFilter","ceil","contentWidgetId","$transactiontypeFilter","arrayTypes","Array","transactionTypes","TransactionTypes","orderHeaderStatus","orderLineItemStatus","AccountTransactionFielo","htmlContentToUpdate","filterContentToUpdate","fields","additionalFieldsList","GetTransactions","viewmorebutton","viewMore","BindDataTable","currentOffSet","nextOffSet","GetTransactionLineItems","fielofieldToRetrieve","attempt","renew","take","fieldName","updateTransactionsUI","errorCode","transactionHTML","filterHTML","bindAdditionalFields","transactionidentifier","childRow","json","parentRow","panelHeader","jsonobj","obj","insertAfter","updateTransactionLineItemsUI","blengthChange","bPaginate","bInfo","order","columnDefs","orderable","searchable","targets","close","AgentMarketingPlan","_widgetContainer","charCode","which","keyCode","ViewCompletionList","thisWidget","totalNumberOfCompletions","skip","start","Categories","Tags","ContentTypes","completionsTable","numberOfItems","GenerateTranscript","participantId","token","$completionsTable","selectedCourses","selectedCurriculums","row","currentRow","closeButton","Token","ParticipantId","WidgetId","ContentIds","CurriculumIds","btoa","ViewContentList","$list","totalNumberOftiles","$listItems","getFiltersDto","totalTiles","$contentList","updateFilter","ClearFilter","numberOfItemsToShow","$filterUpdates","$categories","$filter","ID","NumberOfItems","$contenttypes","$tags","$completionStatuses","not","$categoriesFilter","$tagsFilter","$contentTypesFilter","$completionStatusesFilter","categories","tags","contentTypes","completionStatuses","EntityItemTypes","CompletionStatuses","viewContentList","controlId","EmailConfiguration","uploadRecipients","campaignIdentifier","campaignItemScheduleId","isSeedContact","emailListContainer","selectedOptions","campaignId","campaignItemId","details","startDate","seedStartDate","timeZone","seedTimeZone","errorcontainer","dateString","date","tz","newDate","startDateTime","seedStartDateTime","populateTimeZonesOnly","productCustomizationIdentifier","reset","datetimepicker","useCurrent","setTime","setSeedTime","addEmailId","testHtml","productCustomizations","elem","productCustomizationIdentifiers","productCustomization","customizationIdentifier","replaceAction","GetTimeZoneNameList","then","timeZones","FillTimeZoneDropDown","guess","populateTimeZones","EmailManagement","console","catalogAssignmentIdentifier","customizationExistsMessage","productDetailUrl","okText","updateSchedule","FieloBadgesList","statusToRetrieve","GetEarnedBadges","GetUnEarnedBadges","strarray","GetExpiredBadges","updateEarnedUI","badgeHTML","SetViewMore","GetBadgePopDetail","viewMoreContainer","pageSize","totalRecords","clickHandlerFieloBadge","updateUnEarnedUI","updateExpiredUI","FieloLeaderBoardList","GetLeaderBoard","destroy","isPageLoad","isReset","fromDate","toDate","missionRequested","MissionsDisplayRequested","FromDate","ToDate","Renew","LimitToSpecificMissions","MaximumLeaderboardsToReturn","MissionsToDisplay","MaximumNumberofEntriesToDisplayPerLeaderboard","LeaderboardType","LeaderboardScope","LeaderboardStatus","LeaderboardOrder","ParticipantIdentificationOptions","RelatedOrganizationNamesDisplayAsAnonymous","SuppressProfilePhoto","SuppressScore","AllowParticipantToConstrainByDate","IsPageLoad","InitialAllLeaderboards","updateLeaderboardUI","memberListHTML","BindDatePickers","BindFilterButtons","pickers","filter","FieloProfile","_dateFormat","GetFieloSessionStatus","updateSessionCheck","membersRequests","memberRequest","callType","pointValue","placeHolderToUpdate","fieloField","GetCommmonMember","memberRequests","updateCommmonMemberUI","responseData","memberResponseObject","formattedData","InProgressCustomization","loadData","removeButton","customizationidentifier","deleteButton","confirmed","showPager","setPager","LeaderBoard","ListPromotions","BindTooltips","ResetFilters","origText","altTextHolder","multiselect","numberDisplayed","tooltip","isShowFutureSelected","showFuture","selectedActivityTypes","activityTypes","isBonusSelected","isBonus","searchText","ActivityTypes","ShowFuture","IsBonus","SearchText","MyProject","selectDeselectFacet","delete","updateStatus","openDirectMailListRecipients","contactListIdentifier","orderLineItemDetailIdentifier","openMicrositeListRecipients","openContactActivityList","progressBar","uniqueId","pollingStop","progressWrapper","getStatus","finalUrl","getUniqueGuid","updateProgressStatus","stopPropagation","openMicrositeActivityList","download","parentrowIdentifier","parentrow","sendCompositionEmail","orderidentifier","resubmitOrderItem","displayPopup","orderLineItemId","orderIdentifier","openFaceBookPost","child","readyState","URL","accessToken","contents","pages","submitButton","requiredMessage","postedText","pageIds","errorHeader","columnErrorHeader","columnPageNameHeader","postSuccessfulSubHeading","pageId","postError","v","statusCode","faceBookPostURL","postName","closed","resetFaceBookPermissions","successMessage","AccessToken","checkCompositionFileStatus","showModal","orderItemId","detailrow","expandbutton","fileStatus","openCancelCampaignMessage","yesText","noText","overwriteMessage","sendSequenceNumber","seedSequenceNumber","cancelledStatusText","SendSequenceNumber","SeedSequenceNumber","OrderLineItemId","IsAdmin","openCancelSocialPostMessage","orderLineItemDetailId","openCancelMicrositeMessage","OrderLineItemDetailId","modifyCampaignDates","lineItemDetailId","refreshContainer","SetModifiedDatesForCustomization","recipientSendDateRequired","seedSendDateRequired","recipientSendTimeRequired","seedSendTimeRequired","recipientSendDateGreaterThanToday","seedSendDateGreaterThanToday","seedSendDateGreaterThanSendDate","sendDateString","currentDate","GetISODate","seedDateString","campaignDatesDtO","sendDate","sendTimeZone","seedSendDate","seedSendTimeZone","responseJSON","modifyMicrositeDates","launchDateRequired","launchTimeRequired","archiveTimeZone","launchDateString","launchDate","archiveDateString","archiveDate","micrositeDatesDtO","launchTimeZone","modifySocialPostDates","socialPostDatesDtO","Intl","supportedValuesOf","statusButton","getOrderDetail","$statustypeFilter","statusTypes","StatusTypes","emailRegex","OrderDetail","downloadPdf","sendListBasedEmail","invalidEmailErroMessage","postMessage","orderDetailId","serialize","showAlert","templateIdentifier","productIdentifier","ParticipantActivityList","datarequiredtext","dataattributerequiredtext","activityType","_searchActivityTypeId","_searchText","activitydate","activityTypeId","activityId","activityItem","multiplier","GetParticipantActivityDetail","activityDate","updatedactivityItem","$activitytypeFilter","SearchAttributeTypeId","Points","isFielo","fielocustomfield","GetMemberCall","updateUI","TeamLeaderTeamDetail","FilterValues","FilterTrackedValues","getValidationDiv","validationDiv","validationDivTemp","isArray","activeTab","getUrlVars","bootstrap","Tab","getOrCreateInstance","querySelector","getTeamContentCompletionForParticipant","saveTeam","getContentSelector","getEditAssignmentsSelector","removeContentAssignment","contentid","parentCurriculumId","currButton","animate","scrollTop","alreadyAdded","numberOfAssginments","contentitemname","contentname","displayvalue","contenttype","contentidentifier","rawStartDate","rawEndDate","formattedRawStartDate","formattedRawEndDate","DisplayDateInTimeZoneFormat","ContentName","ContentItemName","ContentIdentifier","ContentId","DisplayValue","ContentType","StartDate","EndDate","startDateEl","endDateEl","initializeDatePickerForAddContentAssignment","addMsg","removeMsg","saveTeamContent","saveEditAssignments","getCourseDetail","removeMember","changeRole","saveCourseDetail","getParticipantCompletionsForCourse","currentState","setAssignmentDataTable","setMemberDataTable","bindTeamDatePickers","setDefaultDatesForDatePicker","copyToClipBoard","textContent","appendChild","selection","getSelection","range","createRange","selectNode","removeAllRanges","addRange","removeChild","originalTimeZone","formattedStartDate","formattedEndDate","startPicker","endDatePicker","BindDatePickerEvents","drawCallback","settings","clone","setAssignmentContentListDataTable","visible","ogtable","availCoursesCount","rows","every","addColumn","node","addAllButton","clonedBtn","tgtFilter","tagIds","columns","draw","widgetcontainer","confirmationMessage","teamIdentifier","teamContentId","TeamIdentifier","globalWindow","selectedPageTypes","selectedCategories","selectedTags","showContent","showCurriculum","defaultFilterType","saveButton","widgetId","teamidentifier","allowcontentnameselection","defaultassignmentsource","endDate","teamInfo","rawDate","startEl","loop","datetimepicker1","tempusDominus","TempusDominus","localization","display","viewMode","keepOpen","components","calendar","month","year","decades","clock","datetimepicker2","subscribe","updateOptions","restrictions","minDate","teamSingleContentAssignmentDtos","isRequired","teamSingleContentAssignmentDto","contentId","formattedRawendDate","maxDate","initializeDatePickerForEditContentAssignment","datagroups","OwnerParticipantID","GroupsCollection","availabledate","duedate","isrequired","dateHeader","makeDate","contentIdentifier","formattedTeamStartDate","formattedTeamEndDate","bindDatePickers","anyTime","filterTable","filterDataTable","filterColumn","slice","SetTime","availableDate","dueDate","errorContainer","getValidationErrorMessage","selected","sDate","dDate","contentDetails","ApplyGagePopOverParticipant","compareDates","dateTimeA","dateTimeB","momentA","momentB","currentPageUrl","itemStatusId","assignmentSortOrder","removeattr","teamName","teamAssignmentSortOrder","teamSaved","overRide","vars","TeamLeaderTeamList","setUpDataTable","getTeamOptionsForExistingTeam","getTeamOptionsFromOTherTeam","removeTeam","reinstateTeam","copyCode","IncludeDeleted","IncludeExpired","setLocalTimes","contentClone","contentHtml","globalContainer","dueDateRow","keeprequiredAssignmentRow","resetSettings","copyOptions","timezonerequired","teamnamerequired","teamcopyoptionrequired","copyTeamCommon","joinCode","now","localOffset","utcOffset","diffInMinutes","TeamJoinCode","TeamName","TimeZone","TimeZoneDiffMinutes","CopyOption","CopyDates","KeepRequiredAssigmentSetting","uri","clean_uri","Override","isnew","validateCode","teamcoderequired","code","dateToCheck","helpText","detailUrl","TeamMemberContentAssignmentDueList","showPast","TeamMemberContentAssigmentList","leaveTeam","TeamMemberTeamList","joinTeam","selectTeamsTojoin","promobox","joinconfirmationtext","includeExpired","PostBackData","setUpClassTable","memberListUrl","notFoundMessage","responseText","identity","UserStatusFielo","disabled","fileProgress","fileInput","originalFilename","fileUpload","FileUpload","onProgressChangeCallback","percentText","onCompleteCallback","queryStart","cdnUrl","substr","usePortalUploadPath","enforceFileTypes","uploadFile","emailErrorMessage","addMethod","optional","validate","resetForm","CurriculumTeamContentListWidget","panelAlignment","trackableWidgets","dataCompletedWidgetCount","urlParameters","DSODashboard","showTransactions","showLocations","Children","modalHeading","htmlSource","noTransactionsMsg","showTransactionDetail","isaAmin","Locations","DSOSetup","findDSO","showDistributors","topHierarchyLevelParticipantId","validateInput","saveAddPractice","errorpanel","successpanel","successmessage","successcontainer","bodycontainer","fileObject","SendIndividualEmail","showChildren","selectFileToImport","removePracticeLocation","template","Template","SendGroupEmail","model","midHierarchyLevelGroupId","locations","CompanyName","Email","PhoneNumber","Country","Language","JobTitle","KerrPreferredNumberOfOperatories","NPINumber","PreferredLocationTypeId","Tophierarchylevel","Midhierarchylevel","TopHierarchyLevelParticipantId","PreferredLocationType","errormessage","SetDistributorCompanyAddressesForParticipant","clientId","DistributorCompanyDto","Addresses","ParticipantID","PointMatchingField","processingModalTitle","processingModalBody","box","td","Distributors","dataTable","GetDistributorCompanies","isDataTable","processing","language","loadingRecords","serverSide","paging","ordering","info","lengthChange","scrollY","dataSrc","api","nodes","last","column","group","before","render","full","meta","addButtonText","ownerLabel","claimedLabel","IsParticipantAddressOwner","Claimed","DistributorCompanyClientID","DistributorCompanyName","pagingType","initComplete","$searchButton","parentId","searchCriteria","topHierarchyLevelGroupId","dsoSetup","FileWidget","MarkAsCompleted","getHeroImageSize","imageSource","img","Image","heroWidgets","init","overlayHeight","imageHeight","PromotionCodeWidget","submitPromotionCode","Code","ContentWidgetId","removeProp","QuestionaireForm","onUploadFailCallback","uploader","ResourceListViewWidget","AllLinksHaveBeenTracked","UserCurriculumProgressWidget","fullId","defaultDisplay","n","lastIndexOf","hideDetailsText","showDetailsText","showAdditionalElectivesText","hideAdditionalElectivesText","txt","bindEvents","BindUserLevelProgress","$toggleButton","$toggleText","processScrubbingControls","videoID","video","hideVideoScrubbingBar","getAttribute","disableForwardScrubbing","previousTime","ontimeupdate","currentTime","onseeking","addEventListener","renderVideoPlayButton","videoWrapper","vw","formatVideoPlayButton","videoPlayButton","hideVideoPlayButton","play","classList","setAttribute"],"sources":["wwwroot/lib/js/site.js"],"mappings":"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","sourcesContent":["/// <reference path=\"../lib/helper.admin.d.ts\" />\n/// <reference path=\"../lib/helper.timezones.d.ts\" />\n/// <reference path=\"../lib/helper.orders.d.ts\" />\n/// <reference path=\"../lib/jquery.d.ts\" />\n/// <reference path=\"../lib/jquery.validation.d.ts\" />\n/// <reference path=\"../lib/jquery.validation.unobtrusive.d.ts\" />\n/// <reference path=\"../lib/bootbox.d.ts\" />\n/// <reference path=\"../lib/gage.d.ts\" />\n/// <reference path=\"../lib/waitingdialog.d.ts\" />\n/// <reference path=\"../../node_modules/dayjs/index.d.ts\" />\n/// <reference path=\"../../node_modules/dayjs/plugin/localeData.d.ts\" />\n/// <reference path=\"../../node_modules/dayjs/plugin/customParseFormat.d.ts\" />\n/// <reference path=\"../../node_modules/dayjs/plugin/localizedFormat.d.ts\" />\n/// <reference path=\"../../node_modules/dayjs/plugin/timezone.d.ts\" />\n//var waitingDialog = new globalThis.waitingDialogHelper ();\n// step 0\n// step 1 combind ts files\n// step 2 commented out \"/* js */\" lines only between IMPORT START and IMPORT END\n// step 3 compile ts\n// step 4 comment out \"/* ts */\" lines only between IMPORT START and IMPORT END\n// step 5 uncomment out \"/* js */\" lines only between IMPORT START and IMPORT END\n// IMPORT START\n/////*x* ts */ import dayjs from \"../../wwwroot/lib/dayjs1.11.10/dayjs.min.js\";\n/////*x* ts */ import utc from \"../../wwwroot/lib/dayjs1.11.10/plugin/utc\";\n/////*x* ts */ import timezone from \"../../wwwroot/lib/dayjs1.11.10/plugin/timezone\";\n/////*x* ts */ import localizedFormat from \"../../wwwroot/lib/dayjs1.11.10/plugin/localizedFormat\";\n/////*x* ts */ import { GlobalModal } from \"../lib/GlobalModal\";\n/////*x* ts */ import { FileUpload } from \"../standaloneComponents/FileUpload\";\n// timezone\n/*x* js */ dayjs.extend(dayjs_plugin_utc);\n/*x* js */ dayjs.extend(dayjs_plugin_timezone);\n/*x* js */ dayjs.extend(dayjs_plugin_localizedFormat);\n/*x* js */ dayjs.extend(dayjs_plugin_advancedFormat);\n/*x* js */ dayjs.extend(dayjs_plugin_customParseFormat);\n/////*x* ts */ dayjs.extend(utc);\n/////*x* ts */ dayjs.extend(timezone);\n/////*x* ts */ dayjs.extend(localizedFormat);\n//var tzAbbr = function (dateInput:Date = null) {\n//    var dateObject = dateInput || new Date(),\n//        dateString = dateObject + \"\",\n//        tzAbbr: any = (\n//            dateString.match(/\\(([^\\)]+)\\)$/) ||\n//            dateString.match(/([A-Z]+) [\\d]{4}$/)\n//        );\n//    if (tzAbbr) {\n//        tzAbbr = tzAbbr[1].match(/[A-Z]/g).join(\"\");\n//    }\n//    if (!tzAbbr && /(GMT\\W*\\d{4})/.test(dateString)) {\n//        return RegExp.$1;\n//    }\n//    return tzAbbr;\n//};\n// moved to helper.admin.js\n//function debounce(func, wait, immediate) {\n//    var timeout;\n//    return function () {\n//        var context = this, args = arguments;\n//        var later = function () {\n//            timeout = null;\n//            if (!immediate) func.apply(context, args);\n//        };\n//        var callNow = immediate && !timeout;\n//        clearTimeout(timeout);\n//        timeout = setTimeout(later, wait);\n//        if (callNow) func.apply(context, args);\n//    };\n//};\nfunction handleMultiSelectClick(otherOption, checked) {\n    if (checked) {\n        otherOption.closest(\"li\").addClass(\"disabled\");\n        otherOption.attr(\"disabled\", \"true\");\n    }\n    else {\n        otherOption.closest(\"li\").removeClass(\"disabled\");\n        otherOption.removeAttr(\"disabled\");\n    }\n}\nfunction iframeResize(container) {\n    var targetIFrame = container.find(\"iframe\");\n    if (targetIFrame.length === 1) {\n        var constrainByHeight = targetIFrame.attr(\"data-constrain-width-by-height\");\n        constrainByHeight = constrainByHeight.toLowerCase();\n        var constrainByWidth = targetIFrame.attr(\"data-constrain-height-by-width\");\n        constrainByWidth = constrainByWidth.toLowerCase();\n        var width = targetIFrame.closest('div.container').width();\n        var height = width * 0.75;\n        var windowHeight = $(window).height();\n        var iFrameWidth = width;\n        var iFrameHeight = windowHeight;\n        if (constrainByHeight == \"true\" || constrainByWidth == \"true\") {\n            if (constrainByHeight == \"true\") {\n                if (width > windowHeight) {\n                    iFrameWidth = windowHeight;\n                }\n            }\n            if (constrainByWidth == \"true\") {\n                if (windowHeight > width) {\n                    iFrameHeight = width;\n                }\n            }\n        }\n        else {\n            iFrameHeight = iFrameWidth * (9 / 16);\n        }\n        targetIFrame.css('height', iFrameHeight + 'px');\n        targetIFrame.css('width', iFrameWidth + 'px');\n        targetIFrame.attr('width', iFrameWidth);\n        targetIFrame.attr('height', iFrameHeight);\n    }\n}\n;\nfunction getBaseURL(url) {\n    var baseUrl = \"\";\n    if (url) {\n        var pathArray = url.split('/');\n        if (pathArray.length > 3) {\n            var protocol = pathArray[0];\n            if (protocol === \"http:\" || protocol === \"https:\") {\n                var host = pathArray[2];\n                baseUrl = protocol + '//' + host;\n            }\n        }\n    }\n    return baseUrl;\n}\n;\n(function ($) {\n    //Enable swiping...\n    $(\".carousel-inner .item\").swipe({\n        //Generic swipe handler for all directions\n        //swipe: function (event, direction, distance, duration, fingerCount, fingerData) {\n        //    gage.log(\"You swiped \" + direction);\n        //},\n        swipeLeft: function (event, direction, distance, duration, fingerCount) {\n            $('.carousel').carousel('next');\n        },\n        swipeRight: function (event, direction, distance, duration, fingerCount) {\n            $('.carousel').carousel('prev');\n        },\n        //Default is 75px, set to 0 for demo so any distance triggers swipe\n        threshold: 0\n    });\n    // Normalize Carousel Heights - pass in Bootstrap Carousel items.\n    $.fn.carouselHeights = function () {\n        var items = $(this), //grab all slides\n        heights = [], //create empty array to store height values\n        tallest; //create variable to make note of the tallest slide\n        var normalizeHeights = function () {\n            items.each(function () {\n                heights.push($(this).height());\n            });\n            tallest = Math.max.apply(null, heights); //cache largest value\n            items.each(function () {\n                var topMargin = (tallest - $(this).height()) / 2;\n                $(this).css('min-height', tallest + 'px');\n                $(this).find('img').css('padding-top', topMargin + 'px');\n                $(this).find('.carousel-caption').css({ 'margin-bottom': topMargin + 'px', 'margin-top': topMargin + 'px' });\n            });\n        };\n        normalizeHeights();\n        $(window).on('resize orientationchange', function () {\n            //reset vars\n            tallest = 0;\n            heights.length = 0;\n            items.each(function () {\n                $(this).css('min-height', '0'); //reset min-height\n            });\n            normalizeHeights(); //run it again \n        });\n    };\n    jQuery(function ($) {\n        $(window).on('load', function () {\n            $.each($('.widget.carousel'), function () {\n                $(this).find('.item').carouselHeights();\n            });\n        });\n    });\n    $(document).ready(function () {\n        $(\".js-overlay-link a\").on(\"click\", function (e) {\n            e.stopImmediatePropagation();\n        });\n        $(\".js-overlay-link\").on(\"click\", function (e) {\n            var slide = $(this).closest(\".item.active\");\n            var link = $(slide).find(\"a\").first();\n            var destination = $(link).attr(\"href\");\n            var target = $(link).attr(\"target\");\n            if (target == \"_blank\") {\n                window.open(destination);\n            }\n            else {\n                window.location.href = destination;\n            }\n        });\n    });\n})(jQuery);\n/// <reference path=\"../lib/helper.admin.d.ts\" />\n/*\n$('.display-entitlement-info').on('click', function () {\n\r\n    var loadurl = $(this).data('load-url');\n    var entitlementID = $(this).data('entitlement-id');\n    $('#entitlement-detail-modal').find('.modal-body').empty();\n\r\n    $('#entitlement-detail-modal').modal('show').find('.modal-body').load(loadurl);\n    //$(\".entitlement-data-\" + entitlementID).show();\n    //$(\".entitlement-data-\" + entitlementID).load(loadurl);\n    return false;\n});\n*/\n// entitlement badges - click to expand\n(function () {\n    var clickHandler = function (e) {\n        if (!$(e.target).siblings(\".widget-entitlement-info\").is(\":visible\")) {\n            if ($(e.target).hasClass('widget-entitlement-info') || $(e.target).parents('.widget-entitlement-info').length) {\n                // User clicked inside open modal\n                // Check if they clicked close button, otherwise ignore\n                if ($(e.target).hasClass('close')) {\n                    $(document.body).off(\"click\", clickHandler);\n                    $(\".widget-entitlement-info\").addClass('hidden');\n                }\n            }\n            else {\n                // If click is outside of modal, simply close\n                $(document.body).off(\"click\", clickHandler);\n                $(\".widget-entitlement-info\").addClass('hidden');\n            }\n        }\n    };\n    $(\".btn-entitlement-download\").on(\"click\", function () {\n        var parent = $(this);\n        var message = $(this).closest(\".widget-entitlement-wrapper\").data(\"generating-message\");\n        parent.attr(\"disabled\", \"disabled\");\n        var globalModal = new GlobalModal(\"entitlement-\" + parent.data(\"peid\"));\n        globalModal.openGlobalModal(message, \"modal\", { origin: $(this) });\n        $.ajax({\n            method: \"GET\",\n            url: '/API/Entitlement/DownloadEntitlementFile/' + parent.data(\"peid\")\n        })\n            .done(function (data, textStatus, request) {\n            if (data.url !== undefined) {\n                globalModal.closeGlobalModal();\n                parent.removeAttr(\"disabled\");\n                window.location = data.url;\n            }\n            else {\n                globalThis.gage.HandleAjaxFail(request);\n            }\n        });\n    });\n    $(\".js-entitlement-img\").on(\"click\", function (e) {\n        // Explicitly hide all entitlement panels, we do not allow more\n        // than one to be open at a time.\n        $(\".widget-entitlement-info\").addClass('hidden');\n        // Show only the active info panel\n        $(this).siblings(\".widget-entitlement-info\").removeClass('hidden');\n        $(document.body).off(\"click\", clickHandler);\n        $(document.body).on(\"click\", clickHandler);\n    });\n})();\n// Global Navigation\n$(document).ready(function () {\n    var menuItem = $('.dropdown-submenu .dropdown-toggle');\n    var submenuItem = $('.dropdown-submenu ul');\n    $(submenuItem).hide();\n    $(menuItem).on('click', function () {\n        var parentEl = $(this).parent('.dropdown-submenu');\n        parentEl.toggleClass('nav-open');\n        parentEl.children('ul').slideToggle();\n        if ($(this).attr('aria-expanded') == 'false' || $(this).attr('aria-expanded') == undefined) {\n            $(this).attr('aria-expanded', 'true');\n        }\n        else {\n            $(this).attr('aria-expanded', 'false');\n        }\n        return false;\n    });\n    $(\".primary-navigation, .mobile-navigation, .secondary-navigation\").on(\"show.bs.dropdown\", \".js-top-level-nav\", function (e) {\n        $(this).closest(\"li.dropdown\").addClass(\"open\");\n    });\n    $(\".primary-navigation, .mobile-navigation, .secondary-navigation\").on(\"hide.bs.dropdown\", \".js-top-level-nav\", function (e) {\n        $(this).closest(\"li.dropdown\").removeClass(\"open\");\n    });\n    //$(\".mobile-navigation\").on(\"show.bs.dropdown\", \".js-top-level-nav\", function (e) {\n    //    $(this).closest(\"li.dropdown\").addClass(\"open\");\n    //});\n    //$(\".mobile-navigation\").on(\"hide.bs.dropdown\", \".js-top-level-nav\", function (e) {\n    //    $(this).closest(\"li.dropdown\").removeClass(\"open\");\n    //});\n    $('.navbar-toggler').on('click', function () {\n        if ($('body').hasClass(\"mobile-nav-open\")) {\n            $('body').removeClass(\"mobile-nav-open\");\n            $('.js-navbar-scroll').height('auto');\n        }\n        else {\n            var windowHeight = window.innerHeight;\n            var headerHeight = $('#globalHeader').outerHeight(true);\n            $('body').addClass(\"mobile-nav-open\");\n            $('.js-navbar-scroll').height(windowHeight - headerHeight);\n        }\n    });\n    function accomodateHeader() {\n        if ($('body').hasClass(\"mobile-nav-open\")) {\n            if ($('body').css('overflow') === \"hidden\") {\n                var windowHeight = window.innerHeight;\n                var headerHeight = $('#globalHeader').outerHeight(true);\n                $('.js-navbar-scroll').height(windowHeight - headerHeight);\n            }\n            else {\n                $('body').removeClass(\"mobile-nav-open\");\n                $('.js-navbar-scroll').height('auto');\n                $('.navbar-nav-container').removeClass('in');\n            }\n        }\n        if ($('body').hasClass(\"sticky-menu\")) {\n            var headerHeight = $('header').outerHeight(true);\n            var pageWrapperMargin = $('.page-wrapper').css('margin-top');\n            if (pageWrapperMargin != \"0px\") {\n                $('body.sticky-menu').find('.page-wrapper').css('margin-top', headerHeight);\n            }\n        }\n    }\n    ;\n    $(window).on(\"resize\", debounce(accomodateHeader, 250, false));\n    // $(window).resize(debounce(accomodateHeader, 250, false));\n    accomodateHeader();\n});\n$(document).ready(function () {\n    $('.momentUtcDate').each(function () {\n        if ($(this).is('input')) {\n            var momDate = dayjs($(this).val() + ' +0000', 'M/D/YY hh:mm:ss Z');\n            $(this).val(momDate.format('l'));\n        }\n        else {\n            var momDate = dayjs(this.innerText + ' +0000', 'M/D/YY hh:mm:ss Z');\n            if (momDate.isValid())\n                this.innerText = momDate.format('l');\n        }\n    });\n    $('.momentUtcDateTime').each(function () {\n        var momDate = dayjs(this.innerText + ' +0000', 'M/D/YY hh:mm:ss Z');\n        if (momDate.isValid())\n            this.innerText = momDate.format('l LT');\n    });\n});\n/// <reference path=\"../lib/jquery.d.ts\" />\n/// <reference path=\"../lib/jquery.validation.unobtrusive.d.ts\" />\n/// <reference path=\"profile.d.ts\"/>\nclass NZProfileFields {\n    constructor(widget) {\n        this._widget = widget;\n        this.initialize();\n    }\n    initialize() {\n        this._widgetId = parseInt($(this._widget).attr(\"data-contentwidgetid\"));\n        this.bindControls();\n    }\n    bindControls() {\n        var me = this;\n        if ($(this._widget).find(\".js-mode\").val() == \"ProfileEdit\") {\n            $(this._widget).find(\".js-Market\").closest(\".profile-group\").addClass(\"hide\");\n        }\n        $(this._widget).find(\".span-Market\").closest(\".profile-group\").addClass(\"hide\");\n        $(this._widget).find(\".js-Market\").on(\"change\", function (e) {\n            if ($(e.currentTarget).find(\"option:selected\").text() == \"Australia\") {\n                window.location.href = window.location.pathname + \"?market=b3783eaa94fb5b196a39ba7e300bAU\";\n            }\n            else if ($(e.currentTarget).find(\"option:selected\").text() == \"United States/Canada\") {\n                window.location.href = window.location.pathname + \"?market=c2daff463a1241e6a1833be7040USA\";\n            }\n            else if ($(e.currentTarget).find(\"option:selected\").text() == \"United Kingdom\") {\n                window.location.href = window.location.pathname + \"?market=87da1754c1124a3a9d459d4c365UK\";\n            }\n            else if ($(e.currentTarget).find(\"option:selected\").text() == \"India\") {\n                window.location.href = window.location.pathname + \"?market=f60f436ff42142779d697b0692227d6eIN\";\n            }\n            else if ($(e.currentTarget).find(\"option:selected\").text() == \"South East Asia\") {\n                window.location.href = window.location.pathname + \"?market=7252d824047d48dfb78c32e7f61ca058SG\";\n            }\n            else if ($(e.currentTarget).find(\"option:selected\").text() == \"Business Events\") {\n                window.location.href = window.location.pathname + \"?market=3a94f9a1ec2742238c8a80e499383881BE\";\n            }\n            else {\n                window.location.href = window.location.pathname + \"?market=\";\n            }\n        });\n        $(this._widget).find(\".js-JobRole\").on(\"change\", function (e) {\n            var otherRow = \".\" + $(e.currentTarget).attr(\"data-other-field-id\") + \"-row\";\n            var otherField = \".\" + $(e.currentTarget).attr(\"data-other-field-id\");\n            $(otherField).val(\"\");\n            $(otherRow).addClass(\"hide\");\n            if ($(e.currentTarget).val() == \"9999\") {\n                $(otherRow).removeClass(\"hide\");\n            }\n        });\n        $(this._widget).find(\".js-CompanyName\").on(\"change\", function (e) {\n            var otherRow = \".\" + $(e.currentTarget).attr(\"data-other-field-id\") + \"-row\";\n            var otherField = \".\" + $(e.currentTarget).attr(\"data-other-field-id\");\n            $(otherField).val(\"\");\n            $(otherRow).addClass(\"hide\");\n            if ($(e.currentTarget).val() == \"9999\") {\n                $(otherRow).removeClass(\"hide\");\n            }\n        });\n        //$(this._widget).find(\".js-ABTA_TTANumber\").on(\"keyup\", function () {\n        //    $(this).val($(this).val().replace(/[^0-9\\.]/g, ''));\n        //});\n        //$(this._widget).find(\".js-IATANumber\").on(\"keyup\", function () {\n        //    $(this).val($(this).val().replace(/[^0-9\\.]/g, ''));\n        //});\n        //$(this._widget).find(\".js-IATANumber\").attr(\"maxlength\", 8);\n        //$(this._widget).find(\".js-ABTA_TTANumber\").attr(\"maxlength\", 7);\n        //if ($(this._widget).find(\".js-PhysicalAddressCountry\").val() == \"9999\") {\n        //    $(this._widget).find(\".js-PhysicalAddressStateProvince\").closest(\".form-group\").addClass(\"hide\");\n        //}\n        //if ($(this._widget).find(\".js-PostalAddressCountry\").val() == \"9999\") {\n        //    $(this._widget).find(\".js-PostalAddressStateProvince\").closest(\".form-group\").addClass(\"hide\");\n        //}\n        $(this._widget).find(\"#sameasphysicaladdress\").on(\"click\", function (e) {\n            var container = $(e.currentTarget).closest(\".widget-nz-profile-fields\");\n            if ($(container).find(\"#sameasphysicaladdress\").is(\":checked\")) {\n                $(container).find(\".js-postaladdressgroup\").addClass(\"hide\");\n            }\n            else {\n                $(container).find(\".js-postaladdressgroup\").removeClass(\"hide\");\n            }\n        });\n        $(this._widget).find(\".js-PhysicalAddressCountry\").on(\"change\", function (e) {\n            var otherRow = \".\" + $(e.currentTarget).attr(\"data-other-field-id\") + \"-row\";\n            var otherField = \".\" + $(e.currentTarget).attr(\"data-other-field-id\");\n            $(otherField).val(\"\");\n            $(otherRow).addClass(\"hide\");\n            var container = $(e.currentTarget).closest(\".widget-nz-profile-fields\");\n            var isPostalAddressSameasPhysicalAddress = $(container).find(\"#sameasphysicaladdress\").is(\":checked\");\n            var el = $(container).find(\".js-PhysicalAddressStateProvince\");\n            var county = $(container).find(\".js-County\");\n            var zipCode = $(container).find(\".js-PhysicalAddressZipPostal\");\n            var postalAddressCountry = $(container).find(\".PostalAddressCountry\");\n            var postalAddressStateProvince = $(container).find(\".js-PostalAddressStateProvince\");\n            var postalAddressZipPostal = $(container).find(\".js-PostalAddressZipPostal\");\n            $(el).empty();\n            $(county).empty();\n            if ($(e.currentTarget).val() == \"9999\") {\n                var x = 1;\n                //$(otherRow).removeClass(\"hide\");\n                //$(zipCode).attr(\"data-val-regex\", \"\");\n                //$(zipCode).attr(\"data-val-regex-pattern\", \"\");\n                //$(zipCode).attr('data-val', 'false');\n                //$(el).closest(\".form-group\").addClass(\"hide\");\n                //$(el).attr(\"data-val-regex\", \"\");\n                //$(el).attr(\"data-val-regex-pattern\", \"\");\n                //$(el).attr('data-val', 'false');\n                //var form = $(\".form-horizontal\")\n                //    .removeData(\"validator\") /* added by the raw jquery.validate plugin */\n                //    .removeData(\"unobtrusiveValidation\");\n                //$.validator.unobtrusive.parse(form);\n            }\n            else {\n                $(el).closest(\".form-group\").removeClass(\"hide\");\n                var params = {\n                    countryID: $(e.currentTarget).val(),\n                    countryType: \"PhysicalAddressCountry\"\n                };\n                $.ajax({\n                    url: (\"/Profile/GetStateProvinces\"),\n                    type: \"GET\",\n                    data: params,\n                    dataType: 'json',\n                    contentType: 'application/x-www-form-urlencoded; charset=UTF-8'\n                }).done(function (data) {\n                    if (data != null) {\n                        $(zipCode).attr(\"data-val-regex\", data.zipCodeRegexMessage);\n                        $(zipCode).attr(\"data-val-regex-pattern\", data.zipCodeRegex);\n                        $.each(data.results, function (value, key) {\n                            $(el).append('<option value=\"' + key.value + '\">' + key.text + '</option>');\n                        });\n                        if (isPostalAddressSameasPhysicalAddress) {\n                            $(postalAddressCountry).val($(e.currentTarget).val());\n                            $(postalAddressStateProvince).empty();\n                            $.each(data.results, function (value, key) {\n                                $(postalAddressStateProvince).append('<option value=\"' + key.value + '\">' + key.text + '</option>');\n                            });\n                            $(postalAddressZipPostal).attr(\"data-val-regex\", data.zipCodeRegexMessage);\n                            $(postalAddressZipPostal).attr(\"data-val-regex-pattern\", data.zipCodeRegex);\n                        }\n                        var mobilephone = $(container).find(\".js-MobilePhoneNumber\");\n                        var businessphone = $(container).find(\".js-BusinessPhoneNumber\");\n                        if ($(container).find(\".js-Market :selected\").text() == \"Business Events\" || $(container).find(\".js-market-value\").val() == \"Business Events\") {\n                        }\n                        else {\n                            $(mobilephone).attr(\"data-val-regex\", data.phoneRegexMessage);\n                            $(mobilephone).attr(\"data-val-regex-pattern\", data.phoneRegex);\n                            $(businessphone).attr(\"data-val-regex\", data.phoneRegexMessage);\n                            $(businessphone).attr(\"data-val-regex-pattern\", data.phoneRegex);\n                        }\n                        var form = $(\".form-horizontal\")\n                            .removeData(\"validator\") /* added by the raw jquery.validate plugin */\n                            .removeData(\"unobtrusiveValidation\");\n                        // @ts-ignore\n                        $.validator.unobtrusive.parse(form);\n                    }\n                });\n                if ($(e.currentTarget).val() == \"1237\" || $(e.currentTarget).val() == \"1110\" || $(e.currentTarget).val() == \"1254\") {\n                    $.ajax({\n                        url: (\"/Profile/GetCounties\"),\n                        type: \"GET\",\n                        data: params,\n                        dataType: 'json',\n                        contentType: 'application/x-www-form-urlencoded; charset=UTF-8'\n                    }).done(function (data) {\n                        if (data != null) {\n                            $.each(data.results, function (value, key) {\n                                $(county).append('<option value=\"' + key.value + '\">' + key.text + '</option>');\n                            });\n                        }\n                    });\n                }\n            }\n        });\n        $(this._widget).find(\".js-PostalAddressCountry\").on(\"change\", function (e) {\n            var otherRow = \".\" + $(e.currentTarget).attr(\"data-other-field-id\") + \"-row\";\n            var otherField = \".\" + $(e.currentTarget).attr(\"data-other-field-id\");\n            $(otherField).val(\"\");\n            $(otherRow).addClass(\"hide\");\n            var container = $(e.currentTarget).closest(\".widget-nz-profile-fields\");\n            var el = $(container).find(\".js-PostalAddressStateProvince\");\n            var zipCode = $(container).find(\".js-PostalAddressZipPostal\");\n            $(el).empty();\n            if ($(e.currentTarget).val() == \"9999\") {\n                var x = 1;\n                //$(otherRow).removeClass(\"hide\");\n                //$(zipCode).attr(\"data-val-regex\", \"\");\n                //$(zipCode).attr(\"data-val-regex-pattern\", \"\");\n                //$(zipCode).attr('data-val', 'false');\n                //$(el).closest(\".form-group\").addClass(\"hide\");\n                //$(el).attr(\"data-val-regex\", \"\");\n                //$(el).attr(\"data-val-regex-pattern\", \"\");\n                //$(el).attr('data-val', 'false');\n                //var form = $(\".form-horizontal\")\n                //    .removeData(\"validator\") /* added by the raw jquery.validate plugin */\n                //    .removeData(\"unobtrusiveValidation\");\n                //$.validator.unobtrusive.parse(form);\n            }\n            else {\n                $(el).closest(\".form-group\").removeClass(\"hide\");\n                var params = {\n                    countryID: $(e.currentTarget).val(),\n                    countryType: \"PostalAddressCountry\"\n                };\n                $.ajax({\n                    url: (\"/Profile/GetStateProvinces\"),\n                    type: \"GET\",\n                    data: params,\n                    dataType: 'json',\n                    contentType: 'application/x-www-form-urlencoded; charset=UTF-8'\n                }).done(function (data) {\n                    if (data != null) {\n                        $(zipCode).attr(\"data-val-regex\", data.zipCodeRegexMessage);\n                        $(zipCode).attr(\"data-val-regex-pattern\", data.zipCodeRegex);\n                        var mobilephone = $(container).find(\".js-MobilePhoneNumber\");\n                        var businessphone = $(container).find(\".js-BusinessPhoneNumber\");\n                        var form = $(\".form-horizontal\")\n                            .removeData(\"validator\") /* added by the raw jquery.validate plugin */\n                            .removeData(\"unobtrusiveValidation\");\n                        // @ts-ignore\n                        $.validator.unobtrusive.parse(form);\n                        $.each(data.results, function (value, key) {\n                            $(el).append('<option value=\"' + key.value + '\">' + key.text + '</option>');\n                        });\n                    }\n                });\n            }\n        });\n        $(this._widget).find(\"#profile-registration\").on(\"click\", function (e) {\n            // upload images\n            e.preventDefault();\n            var container = $(e.currentTarget).closest(\".widget-nz-profile-fields\");\n            $(container).find(\".Profile-Other-JobRole-span\").remove();\n            $(container).find(\".Profile-Other-PhysicalAddressCountry-span\").remove();\n            $(container).find(\".Profile-Other-PostalAddressCountry-span\").remove();\n            $(container).find(\".Profile-TermsAndConditions-div\").remove();\n            $(container).find(\".Profile-IATANumber-div\").remove();\n            $(container).find(\".Profile-CompanyName-Other-div\").remove();\n            $(container).find(\".Profile-MobilePhoneNumber-div\").remove();\n            $(container).find(\".Profile-BusinessPhoneNumber-div\").remove();\n            if ($(container).find(\"#sameasphysicaladdress\").is(\":checked\")) {\n                me.setPostalAddress(container);\n            }\n            var isValid = true;\n            var form = $(container).find(\"form\");\n            if (form.valid()) {\n                if ($(container).find(\".js-CompanyName\").length > 0) {\n                    if ($(container).find(\".js-CompanyName\").val() === \"9999\") {\n                        if ($(container).find(\".Profile-Other-CompanyName\").val() == \"\") {\n                            var companyName = $(container).find(\".js-CompanyName\");\n                            var otherCompanyName = $(container).find(\".Profile-Other-CompanyName\");\n                            var data = \"<div class='text-danger field-validation-error Profile-CompanyName-Other-div'>\" + $(companyName).attr(\"data-val-required\") + \"</div>\";\n                            $(container).find(\".Profile-CompanyName-Other-div\").remove();\n                            $(otherCompanyName).after(data);\n                            isValid = false;\n                        }\n                    }\n                }\n                //if ($(container).find(\".js-IATANumber\").length > 0) {\n                //    if ($(container).find(\".js-IATANumber\").val() !== \"\" && $(container).find(\".js-IATANumber\").val().length < 7) {\n                //        var validationCheckBox = $(container).find(\".js-IATANumber\");\n                //        var data = \"<div class='text-danger field-validation-error Profile-IATANumber-div'>\" + $(validationCheckBox).attr(\"data-val-regex\") + \"</div>\";\n                //        $(container).find(\".Profile-IATANumber-div\").remove();\n                //        $(validationCheckBox).after(data);\n                //        isValid = false;\n                //    }\n                //}\n                //if ($(container).find(\".js-ABTA_TTANumber\").length > 0) {\n                //    if ($(container).find(\".js-ABTA_TTANumber \").val() !== \"\") {\n                //        var abtanummberRegex = new RegExp($(container).find(\".js-ABTA_TTANumber\").attr(\"data-val-regex-pattern\"));\n                //        if (!abtanummberRegex.test($(container).find(\".js-ABTA_TTANumber\").val())) {\n                //            var validationCheckBox = $(container).find(\".js-ABTA_TTANumber \");\n                //            var data = \"<div class='text-danger field-validation-error Profile-ABTA_TTANumber-div'>\" + $(validationCheckBox).attr(\"data-val-regex\") + \"</div>\";\n                //            $(container).find(\".Profile-ABTA_TTANumber-div\").remove();\n                //            $(validationCheckBox).after(data);\n                //            isValid = false;\n                //        }\n                //    }\n                //}\n                if ($(container).find(\".js-MobilePhoneNumber\").length > 0) {\n                    if ($(container).find(\".js-MobilePhoneNumber\").val() !== \"\") {\n                        if ($(container).find(\".js-Market :selected\").text() == \"Business Events\" || $(container).find(\".js-market-value\").val() == \"Business Events\") {\n                            isValid = true;\n                        }\n                        else {\n                            var phoneRegex = new RegExp($(container).find(\".js-MobilePhoneNumber\").attr(\"data-val-regex-pattern\"));\n                            if (!phoneRegex.test($(container).find(\".js-MobilePhoneNumber\").val() + \"\")) {\n                                var validationCheckBox = $(container).find(\".js-MobilePhoneNumber\");\n                                var attr = $(validationCheckBox).attr(\"data-val-regex\");\n                                if (typeof attr !== 'undefined') {\n                                    var data = \"<div class='text-danger field-validation-error Profile-MobilePhoneNumber-div'>\" + $(validationCheckBox).attr(\"data-val-regex\") + \"</div>\";\n                                    $(container).find(\".Profile-MobilePhoneNumber-div\").remove();\n                                    $(container).find(\".helptext-MobilePhoneNumber\").after(data);\n                                    isValid = false;\n                                }\n                            }\n                        }\n                    }\n                }\n                if ($(container).find(\".js-BusinessPhoneNumber\").length > 0) {\n                    if ($(container).find(\".js-BusinessPhoneNumber\").val() !== \"\") {\n                        if ($(container).find(\".js-Market :selected\").text() == \"Business Events\" || $(container).find(\".js-market-value\").val() == \"Business Events\") {\n                            isValid = true;\n                        }\n                        else {\n                            var phoneRegex = new RegExp($(container).find(\".js-BusinessPhoneNumber\").attr(\"data-val-regex-pattern\"));\n                            if (!phoneRegex.test($(container).find(\".js-BusinessPhoneNumber\").val() + \"\")) {\n                                var validationCheckBox = $(container).find(\".js-BusinessPhoneNumber\");\n                                $(container).find(\".Profile-BusinessPhoneNumber-div\").remove();\n                                var data = \"<div class='text-danger field-validation-error Profile-BusinessPhoneNumber-div'>\" + $(validationCheckBox).attr(\"data-val-regex\") + \"</div>\";\n                                $(container).find(\".Profile-BusinessPhoneNumber-div\").remove();\n                                $(container).find(\".helptext-BusinessPhoneNumber\").after(data);\n                                isValid = false;\n                            }\n                            else if ($(container).find(\".js-BusinessPhoneNumber\").attr(\"asp-nzprofilefield-country-id\") === \"1237\" ||\n                                $(container).find(\".js-BusinessPhoneNumber\").attr(\"asp-nzprofilefield-country-id\") === \"1110\" ||\n                                $(container).find(\".js-BusinessPhoneNumber\").attr(\"asp-nzprofilefield-country-id\") === \"1254\") {\n                                if ($(container).find(\".js-BusinessPhoneNumber\").val() !== \"\" && $(container).find(\".js-BusinessPhoneNumber\").val().length < 10 || $(container).find(\".js-BusinessPhoneNumber\").val().length > 15) {\n                                    var attr = $(validationCheckBox).attr(\"data-val-regex\");\n                                    if (typeof attr !== 'undefined') {\n                                        var validationCheckBox = $(container).find(\".js-BusinessPhoneNumber\");\n                                        $(container).find(\".Profile-BusinessPhoneNumber-div\").remove();\n                                        var data = \"<div class='text-danger field-validation-error Profile-BusinessPhoneNumber-div'>\" + $(validationCheckBox).attr(\"data-val-regex\") + \"</div>\";\n                                        $(container).find(\".Profile-BusinessPhoneNumber-div\").remove();\n                                        $(container).find(\".helptext-BusinessPhoneNumber\").after(data);\n                                        isValid = false;\n                                    }\n                                }\n                            }\n                        }\n                    }\n                }\n                if ($(container).find(\".js-TermsAndConditions\").length > 0) {\n                    if (!$(container).find(\".js-TermsAndConditions\").is(\":checked\")) {\n                        var validationCheckBox = $(container).find(\".js-TermsAndConditions\");\n                        var data = \"<div class='text-danger field-validation-error Profile-TermsAndConditions-div'>\" + $(validationCheckBox).attr(\"data-val-required\") + \"</div>\";\n                        $(container).find(\".Profile-TermsAndConditions-div\").remove();\n                        $(container.find(\".checkbox-other-TermsAndConditions\")).after(data);\n                        isValid = false;\n                    }\n                }\n                if ($(container).find(\".js-JobRole\").val() === \"9999\" && $(container).find(\".Profile-Other-JobRole\").val() === \"\") {\n                    $(container).find(\".Profile-Other-JobRole\").addClass(\"input-validation-error\");\n                    var otherTextBox = $(container).find(\".Profile-Other-JobRole\");\n                    var data = \"<span class='text-danger field-validation-error Profile-Other-JobRole-span'>\" + $(otherTextBox).attr(\"data-required-message\") + \"</span>\";\n                    $(container).find(\".Profile-Other-JobRole-span\").remove();\n                    $(otherTextBox).after(data);\n                    isValid = false;\n                }\n                else {\n                    $(container).find(\".Profile-Other-JobRole\").removeClass(\"input-validation-error\");\n                }\n                //if ($(container).find(\".js-PhysicalAddressCountry\").val() === \"9999\" && $(container).find(\".Profile-Other-PhysicalAddressCountry\").val() === \"\") {\n                //    $(container).find(\".Profile-Other-PhysicalAddressCountry\").addClass(\"input-validation-error\");\n                //    var otherTextBox = $(container).find(\".Profile-Other-PhysicalAddressCountry\");\n                //    var data = \"<span class='text-danger field-validation-error Profile-Other-PhysicalAddressCountry-span'>\" + $(otherTextBox).attr(\"data-required-message\") + \"</span>\";\n                //    $(container).find(\".Profile-Other-PhysicalAddressCountry-span\").remove();\n                //    $(otherTextBox).after(data);\n                //    isValid = false;\n                //}\n                //else {\n                //    $(container).find(\".Profile-Other-PhysicalAddressCountry\").removeClass(\"input-validation-error\")\n                //}\n                //if ($(container).find(\".js-PostalAddressCountry\").val() === \"9999\" && $(container).find(\".Profile-Other-PostalAddressCountry\").val() === \"\") {\n                //    $(container).find(\".Profile-Other-PostalAddressCountry\").addClass(\"input-validation-error\");\n                //    var otherTextBox = $(container).find(\".Profile-Other-PostalAddressCountry\");\n                //    var data = \"<span class='text-danger field-validation-error Profile-Other-PostalAddressCountry-span'>\" + $(otherTextBox).attr(\"data-required-message\") + \"</span>\";\n                //    $(container).find(\".Profile-Other-PostalAddressCountry-span\").remove();\n                //    $(otherTextBox).after(data);\n                //    isValid = false;\n                //}\n                //{\n                //    $(container).find(\".Profile-Other-PostalAddressCountry\").remove(\"input-validation-error\");\n                //}\n                if (isValid) {\n                    var imageOne = $(\".js-image-upload-container\")[0];\n                    var imageTwo = $(\".js-image-upload-container\")[1];\n                    if (imageOne != undefined) {\n                        uploadProfileImage(imageOne, function () {\n                            if (imageTwo != undefined) {\n                                uploadProfileImage(imageTwo, function () {\n                                    form.trigger(\"submit\");\n                                });\n                            }\n                            else {\n                                form.trigger(\"submit\");\n                            }\n                        });\n                    }\n                    else {\n                        form.trigger(\"submit\");\n                    }\n                }\n            }\n            else {\n                return false;\n            }\n        });\n    }\n    setPostalAddress(container) {\n        $(container).find(\".js-PostalAddressStreet1\").val($(container).find(\".js-PhysicalAddressStreet1\").val());\n        $(container).find(\".js-PostalAddressStreet2\").val($(container).find(\".js-PhysicalAddressStreet2\").val());\n        $(container).find(\".js-PostalAddressStateProvince\").val($(container).find(\".js-PhysicalAddressStateProvince\").val());\n        $(container).find(\".js-PostalAddressSuburb\").val($(container).find(\".js-PhysicalAddressSuburb\").val());\n        $(container).find(\".js-PostalAddressCity\").val($(container).find(\".js-PhysicalAddressCity\").val());\n        $(container).find(\".js-PostalAddressCountry\").val($(container).find(\".js-PhysicalAddressCountry\").val());\n        $(container).find(\".js-PostalAddressStateProvince\").val($(container).find(\".js-PhysicalAddressStateProvince\").val());\n        //var el = $(container).find(\".js-PostalAddressStateProvince\");\n        //$(el).empty();\n        //if ($(container).find(\".js-PhysicalAddressCountry\").val() !== \"9999\") {\n        //    var params = {\n        //        countryID: $(container).find(\".js-PostalAddressCountry\").val(),\n        //        countryType: \"PhysicalAddressCountry\"\n        //    };\n        //    $.ajax({\n        //        url: (\"/Profile/GetStateProvinces\"),\n        //        type: \"GET\",\n        //        data: params,\n        //        dataType: 'json',\n        //        contentType: 'application/x-www-form-urlencoded; charset=UTF-8'\n        //    }).done(function (data) {\n        //        if (data != null) {\n        //            $.each(data.results,\n        //                function (value, key) {\n        //                    $(el).append('<option value=\"' + key.value + '\">' + key.text + '</option>');\n        //                });\n        //            $(el).val($(container).find(\".js-PhysicalAddressStateProvince\").val());\n        //        }\n        //    });\n        //}\n        //else {\n        //    $(container).find(\".js-PostalAddressStateProvince\").val($(container).find(\".js-PhysicalAddressStateProvince\").val());\n        //}\n        $(container).find(\".js-PostalAddressZipPostal\").val($(container).find(\".js-PhysicalAddressZipPostal\").val());\n        $(container).find(\".Profile-Other-PostalAddressCountry\").val($(container).find(\".Profile-Other-PhysicalAddressCountry\").val());\n    }\n}\n$(function () {\n    // locate all product list widgets on page\n    $(\".widget-nz-profile-fields\").each(function (index, item) {\n        $(item).data(\"manager\", new NZProfileFields(item));\n    });\n});\n/// <reference path=\"../lib/jquery.d.ts\" />\n/// <reference path=\"../lib/helper.admin.d.ts\" />\nclass Quiz {\n    constructor() {\n        this.isQuizCompleted = false;\n        this.isPassed = false;\n        this.canTryAgain = false;\n        this.submittingAnswer = false;\n    }\n    StartQuiz(el) {\n        this.$quizWrapper = $(el).closest(\".widget-quiz-wrapper\");\n        if (this.$quizWrapper.find('#quizTimedQuiz').val() === \"true\")\n            stopTimer(el);\n        var quizID = parseInt(this.$quizWrapper.attr(\"data-quizid\"));\n        var parent = this;\n        parent.isQuizCompleted = false;\n        parent.isPassed = false;\n        parent.canTryAgain = false;\n        parent.score = 0;\n        $(\".widget-quiz-retry\").addClass(\"hide\");\n        $(\".widget-quiz-summary-fail\").addClass(\"hide\");\n        $.ajax({\n            contentType: \"application/json\",\n            method: \"GET\",\n            url: '/API/Content/QuizStart/' + quizID\n        }).done(function (response) {\n            if (response.success == true) {\n                switch (response.data.status) {\n                    case 1:\n                        // New Session\n                        break;\n                    case 2:\n                        // Existing Session\n                        break;\n                    case 3: // Already attempted max times\n                    case 4: // Access Denied\n                    case 5: // Retry Lockout\n                        $(\"#general-message-headline\").text(response.data.errorHeadline);\n                        $(\"#general-message-text\").text(response.data.errorText);\n                        $(\"#general-message-modal\").modal();\n                        return;\n                }\n                var rID = response.data.identifier;\n                var elapsedSeconds = response.data.elapsedSeconds;\n                var totalSeconds = parent.$quizWrapper.find('#quizSeconds').val() - elapsedSeconds;\n                parent.$quizWrapper.find('#quizSeconds').val(totalSeconds);\n                parent.$quizWrapper.attr(\"data-rid\", rID);\n                $(response.data.questionsAlreadyAnswered).each(function (i, e) {\n                    parent.$quizWrapper.find(\".widget-quiz-question[data-questionid='\" + e + \"']\").remove();\n                });\n                parent.$quizWrapper.find(\".widget-quiz-intro\").addClass(\"hide\");\n                parent.$quizWrapper.find(\".widget-quiz-question:first\").removeClass(\"hide\");\n                parent.$quizWrapper.attr(\"data-currentquestionnumber\", parent.$quizWrapper.find('#quizFirstQuestion').val());\n                if (parent.$quizWrapper.find('#quizTimedQuiz').val() === \"true\") {\n                    startTimer(el);\n                }\n            }\n        });\n    }\n    SelectQuizAnswer(el) {\n        $(el).closest(\".widget-quiz-question-answers\").find(\".widget-quiz-question-selected\").removeClass(\"widget-quiz-question-selected\");\n        $(el).parent().addClass(\"widget-quiz-question-selected\");\n        $(el).closest(\".widget-quiz-question\").find(\".widget-quiz-question-submit\").removeClass(\"disabled\");\n    }\n    SelectQuizMatch(el) {\n        var proceed = true;\n        $(\".widget-quiz-answer-match\").each(function (i, e) {\n            var selected = $(e).val();\n            if (selected == \"\") {\n                proceed = false;\n            }\n        });\n        if (proceed) {\n            $(el).closest(\".widget-quiz-question-answers\").find(\".widget-quiz-question-selected\").removeClass(\"widget-quiz-question-selected\");\n            $(el).parent().addClass(\"widget-quiz-question-selected\");\n            $(el).closest(\".widget-quiz-question\").find(\".widget-quiz-question-submit\").removeClass(\"disabled\");\n        }\n    }\n    SubmitAnswer(el) {\n        this.$quizWrapper = $(el).closest(\".widget-quiz-wrapper\");\n        var $quizQuestion = $(el).closest(\".widget-quiz-question\");\n        var quizID = parseInt(this.$quizWrapper.attr(\"data-quizid\"));\n        var quizLanguageID = parseInt(this.$quizWrapper.attr(\"data-quizlanguageid\"));\n        var questionID = parseInt($quizQuestion.attr(\"data-questionid\"));\n        var answerID = parseInt($quizQuestion.find(\".widget-quiz-question-selected\").attr(\"data-aid\"));\n        // or\n        var answers = [];\n        $quizQuestion.find(\".widget-quiz-answer-match\").each(function (i, e) {\n            answers.push({\n                ItemId: parseInt($(e).attr(\"data-answernumber\")),\n                MatchedItemId: $(e).val()\n            });\n        });\n        var timedOut = this.$quizWrapper.find('#quizTimedOut').val();\n        var dto = {\n            QuizLanguageID: quizLanguageID,\n            QuestionID: questionID,\n            AnswerID: answerID,\n            Answers: answers,\n            TimedOut: timedOut\n        };\n        var parent = this;\n        $(el).addClass(\"disabled\");\n        $.ajax({\n            data: JSON.stringify(dto),\n            contentType: \"application/json; charset=utf-8\",\n            processData: true,\n            method: \"POST\",\n            url: '/API/Content/QuizSubmitAnswer/' + this.$quizWrapper.attr(\"data-rid\"),\n            headers: {\n                'RequestVerificationToken': getAntiForgeryToken()\n            }\n        }).done(function (response) {\n            if (response.success == true) {\n                if ((response.data.isCorrect == true) || (response.data.isCorrect == false && response.data.mustAnswerCorrect == false)) {\n                    var currentQuestionNumber = parseInt($quizQuestion.attr(\"data-questionnumber\"));\n                    parent.$quizWrapper.attr(\"data-currentquestionnumber\", currentQuestionNumber + 1);\n                }\n                $quizQuestion.addClass(\"hide\");\n                parent.canTryAgain = response.data.allowRetry;\n                if (response.data.isCompleted == true) {\n                    parent.isQuizCompleted = true;\n                    parent.isPassed = response.data.isPassed;\n                    parent.score = response.data.score;\n                    if (parent.isPassed) {\n                        if (parent.$quizWrapper.find('#quizTimedQuiz').val() === \"true\")\n                            stopTimer(el);\n                        // Check if a Level Up has occurred\n                        $.ajax({\n                            contentType: \"application/json\",\n                            method: \"GET\",\n                            url: '/API/Notification/GetNotifications'\n                        }).done(function (response) {\n                            if (response.length > 0) {\n                                $(\"#notification-container\").html(response);\n                            }\n                        });\n                    }\n                }\n                if ((response.data.title !== undefined && response.data.title.length > 0) || (response.data.text !== undefined && response.data.text.length > 0)) {\n                    $(\".widget-quiz-answer-result-title\").html(response.data.title);\n                    $(\".widget-quiz-answer-result-text\").html(response.data.text);\n                    $(\".widget-quiz-answer-result\").removeClass(\"hide\");\n                }\n                else {\n                    if (parent.isQuizCompleted == true) {\n                        if (parent.isPassed == true) {\n                            parent.$quizWrapper.find(\".widget-quiz-summary-success\").removeClass(\"hide\");\n                        }\n                        else {\n                            if (parent.canTryAgain == true) {\n                                $(\".widget-quiz-retry\").removeClass(\"hide\");\n                            }\n                            stopTimer(el);\n                            parent.$quizWrapper.find(\".widget-quiz-summary-fail\").removeClass(\"hide\");\n                        }\n                    }\n                    else {\n                        parent.NextQuestion(el);\n                    }\n                }\n                if (parent.isQuizCompleted == true) {\n                    if (parent.isPassed == true) {\n                        globalThis.gage.TrackWidget(parent.$quizWrapper);\n                    }\n                }\n            }\n            parent.submittingAnswer = false;\n        });\n    }\n    NextQuestion(el) {\n        var $quizWrapper = $(el).closest(\".widget-quiz-wrapper\");\n        var $quizQuestion = $(el).closest(\".widget-quiz-question\");\n        var currentQuestionNumber = parseInt($quizWrapper.attr(\"data-currentquestionnumber\"));\n        $(\".widget-quiz-answer-result\").addClass(\"hide\");\n        var completedWithNext = $quizWrapper.find(\".widget-quiz-question[data-questionnumber='\" + currentQuestionNumber + \"']\").text().length < 1;\n        if (this.isQuizCompleted == true || completedWithNext) {\n            if (this.isPassed == true) {\n                $quizWrapper.find(\".widget-quiz-summary-success\").removeClass(\"hide\");\n            }\n            else {\n                if (this.canTryAgain == true) {\n                    $(\".widget-quiz-retry\").removeClass(\"hide\");\n                }\n                stopTimer(el);\n                $quizWrapper.find(\".widget-quiz-summary-fail\").removeClass(\"hide\");\n            }\n        }\n        else {\n            $quizWrapper.find(\".widget-quiz-question-selected\").removeClass(\"widget-quiz-question-selected\");\n            $quizWrapper.find(\".widget-quiz-question[data-questionnumber='\" + currentQuestionNumber + \"']\").removeClass(\"hide\");\n        }\n    }\n}\nvar quiz = new Quiz();\n$(document).ready(function () {\n    $(\"body\").on(\"click\", \".widget-quiz-question-start\", function () {\n        quiz.StartQuiz(this);\n    });\n    $(\"body\").on(\"click\", \".widget-quiz-retry\", function () {\n        location.reload();\n    });\n    $(\"body\").on(\"click\", \".widget-quiz-answer-selection\", function () {\n        quiz.SelectQuizAnswer(this);\n    });\n    $(\"body\").on(\"change\", \".widget-quiz-answer-match\", function () {\n        quiz.SelectQuizMatch(this);\n    });\n    $(\"body\").on(\"click\", \".widget-quiz-question-submit\", function () {\n        if (quiz.submittingAnswer === false) {\n            globalThis.gage.log(\"Clicked from \" + $(this).attr(\"data-questionid\"));\n            quiz.SubmitAnswer(this);\n        }\n    });\n    $(\"body\").on(\"click\", \".widget-quiz-question-next\", function () { quiz.NextQuestion(this); });\n    $(\".widget-quiz-wrapper\").each(function () { autoStart(this); });\n    $(\".widget-quiz-matches-dropdown, .js-widget-quiz-selection\").on(\"click\", function (e) {\n        $(e.target).closest(\".widget-quiz-answer-box-a\").find(\".widget-quiz-selection\").addClass(\"hide\");\n        var menuopt = $(this).attr(\"data-controls\");\n        if ($(\"#\" + menuopt).hasClass(\"hide\")) {\n            $(\"#\" + menuopt).removeClass(\"hide\");\n        }\n        else {\n            $(\"#\" + menuopt).addClass(\"hide\");\n        }\n        var bodyClickHandler = function (e) {\n            if ($(e.target).closest(\".widget-quiz-matches\").length > -1) {\n                if (!$(e.target).hasClass(\"widget-quiz-matches-dropdown\") && $(e.target).closest(\".widget-quiz-matches-dropdown\").length == 0) {\n                    if (!$(e.target).hasClass(\"js-widget-quiz-selection\") && $(e.target).closest(\".js-widget-quiz-selection\").length == 0) {\n                        $(\"#\" + menuopt).addClass(\"hide\");\n                        $.each($(\".widget-quiz-selection\"), function (i, e) {\n                            if ($(this).html() === \"\") {\n                                $(this).addClass(\"hide\");\n                            }\n                            else {\n                                $(this).removeClass(\"hide\");\n                            }\n                        });\n                        $(\"body\").off(\"click\", bodyClickHandler);\n                    }\n                }\n            }\n        };\n        $(\"body\").on(\"click\", bodyClickHandler);\n    });\n    $(\".widget-quiz-match-box\").on(\"click\", function (e) {\n        var parentEl = $(e.target).closest(\".widget-quiz-answer-box-a\");\n        if (parentEl.length > -1) {\n            var buttonText = $(this).find(\".widget-quiz-match-box-text\").text();\n            buttonText = buttonText.trim();\n            if (buttonText.length > 0) {\n                var originalLength = buttonText.length;\n                var buttonText = buttonText.substring(0, 69);\n                if (originalLength > 70) {\n                    buttonText += \"...\";\n                }\n                $(parentEl).find(\".widget-quiz-matches-dropdown .js-btn-text\").text(buttonText);\n            }\n            var match = $(e.target).closest(\".widget-quiz-match-box\");\n            var matchId = $(match).attr(\"data-quizquestionanswerid\");\n            $(parentEl).find(\".widget-quiz-answer-match\").val(matchId);\n            var html = match.html();\n            $(parentEl).find(\".widget-quiz-selection\").html(\"<div class='widget-quiz-match-box clearfix'>\" + html + \"</div>\");\n            $(\".widget-quiz-selection\").removeClass(\"hide\");\n        }\n        var questionContainer = $(e.target).closest(\".widget-quiz-question\");\n        var answers = $(questionContainer).find(\".widget-quiz-answer-match\");\n        var complete = true;\n        $.each(answers, function (i, e) {\n            if ($(e).val() == \"\") {\n                complete = false;\n            }\n        });\n        if (complete) {\n            $(questionContainer).find(\".widget-quiz-question-submit\").removeClass(\"disabled\");\n        }\n    });\n});\nfunction autoStart(el) {\n    var $quizWrapper = $(el).closest(\".widget-quiz-wrapper\");\n    if ($quizWrapper.find('#quizFreshStart').val() === \"false\") {\n        quiz.StartQuiz(el);\n    }\n}\nvar interval;\nfunction startTimer(el) {\n    var $quizWrapper = $(el).closest(\".widget-quiz-wrapper\");\n    var second = $quizWrapper.find('#quizSeconds').val() % 60;\n    var totalMinutes = $quizWrapper.find('#quizSeconds').val() / 60;\n    var minute = totalMinutes % 60;\n    var hour = Math.floor(totalMinutes / 60);\n    var hours = hour < 10 ? '0' + hour : hour;\n    var minutes = minute < 10 ? '0' + minute : minute;\n    var seconds = second < 10 ? '0' + second : second;\n    var timer2 = hours + \":\" + minutes + \":\" + seconds;\n    interval = setInterval(function () {\n        var timer = timer2.split(':');\n        var hour = parseInt(timer[0], 10);\n        var minute = parseInt(timer[1], 10);\n        var second = parseInt(timer[2], 10);\n        --second;\n        if (second < 0) {\n            --minute;\n            second = 59;\n        }\n        if (minute < 0) {\n            --hour;\n            minute = 59;\n        }\n        if (hour < 0) {\n            second = 0;\n            minute = 0;\n            hour = 0;\n            clearInterval(interval);\n            $quizWrapper.find('#quizTimedOut').val(true);\n        }\n        var minutes = (minute < 10) ? '0' + minute : minute;\n        var seconds = (second < 10) ? '0' + second : second;\n        $quizWrapper.find('.quiz-countdown').html(hours + \":\" + minutes + ':' + seconds);\n        timer2 = hours + \":\" + minutes + ':' + seconds;\n    }, 1000);\n}\nfunction stopTimer(el) {\n    var $quizWrapper = $(el).closest(\".widget-quiz-wrapper\");\n    clearInterval(interval);\n    $quizWrapper.find('#quizTimedOut').val(false);\n}\n/// <reference path=\"../lib/jquery.d.ts\" />\n/// <reference path=\"../lib/helper.admin.d.ts\" />\n/// <reference path=\"../lib/helper.timezones.d.ts\" />\n/// <reference path=\"../lib/bootbox.d.ts\" />\n/// <reference path=\"../lib/helper.orders.d.ts\" />\nexport class CatalogProductList {\n    constructor(widget) {\n        this._widget = widget;\n        this.initialize();\n    }\n    LoadMore(button) {\n        var params = this.buildParams();\n        params.ViewType = $(button).attr(\"data-view-type\");\n        if (params.ViewType == \"viewall\") {\n            $(button).addClass(\"disabled\");\n        }\n        var me = this;\n        var categoryIds = $(button).closest(\".catalog-product-list\").find(\".js-catalog-filter\").find(\".js-child-item-category:checked\").map(function () {\n            return $(this).attr(\"data-identifier\");\n        }).get().join(\",\");\n        params.ItemCategory = categoryIds;\n        var url = '/Content/RenderProductList/' + me._widgetId.toString();\n        $.when(submitAjaxRequest(params, url, \"POST\").done(function (data, textStatus, request) {\n            me._pageIndex = parseInt(request.getResponseHeader(\"X-PageIndex\"));\n            me._totalPages = parseInt(request.getResponseHeader(\"X-TotalPages\"));\n            $(me._widget).find(\".js-product-list\").append(data);\n            if ((me._totalPages == (me._pageIndex + 1)) || (params.ViewType != \"viewall\" && params.ViewType != \"viewmore\")) {\n                $(me._widget).find(\".btn-view-more\").addClass(\"hidden\");\n            }\n        }));\n    }\n    showMobileFilter(e) {\n        var options = {\n            content: \"panel-product-list\",\n            origin: $(e)\n        };\n        var content = $(this._widget).find('.catalog-filter').html();\n        this._globalModal.openGlobalModal(content, \"panel\", options);\n    }\n    hideMobileFilter() {\n        this._globalModal.closeGlobalModal();\n    }\n    initialize() {\n        this._pageIndex = 0;\n        this._categoryIdentifier = $(this._widget).attr(\"data-category-identifier\");\n        this._totalPages = parseInt($(this._widget).attr(\"data-total-pages\"));\n        this._take = parseInt($(this._widget).attr(\"data-take\"));\n        this._widgetId = parseInt($(this._widget).attr(\"data-contentwidgetid\"));\n        this._sortBy = $(this._widget).attr(\"data-sort-by\");\n        this._globalModal = new GlobalModal(this._widgetId);\n        this.bindControls();\n    }\n    bindControls() {\n        // VB lives on\n        var me = this;\n        $(this._widget).find(\".btn-view-more\").on(\"click\", function () {\n            me.LoadMore(this);\n        });\n        $(this._widget).find(\".js-accordion-parent\").on(\"click\", function (e) {\n            e.preventDefault();\n            $(e.currentTarget).find('i').toggleClass('fa-plus fa-minus');\n        });\n        $(this._widget).find(\".js-product-sorting\").on(\"click\", function (e) {\n            e.preventDefault();\n            var value = \"\";\n            var sortBy = $(e.currentTarget).attr(\"data-sortby\");\n            $(e.currentTarget).closest(\".results-filter\").find(\".sorting\").remove();\n            if (sortBy === \"points\") {\n                if ($(e.currentTarget).attr(\"data-sorttype\") !== \"asc\") {\n                    $(e.currentTarget).attr(\"data-sorttype\", \"asc\");\n                    value = \"pointsascending\";\n                    $(e.currentTarget).append(\"<span class=\\\"pull-right sorting fa-solid fa-up-long\\\"> </span>\");\n                }\n                else {\n                    $(e.currentTarget).attr(\"data-sorttype\", \"desc\");\n                    value = \"pointsdescending\";\n                    $(e.currentTarget).append(\"<span class=\\\"pull-right sorting fa-solid fa-down-long\\\"> </span>\");\n                }\n            }\n            else if (sortBy === \"name\") {\n                if ($(e.currentTarget).attr(\"data-sorttype\") !== \"asc\") {\n                    $(e.currentTarget).attr(\"data-sorttype\", \"asc\");\n                    value = \"alphabeticascending\";\n                    $(e.currentTarget).append(\"<span class=\\\"pull-right sorting fa-solid fa-up-long\\\"> </span>\");\n                }\n                else {\n                    $(e.currentTarget).attr(\"data-sorttype\", \"desc\");\n                    value = \"alphabeticdescending\";\n                    $(e.currentTarget).append(\"<span class=\\\"pull-right sorting fa-solid fa-down-long\\\"> </span>\");\n                }\n            }\n            else if (sortBy === \"recent\") {\n                if ($(e.currentTarget).attr(\"data-sorttype\") !== \"asc\") {\n                    $(e.currentTarget).attr(\"data-sorttype\", \"asc\");\n                    value = \"recentascending\";\n                    $(e.currentTarget).append(\"<span class=\\\"pull-right sorting fa-solid fa-up-long\\\"> </span>\");\n                }\n                else {\n                    $(e.currentTarget).attr(\"data-sorttype\", \"desc\");\n                    value = \"recentdescending\";\n                    $(e.currentTarget).append(\"<span class=\\\"pull-right sorting fa-solid fa-down-long\\\"> </span>\");\n                }\n            }\n            else if (sortBy === \"publish\") {\n                if ($(e.currentTarget).attr(\"data-sorttype\") !== \"asc\") {\n                    $(e.currentTarget).attr(\"data-sorttype\", \"asc\");\n                    value = \"publishascending\";\n                    $(e.currentTarget).append(\"<span class=\\\"pull-right sorting fa-solid fa-up-long\\\"> </span>\");\n                }\n                else {\n                    $(e.currentTarget).attr(\"data-sorttype\", \"desc\");\n                    value = \"publishdescending\";\n                    $(e.currentTarget).append(\"<span class=\\\"pull-right sorting fa-solid fa-down-long\\\"> </span>\");\n                }\n            }\n            $(me._widget).attr(\"data-sort-by\", value);\n            me._sortBy = value;\n            me.applySort($(e.currentTarget));\n            //me.applySorting(value);\n        });\n        $(this._widget).find('.js-mobile-filter').on('click', function () {\n            me.showMobileFilter(this);\n        });\n        $(this._widget).find(\".js-clear-product-filter\").on('click', function (e) {\n            e.preventDefault();\n            var baseUrl = [location.protocol, '//', location.host, location.pathname].join(''), urlQueryString = document.location.search;\n            if (urlQueryString) {\n                var key = \"itemcategory\";\n                var params = \"\";\n                var removeRegex = new RegExp('([\\?&])' + key + '=[^&;]+[&;]?');\n                params = urlQueryString.replace(removeRegex, \"$1\");\n                params = params.replace(/[&;]$/, \"\");\n                window.history.replaceState({}, \"\", baseUrl + params);\n                window.location.href = baseUrl + params;\n            }\n            // window.location.href = baseUrl;\n        });\n        $(this._widget).find('.js-apply-product-filter').on('click', function (e) {\n            e.preventDefault();\n            me.applyFilter($(e.currentTarget));\n            //var categoryIds = $(e.currentTarget).closest(\".js-catalog-filter\").find(\".js-child-item-category:checked\").map(function () {\n            //    return $(this).attr(\"data-identifier\");\n            //}).get().join(\",\");\n            //var key = \"itemcategory\";\n            //var value = categoryIds;\n            //var baseUrl = [location.protocol, '//', location.host, location.pathname].join(''),\n            //    urlQueryString = location.search,\n            //    newParam = key + '=' + categoryIds,\n            //    params = '?' + newParam;\n            //// If the \"search\" string exists, then build params from it\n            //if (urlQueryString) {\n            //    var updateRegex = new RegExp('([\\?&])' + key + '[^&]*');\n            //    var removeRegex = new RegExp('([\\?&])' + key + '=[^&;]+[&;]?');\n            //    if (typeof value == 'undefined' || value == null || value === '') { // Remove param if value is empty\n            //        params = urlQueryString.replace(removeRegex, \"$1\");\n            //        params = params.replace(/[&;]$/, \"\");\n            //    } else if (urlQueryString.match(updateRegex) !== null) { // If param exists already, update it\n            //        var oldValue = me.getParameterByName(key);\n            //        var urlValue = \"\";\n            //        var remove = me.compareArrays(oldValue.split(\",\"), value.split(\",\"));\n            //        var add = me.compareArrays(value.split(\",\"), oldValue.split(\",\"));\n            //        var modifiedArray = oldValue.split(\",\").filter(el => remove.indexOf(el) < 0);\n            //        modifiedArray = modifiedArray.concat(add);\n            //        var newValue = modifiedArray.join(\",\");\n            //        if (urlQueryString.indexOf(key + \"=\") !== -1) {\n            //            urlValue = urlQueryString.replace('&' + key + '=' + oldValue, '&' + key + '=' + newValue);\n            //        }\n            //        else {\n            //            urlValue = urlQueryString.replace(key + '=' + oldValue, '?' + key + '=' + value);\n            //        }\n            //        params = urlValue;\n            //    } else { // Otherwise, add it to end of query string\n            //        params = urlQueryString + '&' + newParam;\n            //    }\n            //}\n            //history.pushState({ state: 1, rand: Math.random() }, '', urlValue);\n            //window.location.href = baseUrl + params;\n        });\n        if ($(\"input[name=bundle]:checked\").length) {\n            $(\"input[name=bundle]:checked\").each(function (i, el) {\n                $(el).closest(\".overlay-triangle\").addClass(\"red-triangle\");\n            });\n            $(\".js-customize-multiple\").removeAttr(\"disabled\");\n        }\n        $(\"body\").on(\"click\", \"input[name=bundle]\", function () {\n            var values = [];\n            var enablesmultipledownload = [];\n            $(\"input[name=bundle]\").closest(\".overlay-triangle\").removeClass(\"red-triangle\");\n            $(\"input[name=bundle]:checked\").each(function (i, el) {\n                values.push($(el).val());\n                if ($(el).attr(\"data-enables-multipledownload\") === \"True\") {\n                    enablesmultipledownload.push($(el).val());\n                }\n                $(el).closest(\".overlay-triangle\").addClass(\"red-triangle\");\n            });\n            if (values.length) {\n                $(\".js-customize-multiple\").removeAttr(\"disabled\");\n            }\n            else {\n                $(\".js-customize-multiple\").attr(\"disabled\", \"true\");\n            }\n            if (enablesmultipledownload.length) {\n                $(\".js-download-multiple\").removeAttr(\"disabled\");\n            }\n            else {\n                $(\".js-download-multiple\").attr(\"disabled\", \"true\");\n            }\n        });\n        $(\"body\").on(\"click\", \".js-unselect-all\", function () {\n            $(\"input[name=bundle]\").closest(\".overlay-triangle\").removeClass(\"red-triangle\");\n            $(\".js-customize-multiple\").attr(\"disabled\", \"true\");\n            $(\".js-download-multiple\").attr(\"disabled\", \"true\");\n            $(\"input[name=bundle]:checked\").each(function (i, el) {\n                $(el).prop(\"checked\", false);\n            });\n        });\n        $(\"body\").on(\"click\", \".js-select-all\", function () {\n            $(\"input[name=bundle]\").closest(\".overlay-triangle\").addClass(\"red-triangle\");\n            $(\".js-customize-multiple\").removeAttr(\"disabled\");\n            $(\".js-download-multiple\").removeAttr(\"disabled\");\n            $(\"input[name=bundle]\").each(function (i, el) {\n                $(el).prop(\"checked\", true);\n            });\n        });\n        $(\"body\").on(\"click\", \".js-download-multiple\", function (e) {\n            e.preventDefault();\n            var array = [];\n            $(\"input[name=bundle]\").each(function (i, el) {\n                if ($(el).prop(\"checked\") === true) {\n                    array.push($(el).closest(\".catalog-item\").attr(\"data-product-catalog-assignment\"));\n                }\n            });\n            var pcaIdentfiers = array.join(\",\");\n            var params = { pcaIdentifiers: \"\" };\n            params.pcaIdentifiers = array.join(\",\");\n            var url = \"/Catalog/Product/DownloadAllFiles?languageId=1001&pcaIdentifiers=\" + pcaIdentfiers;\n            window.location.href = url;\n        });\n        $(\"body\").on(\"click\", \".js-customize-multiple\", function (e) {\n            e.preventDefault();\n            var array = [];\n            var url = $(e.currentTarget).closest(\".widget.catalog-product-list\").attr(\"data-productdetail-url\");\n            $(\"input[name=bundle]\").each(function (i, el) {\n                if ($(el).prop(\"checked\") === true) {\n                    array.push($(el).closest(\".catalog-item\").attr(\"data-product-catalog-assignment\"));\n                }\n            });\n            var assigmentIdentfiers = array.join(\",\");\n            document.location.href = url + \"?product-id=\" + assigmentIdentfiers;\n        });\n        if ($(this._widget).find('#defaultfilterexpand').val() == \"expandfirst\") {\n            $('.accordion .accordion-group .accordion-heading a').eq(0).trigger('click');\n        }\n        else if (($(this._widget).find('#defaultfilterexpand').val() == \"expandall\")) {\n            $('.accordion .accordion-group .accordion-heading a').trigger('click');\n        }\n        /* Handle product overlay click */\n        $(\".js-download-menu-overlay\").on(\"click\", function (event) {\n            var xScreenPos = event.screenX;\n            var yScreenPos = event.screenY;\n            var productContainer = $(this).closest(\"li\");\n            if (xScreenPos != 0 && yScreenPos != 0) {\n                var xLocation = event.pageX - $(this).offset().left;\n                var yLocation = event.pageY - $(this).offset().top;\n                if ($(productContainer).hasClass(\"product-list-view-item\")) {\n                    var imageColumnWidth = $(productContainer).find(\".product-list-image-wrapper\").outerWidth();\n                    xLocation = xLocation - imageColumnWidth;\n                }\n                $(productContainer).find(\".dropdown-menu\").css({\n                    \"top\": yLocation,\n                    \"left\": xLocation\n                });\n            }\n            else {\n                $(productContainer).find(\".dropdown-menu\").css({\n                    \"top\": \"100%\",\n                    \"left\": \"0\"\n                });\n            }\n        });\n        /* Handle mouseover of customization multiselect checkbox */\n        //$(\".js-overlay-triangle\").trigger(\"hover\", (\n        //    function () {\n        //        $(this).closest(\"li.catalog-item.product\").find(\".js-product-tile-overlay\").addClass(\"hover\");\n        //    }, function () {\n        //        $(this).closest(\"li.catalog-item.product\").find(\".js-product-tile-overlay\").removeClass(\"hover\");\n        //    }\n        //);\n        $(\".js-overlay-triangle\").on(\"mouseenter\", function () {\n            $(this).closest(\"li.catalog-item.product\").find(\".js-product-tile-overlay\").addClass(\"hover\");\n        }, function () {\n            $(this).closest(\"li.catalog-item.product\").find(\".js-product-tile-overlay\").removeClass(\"hover\");\n        }).on(\"mouseleave\", function () {\n            $(this).closest(\"li.catalog-item.product\").find(\".js-product-tile-overlay\").removeClass(\"hover\");\n        }, function () {\n            $(this).closest(\"li.catalog-item.product\").find(\".js-product-tile-overlay\").addClass(\"hover\");\n        });\n    }\n    applyFilter(button) {\n        this._pageIndex = 0;\n        var customizationcontainer = $(this._widget).find(\".js-customization-container\");\n        var norecordscontainer = $(this._widget).find(\".no-data-container\");\n        $(norecordscontainer).addClass(\"hide\");\n        var categoryIds = $(button).closest(\".js-catalog-filter\").find(\".js-child-item-category:checked\").map(function () {\n            return $(this).attr(\"data-identifier\");\n        }).get().join(\",\");\n        var params = {\n            Identifier: this._categoryIdentifier,\n            Take: this._take,\n            PageIndex: this._pageIndex,\n            SortBy: this._sortBy,\n            ViewType: \"\",\n            ItemCategory: categoryIds\n        };\n        var me = this;\n        var url = '/Content/RenderProductList/' + me._widgetId.toString();\n        $.when(submitAjaxRequest(params, url, \"POST\").done(function (data, textStatus, request) {\n            me._pageIndex = parseInt(request.getResponseHeader(\"X-PageIndex\"));\n            me._totalPages = parseInt(request.getResponseHeader(\"X-TotalPages\"));\n            $(customizationcontainer).show();\n            if (me._totalPages === 0) {\n                $(customizationcontainer).hide();\n                $(norecordscontainer).removeClass(\"hide\");\n            }\n            $(me._widget).find(\".js-product-list\").html(data);\n            $(me._widget).find(\".btn-view-more\").show();\n            $(me._widget).find(\".btn-view-more\").removeClass(\"hide\");\n            if (me._totalPages === (me._pageIndex + 1)) {\n                $(me._widget).find(\".btn-view-more\").hide();\n            }\n        }));\n    }\n    applySort(button) {\n        var categoryIds = $(button).closest(\".js-catalog-filter\").find(\".js-child-item-category:checked\").map(function () {\n            return $(this).attr(\"data-identifier\");\n        }).get().join(\",\");\n        var params = {\n            Identifier: this._categoryIdentifier,\n            Take: this._take,\n            PageIndex: 0,\n            SortBy: this._sortBy,\n            ViewType: \"\",\n            ItemCategory: categoryIds\n        };\n        var me = this;\n        var url = '/Content/RenderProductList/' + me._widgetId.toString();\n        $.when(submitAjaxRequest(params, url, \"POST\").done(function (data, textStatus, request) {\n            me._pageIndex = parseInt(request.getResponseHeader(\"X-PageIndex\"));\n            me._totalPages = parseInt(request.getResponseHeader(\"X-TotalPages\"));\n            $(me._widget).find(\".js-product-list\").html(data);\n            $(me._widget).find(\".btn-view-more\").show();\n            if (me._totalPages === (me._pageIndex + 1)) {\n                $(me._widget).find(\".btn-view-more\").hide();\n            }\n        }));\n    }\n    //private applySorting(value) {\n    //    var me = this;\n    //    var key = \"sortby\";\n    //    var baseUrl = [location.protocol, '//', location.host, location.pathname].join(''),\n    //        urlQueryString = location.search,\n    //        newParam = key + '=' + value;\n    //    var urlValue = \"\";\n    //    var params = \"\";\n    //    if (urlQueryString) {\n    //        var updateRegex = new RegExp('([\\?&])' + key + '[^&]*');\n    //        var oldValue = me.getParameterByName(key);\n    //        if (urlQueryString.match(updateRegex) !== null) { // If param exists already, update it\n    //            if (urlQueryString.indexOf(key + \"=\") !== -1) {\n    //                urlValue = urlQueryString.replace('&' + key + '=' + oldValue, '&' + key + '=' + value);\n    //            }\n    //            else {\n    //                urlValue = urlQueryString.replace(key + '=' + oldValue, '?' + key + '=' + value);\n    //            }\n    //            params = urlValue;\n    //        } else { // Otherwise, add it to end of query string\n    //            params = urlQueryString + '&' + newParam;\n    //        }\n    //        history.pushState({ state: 1, rand: Math.random() }, '', urlValue);\n    //        window.location.href = baseUrl + params;\n    //    }\n    //}\n    compareArrays(array1, array2) {\n        var difference = [];\n        for (var i = 0; i < array1.length; i++) {\n            if ($.inArray(array1[i], array2) == -1) {\n                difference.push(array1[i]);\n            }\n        }\n        return difference;\n    }\n    getParameterByName(name) {\n        name = name.replace(/[\\[]/, \"\\\\[\").replace(/[\\]]/, \"\\\\]\");\n        var regex = new RegExp(\"[\\\\?&]\" + name + \"=([^&#]*)\"), results = regex.exec(location.search);\n        return results === null ? \"\" : decodeURIComponent(results[1].replace(/\\+/g, \" \"));\n    }\n    buildParams() {\n        if (this._totalPages > this._pageIndex) {\n            this._pageIndex++;\n        }\n        var params = {\n            ItemCategory: \"\",\n            Identifier: this._categoryIdentifier,\n            Take: this._take,\n            PageIndex: this._pageIndex,\n            SortBy: this._sortBy,\n            ViewType: \"\"\n        };\n        return params;\n    }\n}\nclass ShoppingCartList {\n    constructor(widget) {\n        this._widget = widget;\n        this.initialize();\n    }\n    UpdateItem(cartItemId, quantity) {\n        if (quantity < 0) {\n            return;\n        }\n        if (quantity == 0) {\n            this.deleteItem(cartItemId, \"\");\n            return;\n        }\n        var params = { \"Id\": cartItemId, \"Quantity\": quantity };\n        var me = this;\n        var shoppingcarturl = $(me._widget).attr(\"data-shoppingcarturl\");\n        var url = '/Api/ShoppingCart/UpdateItem';\n        $.when(submitAjaxRequest(params, url, \"POST\").done(function (data, textStatus, request) {\n            if ($(me._widget).find(\".cart-item-row\").length === 0) {\n                $(me._widget).find(\".js-panel-noitems-incart\").remove();\n            }\n        }));\n    }\n    deleteCartImageItem(cartItemId, imageId) {\n        var me = this;\n        var params = { \"Id\": cartItemId, \"ImageId\": imageId };\n        var cartrow = $(me._widget).find(\".cart-item-row[data-row-cartid='\" + cartItemId + \"']\");\n        var participantInfo = $(me._widget).find(\".cart-participant-info\");\n        var shoppingcarturl = $(me._widget).attr(\"data-shoppingcarturl\");\n        var noItemsInforow = $(me._widget).find(\".shoppingcart-notiemsincart\");\n        var url = '/Api/ShoppingCart/DeleteShutterStockItem';\n        $.when(submitAjaxRequest(params, url, \"POST\").done(function (data, textStatus, request) {\n            window.location.href = shoppingcarturl;\n        }));\n    }\n    deleteCartStaplesItem(cartItemId, productId) {\n        var me = this;\n        var params = { \"Id\": cartItemId, \"clientProductId\": productId };\n        var shoppingcarturl = $(me._widget).attr(\"data-shoppingcarturl\");\n        var url = '/Api/ShoppingCart/DeleteStaplesItem';\n        $.when(submitAjaxRequest(params, url, \"POST\").done(function (data, textStatus, request) {\n            window.location.href = shoppingcarturl;\n        }));\n    }\n    deleteCartAdobeItem(cartItemId, productId) {\n        var me = this;\n        var params = { \"Id\": cartItemId, \"clientProductId\": productId };\n        var shoppingcarturl = $(me._widget).attr(\"data-shoppingcarturl\");\n        var url = '/Api/ShoppingCart/DeleteAdobeItem';\n        $.when(submitAjaxRequest(params, url, \"POST\").done(function (data, textStatus, request) {\n            window.location.href = shoppingcarturl;\n        }));\n    }\n    deleteCartAdobeCommerceItem(cartItemId, adobeCommerceProductId) {\n        var me = this;\n        var params = { \"Id\": cartItemId, \"clientProductId\": adobeCommerceProductId };\n        var shoppingcarturl = $(me._widget).attr(\"data-shoppingcarturl\");\n        var url = '/Api/ShoppingCart/DeleteAdobeCommerceItem';\n        $.when(submitAjaxRequest(params, url, \"POST\").done(function (data, textStatus, request) {\n            window.location.href = shoppingcarturl;\n        }));\n    }\n    deleteItem(cartItemId, shoppingcarturl) {\n        var me = this;\n        var params = { \"Id\": cartItemId };\n        var cartrow = $(me._widget).find(\".cart-item-row[data-row-cartid='\" + cartItemId + \"']\");\n        var participantInfo = $(me._widget).find(\".cart-participant-info\");\n        var shoppingcarturl = $(me._widget).attr(\"data-shoppingcarturl\");\n        var noItemsInforow = $(me._widget).find(\".shoppingcart-notiemsincart\");\n        var url = '/Api/ShoppingCart/DeleteItem';\n        $.when(submitAjaxRequest(params, url, \"POST\").done(function (data, textStatus, request) {\n            $.when(me.GetParticipantInfo().done(function (data, textStatus, response) {\n                $(participantInfo).html(data);\n                $(me._widget).find(\".btn-updatecart\").on(\"click\", function (e) {\n                    me.UpdateCart(e.currentTarget);\n                });\n                var cartItemCount = \"0\";\n                if ($(participantInfo).find(\"#cartItemCount\").val() === \"0\" || $(participantInfo).find(\"#cartItemCount\").val() === \"\") {\n                    $(noItemsInforow).removeClass(\"hide\");\n                }\n                else {\n                    cartItemCount = $(participantInfo).find(\"#cartItemCount\").val();\n                }\n                updateCartItemCount(cartItemCount);\n                $(me._widget).find(\".btn-checkout\").attr(\"href\", $(me._widget).data(\"checkouturl\"));\n                if (shoppingcarturl != \"\") {\n                    window.location.href = shoppingcarturl;\n                }\n            }));\n            $(cartrow).remove();\n            if ($(me._widget).find(\".cart-item-row\").length === 0) {\n                updateCartItemCount(null);\n                $(me._widget).find(\".js-panel-noitems-incart\").remove();\n            }\n        }));\n    }\n    deleteItemOnly(cartItemId, shoppingcarturl) {\n        var me = this;\n        var params = { \"Id\": cartItemId };\n        var cartrow = $(me._widget).find(\".cart-item-row[data-row-cartid='\" + cartItemId + \"']\");\n        var participantInfo = $(me._widget).find(\".cart-participant-info\");\n        var shoppingcarturl = $(me._widget).attr(\"data-shoppingcarturl\");\n        var noItemsInforow = $(me._widget).find(\".shoppingcart-notiemsincart\");\n        var url = '/Api/ShoppingCart/DeleteItemOnly';\n        $.when(submitAjaxRequest(params, url, \"POST\").done(function (data, textStatus, request) {\n            $.when(me.GetParticipantInfo().done(function (data, textStatus, response) {\n                $(participantInfo).html(data);\n                $(me._widget).find(\".btn-updatecart\").on(\"click\", function (e) {\n                    me.UpdateCart(e.currentTarget);\n                });\n                var cartItemCount = \"0\";\n                if ($(participantInfo).find(\"#cartItemCount\").val() === \"0\" || $(participantInfo).find(\"#cartItemCount\").val() === \"\") {\n                    $(noItemsInforow).removeClass(\"hide\");\n                }\n                else {\n                    cartItemCount = $(participantInfo).find(\"#cartItemCount\").val();\n                }\n                updateCartItemCount(cartItemCount);\n                $(me._widget).find(\".btn-checkout\").attr(\"href\", $(me._widget).data(\"checkouturl\"));\n                if (shoppingcarturl != \"\") {\n                    window.location.href = shoppingcarturl;\n                }\n            }));\n            $(cartrow).remove();\n            if ($(me._widget).find(\".cart-item-row\").length === 0) {\n                updateCartItemCount(null);\n                $(me._widget).find(\".js-panel-noitems-incart\").remove();\n            }\n        }));\n    }\n    GetParticipantInfo() {\n        return $.ajax({\n            //contentType: \"application/json\",\n            method: \"GET\",\n            url: '/Api/ShoppingCart/GetItemsDetailsInCart'\n        });\n    }\n    initialize() {\n        this._widgetId = parseInt($(this._widget).attr(\"data-contentwidgetid\"));\n        $(this._widget).find(\".btn-checkout\").attr(\"href\", $(this._widget).data(\"checkouturl\"));\n        this.bindControls();\n    }\n    bindControls() {\n        // VB lives on\n        var me = this;\n        $(me._widget).find(\".js-remove-shopping-cart-item\").on(\"click\", function (e) {\n            var cancelText = $(e.currentTarget).attr(\"data-cancel-text\");\n            var removeAllText = $(e.currentTarget).attr(\"data-removeall-text\");\n            var removeCartOnlyText = $(e.currentTarget).attr(\"data-cartonly-text\");\n            var removeCartTitleText = $(e.currentTarget).attr(\"data-removecart-title-text\");\n            var removeCartContinueText = $(e.currentTarget).attr(\"data-remove-continue-text\");\n            var removeCartOkText = $(e.currentTarget).attr(\"data-remove-ok-text\");\n            if ($(e.currentTarget).attr(\"data-iscustomizable\") === \"false\") {\n                bootbox.confirm({\n                    title: removeCartTitleText,\n                    message: \"<p>\" + removeCartContinueText + \"</p>\",\n                    buttons: {\n                        confirm: {\n                            label: removeCartOkText,\n                            className: 'btn-success'\n                        },\n                        cancel: {\n                            label: cancelText,\n                            className: 'btn-danger'\n                        }\n                    },\n                    callback(result) {\n                        if (result) {\n                            var shoppingcarturl = $(me._widget).attr(\"data-shoppingcarturl\");\n                            me.deleteItem(parseInt($(e.currentTarget).attr(\"data-cartid\")), shoppingcarturl);\n                            return true;\n                        }\n                    }\n                });\n            }\n            else {\n                var dialog = bootbox.dialog({\n                    title: removeCartTitleText,\n                    message: \"<p>\" + removeCartContinueText + \"</p>\",\n                    buttons: {\n                        cancel: {\n                            label: cancelText,\n                            className: 'btn-danger',\n                            callback() {\n                                return true;\n                            }\n                        },\n                        removecartonly: {\n                            label: removeCartOnlyText,\n                            className: 'btn-success',\n                            callback() {\n                                var shoppingcarturl = $(me._widget).attr(\"data-shoppingcarturl\");\n                                me.deleteItemOnly(parseInt($(e.currentTarget).attr(\"data-cartid\")), shoppingcarturl);\n                                return true;\n                            }\n                        },\n                        removeall: {\n                            label: removeAllText,\n                            className: 'btn-success',\n                            callback() {\n                                me.deleteItem(parseInt($(e.currentTarget).attr(\"data-cartid\")), \"\");\n                                return true;\n                            }\n                        }\n                    }\n                });\n            }\n        });\n        $(me._widget).find(\".remove-shopping-cart-image-item\").on(\"click\", function (e) {\n            var listContainer = $(e.currentTarget).closest(\".js-shopping-cart-item-list-container\");\n            var cancelText = $(listContainer).attr(\"data-cancel-text\");\n            var removeCartOkText = $(listContainer).attr(\"data-remove-ok-text\");\n            var removeCartImageItemText = $(listContainer).attr(\"data-remove-shutter-stock-cart-image-text\");\n            var cartItemId = $(listContainer).attr(\"data-cart-item-id\");\n            var imageId = $(e.currentTarget).attr(\"data-image-id\");\n            bootbox.confirm({\n                title: \"\",\n                message: \"<p>\" + removeCartImageItemText + \"</p>\",\n                buttons: {\n                    confirm: {\n                        label: removeCartOkText,\n                        className: 'btn-success'\n                    },\n                    cancel: {\n                        label: cancelText,\n                        className: 'btn-danger'\n                    }\n                },\n                callback(result) {\n                    if (result) {\n                        me.deleteCartImageItem(cartItemId, imageId);\n                        return true;\n                    }\n                }\n            });\n        });\n        $(me._widget).find(\".js-remove-selected-adobecommerce-product-from-cart\").on(\"click\", function (e) {\n            var listContainer = $(e.currentTarget).closest(\".js-adobecommerce-selected-products-list-cpntainer\");\n            var cancelText = $(listContainer).attr(\"data-cancel-text\");\n            var removeCartOkText = $(listContainer).attr(\"data-remove-ok-text\");\n            var removeCartImageItemText = $(listContainer).attr(\"data-remove-product-from-cart-text\");\n            var cartItemId = $(listContainer).attr(\"data-cart-item-id\");\n            var productId = $(e.currentTarget).attr(\"data-product-id\");\n            bootbox.confirm({\n                title: \"\",\n                message: \"<p>\" + removeCartImageItemText + \"</p>\",\n                buttons: {\n                    confirm: {\n                        label: removeCartOkText,\n                        className: 'btn-success'\n                    },\n                    cancel: {\n                        label: cancelText,\n                        className: 'btn-danger'\n                    }\n                },\n                callback(result) {\n                    if (result) {\n                        me.deleteCartAdobeCommerceItem(cartItemId, productId);\n                        return true;\n                    }\n                }\n            });\n        });\n        $(me._widget).find(\".js-remove-selected-staples-product-from-cart\").on(\"click\", function (e) {\n            var listContainer = $(e.currentTarget).closest(\".js-staples-selected-products-list-cpntainer\");\n            var cancelText = $(listContainer).attr(\"data-cancel-text\");\n            var removeCartOkText = $(listContainer).attr(\"data-remove-ok-text\");\n            var removeCartImageItemText = $(listContainer).attr(\"data-remove-product-from-cart-text\");\n            var cartItemId = $(listContainer).attr(\"data-cart-item-id\");\n            var productId = $(e.currentTarget).attr(\"data-product-id\");\n            bootbox.confirm({\n                title: \"\",\n                message: \"<p>\" + removeCartImageItemText + \"</p>\",\n                buttons: {\n                    confirm: {\n                        label: removeCartOkText,\n                        className: 'btn-success'\n                    },\n                    cancel: {\n                        label: cancelText,\n                        className: 'btn-danger'\n                    }\n                },\n                callback(result) {\n                    if (result) {\n                        me.deleteCartStaplesItem(cartItemId, productId);\n                        return true;\n                    }\n                }\n            });\n        });\n        $(me._widget).find(\".js-remove-shopping-cart-item-only\").on(\"click\", function (e) {\n            me.deleteItemOnly(parseInt($(e.currentTarget).attr(\"data-cartid\")), \"\");\n        });\n        $(me._widget).find(\".btn-updatecart\").on(\"click\", function (e) {\n            me.UpdateCart($(e.currentTarget));\n        });\n        $(me._widget).find(\".quantitytext\").on(\"change\", function () {\n            var updateCartButton = $(me._widget).find(\".btn-updatecart\");\n            me.UpdateCart($(updateCartButton));\n        });\n        $(me._widget).find(\".btn-checkout\").on(\"click\", function (e) {\n            e.preventDefault();\n            me.ValidateCart($(e.currentTarget));\n        });\n        this._widgetId = parseInt($(this._widget).attr(\"data-contentwidgetid\"));\n    }\n    ValidateCart(button) {\n        var me = this;\n        var checkOutCartUrl = ($(me._widget).data(\"checkouturl\"));\n        var midQuantityAllowedMessage = $(button).attr(\"data-mid-quantity-allowed-for-cart-message\");\n        var minQuantityAllowedMessage = $(button).attr(\"data-min-quantity-allowed-for-cart-message\");\n        var maxQuantityAllowedMessage = $(button).attr(\"data-max-quantity-allowed-for-cart-message\");\n        var proceed1 = true;\n        var proceed2 = true;\n        if ($(me._widget).find(\"#cartItemCount\").val() !== \"0\" || $(me._widget).find(\"#cartItemCount\").val() !== \"\") {\n            var items = [];\n            $(me._widget).find(\".cart-item-row\").each(function () {\n                var item = {\n                    Quantity: $(this).find(\".quantitytext\").val()\n                };\n                var minQuantityAllowed = $(this).attr(\"data-min-quantity-per-order\");\n                var maxQuantityAllowed = $(this).attr(\"data-max-quantity-per-order\");\n                if (item.Quantity < parseInt(minQuantityAllowed)) {\n                    $('#ItemQuantity').val(Math.max(parseInt(minQuantityAllowed), 1));\n                    proceed1 = false;\n                }\n                if (item.Quantity > parseInt(maxQuantityAllowed) && parseInt(maxQuantityAllowed) != -1) {\n                    $('#ItemQuantity').val(Math.max(parseInt(maxQuantityAllowed), 0));\n                    proceed2 = false;\n                }\n                if (!(item.Quantity < parseInt(minQuantityAllowed)) &&\n                    !(item.Quantity > parseInt(maxQuantityAllowed) && parseInt(maxQuantityAllowed) != -1)) {\n                    items.push(item);\n                }\n            });\n            if (!proceed1 && !proceed2) {\n                alert(midQuantityAllowedMessage);\n                return false;\n            }\n            else if (!proceed1) {\n                alert(minQuantityAllowedMessage);\n                return false;\n            }\n            else if (!proceed2) {\n                alert(maxQuantityAllowedMessage);\n                return false;\n            }\n            //alert(checkOutCartUrl);\n            window.location.href = checkOutCartUrl;\n        }\n    }\n    UpdateCart(button) {\n        var me = this;\n        var participantInfo = $(me._widget).find(\".cart-participant-info\");\n        var noItemsInforow = $(me._widget).find(\".shoppingcart-notiemsincart\");\n        var shoppingCartUrl = $(button).attr(\"data-shopping-cart-url\");\n        var midQuantityAllowedMessage = $(button).attr(\"data-mid-quantity-allowed-for-cart-message\");\n        var minQuantityAllowedMessage = $(button).attr(\"data-min-quantity-allowed-for-cart-message\");\n        var maxQuantityAllowedMessage = $(button).attr(\"data-max-quantity-allowed-for-cart-message\");\n        var pleaseWaitMessageForCart = $(button).attr(\"data-please-wait-message\");\n        var proceed1 = true;\n        var proceed2 = true;\n        if ($(me._widget).find(\"#cartItemCount\").val() !== \"0\" || $(me._widget).find(\"#cartItemCount\").val() !== \"\") {\n            var items = [];\n            $(me._widget).find(\".cart-item-row\").each(function () {\n                var format = $(this).data(\"item-format\");\n                var item = {\n                    CartID: $(this).data(\"row-cartid\"),\n                    Quantity: $(this).find(\".quantitytext\").val(),\n                    Price: $(this).data(\"item-price\"),\n                    TotalPrice: formatColumn(($(this).find(\".quantitytext\").val() * $(this).data(\"item-price\")), format),\n                    Delete: false\n                };\n                //item.TotalPrice = addCommas($(this).find(\".quantitytext\").val() * item.Price);\n                var minQuantityAllowed = $(this).attr(\"data-min-quantity-per-order\");\n                var maxQuantityAllowed = $(this).attr(\"data-max-quantity-per-order\");\n                if (item.Quantity == 0) {\n                    item.Delete = true;\n                }\n                else {\n                    item.Delete = false;\n                }\n                var itemQuantity = item.Quantity;\n                if (itemQuantity < parseInt(minQuantityAllowed)) {\n                    $('#ItemQuantity').val(Math.max(parseInt(minQuantityAllowed), 1));\n                    $(this).find(\".quantitytext\").val(Math.max(parseInt(minQuantityAllowed), 1));\n                    item.Quantity = Math.max(parseInt(minQuantityAllowed), 1);\n                    proceed1 = false;\n                }\n                if (itemQuantity > parseInt(maxQuantityAllowed) && parseInt(maxQuantityAllowed) != -1) {\n                    $('#ItemQuantity').val(Math.max(parseInt(maxQuantityAllowed), 0));\n                    $(this).find(\".quantitytext\").val(Math.max(parseInt(maxQuantityAllowed), 0));\n                    item.Quantity = Math.max(parseInt(maxQuantityAllowed), 0);\n                    proceed2 = false;\n                }\n                items.push(item);\n            });\n            if (!proceed1 && !proceed2) {\n                alert(midQuantityAllowedMessage);\n                waitingDialog.hide();\n            }\n            else if (!proceed1) {\n                alert(minQuantityAllowedMessage);\n                waitingDialog.hide();\n            }\n            else if (!proceed2) {\n                alert(maxQuantityAllowedMessage);\n                waitingDialog.hide();\n            }\n            waitingDialog.show(pleaseWaitMessageForCart);\n            var url = '/Api/ShoppingCart/UpdateCart';\n            $.when(submitAjaxRequest(items, url, \"POST\").done(function (data, textStatus, request) {\n                window.location.href = shoppingCartUrl;\n            }));\n        }\n    }\n}\nclass CatalogProductDetail {\n    constructor(widget) {\n        this._widget = widget;\n        this.initialize();\n    }\n    FinalizeItem(button) {\n        var me = this;\n        if (me.ValidateItemQuantity(button)) {\n            var params = this.buildParams();\n            var me = this;\n            if (!me.CheckAttribute()) {\n                $(me._widget).find(\".cart-notification-error\").fadeIn(400);\n                window.setTimeout(function () {\n                    $(me._widget).find(\".cart-notification-error\").fadeOut(1000);\n                }, 2000);\n                $(me._widget).find(\".btn-finalize\").button(\"reset\");\n                return;\n            }\n            ;\n            params.OrderNow = 1;\n            $('.ajax-loader-container').show();\n            var url = '/Api/ShoppingCart/AddItem';\n            $.when(submitAjaxRequest(params, url, \"POST\").done(function (data, textStatus, request) {\n                updateCartItemCount(data.cartItemCount);\n                if (data.limited) {\n                    if (data.currentCartItemCount == 0) {\n                        $('.ajax-loader-container').hide();\n                        var maxQuantityAllowedEverMessage = $(button).attr(\"data-max-quantity-allowed-ever-message\");\n                        alert(maxQuantityAllowedEverMessage);\n                        return;\n                    }\n                    else {\n                        $('.ajax-loader-container').hide();\n                        alert(data.productNotAvailableMessage);\n                        if ($(\".quantity-input\").length > 0) {\n                            $(\".quantity-input\").val(data.currentCartItemCount);\n                        }\n                        return;\n                    }\n                }\n                else {\n                    if (data.redirectUrl !== \"\") {\n                        window.location.href = data.redirectUrl;\n                    }\n                    // animate or show notification that the item was added\n                    $(me._widget).find(\".cart-notification-final\").fadeIn(400);\n                    window.setTimeout(function () {\n                        $(me._widget).find(\".cart-notification-final\").fadeOut(1500);\n                    }, 2000);\n                }\n                var maxQuantityAllowed = $(me._widget).find(\".quantity-input\").attr(\"data-max-quantity-per-order\");\n                if (parseInt(maxQuantityAllowed) != -1) {\n                    var orderedCount = parseInt($(me._widget).find(\".quantity-input\").val());\n                    var availableCount = $(me._widget).find(\".quantity-input\").attr(\"data-max-quantity-per-order\");\n                    var newCount = parseInt(availableCount) - orderedCount;\n                    if (newCount < 1) {\n                        newCount = 0;\n                        $(me._widget).find(\".quantity-input\").val(newCount);\n                    }\n                    $(me._widget).find(\".quantity-input\").attr(\"data-max-quantity-per-order\", newCount);\n                    $(me._widget).find(\".quantity-input\").attr(\"max\", newCount);\n                }\n                $(me._widget).find(\".btn-finalize\").button(\"reset\");\n                //ajax for addOrder here to automatically run\n                var params = { \"addressId\": 0 };\n                var url = '/Api/ParticipantOrder/AddOrder';\n                $.when(submitAjaxRequest(params, url, \"POST\").done(function (data, textStatus, request) {\n                    $('.ajax-loader-container').hide();\n                    if (data.status == \"OK\" && data.participantOrderId > 0) {\n                        $(me._widget).find(\".panel-thankyou\").removeClass(\"hide\");\n                        $(me._widget).find(\".panel-thankyou\").find(\".order-number\").html(data.participantOrderId);\n                        var detailLink = $(me._widget).find(\".panel-thankyou\").find(\".order-detail-link\").attr(\"href\");\n                        detailLink += data.identifier;\n                        $(me._widget).find(\".panel-thankyou\").find(\".order-detail-link\").attr(\"href\", detailLink);\n                        $(me._widget).find(\".panel-thankyou\").find(\".btn-viewdetail\").attr(\"href\", detailLink);\n                        $(me._widget).find(\".js-finalize-button\").attr('disabled', 'disabled');\n                        refreshCartCount(true);\n                    }\n                    else {\n                        alert(data.status);\n                        if (data.cartUrl != undefined)\n                            window.location.href = data.cartUrl;\n                    }\n                }));\n            }));\n        }\n    }\n    AddItemToCart(button) {\n        var me = this;\n        if (me.ValidateItemQuantity(button)) {\n            var params = this.buildParams();\n            if ($(button).attr(\"data-check-sku-exist\") !== \"\") {\n                params.CheckSkuExists = $(button).attr(\"data-check-sku-exist\") == \"true\" ? true : false;\n            }\n            var me = this;\n            if (!me.CheckAttribute()) {\n                $(me._widget).find(\".cart-notification-error\").fadeIn(400);\n                window.setTimeout(function () {\n                    $(me._widget).find(\".cart-notification-error\").fadeOut(1000);\n                }, 2000);\n                $(me._widget).find(\".btn-add-to-cart\").button(\"reset\");\n                $(me._widget).find(\".js-addtocart-button\").button(\"reset\");\n                return;\n            }\n            ;\n            var url = '/Api/ShoppingCart/AddItem';\n            $.when(submitAjaxRequest(params, url, \"POST\").done(function (data, textStatus, request) {\n                updateCartItemCount(data.cartItemCount);\n                if (data.limited) {\n                    if (data.currentCartItemCount == 0) {\n                        $('.ajax-loader-container').hide();\n                        var maxQuantityAllowedEverMessage = $(button).attr(\"data-max-quantity-allowed-ever-message\");\n                        alert(maxQuantityAllowedEverMessage);\n                        return;\n                    }\n                    else {\n                        $(me._widget).find(\".cart-notification-partial\").fadeIn(400);\n                        window.setTimeout(function () { $(me._widget).find(\".cart-notification-partial\").fadeOut(1000); }, 2000);\n                    }\n                }\n                else {\n                    if (data.redirectUrl !== \"\") {\n                        window.location.href = data.redirectUrl;\n                    }\n                    // animate or show notification that the item was added\n                    $(me._widget).find(\".cart-notification\").fadeIn(400);\n                    window.setTimeout(function () {\n                        $(me._widget).find(\".cart-notification\").fadeOut(1000);\n                    }, 2000);\n                }\n                var maxQuantityAllowed = $(me._widget).find(\".quantity-input\").attr(\"data-max-quantity-per-order\");\n                if (parseInt(maxQuantityAllowed) != -1) {\n                    var orderedCount = parseInt($(me._widget).find(\".quantity-input\").val());\n                    var availableCount = $(me._widget).find(\".quantity-input\").attr(\"data-max-quantity-per-order\");\n                    var newCount = parseInt(availableCount) - orderedCount;\n                    if (newCount < 1) {\n                        newCount = 0;\n                        $(me._widget).find(\".quantity-input\").val(newCount);\n                    }\n                    $(me._widget).find(\".quantity-input\").attr(\"data-max-quantity-per-order\", newCount);\n                    $(me._widget).find(\".quantity-input\").attr(\"max\", newCount);\n                }\n                $(me._widget).find(\".btn-add-to-cart\").button(\"reset\");\n                $(me._widget).find(\".js-addtocart-button\").button(\"reset\");\n            }));\n        }\n    }\n    ValidateItemQuantity(button) {\n        var me = this;\n        var midQuantityAllowedMessage = $(button).attr(\"data-mid-quantity-allowed-for-cart-message\");\n        var minQuantityAllowedMessage = $(button).attr(\"data-min-quantity-allowed-for-cart-message\");\n        var maxQuantityAllowedMessage = $(button).attr(\"data-max-quantity-allowed-for-cart-message\");\n        var minQuantityAllowed = $(me._widget).find(\".quantity-input\").attr(\"data-min-quantity-per-order\");\n        var maxQuantityAllowed = $(me._widget).find(\".quantity-input\").attr(\"data-max-quantity-per-order\");\n        var selectedQuantity = $(this._widget).find(\".quantity-input\").val();\n        if (parseInt(maxQuantityAllowed) != -1 && parseInt(maxQuantityAllowed) < parseInt(minQuantityAllowed)) {\n            //$('#ItemQuantity').val(Math.max(parseInt(maxQuantityAllowed), 1));\n            alert(midQuantityAllowedMessage);\n            return false;\n        }\n        if (parseInt(selectedQuantity) < parseInt(minQuantityAllowed)) {\n            $('#ItemQuantity').val(Math.max(parseInt(minQuantityAllowed), 1));\n            alert(minQuantityAllowedMessage);\n            return false;\n        }\n        if (parseInt(selectedQuantity) > parseInt(maxQuantityAllowed) && parseInt(maxQuantityAllowed) != -1) {\n            $('#ItemQuantity').val(Math.max(parseInt(maxQuantityAllowed), 0));\n            alert(maxQuantityAllowedMessage);\n            return false;\n        }\n        return true;\n    }\n    UpdateCart(button) {\n        var me = this;\n        if (!me.CheckAttribute()) {\n            $(me._widget).find(\".cart-notification-error\").fadeIn(400);\n            window.setTimeout(function () {\n                $(me._widget).find(\".cart-notification-error\").fadeOut(1000);\n            }, 2000);\n            $(me._widget).find(\".btn-update-cart\").button(\"reset\");\n            return;\n        }\n        ;\n        var midQuantityAllowedMessage = $(button).attr(\"data-min-quantity-allowed-for-cart-message\");\n        var minQuantityAllowedMessage = $(button).attr(\"data-min-quantity-allowed-for-cart-message\");\n        var maxQuantityAllowedMessage = $(button).attr(\"data-max-quantity-allowed-for-cart-message\");\n        var minQuantityAllowed = $(me._widget).find(\".quantity-input\").attr(\"data-min-quantity-per-order\");\n        var maxQuantityAllowed = $(me._widget).find(\".quantity-input\").attr(\"data-max-quantity-per-order\");\n        if (parseInt(maxQuantityAllowed) != -1 && parseInt(maxQuantityAllowed) < parseInt(minQuantityAllowed)) {\n            alert(midQuantityAllowedMessage);\n        }\n        if ($(this._widget).find(\".quantity-input\").val() < parseInt(minQuantityAllowed)) {\n            $('#ItemQuantity').val(Math.max(parseInt(minQuantityAllowed), 1));\n            alert(minQuantityAllowedMessage);\n        }\n        if ($(this._widget).find(\".quantity-input\").val() > parseInt(maxQuantityAllowed) && parseInt(maxQuantityAllowed) != -1) {\n            $('#ItemQuantity').val(Math.max(parseInt(maxQuantityAllowed), 0));\n            alert(maxQuantityAllowedMessage);\n        }\n        var attributes = [];\n        var selectedSku = \"\";\n        if ($(me._widget).find(\".attribute-selector\").length > 0) {\n            $.each($(this._widget).find(\".attribute-selector\"), function (index, item) {\n                if ($(item).find(\":selected\").val() !== \"\") {\n                    attributes.push($(item).find(\":selected\").val());\n                    selectedSku = $(item).find(\":selected\").attr(\"data-product-sku-id\");\n                }\n            });\n        }\n        else {\n            selectedSku = $(button).attr(\"data-sku-in-cart\");\n        }\n        var item = {\n            \"Id\": null,\n            \"Quantity\": 0,\n            \"Attributes\": null\n        };\n        item.Id = $(button).attr(\"data-cart-item-id\");\n        item.Quantity = $(this._widget).find(\".quantity-input\").val();\n        var updatedCartId = \"\";\n        if (attributes.length > 0) {\n            item.Attributes = attributes;\n        }\n        var productskusincart = $(me._widget).find(\".js-product-detail-container\").attr(\"data-product-skus-in-cart\");\n        if (productskusincart !== \"\") {\n            var items = productskusincart.split(\",\");\n            if (items.length > 0) {\n                for (var i = 0; i < items.length; i++) {\n                    var skuItems = items[i].split(\"|\");\n                    if (skuItems.length > 0) {\n                        if (skuItems[1] == selectedSku) {\n                            updatedCartId = skuItems[0];\n                            item.Id = updatedCartId;\n                            break;\n                        }\n                    }\n                }\n            }\n        }\n        /* if item is not in cart and you add it*/\n        if (updatedCartId == \"\") {\n            $(button).attr(\"data-check-sku-exist\", \"false\");\n            me.AddItemToCart(button);\n        }\n        else {\n            var cartUrl = $(me._widget).find(\".js-product-detail-container\").attr(\"data-cart-url\");\n            if (updatedCartId !== \"\" && $(me._widget).find(\".js-product-detail-container\").find(\".js-product-template-form\").attr(\"data-is-product-customizeable\") == \"True\") {\n                var title = $(me._widget).find(\".js-product-detail-container\").attr(\"data-cart-confirm-text-title\");\n                var confirmText = $(me._widget).find(\".js-product-detail-container\").attr(\"data-cart-confirm-text\");\n                var updateButton = $(me._widget).find(\".js-product-detail-container\").attr(\"data-update-text\");\n                var addButton = $(me._widget).find(\".js-product-detail-container\").attr(\"data-add-text\");\n                var cancelButton = $(me._widget).find(\".js-product-detail-container\").attr(\"data-cancel-text\");\n                var dialog = bootbox.dialog({\n                    title: title,\n                    message: confirmText,\n                    size: 'large',\n                    buttons: {\n                        update: {\n                            label: updateButton,\n                            className: 'btn-warning',\n                            callback: function () {\n                                var params = item;\n                                var url = '/Api/ShoppingCart/UpdateItem';\n                                $.when(submitAjaxRequest(params, url, \"POST\")\n                                    .done(function (data, textStatus, request) {\n                                    updateCartItemCount(data.cartItemCount);\n                                    window.location.href = cartUrl;\n                                }));\n                            }\n                        },\n                        add: {\n                            label: addButton,\n                            className: 'btn-info',\n                            callback: function () {\n                                $(button).attr(\"data-check-sku-exist\", \"false\");\n                                me.AddItemToCart(button);\n                            }\n                        },\n                        cancel: {\n                            label: cancelButton,\n                            className: 'btn-danger'\n                        },\n                    }\n                });\n            }\n            else {\n                var params = item;\n                var url = '/Api/ShoppingCart/UpdateItem';\n                $.when(submitAjaxRequest(params, url, \"POST\")\n                    .done(function (data, textStatus, request) {\n                    updateCartItemCount(data.cartItemCount);\n                    window.location.href = cartUrl;\n                }));\n            }\n        }\n    }\n    CheckAttribute() {\n        var me = this;\n        if ($(this._widget).find(\".attribute-selector\").length > 0) {\n            var attributes = [];\n            var attributeCount = 0;\n            $.each($(this._widget).find(\".attribute-selector\"), function (index, item) {\n                if ($(item).find(\":selected\").val() !== \"\") {\n                    attributes.push($(item).find(\":selected\").val());\n                }\n                attributeCount += 1;\n            });\n            if (attributes.length === 0 || attributeCount !== attributes.length) {\n                return false;\n            }\n        }\n        return true;\n    }\n    GetItemFromAttributes() {\n        var params = this.buildParams();\n        var me = this;\n        $(me._widget).find(\".panel-thankyou\").addClass(\"hide\");\n        var attribSelected = $(me._widget).find(\".attribute-selector\").find(\":selected\").val();\n        if (attribSelected == \"\") {\n            $(me._widget).find('#ItemQuantity').html(\"\");\n            $(me._widget).find('#ItemQuantity').val(\"\");\n            $(me._widget).find('#ItemQuantity').attr('min', '1');\n            $(me._widget).find('#ItemQuantity').attr('data-min-quantity-per-order', '1');\n            $(me._widget).find('#ItemQuantity').attr('max', '0');\n            $(me._widget).find('#ItemQuantity').attr('max-length', 1);\n            $(me._widget).find('#ItemQuantity').attr('data-max-quantity-per-order', '0');\n            return false;\n        }\n        var url = '/Api/ShoppingCart/GetItemPrice';\n        $.when(submitAjaxRequest(params, url, \"POST\")\n            .done(function (data, textStatus, request) {\n            if (data.status == \"OK\") {\n                $(me._widget).find(\".points-value\").text(data.formattedPrice);\n                $(me._widget).find(\".points-value\").attr(\"data-price\", data.price);\n                if ($(me._widget).find(\".js-download-action-button\").length > 0) {\n                    if (data.price > 0) {\n                        $(me._widget).find(\".js-download-action-button\").addClass(\"hide\");\n                        $(me._widget).find(\".btn-add-to-cart\").removeAttr('disabled');\n                        $(me._widget).find(\".btn-add-to-cart\").removeClass(\"hide\");\n                        $(me._widget).find(\".js-addtocart-button\").removeAttr('disabled');\n                        $(me._widget).find(\".js-addtocart-button\").removeClass(\"hide\");\n                        $(me._widget).find(\".js-quantity-container\").removeClass(\"hide\");\n                    }\n                    else {\n                        $(me._widget).find(\".js-download-action-button\").removeClass(\"hide\");\n                        $(me._widget).find(\".js-download-action-button\").removeAttr('disabled');\n                        $(me._widget).find(\".js-quantity-container\").addClass(\"hide\");\n                        $(me._widget).find(\".btn-add-to-cart\").addClass(\"hide\");\n                        $(me._widget).find(\".js-addtocart-button\").addClass(\"hide\");\n                    }\n                }\n                if (data.bypassCheckoutProcessForZeroCostOrders) {\n                    $(me._widget).find(\".btn-finalize\").removeClass(\"hide\");\n                    $(me._widget).find(\".btn-add-to-cart\").addClass(\"hide\");\n                    $(me._widget).find(\".js-addtocart-button\").addClass(\"hide\");\n                }\n                else {\n                    $(me._widget).find(\".btn-add-to-cart\").removeClass(\"hide\");\n                    $(me._widget).find(\".js-addtocart-button\").removeClass(\"hide\");\n                    $(me._widget).find(\".btn-finalize\").addClass(\"hide\");\n                }\n                if (data.isInventoryEnabled == true) {\n                    if (data.quantityInHand > 0) {\n                        $(me._widget).find(\".btn-add-to-cart\").prop('disabled', false);\n                        $(me._widget).find(\".js-addtocart-button\").prop('disabled', false);\n                        $(me._widget).find(\".btn-add-to-cart\").html($(me._widget).find(\".btn-add-to-cart\").attr(\"data-button-text\"));\n                        $(me._widget).find(\".js-addtocart-button\").html($(me._widget).find(\".js-addtocart-button\").attr(\"data-button-text\"));\n                        $(me._widget).find(\".quantity-input\").removeAttr(\"disabled\");\n                        $(me._widget).find(\".btn-finalize\").prop('disabled', false);\n                        $(me._widget).find(\".btn-finalize\").html($(me._widget).find(\".btn-finalize\").attr(\"data-button-text\"));\n                    }\n                    else {\n                        $(me._widget).find(\".btn-add-to-cart\").html($(me._widget).find(\".btn-add-to-cart\").attr(\"data-out-of-stock\"));\n                        $(me._widget).find(\".btn-add-to-cart\").prop('disabled', true);\n                        $(me._widget).find(\".js-addtocart-button\").html($(me._widget).find(\".js-addtocart-button\").attr(\"data-out-of-stock\"));\n                        $(me._widget).find(\".js-addtocart-button\").prop('disabled', true);\n                        $(me._widget).find(\".quantity-input\").prop(\"disabled\", true);\n                        $(me._widget).find(\".btn-finalize\").html($(me._widget).find(\".btn-finalize\").attr(\"data-out-of-stock\"));\n                        $(me._widget).find(\".btn-finalize\").prop('disabled', true);\n                    }\n                }\n                //else {\n                //    $(me._widget).find(\".btn-finalize\").prop('disabled', false);\n                //    $(me._widget).find(\".btn-add-to-cart\").prop('disabled', false);\n                //}\n                $(me._widget).find(\".js-sku-name\").html(data.skuName);\n                $(me._widget).find(\".js-sku-name\").parent(\"div\").removeClass(\"hidden\");\n                var min = parseInt(data.minPerOrder);\n                var max = parseInt(data.maxPerOrder);\n                if (max == -1) {\n                    max = 99999;\n                }\n                //$(me._widget).find('#ItemQuantity').html(max.toString());\n                //$(me._widget).find('#ItemQuantity').val(max.toString());   \n                if ($(this._widget).find(\".js-product-template-form\").find(\"#ItemQuantity\").val() == \"\") {\n                    $(me._widget).find('#ItemQuantity').html(min.toString());\n                    $(me._widget).find('#ItemQuantity').val(min.toString());\n                }\n                $(me._widget).find('#ItemQuantity').attr('min', min);\n                $(me._widget).find('#ItemQuantity').attr('data-min-quantity-per-order', min);\n                $(me._widget).find('#ItemQuantity').val(min.toString());\n                $(me._widget).find('#ItemQuantity').attr('max', max);\n                $(me._widget).find('#ItemQuantity').attr('max-length', max.toString().length);\n                $(me._widget).find('#ItemQuantity').attr('data-max-quantity-per-order', max);\n            }\n        }));\n    }\n    GetCustomizedItemFromAttributes() {\n        var params = {\n            Identifier: this._identifier,\n            ProductId: this._productId,\n            Quantity: $(this._widget).find(\".quantity-input\").val(),\n            Attributes: [],\n            ProductCustomizationId: null\n        };\n        var me = this;\n        $.each($(this._widget).find(\".customized-attribute-selector\"), function (index, item) {\n            if ($(this).find(\":selected\").val() !== \"\") {\n                params.Attributes.push($(this).find(\":selected\").val());\n            }\n        });\n        var me = this;\n        var url = '/Api/ShoppingCart/GetItemPrice';\n        $.when(submitAjaxRequest(params, url, \"POST\")\n            .done(function (data, textStatus, request) {\n            if (data.status == \"OK\") {\n                $(me._widget).find(\".points-value\").text(data.formattedPrice);\n                $(me._widget).find(\".points-value\").attr(\"data-price\", data.price);\n                if (data.bypassCheckoutProcessForZeroCostOrders) {\n                    $(me._widget).find(\".btn-finalize\").removeClass('hide');\n                    $(me._widget).find(\".js-addtocart-button\").addClass('hide');\n                }\n                else {\n                    $(me._widget).find(\".js-addtocart-button\").removeClass('hide');\n                    $(me._widget).find(\".btn-finalize\").addClass('hide');\n                }\n                if (data.isInventoryEnabled == true) {\n                    if (data.quantityInHand > 0) {\n                        $(me._widget).find(\".js-addtocart-button\").prop('disabled', false);\n                        $(me._widget).find(\".js-addtocart-button\").html($(me._widget).find(\".js-addtocart-button\").attr(\"data-button-text\"));\n                        $(me._widget).find(\".quantity-input\").removeAttr(\"disabled\");\n                        $(me._widget).find(\".btn-finalize\").prop('disabled', false);\n                        $(me._widget).find(\".btn-finalize\").html($(me._widget).find(\".js-addtocart-button\").attr(\"data-button-text\"));\n                    }\n                    else {\n                        $(me._widget).find(\".js-addtocart-button\").html($(me._widget).find(\".js-addtocart-button\").attr(\"data-out-of-stock\"));\n                        $(me._widget).find(\".js-addtocart-button\").prop('disabled', true);\n                        $(me._widget).find(\".quantity-input\").prop(\"disabled\", true);\n                        $(me._widget).find(\".btn-finalize\").html($(me._widget).find(\".js-addtocart-button\").attr(\"data-out-of-stock\"));\n                        $(me._widget).find(\".btn-finalize\").prop('disabled', true);\n                    }\n                }\n                //else {\n                //    $(me._widget).find(\".btn-finalize\").prop('disabled', false);\n                //    $(me._widget).find(\".js-addtocart-button\").prop('disabled', false);\n                //}\n                $(me._widget).find(\".js-quantity-row\").removeClass(\"hide\");\n                if (parseInt($(me._widget).find(\".points-value\").attr(\"data-price\")) <= 0) {\n                    $(me._widget).find(\".js-quantity-row\").addClass(\"hide\");\n                }\n                $(me._widget).find(\".js-sku-name\").html(data.skuName);\n                $(me._widget).find(\".js-sku-name\").parent(\"div\").removeClass(\"hidden\");\n            }\n        }));\n    }\n    initialize() {\n        this._widgetId = parseInt($(this._widget).attr(\"data-contentwidgetid\"));\n        this._identifier = $(this._widget).find(\".js-product-template-form\").attr(\"data-product-catalog-identifier\");\n        this._productId = parseInt($(this._widget).find(\".js-product-template-form\").attr(\"data-product-id\"));\n        if ($(this._widget).find(\".js-product-template-form\").find(\"#ItemQuantity\").val() == \"\") {\n            this._quantity = 1;\n        }\n        this._globalModal = new GlobalModal(this._widgetId);\n        this.bindControls();\n    }\n    bindControls() {\n        // VB lives on\n        var me = this;\n        $(this._widget).find(\".js-finalize-button\").on(\"click\", function (e) {\n            me.FinalizeItem($(e.currentTarget));\n        });\n        $(this._widget).find(\".btn-add-to-cart\").on(\"click\", function (e) {\n            me.AddItemToCart($(e.currentTarget));\n        });\n        $(me._widget).find(\".btn-update-cart\").on(\"click\", function (e) {\n            me.UpdateCart($(e.currentTarget));\n        });\n        $(this._widget).find(\".quantity-input\").on(\"keyup\", function () {\n            me._quantity = parseInt($(this).val());\n        });\n        $(this._widget).find('.js-product-download-by-language').on('change', function (e) {\n            e.preventDefault();\n            $(me._widget).find(\".js-download-action-button\").removeAttr(\"disabled\");\n            if ($(e.currentTarget).val() !== \"\") {\n                var baseUrl = [location.protocol, '//', location.host, location.pathname].join(''), urlQueryString = document.location.search;\n                if (urlQueryString) {\n                    var key = \"selected-locale\";\n                    var params = \"\";\n                    var removeRegex = new RegExp('([\\?&])' + key + '=[^&;]+[&;]?');\n                    params = urlQueryString.replace(removeRegex, \"$1\");\n                    params = params.replace(/[&;]$/, \"\");\n                    window.history.replaceState({}, \"\", baseUrl + params);\n                    window.location.href = baseUrl + params + \"&selected-locale=\" + $(e.currentTarget).val();\n                }\n            }\n            else {\n                $(me._widget).find(\".js-download-action-button\").attr(\"disabled\", \"disabled\");\n                $(me._widget).find(\".js-download-action-button\").removeAttr(\"href\");\n            }\n        });\n        $(this._widget).find(\".attribute-selector\").on(\"change\", function () {\n            $(me._widget).find(\".btn-add-to-cart\").removeAttr(\"disabled\");\n            $(me._widget).find(\".js-addtocart-button\").removeAttr(\"disabled\");\n            if (!me.CheckAttribute()) {\n                $(me._widget).find(\".btn-add-to-cart\").prop(\"disabled\", true);\n                $(me._widget).find(\".btn-add-to-cart\").addClass(\"hide\");\n                $(me._widget).find(\".js-addtocart-button\").prop(\"disabled\", true);\n                $(me._widget).find(\".js-addtocart-button\").addClass(\"hide\");\n                if ($(me._widget).find(\".js-download-action-button\").length > 0) {\n                    $(me._widget).find(\".js-download-action-button\").prop(\"disabled\", true);\n                    $(me._widget).find(\".js-download-action-button\").addClass(\"hide\");\n                }\n            }\n            me.GetItemFromAttributes();\n        });\n        $.each($(this._widget).find(\".js-product-customization-field-type-dropdown\"), function (i, e) {\n            var dropDown = this;\n            if ($(dropDown).length === 1) {\n                var textarea = $(dropDown).closest(\".js-product-customization-field-type-dropdown-container\")\n                    .find(\".js-product-customization-field-type-text-area\");\n                $(textarea).on(\"change\", function (e) {\n                    var assetLibraryType = $(dropDown).attr(\"data-asset-library-type\");\n                    if ($(dropDown).attr(\"data-allow-user-to-change-selection\") === \"True\" && (assetLibraryType === \"Text\" || assetLibraryType === \"\")) {\n                        var oldValue = $(dropDown).val();\n                        var mismatchValueForAssetLibrary = $(dropDown).attr(\"data-value-mismatch-asset-library\");\n                        var mismatchValue = $(dropDown).attr(\"data-value-mismatch\");\n                        var valueToDisplay = mismatchValueForAssetLibrary;\n                        if (assetLibraryType == \"Text\") {\n                            valueToDisplay = valueToDisplay.replace(\"##typetoreplace##\", assetLibraryType);\n                        }\n                        else {\n                            valueToDisplay = mismatchValue;\n                        }\n                        if ($(textarea).val() !== \"\" && $(textarea).val() !== $(textarea).attr(\"data-original-value\")) {\n                            if (!window.confirm(valueToDisplay)) {\n                                $(e.currentTarget).val(oldValue);\n                                return false;\n                            }\n                        }\n                        $(dropDown).attr(\"data-selected-value\", $(dropDown).val());\n                        $(textarea).removeClass(\"hide\");\n                        $(textarea).val($(e.currentTarget).val());\n                        $(textarea).attr(\"data-field-name\", $(dropDown).attr(\"data-original-field-name\"));\n                        $(textarea).attr(\"data-original-value\", $(dropDown).val());\n                        $(dropDown).removeAttr(\"data-field-name\");\n                    }\n                    else {\n                        $(textarea).addClass(\"hide\");\n                        $(textarea).val(\"\");\n                        $(textarea).removeAttr(\"data-field-name\");\n                        $(dropDown).attr(\"data-field-name\", $(dropDown).attr(\"data-original-field-name\"));\n                    }\n                });\n            }\n        });\n        $(this._widget).find(\".js-product-customization-field-type-dropdown\").on(\"change\", function (e) {\n            e.preventDefault();\n            var textarea = $(e.currentTarget).closest(\".js-product-customization-field-type-dropdown-container\")\n                .find(\".js-product-customization-field-type-text-area\");\n            var assetLibraryType = $(e.currentTarget).attr(\"data-asset-library-type\");\n            if ($(e.currentTarget).attr(\"data-allow-user-to-change-selection\") === \"True\" && (assetLibraryType === \"Text\" || assetLibraryType === \"\")) {\n                var oldValue = $(e.currentTarget).attr(\"data-selected-value\");\n                var mismatchValueForAssetLibrary = $(e.currentTarget).attr(\"data-value-mismatch-asset-library\");\n                var mismatchValue = $(e.currentTarget).attr(\"data-value-mismatch\");\n                var valueToDisplay = mismatchValueForAssetLibrary;\n                if (assetLibraryType == \"Text\") {\n                    valueToDisplay = valueToDisplay.replace(\"##typetoreplace##\", assetLibraryType);\n                }\n                else {\n                    valueToDisplay = mismatchValue;\n                }\n                if ($(textarea).val() !== \"\" && $(textarea).val() !== $(textarea).attr(\"data-original-value\")) {\n                    if (!window.confirm(valueToDisplay)) {\n                        $(e.currentTarget).val(oldValue);\n                        return false;\n                    }\n                }\n                $(e.currentTarget).attr(\"data-selected-value\", $(e.currentTarget).val());\n                $(textarea).removeClass(\"hide\");\n                $(textarea).val($(e.currentTarget).val());\n                $(textarea).attr(\"data-field-name\", $(e.currentTarget).attr(\"data-original-field-name\"));\n                $(textarea).attr(\"data-original-value\", $(e.currentTarget).val());\n                $(e.currentTarget).removeAttr(\"data-field-name\");\n            }\n            else {\n                $(textarea).addClass(\"hide\");\n                $(textarea).val(\"\");\n                $(textarea).removeAttr(\"data-field-name\");\n                $(e.currentTarget).attr(\"data-field-name\", $(e.currentTarget).attr(\"data-original-field-name\"));\n            }\n        });\n        //$(this._widget).find(\".attribute-selector\").change();\n        $(me._widget).find(\".btn-add-to-cart\").removeAttr(\"disabled\");\n        $(me._widget).find(\".js-addtocart-button\").removeAttr(\"disabled\");\n        if (!me.CheckAttribute()) {\n            $(me._widget).find(\".btn-add-to-cart\").prop(\"disabled\", true);\n            $(me._widget).find(\".btn-add-to-cart\").addClass(\"hide\");\n            $(me._widget).find(\".js-addtocart-button\").prop(\"disabled\", true);\n            $(me._widget).find(\".js-addtocart-button\").addClass(\"hide\");\n            if ($(me._widget).find(\".js-download-action-button\").length > 0) {\n                $(me._widget).find(\".js-download-action-button\").prop(\"disabled\", true);\n                $(me._widget).find(\".js-download-action-button\").addClass(\"hide\");\n            }\n        }\n        me.GetItemFromAttributes();\n        //$(this._widget).find(\".customized-attribute-selector\").on(\"change\", function () {\n        //    $(me._widget).find(\".btn-add-to-cart\").removeAttr(\"disabled\");\n        //    if (!me.CheckAttribute()) {\n        //        $(me._widget).find(\".btn-add-to-cart\").attr(\"disabled\", \"disabled\");\n        //    }\n        //    me.GetCustomizedItemFromAttributes();\n        //});\n        if (!me.CheckAttribute()) {\n            $(me._widget).find(\".btn-add-to-cart\").attr(\"disabled\", \"disabled\");\n            $(me._widget).find(\".js-addtocart-button\").attr(\"disabled\", \"disabled\");\n        }\n        $.each($(me._widget).find(\".js-product-template-form\"), function (i, e) {\n            if ($(e).attr(\"data-is-listbased-email\") === \"True\") {\n                me.setEmailInformation($(e));\n            }\n            if ($(e).attr(\"data-microsite-based\") === \"True\") {\n                me.setMicrositeInformation($(e), me);\n            }\n            me.setMicrositeLookupUrl($(e), me);\n            if ($(e).attr(\"data-social-post-based\") === \"True\") {\n                me.setSocialPostInformation($(e));\n            }\n            if ($(e).attr(\"data-direct-mail-based\") === \"True\") {\n                me.setDirectMailInformation($(e));\n            }\n        });\n    }\n    setApproximateCostContainer(button) {\n        var container = $(button).closest(\".js-direct-mail-configuration-container\");\n        $(container).find(\".js-direct-mail-list-selector\").addClass(\"hide\");\n        $(container).find(\".js-direct-mail-list-selector button\").removeAttr(\"data-contact-list-id\");\n        $(container).find(\".js-direct-mail-list-cost-container\").addClass(\"hide\");\n        if ($(button).val() != \"\" && $(button).find(':selected').attr('data-number-contacts') !== \"0\") {\n            var numberOfContacts = $(button).find(':selected').attr('data-number-contacts');\n            var formattedNumberOfContacts = $(button).find(':selected').attr('data-formatted-number-of-contacts');\n            var totalPrice = $(button).find(':selected').attr('data-total-price');\n            if (numberOfContacts !== \"0\") {\n                $(container).find(\".js-direct-mail-list-selector\").removeClass(\"hide\");\n                $(container).find(\".js-direct-mail-list-selector button\").attr(\"data-contact-list-id\", $(button).val());\n                $(container).find(\".js-direct-mail-list-cost-container\").removeClass(\"hide\");\n                var appxroximateCostCopy = $(container).find(\".js-direct-mail-list-cost-container\").find(\".js-approximatcostcopy\").attr(\"data-approximate-cost-copy\");\n                $(container).find(\".js-direct-mail-list-cost-container\").find(\".js-approximatcostcopy\").html(appxroximateCostCopy.replace(\"{0}\", formattedNumberOfContacts).replace(\"{1}\", totalPrice));\n            }\n        }\n    }\n    setDirectMailInformation(item) {\n        var me = this;\n        $(item).find(\".js-direct-mail-list-selector button\").on(\"click\", function (e) {\n            if ($(e.currentTarget).attr(\"data-contact-list-id\") !== \"\") {\n                me.openDirectMailUploadedListRecipients($(e.currentTarget));\n            }\n        });\n        $(item).find(\".js-upload-direct-mail-list\").on(\"click\", function (e) {\n            e.preventDefault();\n            me.OpenDirectMailUploadModal($(e.currentTarget));\n        });\n        $(item).find(\".js-direct-mail-list-container\").on(\"change\", function (e) {\n            me.setApproximateCostContainer(this);\n        });\n    }\n    setMicrositeLookupUrl(item, self) {\n        $.each($(item).find(\".js-microsite-url-lookup-container\"), function (i, e) {\n            var itemId = \"-\" + $(e).attr(\"data-field-identifier\");\n            $(item).find(\".js-microsite-lookup-url-selector\").on(\"change\", function (e) {\n                if ($(this).val() === \"custom\") {\n                    $(this).closest(\".js-microsite-url-lookup-container\").find(\".js-enter-microsite-url-row\").removeClass(\"hidden\");\n                    $(this).closest(\".js-microsite-url-lookup-container\").find(\".js-enter-microsite-url-row\").find(\".js-enter-microsite-url\").removeClass(\"hidden\");\n                    $(this).closest(\".js-microsite-url-lookup-container\").find(\".js-microsite-url-value\").val(\"\");\n                    $(this).closest(\".js-microsite-url-lookup-container\").find(\".js-enter-microsite-url-row\").find(\".js-enter-microsite-url\").val(\"\");\n                }\n                else {\n                    $(this).closest(\".js-microsite-url-lookup-container\").find(\".js-enter-microsite-url-row\").addClass(\"hidden\");\n                    $(this).closest(\".js-microsite-url-lookup-container\").find(\".js-enter-microsite-url-row\").find(\".js-enter-microsite-url\").addClass(\"hidden\");\n                    $(this).closest(\".js-microsite-url-lookup-container\").find(\".js-microsite-url-value\").val($(this).closest(\".js-microsite-url-lookup-container\").find(\".js-microsite-lookup-url-selector\").val());\n                }\n            });\n            $(item).find(\".js-enter-microsite-url\").on(\"blur\", function (e) {\n                $(this).closest(\".js-microsite-url-lookup-container\")\n                    .find(\".js-microsite-url-value\").val($(this).closest(\".js-microsite-url-lookup-container\")\n                    .find(\".js-enter-microsite-url-row\").find(\".js-enter-microsite-url\").val());\n            });\n        });\n    }\n    SetNames(container, isScheduled) {\n        var appendWithLaunchName = \"\";\n        var appendWithArchiveDate = \"\";\n        if (isScheduled) {\n            if ($(container).find(\"#launch-date\").val() !== \"\") {\n                appendWithLaunchName = dayjs.utc($(container).find(\"#launch-date\").val()).format('MM/DD/YYYY').toString();\n            }\n        }\n        else {\n            appendWithLaunchName = dayjs.utc((new Date()).toISOString()).format('MM/DD/YYYY').toString();\n        }\n        if ($(container).find(\"#archive-date\").val() !== \"\") {\n            appendWithArchiveDate = dayjs.utc($(container).find(\"#archive-date\").val()).format('MM/DD/YYYY').toString();\n        }\n        var microsoftFriendlyName = $(container).find(\".js-microsite-friendly-name\").attr(\"data-microsite-friendly-name\") + \" \" + (appendWithLaunchName !== \"\" ? appendWithLaunchName + \" - \" + appendWithArchiveDate : appendWithArchiveDate);\n        var contactListName = $(container).find(\".js-contact-list-name\").attr(\"data-contact-list-name\") + \" \" + (appendWithLaunchName !== \"\" ? appendWithLaunchName + \" - \" + appendWithArchiveDate : appendWithArchiveDate);\n        $(container).find(\".js-microsite-friendly-name\").val(microsoftFriendlyName);\n        $(container).find(\".js-contact-list-name\").val(contactListName);\n    }\n    setMicrositeInformation(item, self) {\n        var me = this;\n        GlobalPopulateTimeZones($(item).find(\".time-zone\"));\n        $(item).find('#launch-date').on(\"change\", function (e) {\n            var container = $(this).closest(\".js-microsite-launch-details-container\");\n            var itemId = \"-\" + $(container).attr(\"data-field-identifier\");\n            if ($(container).find(\"input[name=launch\" + itemId + \"]:checked\").val() === \"schedule\") {\n                self.SetNames(container, true);\n            }\n            else {\n                self.SetNames(container, false);\n            }\n        });\n        $(item).find('#archive-date').on(\"change\", function (e) {\n            var container = $(this).closest(\".js-microsite-launch-details-container\");\n            self.SetNames(container, true);\n        });\n        if ($(item).find(\".js-launch-time-zone-data\").val() !== \"\" && $(item).find(\".js-launch-time-zone-data\").val() !== undefined) {\n            $(\".js-launch-time-zone\").val($(\".js-launch-time-zone-data\").val());\n        }\n        if ($(item).find(\".js-archive-time-zone-data\").val() !== \"\" && $(item).find(\".js-archive-time-zone-data\").val() !== undefined) {\n            $(item).find(\".js-archive-time-zone\").val($(\".js-archive-time-zone-data\").val());\n        }\n        if ($(item).find(\"#launch-date-full\").val() !== \"\") {\n            ReloadForCustomizationAndOrder($(item).find('#launch-date-full').val(), $(item).find(\".js-schedule-launch-config\").find(\".js-launch-time-zone\").val(), $(item).find('#launch-time'), $(item).find('#launch-date'));\n        }\n        if ($(item).find(\"#archive-date-full\").val() !== \"\") {\n            ReloadForCustomizationAndOrder($(item).find('#archive-date-full').val(), $(item).find(\".js-schedule-archive-config\").find(\".js-archive-time-zone\").val(), $(item).find('#archive-time'), $(item).find('#archive-date'));\n        }\n        var launchDateEl = $(item).find('#launch-date-picker').get(0);\n        var launchTimeEl = $(item).find('#launch-time-picker').get(0);\n        var archiveDateEl = $(item).find('#archive-date-picker').get(0);\n        var archiveTimeEl = $(item).find('#archive-time-picker').get(0);\n        ConfigureDatePicker($(item).find('#launch-date-picker'));\n        ConfigureDatePicker($(item).find('#archive-date-picker'));\n        ConfigureTimePicker($(item).find('#launch-time-picker'));\n        ConfigureTimePicker($(item).find('#archive-time-picker'));\n        //InitializeDatePickerForOrder(launchDateEl, launchTimeEl, archiveDateEl, archiveTimeEl);\n        me.bindLocalizedTime();\n        $.each($(item).find(\".js-microsite-launch-details-container\"), function (i, e) {\n            var itemId = \"-\" + $(e).attr(\"data-field-identifier\");\n            $(item).find(\"input[name=launch\" + itemId + \"]\").on(\"change\", function (e) {\n                var me = this;\n                if ($(this).val() === \"schedule\") {\n                    $(this).closest(\".js-microsite-launch-details-container\").find(\".js-schedule-launch-config\").removeClass(\"hidden\");\n                    var container = $(this).closest(\".js-microsite-launch-details-container\");\n                    self.SetNames(container, true);\n                }\n                else {\n                    $(this).closest(\".js-microsite-launch-details-container\").find(\".js-schedule-launch-config\").addClass(\"hidden\");\n                    var container = $(this).closest(\".js-microsite-launch-details-container\");\n                    self.SetNames(container, false);\n                }\n            });\n            $(item).find(\"input[name=archive\" + itemId + \"]\").on(\"change\", function (e) {\n                if ($(this).val() === \"archive\") {\n                    $(this).closest(\".js-microsite-launch-details-container\").find(\".js-archive-list-schedule\").removeClass(\"hidden\");\n                }\n                else {\n                    $(this).closest(\".js-microsite-launch-details-container\").find(\".js-archive-list-schedule\").addClass(\"hidden\");\n                }\n            });\n        });\n    }\n    setSocialPostInformation(item) {\n        var me = this;\n    }\n    setEmailInformation(item) {\n        var me = this;\n        GlobalPopulateTimeZones($(item).find(\".time-zone\"));\n        $(item).find(\".js-email-recipient-list-selector button\").on(\"click\", function (e) {\n            if ($(e.currentTarget).attr(\"data-contact-list-id\") !== \"\") {\n                me.openEmailUploadedListRecipients($(e.currentTarget));\n            }\n        });\n        $(item).find(\".js-email-seed-list-selector button\").on(\"click\", function (e) {\n            if ($(e.currentTarget).attr(\"data-contact-list-id\") !== \"\") {\n                me.openEmailUploadedListRecipients($(e.currentTarget));\n            }\n        });\n        $(item).find(\".js-resend-verification-email\").on(\"click\", function (e) {\n            e.preventDefault();\n            var verifyEmailContainer = $(e.currentTarget).closest(\".js-verify-email-container\");\n            var linkFromConfirmationEmailContainer = $(verifyEmailContainer).find(\".js-link-from-confirmation-email-container\");\n            var message = $(e.currentTarget).attr(\"data-confirmation-email-send-out\");\n            $.ajax({\n                method: \"GET\",\n                url: \"/SendGridVerification/ResendVerificationEmail/\" + $(e.currentTarget).attr(\"data-sender-identity\")\n            }).done(function (data) {\n                if (data != null) {\n                    if (data) {\n                        $(linkFromConfirmationEmailContainer).removeClass(\"hide\");\n                        $(linkFromConfirmationEmailContainer).find(\"js-resend-verification-email\").attr(\"data-sender-identity\", data.senderIdentity);\n                        alert(message);\n                    }\n                }\n            });\n        });\n        $(item).find(\".js-custom-sender-field\").on(\"blur\", function (e) {\n            var restrictToVerifiedDomainsOnly = $(e.currentTarget).attr(\"data-restrict-to-verified-domains-only\");\n            //if (restrictToVerifiedDomainsOnly == \"true\") {\n            me.CheckIsEmailInVerifiedDomain($(e.currentTarget), item, false);\n            //}\n        });\n        $(item).find(\".js-verify-confirmation-link\").on(\"click\", function (e) {\n            e.preventDefault();\n            $(verifyEmailContainer).attr(\"data-sender-verified\", \"false\");\n            var verifyEmailContainer = $(e.currentTarget).closest(\".js-verify-email-container\");\n            var linkFromConfirmationEmailContainer = $(verifyEmailContainer).find(\".js-link-from-confirmation-email-container\");\n            var verifiedMessage = $(e.currentTarget).attr(\"data-confirm-message\");\n            var sendGridConfirmationLinkDTO = {\n                url: $(linkFromConfirmationEmailContainer).find(\".js-link-from-confirmation-email\").val()\n            };\n            $(verifyEmailContainer).find(\".js-verify-sender\").removeAttr(\"disabled\");\n            $(verifyEmailContainer).find(\".js-verify-sender\").removeClass(\"hide\");\n            $(verifyEmailContainer).find(\".js-view-sender-list\").removeClass(\"hide\");\n            var url = \"/SendGridVerification/VerifySenderRequest\";\n            $.when(submitAjaxRequest(sendGridConfirmationLinkDTO, url, \"POST\").done(function (data) {\n                waitingDialog.hide();\n                if (data != null) {\n                    if (data.isVerified) {\n                        $(verifyEmailContainer).attr(\"data-sender-verified\", \"true\");\n                        $(linkFromConfirmationEmailContainer).find(\".js-link-from-confirmation-email\").val(\"\");\n                        $(linkFromConfirmationEmailContainer).addClass(\"hide\");\n                        $(linkFromConfirmationEmailContainer).find(\"js-resend-verification-email\").attr(\"data-sender-identity\", \"\");\n                        $(verifyEmailContainer).find(\".js-verified-icon\").removeClass(\"hide\");\n                        $(verifyEmailContainer).find(\".js-custom-sender-field\").attr(\"readonly\", \"true\");\n                        alert(verifiedMessage);\n                    }\n                    else if (data.exceptionErrors != \"\") {\n                        alert(data.exceptionErrors);\n                        $(linkFromConfirmationEmailContainer).find(\".js-link-from-confirmation-email\").val(\"\");\n                        $(linkFromConfirmationEmailContainer).addClass(\"hide\");\n                        $(linkFromConfirmationEmailContainer).find(\"js-resend-verification-email\").attr(\"data-sender-identity\", \"\");\n                        $(verifyEmailContainer).find(\".js-verified-icon\").addClass(\"hide\");\n                        waitingDialog.hide();\n                    }\n                }\n                else {\n                    waitingDialog.hide();\n                }\n            }));\n        });\n        $(item).find(\".js-verify-sender\").on(\"click\", function (e) {\n            e.preventDefault();\n            me.SendCreateRequest($(e.currentTarget), item, false);\n        });\n        $(item).find(\".js-send-recipient-list\").on(\"change\", function (e) {\n            $(e.currentTarget).closest(\".js-email-send-details-container\").find(\".js-email-recipient-list-selector\").addClass(\"hide\");\n            $(e.currentTarget).closest(\".js-email-send-details-container\").find(\".js-email-recipient-list-selector button\").removeAttr(\"data-contact-list-id\");\n            if ($(e.currentTarget).val() != \"\" && $(e.currentTarget).attr(\"data-number-contacts\") !== \"0\") {\n                var numberOfContacts = $(item).find(\".js-send-recipient-list\").find(':selected').attr('data-number-contacts');\n                if (numberOfContacts !== \"0\") {\n                    $(e.currentTarget).closest(\".js-email-send-details-container\").find(\".js-email-recipient-list-selector\").removeClass(\"hide\");\n                    $(e.currentTarget).closest(\".js-email-send-details-container\").find(\".js-email-recipient-list-selector button\").attr(\"data-contact-list-id\", $(e.currentTarget).val());\n                }\n            }\n        });\n        $(item).find(\".js-send-seed-list\").on(\"change\", function (e) {\n            $(e.currentTarget).closest(\".js-email-send-details-container\").find(\".js-email-seed-list-selector\").addClass(\"hide\");\n            $(e.currentTarget).closest(\".js-email-send-details-container\").find(\".js-email-seed-list-selector button\").removeAttr(\"data-contact-list-id\");\n            if ($(e.currentTarget).val() != \"\" && $(e.currentTarget).attr(\"data-number-contacts\") !== \"0\") {\n                var numberOfContacts = $(item).find(\".js-send-seed-list\").find(':selected').attr('data-number-contacts');\n                if (numberOfContacts !== \"0\") {\n                    $(e.currentTarget).closest(\".js-email-send-details-container\").find(\".js-email-seed-list-selector\").removeClass(\"hide\");\n                    $(e.currentTarget).closest(\".js-email-send-details-container\").find(\".js-email-seed-list-selector button\").attr(\"data-contact-list-id\", $(e.currentTarget).val());\n                }\n            }\n        });\n        if ($(item).find(\".js-send-time-zone-data\").val() !== \"\" && $(item).find(\".js-send-time-zone-data\").val() !== undefined) {\n            $(\".js-send-time-zone\").val($(\".js-send-time-zone-data\").val());\n        }\n        if ($(item).find(\".js-seed-send-time-zone-data\").val() !== \"\" && $(item).find(\".js-seed-send-time-zone-data\").val() !== undefined) {\n            $(item).find(\".js-seed-send-time-zone\").val($(\".js-seed-send-time-zone-data\").val());\n        }\n        if ($(item).find(\"#send-date-full\").val() !== \"\") {\n            ReloadForCustomizationAndOrder($(item).find('#send-date-full').val(), $(item).find(\".js-schedule-send-config\").find(\".js-send-time-zone\").val(), $(item).find('#send-time'), $(item).find('#send-date'));\n        }\n        if ($(item).find(\"#seed-send-date-full\").val() !== \"\") {\n            ReloadForCustomizationAndOrder($(item).find('#seed-send-date-full').val(), $(item).find(\".js-schedule-seed-send-config\").find(\".js-seed-send-time-zone\").val(), $(item).find('#seed-send-time'), $(item).find('#seed-send-date'));\n        }\n        var sendDateEl = $(item).find('#send-date-picker').get(0);\n        var sendTimeEl = $(item).find('#send-time-picker').get(0);\n        var seedDateEl = $(item).find('#seed-send-date-picker').get(0);\n        var seedTimeEl = $(item).find('#seed-send-time-picker').get(0);\n        ConfigureDatePicker($(item).find('#send-date-picker'));\n        ConfigureDatePicker($(item).find('#seed-send-date-picker'));\n        ConfigureTimePicker($(item).find('#send-time-picker'));\n        ConfigureTimePicker($(item).find('#seed-send-time-picker'));\n        //InitializeDatePickerForOrder(sendDateEl, sendTimeEl, seedDateEl, seedTimeEl);\n        $(item).find(\".js-upload-recipient-list\").on(\"click\", function (e) {\n            e.preventDefault();\n            me.OpenUploadModal($(e.currentTarget));\n        });\n        $(item).find(\".js-search-list-by-email\").on(\"click\", function (e) {\n            $(e.currentTarget).closest(\".js-email-send-details-container\").find(\".js-email-recipient-list-selector\").addClass(\"hide\");\n            var recipentlist = $(item).find(\".js-send-recipient-list\");\n            e.preventDefault();\n            var email = $(item).find(\".js-email-to-search\").val();\n            if (email != \"\") {\n                $('#ajax-loading').modal();\n                $.ajax({\n                    method: \"GET\",\n                    url: \"/EmailCampaign/GetContactListByEmailAddress/\" + email\n                }).done(function (data) {\n                    $(\"#ajax-loading\").modal(\"hide\");\n                    if (data != null) {\n                        if (data.length == 1) {\n                            $(recipentlist).find(\"option\").each(function () {\n                                if ($(this).val() != data && $(this).val() != \"\") {\n                                    this.remove();\n                                }\n                            });\n                        }\n                    }\n                }).fail(function (response, textStatus, errorThrown) {\n                    alert(errorThrown);\n                });\n            }\n        });\n        $(item).find(\".js-search-list-by-email-reset\").on(\"click\", function (e) {\n            $(e.currentTarget).closest(\".js-email-send-details-container\").find(\".js-email-recipient-list-selector\").addClass(\"hide\");\n            $(item).find(\".js-email-to-search\").val(\"\");\n            var originalList = $(item).find(\".js-send-recipient-list-clone\");\n            var recipentlist = $(item).find(\".js-send-recipient-list\");\n            $(recipentlist).empty();\n            e.preventDefault();\n            $(originalList).find(\"option\").each(function () {\n                $('<option>').val($(this).val()).text($(this).text()).attr('data-number-contacts', $(this).attr(\"data-number-contacts\")).appendTo($(recipentlist));\n            });\n        });\n        $(item).find(\".js-upload-seed-list\").on(\"click\", function (e) {\n            e.preventDefault();\n            me.OpenUploadModal($(e.currentTarget));\n        });\n        me.bindLocalizedTime();\n        $.each($(item).find(\".js-email-send-details-container\"), function (i, e) {\n            var itemId = \"-\" + $(e).attr(\"data-field-identifier\");\n            $(item).find(\"input[name=listSend\" + itemId + \"]\").on(\"change\", function (e) {\n                if ($(this).val() === \"schedule\") {\n                    $(this).closest(\".js-email-send-details-container\").find(\".js-schedule-send-config\").removeClass(\"hidden\");\n                }\n                else {\n                    $(this).closest(\".js-email-send-details-container\").find(\".js-schedule-send-config\").addClass(\"hidden\");\n                }\n            });\n            $(item).find(\"input[name=seedListSend\" + itemId + \"]\").on(\"change\", function (e) {\n                if ($(this).val() === \"seperate\") {\n                    $(this).closest(\".js-email-send-details-container\").find(\".js-seed-list-schedule\").removeClass(\"hidden\");\n                }\n                else {\n                    $(this).closest(\".js-email-send-details-container\").find(\".js-seed-list-schedule\").addClass(\"hidden\");\n                }\n            });\n        });\n        $.each($(item).find(\".js-fromaddress-container\"), function (i, e) {\n            $(item).find(\"input[name=fromname]\").on(\"change\", function (e) {\n                if ($(this).val() === \"defaultSender\") {\n                    $(this).closest(\".js-fromaddress-container\").find(\".js-default-sender-field\").attr(\"data-field-name\", \"EmailFrom\");\n                    $(this).closest(\".js-fromaddress-container\").find(\".js-custom-sender-field\").removeAttr(\"data-field-name\");\n                    $(this).closest(\".js-fromaddress-container\").find(\".js-default-sender-field\").removeClass(\"hide\");\n                    $(this).closest(\".js-fromaddress-container\").find(\".js-verify-email-container\").addClass(\"hide\");\n                    $(this).closest(\".js-fromaddress-container\").find(\".js-verify-email-container\").find(\".js-custom-sender-field\").val(\"\");\n                    $(this).closest(\".js-fromaddress-container\").find(\".js-default-sender-field\").attr(\"data-isrequired\", \"True\");\n                    $(this).closest(\".js-fromaddress-container\").find(\".js-verify-email-container\").find(\".js-custom-sender-field\").removeAttr(\"data-isrequired\");\n                }\n                else {\n                    $(this).closest(\".js-fromaddress-container\").find(\".js-default-sender-field\").removeAttr(\"data-field-name\");\n                    $(this).closest(\".js-fromaddress-container\").find(\".js-custom-sender-field\").attr(\"data-field-name\", \"EmailFrom\");\n                    $(this).closest(\".js-fromaddress-container\").find(\".js-default-sender-field\").addClass(\"hide\");\n                    $(this).closest(\".js-fromaddress-container\").find(\".js-verify-email-container\").removeClass(\"hide\");\n                    $(this).closest(\".js-fromaddress-container\").find(\".js-default-sender-field\").removeAttr(\"data-isrequired\");\n                    $(this).closest(\".js-fromaddress-container\").find(\".js-verify-email-container\").find(\".js-custom-sender-field\").attr(\"data-isrequired\", \"True\");\n                }\n            });\n        });\n        $(document).on(\"change\", \".js-send-separate-seed-email\", function (e) {\n            if ($(this).is(\":checked\")) {\n                $(this).closest(\".js-email-send-details-container\").find(\".js-schedule-seed-send-config\").removeClass(\"hidden\");\n            }\n            else {\n                $(this).closest(\".js-email-send-details-container\").find(\".js-schedule-seed-send-config\").addClass(\"hidden\");\n            }\n        });\n    }\n    OpenDirectMailUploadModal(button) {\n        waitingDialog.show(\"\");\n        var me = this;\n        var assignmentIdentifier = $(button).attr(\"data-product-catalogassignment-identifier\");\n        var locale = $(button).attr(\"data-locale\");\n        var emailDirectMailDetailsContainer = $(button).closest(\".js-direct-mail-configuration-container\");\n        var appendToName = \"\";\n        $.when(me.GetDirectMailUploadModal(assignmentIdentifier, locale).done(function (data, textStatus, response) {\n            var options = {\n                classes: \"configure-send-modal\",\n                origin: $(button)\n            };\n            me._globalModal.openGlobalModal(data, \"panel\", options);\n            var confirmContainer = $(\".global-modal\").find(\".js-confirm-direct-mail-file-container\");\n            var fileUploadContainer = $(\".global-modal\").find(\".js-direct-mail-file-upload-container\");\n            var tableBody = $(\".global-modal\").find(\".js-response-items-body\");\n            if (appendToName !== \"\") {\n                $(\".global-modal\").find(\".js-list-name\").attr(\"value\", $(\".global-modal\").find(\".js-list-name\").attr(\"value\") + \" - \" + appendToName);\n            }\n            waitingDialog.hide();\n            $(\".global-modal\").find(\".js-chose-new-file\").on('click', function (e) {\n                e.preventDefault();\n                $(tableBody).empty();\n                $(\".global-modal\").find(\".js-confirm-file\").prop(\"disabled\", false);\n                $(confirmContainer).addClass(\"hide\");\n                $(fileUploadContainer).removeClass(\"hide\");\n            });\n            $(\".global-modal\").find(\".js-upload-direct-mail-list\").on('click', function (e) {\n                var assignmentIdentifier = $(e.currentTarget).attr(\"data-product-catalog-assignment-identifier\");\n                var uploadType = $(e.currentTarget).attr(\"data-upload-type\");\n                var noSelectedFileMessage = $(e.currentTarget).attr(\"data-no-file-selected-message\");\n                var mapFieldNameLabel = $(e.currentTarget).attr(\"data-map-field-names-label\");\n                var fileNameRequired = $(e.currentTarget).attr(\"data-list-name-required\");\n                var parentContainer = $(e.currentTarget).closest(\".js-upload-direct-mail-recipient-container\");\n                e.preventDefault();\n                if ($(\".global-modal\").find(\".js-list-name\").val() == \"\") {\n                    alert(fileNameRequired);\n                    return false;\n                }\n                var formData = new FormData();\n                var element = document.getElementById(\"uploadDirectMailList\");\n                var file = element.files[0];\n                if (element.files.length > 0) {\n                    formData.append('file', file);\n                    formData.append('assignmentIdentifier', assignmentIdentifier);\n                    formData.append('uploadType', uploadType);\n                    formData.append('listName', $(\".global-modal\").find(\".js-list-name\").val());\n                    formData.append('confirm', \"false\");\n                    waitingDialog.show(\"\");\n                    var url = (\"/DirectMail/UploadDirectMailRecipients\");\n                    $.when(submitAjaxRequest(undefined, url, \"POST\", undefined, undefined, undefined, formData).done(function (data) {\n                        waitingDialog.hide();\n                        if (data != null) {\n                            $(fileUploadContainer).addClass(\"hide\");\n                            $(confirmContainer).removeClass(\"hide\");\n                            var result = \"\";\n                            $(tableBody).empty();\n                            if (data.errorMessage.length == 0) {\n                                result += \"<tr>\";\n                                result += \"<td>\" + data.numberOfEntries + \" </td>\";\n                                result += \"<td>\" + $(confirmContainer).attr(\"data-list-number-of-entries\") + \" </td>\";\n                                result += \"</tr>\";\n                            }\n                            else {\n                                $(confirmContainer).find(\".js-confirm-file\").addClass(\"hide\");\n                                result += \"<tr>\";\n                                result += \"<td colspan='2'>\" + data.errorMessage + \"</td>\";\n                                result += \"</tr>\";\n                            }\n                            $(tableBody).html(result);\n                        }\n                    }));\n                }\n                else {\n                    waitingDialog.hide();\n                    bootbox.alert(noSelectedFileMessage);\n                    return false;\n                }\n            });\n            $(\".global-modal\").find(\".js-confirm-direct-mail-file\").on('click', function (e) {\n                e.preventDefault();\n                var assignmentIdentifier = $(e.currentTarget).attr(\"data-product-catalog-assignment-identifier\");\n                var uploadType = $(e.currentTarget).attr(\"data-upload-type\");\n                var noSelectedFileMessage = $(e.currentTarget).attr(\"data-no-file-selected-message\");\n                var fileNameRequired = $(e.currentTarget).attr(\"data-list-name-required\");\n                if ($(\".global-modal\").find(\".js-list-name\").val() == \"\") {\n                    alert(fileNameRequired);\n                    $(e.currentTarget).prop(\"disabled\", false);\n                    waitingDialog.hide();\n                    return false;\n                }\n                e.preventDefault();\n                var formData = new FormData();\n                var element = document.getElementById(\"uploadDirectMailList\");\n                var file = element.files[0];\n                if (element.files.length > 0) {\n                    $(e.currentTarget).prop(\"disabled\", true);\n                    waitingDialog.show(\"\");\n                    formData.append('file', file);\n                    formData.append('assignmentIdentifier', assignmentIdentifier);\n                    formData.append('uploadType', uploadType);\n                    formData.append('listName', $(\".global-modal\").find(\".js-list-name\").val());\n                    formData.append('confirm', \"true\");\n                    var url = (\"/DirectMail/UploadDirectMailRecipients\");\n                    $.when(submitAjaxRequest(undefined, url, \"POST\", undefined, undefined, undefined, formData).done(function (data) {\n                        if (data != null) {\n                            var result = \"\";\n                            $(tableBody).empty();\n                            if (data.errorMessage.length != 0) {\n                                $(confirmContainer).find(\".js-confirm-file\").addClass(\"hide\");\n                                result += \"<tr>\";\n                                result += \"<td colspan='2'>\" + data.errorMessage + \"</td>\";\n                                result += \"</tr>\";\n                                $(tableBody).html(result);\n                                $(\".global-modal\").find(\".js-confirm-direct-mail-file\").removeAttr(\"disabled\");\n                                waitingDialog.hide();\n                                return false;\n                            }\n                            else {\n                                $(e.currentTarget).prop(\"disabled\", false);\n                                waitingDialog.hide();\n                                $(button).attr(\"data-contact-list-id\", data.contactListId);\n                                $(button).attr(\"data-contact-list-name\", data.contactListName);\n                                var dropdown = $(button).closest(\".form-group\").find(\".js-direct-mail-list-container\");\n                                var dropdownContainer = $(dropdown).closest(\".js-direct-mail-contact-list-container\");\n                                var dropdownclone = $(button).closest(\".form-group\").find(\".js-direct-mail-list-container-clone\");\n                                var directMailListSelector = $(button).closest(\".form-group\").find(\".js-direct-mail-list-selector\").removeClass(\"hide\");\n                                var directMailListSelectorButton = $(button).closest(\".form-group\").find(\".js-direct-mail-list-selector button\");\n                                $(directMailListSelectorButton).removeAttr(\"data-contact-list-id\");\n                                $(directMailListSelectorButton).attr(\"data-contact-list-id\", data.contactListId);\n                                var contactListId = data.contactListId;\n                                $.ajax({\n                                    method: \"GET\",\n                                    url: \"/DirectMail/GetDirectMailContactLists/\" + assignmentIdentifier\n                                }).done(function (data) {\n                                    waitingDialog.hide();\n                                    if (data != null) {\n                                        $(dropdownContainer).html(data);\n                                        $(dropdownContainer).find(\".js-direct-mail-list-container\").val(contactListId);\n                                        //$(dropDown).val(contactListId);\n                                        me.setApproximateCostContainer($(dropdownContainer).find(\".js-direct-mail-list-container\"));\n                                        $($(dropdownContainer).find(\".js-direct-mail-list-container\")).on(\"change\", function (e) {\n                                            me.setApproximateCostContainer(this);\n                                        });\n                                        //var container = $(dropDown).closest(\".js-direct-mail-configuration-container\");\n                                        //$(container).find(\".js-direct-mail-list-selector\").addClass(\"hide\");\n                                        //$(container).find(\".js-direct-mail-list-selector button\").removeAttr(\"data-contact-list-id\");\n                                        //$(container).find(\".js-direct-mail-list-cost-container\").addClass(\"hide\");\n                                        //if ($(dropDown).val() != \"\" && $(dropDown).find(':selected').attr('data-number-contacts') !== \"0\") {\n                                        //    var numberOfContacts = $(dropDown).find(':selected').attr('data-number-contacts')\n                                        //    var formattedNumberOfContacts = $(dropDown).find(':selected').attr('data-formatted-number-of-contacts');\n                                        //    var totalPrice = $(dropDown).find(':selected').attr('data-total-price');\n                                        //    if (numberOfContacts !== \"0\") {\n                                        //        $(container).find(\".js-direct-mail-list-selector\").removeClass(\"hide\");\n                                        //        $(container).find(\".js-direct-mail-list-selector button\").attr(\"data-contact-list-id\", $(button).val());\n                                        //        $(container).find(\".js-direct-mail-list-cost-container\").removeClass(\"hide\");\n                                        //        var appxroximateCostCopy = $(container).find(\".js-direct-mail-list-cost-container\").find(\".js-approximatcostcopy\").attr(\"data-approximate-cost-copy\");\n                                        //        $(container).find(\".js-direct-mail-list-cost-container\").find(\".js-approximatcostcopy\").html(appxroximateCostCopy.replace(\"{0}\", formattedNumberOfContacts).replace(\"{1}\", totalPrice));\n                                        //    }\n                                        //}\n                                        me._globalModal.closeGlobalModal();\n                                    }\n                                });\n                            }\n                        }\n                        else {\n                            $(e.currentTarget).prop(\"disabled\", false);\n                            waitingDialog.hide();\n                        }\n                    }));\n                }\n                else {\n                    $(e.currentTarget).prop(\"disabled\", false);\n                    waitingDialog.hide();\n                    bootbox.alert(noSelectedFileMessage);\n                    return false;\n                }\n            });\n        }));\n    }\n    OpenUploadModal(button) {\n        waitingDialog.show(\"\");\n        var me = this;\n        var uploadType = $(button).attr(\"data-upload-type\");\n        var assignmentIdentifier = $(button).attr(\"data-product-catalogassignment-identifier\");\n        var locale = $(button).attr(\"data-locale\");\n        var emailSendDetailsContainer = $(button).closest(\".js-email-send-details-container\");\n        var appendToName = \"\";\n        if ($(emailSendDetailsContainer).find(\"input:radio[name='listSend']:checked\").val() === \"immediately\") {\n            appendToName = dayjs.utc((new Date()).toISOString()).local().format('MM/DD/YYYY').toString();\n        }\n        if ($(emailSendDetailsContainer).find(\"input:radio[name='listSend']:checked\").val() === \"immediately\") {\n            appendToName = dayjs.utc((new Date()).toISOString()).local().format('MM/DD/YYYY').toString();\n        }\n        if ($(emailSendDetailsContainer).find(\".js-send-separate-seed-email\").is(\":checked\") &&\n            $(emailSendDetailsContainer).find(\"input:radio[name='seedListSend']:checked\").val() === \"seperate\") {\n            appendToName = \"\";\n        }\n        $.when(me.GetUploadModal(uploadType, assignmentIdentifier, locale).done(function (data, textStatus, response) {\n            var options = {\n                classes: \"configure-send-modal\",\n                origin: $(button)\n            };\n            me._globalModal.openGlobalModal(data, \"panel\", options);\n            var confirmContainer = $(\".global-modal\").find(\".js-confirm-file-container\");\n            var fileUploadContainer = $(\".global-modal\").find(\".js-file-upload-container\");\n            var tableBody = $(\".global-modal\").find(\".js-response-items-body\");\n            if (appendToName !== \"\") {\n                $(\".global-modal\").find(\".js-list-name\").attr(\"value\", $(\".global-modal\").find(\".js-list-name\").attr(\"value\") + \" - \" + appendToName);\n            }\n            waitingDialog.hide();\n            $(\".global-modal\").find(\".js-chose-new-file\").on('click', function (e) {\n                e.preventDefault();\n                $(tableBody).empty();\n                $(\".global-modal\").find(\".js-confirm-file\").prop(\"disabled\", false);\n                $(confirmContainer).addClass(\"hide\");\n                $(fileUploadContainer).removeClass(\"hide\");\n            });\n            $(\".global-modal\").find(\".js-upload-email-list\").on('click', function (e) {\n                var assignmentIdentifier = $(e.currentTarget).attr(\"data-product-catalog-assignment-identifier\");\n                var uploadType = $(e.currentTarget).attr(\"data-upload-type\");\n                var noSelectedFileMessage = $(e.currentTarget).attr(\"data-no-file-selected-message\");\n                var mapFieldNameLabel = $(e.currentTarget).attr(\"data-map-field-names-label\");\n                var fileNameRequired = $(e.currentTarget).attr(\"data-list-name-required\");\n                var parentContainer = $(e.currentTarget).closest(\".js-upload-email-recipient-container\");\n                e.preventDefault();\n                if ($(\".global-modal\").find(\".js-list-name\").val() == \"\") {\n                    alert(fileNameRequired);\n                    return false;\n                }\n                var formData = new FormData();\n                var element = document.getElementById(\"uploadRecipientList\");\n                var file = element.files[0];\n                if (element.files.length > 0) {\n                    formData.append('file', file);\n                    formData.append('assignmentIdentifier', assignmentIdentifier);\n                    formData.append('uploadType', uploadType);\n                    formData.append('listName', $(\".global-modal\").find(\".js-list-name\").val());\n                    formData.append('confirm', \"false\");\n                    waitingDialog.show(\"\");\n                    var url = (\"/EmailCampaign/UploadEmailRecipients\");\n                    $.when(submitAjaxRequest(undefined, url, \"POST\", undefined, undefined, undefined, formData).done(function (data) {\n                        waitingDialog.hide();\n                        if (data != null) {\n                            $(fileUploadContainer).addClass(\"hide\");\n                            $(confirmContainer).removeClass(\"hide\");\n                            $(confirmContainer).find(\".js-confirm-file\").removeClass(\"hide\");\n                            $(confirmContainer).find(\"#mismatchedFieldNameMessage\").addClass(\"hide\");\n                            var result = \"\";\n                            $(tableBody).empty();\n                            if (data.fileHeaderNames != null && data.fileHeaderNames.length > 0) {\n                                result += \"<tr>\";\n                                result += \"<td>\" + mapFieldNameLabel + \": </td>\";\n                                result += \"<td>\" + \"<select class='js-mapped-field-name'>\";\n                                jQuery.each(data.fileHeaderNames, function (index, item) {\n                                    if (item.isDefault == false) {\n                                        result += \"<option value='\" + item.headerName + \"'>\" + item.headerName + \"</option>\";\n                                    }\n                                    else {\n                                        result += \"<option value='\" + item.headerName + \"' selected =selected'>\" + item.headerName + \"</option>\";\n                                    }\n                                });\n                                result += \"</select>\";\n                                result += \"</tr>\";\n                                $(confirmContainer).find(\".js-map-email-file\").removeClass(\"hide\");\n                                $(confirmContainer).find(\".js-confirm-file\").addClass(\"hide\");\n                            }\n                            else if (data.hasMismatchedColumnNames == true) {\n                                $(confirmContainer).find(\"#mismatchedFieldNameMessage\").removeClass(\"hide\");\n                                $(confirmContainer).find(\".js-confirm-file\").remove();\n                            }\n                            else if (data.errorMessage.length == 0) {\n                                result += \"<tr>\";\n                                result += \"<td>\" + data.numberOfEntries + \" </td>\";\n                                result += \"<td>\" + $(confirmContainer).attr(\"data-list-number-of-entries\") + \" </td>\";\n                                result += \"</tr>\";\n                                if (data.missingFieldsCount > 0) {\n                                    result += \"<tr>\";\n                                    result += \"<td>\" + data.missingFieldsCount + \" </td>\";\n                                    result += \"<td>\" +\n                                        $(confirmContainer).attr(\"data-list-number-of-entries-with-missing-field\") +\n                                        \" </td>\";\n                                    result += \"</tr>\";\n                                }\n                                if (data.entriesWithMissingData > 0) {\n                                    result += \"<tr>\";\n                                    result += \"<td>\" + data.entriesWithMissingData + \" </td>\";\n                                    result += \"<td>\" +\n                                        $(confirmContainer).attr(\"data-list-number-of-entries-with-missing-data\") +\n                                        \" </td>\";\n                                    result += \"</tr>\";\n                                }\n                                if (data.entriesWithInvalidEmailData) {\n                                    result += \"<tr>\";\n                                    result += \"<td>\" + data.entriesWithInvalidEmailData + \" </td>\";\n                                    result += \"<td>\" +\n                                        $(confirmContainer).attr(\"data-list-number-of-entries-with-invalid-email\") +\n                                        \" </td>\";\n                                    result += \"</tr>\";\n                                }\n                            }\n                            else {\n                                $(confirmContainer).find(\".js-confirm-file\").addClass(\"hide\");\n                                result += \"<tr>\";\n                                result += \"<td colspan='2'>\" + data.errorMessage + \"</td>\";\n                                result += \"</tr>\";\n                            }\n                            $(tableBody).html(result);\n                        }\n                    }));\n                }\n                else {\n                    waitingDialog.hide();\n                    bootbox.alert(noSelectedFileMessage);\n                    return false;\n                }\n            });\n            $(\".global-modal\").find(\".js-map-email-file\").on('click', function (e) {\n                waitingDialog.show(\"\");\n                var assignmentIdentifier = $(e.currentTarget).attr(\"data-product-catalog-assignment-identifier\");\n                var uploadType = $(e.currentTarget).attr(\"data-upload-type\");\n                var noSelectedFileMessage = $(e.currentTarget).attr(\"data-no-file-selected-message\");\n                var mapFieldNameLabel = $(e.currentTarget).attr(\"data-map-field-names-label\");\n                var fileNameRequired = $(e.currentTarget).attr(\"data-list-name-required\");\n                if ($(\".global-modal\").find(\".js-list-name\").val() === \"\") {\n                    alert(fileNameRequired);\n                    return false;\n                }\n                e.preventDefault();\n                var formData = new FormData();\n                var element = document.getElementById(\"uploadRecipientList\");\n                var file = element.files[0];\n                if (element.files.length > 0) {\n                    formData.append('file', file);\n                    formData.append('assignmentIdentifier', assignmentIdentifier);\n                    formData.append('uploadType', uploadType);\n                    formData.append('listName', $(\".global-modal\").find(\".js-list-name\").val());\n                    if ($(\".global-modal\").find(\".js-mapped-field-name\").length > 0 || $(\".global-modal\").find(\"#mappedfieldname\").val() !== \"\") {\n                        if ($(\".global-modal\").find(\".js-mapped-field-name\").length > 0) {\n                            formData.append('emailFieldName', $(\".global-modal\").find(\".js-mapped-field-name\").val());\n                            $(\".global-modal\").find(\"#mappedfieldname\").val($(\".global-modal\").find(\".js-mapped-field-name\").val());\n                        }\n                        else {\n                            formData.append('emailFieldName', $(\".global-modal\").find(\"#mappedfieldname\").val());\n                        }\n                        if ($(\".global-modal\").find(\"#mappedfieldname\").val() !== \"\") {\n                            formData.append('confirm', \"map\");\n                        }\n                        else {\n                            formData.append('confirm', \"true\");\n                        }\n                    }\n                    else {\n                        formData.append('confirm', \"true\");\n                    }\n                    var url = (\"/EmailCampaign/UploadEmailRecipients\");\n                    $.when(submitAjaxRequest(undefined, url, \"POST\", undefined, undefined, undefined, formData).done(function (data) {\n                        waitingDialog.hide();\n                        if (data != null) {\n                            var result = \"\";\n                            $(tableBody).empty();\n                            if (data.errorMessage.length != 0) {\n                                $(confirmContainer).find(\".js-confirm-file\").addClass(\"hide\");\n                                result += \"<tr>\";\n                                result += \"<td colspan='2'>\" + data.errorMessage + \"</td>\";\n                                result += \"</tr>\";\n                            }\n                            else {\n                                $(fileUploadContainer).addClass(\"hide\");\n                                $(confirmContainer).removeClass(\"hide\");\n                                $(confirmContainer).find(\".js-confirm-file\").removeClass(\"hide\");\n                                $(confirmContainer).find(\".js-map-email-file\").addClass(\"hide\");\n                                result += \"<tr>\";\n                                result += \"<td>\" + data.numberOfEntries + \" </td>\";\n                                result += \"<td>\" + $(confirmContainer).attr(\"data-list-number-of-entries\") + \" </td>\";\n                                result += \"</tr>\";\n                                if (data.missingFieldsCount > 0) {\n                                    result += \"<tr>\";\n                                    result += \"<td>\" + data.missingFieldsCount + \" </td>\";\n                                    result += \"<td>\" +\n                                        $(confirmContainer).attr(\"data-list-number-of-entries-with-missing-field\") +\n                                        \" </td>\";\n                                    result += \"</tr>\";\n                                }\n                                if (data.entriesWithMissingData > 0) {\n                                    result += \"<tr>\";\n                                    result += \"<td>\" + data.entriesWithMissingData + \" </td>\";\n                                    result += \"<td>\" +\n                                        $(confirmContainer).attr(\"data-list-number-of-entries-with-missing-data\") +\n                                        \" </td>\";\n                                    result += \"</tr>\";\n                                }\n                                if (data.entriesWithInvalidEmailData) {\n                                    result += \"<tr>\";\n                                    result += \"<td>\" + data.entriesWithInvalidEmailData + \" </td>\";\n                                    result += \"<td>\" +\n                                        $(confirmContainer).attr(\"data-list-number-of-entries-with-invalid-email\") +\n                                        \" </td>\";\n                                    result += \"</tr>\";\n                                }\n                            }\n                            $(tableBody).html(result);\n                        }\n                    }));\n                }\n                else {\n                    waitingDialog.hide();\n                    bootbox.alert(noSelectedFileMessage);\n                    return false;\n                }\n            });\n            $(\".global-modal\").find(\".js-confirm-file\").on('click', function (e) {\n                e.preventDefault();\n                var assignmentIdentifier = $(e.currentTarget).attr(\"data-product-catalog-assignment-identifier\");\n                var uploadType = $(e.currentTarget).attr(\"data-upload-type\");\n                var noSelectedFileMessage = $(e.currentTarget).attr(\"data-no-file-selected-message\");\n                var fileNameRequired = $(e.currentTarget).attr(\"data-list-name-required\");\n                if ($(\".global-modal\").find(\".js-list-name\").val() == \"\") {\n                    alert(fileNameRequired);\n                    $(e.currentTarget).prop(\"disabled\", false);\n                    waitingDialog.hide();\n                    return false;\n                }\n                e.preventDefault();\n                var formData = new FormData();\n                var element = document.getElementById(\"uploadRecipientList\");\n                var file = element.files[0];\n                if (element.files.length > 0) {\n                    $(e.currentTarget).prop(\"disabled\", true);\n                    waitingDialog.show(\"\");\n                    formData.append('file', file);\n                    formData.append('assignmentIdentifier', assignmentIdentifier);\n                    formData.append('uploadType', uploadType);\n                    formData.append('listName', $(\".global-modal\").find(\".js-list-name\").val());\n                    if ($(\".global-modal\").find(\".js-mapped-field-name\").length > 0 || $(\".global-modal\").find(\"#mappedfieldname\").val() !== \"\") {\n                        if ($(\".global-modal\").find(\".js-mapped-field-name\").length > 0) {\n                            formData.append('emailFieldName', $(\".global-modal\").find(\".js-mapped-field-name\").val());\n                            $(\".global-modal\").find(\"#mappedfieldname\").val($(\".global-modal\").find(\".js-mapped-field-name\").val());\n                        }\n                        else {\n                            formData.append('emailFieldName', $(\".global-modal\").find(\"#mappedfieldname\").val());\n                        }\n                        formData.append('confirm', \"true\");\n                    }\n                    else {\n                        formData.append('confirm', \"true\");\n                    }\n                    var url = (\"/EmailCampaign/UploadEmailRecipients\");\n                    $.when(submitAjaxRequest(undefined, url, \"POST\", undefined, undefined, undefined, formData).done(function (data) {\n                        if (data != null) {\n                            var result = \"\";\n                            $(tableBody).empty();\n                            if (data.errorMessage.length != 0) {\n                                $(confirmContainer).find(\".js-confirm-file\").addClass(\"hide\");\n                                result += \"<tr>\";\n                                result += \"<td colspan='2'>\" + data.errorMessage + \"</td>\";\n                                result += \"</tr>\";\n                                $(tableBody).html(result);\n                                waitingDialog.hide();\n                                return false;\n                            }\n                            else {\n                                $(e.currentTarget).prop(\"disabled\", false);\n                                waitingDialog.hide();\n                                $(button).attr(\"data-contact-list-id\", data.contactListId);\n                                $(button).attr(\"data-contact-list-name\", data.contactListName);\n                                var dropdown = uploadType === \"seed\" ? $(button).closest(\".js-email-send-details-container\").find(\".js-send-seed-list\") : (button).closest(\".js-email-send-details-container\").find(\".js-send-recipient-list\");\n                                var dropdownclone = uploadType === \"seed\" ? $(button).closest(\".js-email-send-details-container\").find(\".js-send-seed-list-clone\") : (button).closest(\".js-email-send-details-container\").find(\".js-send-recipient-list-clone\");\n                                var emailListSelector = uploadType === \"seed\" ? $(button).closest(\".js-email-send-details-container\").find(\".js-email-seed-list-selector\").removeClass(\"hide\") : $(button).closest(\".js-email-send-details-container\").find(\".js-email-recipient-list-selector\").removeClass(\"hide\");\n                                var emailListSelectorButton = uploadType === \"seed\" ? $(button).closest(\".js-email-send-details-container\").find(\".js-email-seed-list-selector button\") : $(button).closest(\".js-email-send-details-container\").find(\".js-email-recipient-list-selector button\");\n                                $(emailListSelectorButton).removeAttr(\"data-contact-list-id\");\n                                $(emailListSelectorButton).attr(\"data-contact-list-id\", data.contactListId);\n                                if ($(dropdown).length > 0) {\n                                    $(dropdown).empty();\n                                    $(dropdown).append($(\"<option />\").val(\"\").text(\"\"));\n                                    $.each(data.contactLists, function () {\n                                        $('<option>').val(this.id).text(this.name.split(\"|\")[0]).attr('data-number-contacts', this.numberOfContacts).appendTo($(dropdown));\n                                    });\n                                    $(dropdown).val(data.contactListId);\n                                }\n                                if ($(dropdownclone).length > 0) {\n                                    $(dropdownclone).empty();\n                                    $(dropdownclone).append($(\"<option />\").val(\"\").text(\"\"));\n                                    $.each(data.contactLists, function () {\n                                        $('<option>').val(this.id).text(this.name.split(\"|\")[0]).attr('data-number-contacts', this.numberOfContacts).appendTo($(dropdownclone));\n                                    });\n                                    $(dropdownclone).val(data.contactListId);\n                                }\n                                //$(dropdown).on(\"click\", function (e) {\n                                //\te.preventDefault();\n                                //\tif ($(e.currentTarget).attr(\"data-contact-list-id\") !== \"\") {\n                                //\t\tme.openEmailUploadedListRecipients($(e.currentTarget));\n                                //\t}\n                                //});\n                                me._globalModal.closeGlobalModal();\n                            }\n                        }\n                        else {\n                            $(e.currentTarget).prop(\"disabled\", false);\n                            waitingDialog.hide();\n                        }\n                    }));\n                }\n                else {\n                    $(e.currentTarget).prop(\"disabled\", false);\n                    waitingDialog.hide();\n                    bootbox.alert(noSelectedFileMessage);\n                    return false;\n                }\n            });\n        }));\n    }\n    CheckIsEmailInVerifiedDomain(text, item, isReposted) {\n        waitingDialog.show(\"\");\n        var me = this;\n        var verifyEmailContainer = $(text).closest(\".js-verify-email-container\");\n        $(verifyEmailContainer).find(\".js-verified-icon\").addClass(\"hide\");\n        $(verifyEmailContainer).attr(\"data-sender-verified\", \"false\");\n        var linkFromConfirmationEmailContainer = $(verifyEmailContainer).find(\".js-link-from-confirmation-email-container\");\n        var fromEmail = $(item).find(\".js-custom-sender-field\").val() !== \"\" ? $.trim((item).find(\".js-custom-sender-field\").val()).toLowerCase() : \"\";\n        $(verifyEmailContainer).attr(\"data-sender-verified\", \"false\");\n        var verifiedMessage = $(text).attr(\"data-confirm-message\");\n        var invalidEmailMessage = $(item).find(\".js-custom-sender-field\").attr(\"data-invalid-email-message\");\n        if (fromEmail === \"\") {\n            bootbox.alert($(item).find(\".js-custom-sender-field\").attr(\"data-required-message\"));\n            waitingDialog.hide();\n            return false;\n        }\n        if (!me.IsValidFromEmailAddress(fromEmail)) {\n            bootbox.alert($(item).find(\".js-custom-sender-field\").attr(\"data-invalid-email-message\"));\n            waitingDialog.hide();\n            return false;\n        }\n        var verifiedDomainList = $(text).attr(\"data-verified-domain-list\");\n        if (verifiedDomainList != \"\") {\n            var restrictToVerifiedDomainsOnly = $(text).attr(\"data-restrict-to-verified-domains-only\");\n            var isValidDomainForEmail = false;\n            var domain = fromEmail.split(\"@\")[1];\n            if (verifiedDomainList != \"\") {\n                var verifiedDomainListArray = verifiedDomainList.split(',');\n                if (verifiedDomainListArray.length > 0 && verifiedDomainListArray.indexOf(domain) !== -1) {\n                    isValidDomainForEmail = true;\n                    waitingDialog.hide();\n                    //bootbox.alert(verifiedMessage);\n                    $(verifyEmailContainer).find(\".js-verified-icon\").removeClass(\"hide\");\n                    $(verifyEmailContainer).attr(\"data-sender-verified\", \"true\");\n                    return false;\n                }\n                if (!isValidDomainForEmail && restrictToVerifiedDomainsOnly == 'true') {\n                    bootbox.alert($(text).attr(\"data-domain-mismatch-message\"));\n                    waitingDialog.hide();\n                    return false;\n                }\n            }\n        }\n    }\n    SendCreateRequest(button, item, isReposted) {\n        waitingDialog.show(\"\");\n        var me = this;\n        var verifyEmailContainer = $(button).closest(\".js-verify-email-container\");\n        var linkFromConfirmationEmailContainer = $(verifyEmailContainer).find(\".js-link-from-confirmation-email-container\");\n        var fromEmail = $(item).find(\".js-custom-sender-field\").val() !== \"\" ? $.trim((item).find(\".js-custom-sender-field\").val()).toLowerCase() : \"\";\n        $(verifyEmailContainer).attr(\"data-sender-verified\", \"false\");\n        var verifiedMessage = $(button).attr(\"data-confirm-message\");\n        var invalidEmailMessage = $(item).find(\".js-custom-sender-field\").attr(\"data-invalid-email-message\");\n        if (fromEmail === \"\") {\n            bootbox.alert($(item).find(\".js-custom-sender-field\").attr(\"data-required-message\"));\n            waitingDialog.hide();\n            return;\n        }\n        if (!me.IsValidFromEmailAddress(fromEmail)) {\n            bootbox.alert($(item).find(\".js-custom-sender-field\").attr(\"data-invalid-email-message\"));\n            waitingDialog.hide();\n            return;\n        }\n        var verifiedDomainList = $(button).attr(\"data-verified-domain-list\");\n        var restrictToVerifiedDomainsOnly = $(button).attr(\"data-restrict-to-verified-domains-only\");\n        if (verifiedDomainList != \"\") {\n            var isValidDomainForEmail = false;\n            var domain = fromEmail.split(\"@\")[1];\n            var verifiedDomainListArray = verifiedDomainList.split(',');\n            if (verifiedDomainListArray.length > 0 && verifiedDomainListArray.indexOf(domain) !== -1) {\n                isValidDomainForEmail = true;\n                waitingDialog.hide();\n                bootbox.alert(verifiedMessage);\n                $(verifyEmailContainer).find(\".js-verified-icon\").removeClass(\"hide\");\n                $(verifyEmailContainer).attr(\"data-sender-verified\", \"true\");\n                return false;\n            }\n            if (!isValidDomainForEmail && restrictToVerifiedDomainsOnly == 'true') {\n                bootbox.alert($(button).attr(\"data-domain-mismatch-message\"));\n                waitingDialog.hide();\n                return false;\n            }\n        }\n        var caller = $(button).attr(\"data-button-identifier\");\n        $(verifyEmailContainer).find(\".js-verify-sender\").removeAttr(\"disabled\");\n        var fromAddress = $(item).find(\".js-custom-sender-field\").val();\n        var sendGridConfirmationLinkDTO = {\n            fromAddress: fromAddress\n        };\n        var verifyFromAddressAft = getAntiForgeryToken();\n        $.ajax({\n            method: \"POST\",\n            url: \"/SendGridVerification/VerifyFromAddress\",\n            data: JSON.stringify(sendGridConfirmationLinkDTO),\n            cache: false,\n            traditional: true,\n            contentType: \"application/json; charset=utf-8\",\n            headers: {\n                'RequestVerificationToken': verifyFromAddressAft\n            }\n        }).done(function (data) {\n            if (data != null) {\n                if (data.userExists) {\n                    if (data.isVerified) {\n                        alert(verifiedMessage);\n                        me.SetVerificationData(verifyEmailContainer, data);\n                        waitingDialog.hide();\n                    }\n                    else {\n                        me.OpenSendGridConfirmationLinkModal(caller, fromAddress);\n                        waitingDialog.hide();\n                    }\n                }\n                else {\n                    if (isReposted) {\n                        var submitContainer = $(\".global-modal\").find(\".submit-sender-information-container\");\n                        var dto = {\n                            nickName: $(submitContainer).find(\"#nickname\").val(),\n                            from_Email: $(submitContainer).find(\"#fromemail\").val(),\n                            from_Name: $(submitContainer).find(\"#displayname\").val(),\n                            reply_To: $(submitContainer).find(\"#replyto\").val(),\n                            address: $(submitContainer).find(\"#address\").val(),\n                            city: $(submitContainer).find(\"#city\").val(),\n                            country: $(submitContainer).find(\"#country\").val(),\n                        };\n                        var url = '/SendGridVerification/CreateVerifiedSenderRequest';\n                        $.when(submitAjaxRequest(dto, url, \"POST\").done(function (data) {\n                            me._globalModal.closeGlobalModal();\n                            if (data != null) {\n                                if (data.isNewUserCreated) {\n                                    if (data.userCreated.verified == false) {\n                                        me.OpenSendGridConfirmationLinkModal(caller, fromAddress);\n                                        waitingDialog.hide();\n                                    }\n                                    else {\n                                        me.SetVerificationData(verifyEmailContainer, data);\n                                        waitingDialog.hide();\n                                    }\n                                }\n                                else {\n                                    if (data.error != null) {\n                                        if (data.error.errors.length > 0) {\n                                            if (data.error.errors[0].field != null) {\n                                                bootbox.alert(data.error.errors[0].field + \" \" + data.error.errors[0].message);\n                                            }\n                                            else {\n                                                bootbox.alert(data.error.errors[0].message);\n                                            }\n                                            waitingDialog.hide();\n                                            return;\n                                        }\n                                    }\n                                    if (data.exceptionErrors !== \"\") {\n                                        bootbox.alert(data.exceptionErrors);\n                                        $(verifyEmailContainer).find(\".js-verified-icon\").addClass(\"hide\");\n                                        waitingDialog.hide();\n                                        return;\n                                    }\n                                    if (data.canSendRequestAgain) {\n                                        me.SendCreateRequest(button, item, true);\n                                    }\n                                }\n                            }\n                        }));\n                    }\n                    else {\n                        var sendGridConfirmationLinkDTO = {\n                            fromAddress: fromAddress\n                        };\n                        var getSenderInformationFormAft = getAntiForgeryToken();\n                        $.ajax({\n                            method: \"POST\",\n                            url: \"/SendGridVerification/GetSenderInformationForm\",\n                            data: JSON.stringify(sendGridConfirmationLinkDTO),\n                            cache: false,\n                            traditional: true,\n                            contentType: \"application/json; charset=utf-8\",\n                            headers: {\n                                'RequestVerificationToken': getSenderInformationFormAft\n                            }\n                        }).done(function (data) {\n                            waitingDialog.hide();\n                            if (data != null) {\n                                var options = {\n                                    classes: \"configure-sender-information-modal \",\n                                };\n                                me._globalModal.openGlobalModal(data, \"panel\", options);\n                                $(\".global-modal\").find(\".js-submit-sender-information\").attr(\"caller\", caller);\n                                $(\".global-modal\").find(\".js-submit-sender-information\").on(\"click\", function (e) {\n                                    var submitContainer = $(\".global-modal\").find(\".submit-sender-information-container\");\n                                    var errorMessage = \"\";\n                                    if ($(submitContainer).find(\"#nickname\").val() === \"\") {\n                                        errorMessage += $(submitContainer).attr(\"data-nickname-required-message\") + \"</br>\";\n                                    }\n                                    if ($(submitContainer).find(\"#replyTo\").val() === \"\") {\n                                        errorMessage += $(submitContainer).attr(\"data-replyto-required-message\") + \"</br>\";\n                                    }\n                                    if ($(submitContainer).find(\"#displayname\").val() === \"\") {\n                                        errorMessage += $(submitContainer).attr(\"data-displayname-required-message\") + \"</br>\";\n                                    }\n                                    if ($(submitContainer).find(\"#address\").val() === \"\") {\n                                        errorMessage += $(submitContainer).attr(\"data-address-required-message\") + \"</br/>\";\n                                    }\n                                    if ($(submitContainer).find(\"#city\").val() === \"\") {\n                                        errorMessage += $(submitContainer).attr(\"data-city-required-message\") + \"</br>\";\n                                    }\n                                    if ($(submitContainer).find(\"#country\").val() === \"\") {\n                                        errorMessage += $(submitContainer).attr(\"data-country-required-message\") + \"</br>\";\n                                    }\n                                    if (errorMessage !== \"\") {\n                                        bootbox.alert(errorMessage);\n                                        waitingDialog.hide();\n                                        return;\n                                    }\n                                    else {\n                                        var dto = {\n                                            nickName: $(submitContainer).find(\"#nickname\").val(),\n                                            from_Email: $(submitContainer).find(\"#fromemail\").val(),\n                                            from_Name: $(submitContainer).find(\"#displayname\").val(),\n                                            reply_To: $(submitContainer).find(\"#replyto\").val(),\n                                            address: $(submitContainer).find(\"#address\").val(),\n                                            city: $(submitContainer).find(\"#city\").val(),\n                                            country: $(submitContainer).find(\"#country\").val(),\n                                        };\n                                        var url = '/SendGridVerification/CreateVerifiedSenderRequest';\n                                        $.when(submitAjaxRequest(dto, url, \"POST\").done(function (data) {\n                                            if (data != null) {\n                                                if (data.isNewUserCreated) {\n                                                    if (data.userCreated.verified == false) {\n                                                        me.OpenSendGridConfirmationLinkModal(caller, fromAddress);\n                                                        waitingDialog.hide();\n                                                    }\n                                                    else {\n                                                        me.SetVerificationData(verifyEmailContainer, data);\n                                                        waitingDialog.hide();\n                                                    }\n                                                    me._globalModal.closeGlobalModal();\n                                                }\n                                                else {\n                                                    if (data.error != null) {\n                                                        if (data.error.errors.length > 0) {\n                                                            if (data.error.errors[0].field != null) {\n                                                                bootbox.alert(data.error.errors[0].field + \" \" + data.error.errors[0].message);\n                                                            }\n                                                            else {\n                                                                bootbox.alert(data.error.errors[0].message);\n                                                            }\n                                                            me._globalModal.closeGlobalModal();\n                                                            waitingDialog.hide();\n                                                            return;\n                                                        }\n                                                    }\n                                                    if (data.exceptionErrors != \"\") {\n                                                        bootbox.alert(data.exceptionErrors);\n                                                        $(verifyEmailContainer).find(\".js-verified-icon\").addClass(\"hide\");\n                                                        waitingDialog.hide();\n                                                        me._globalModal.closeGlobalModal();\n                                                        return;\n                                                    }\n                                                    if (data.canSendRequestAgain) {\n                                                        me.SendCreateRequest(button, item, true);\n                                                    }\n                                                }\n                                            }\n                                        }));\n                                    }\n                                });\n                            }\n                        });\n                    }\n                }\n            }\n        });\n    }\n    SetVerificationData(verifyEmailContainer, data) {\n        $(verifyEmailContainer).find(\".js-verified-icon\").removeClass(\"hide\");\n        $(verifyEmailContainer).attr(\"data-sender-verified\", \"true\");\n        if (data.isNewUserCreated) {\n            $(verifyEmailContainer).closest(\".js-email-configuration-container\").find(\".js-reply-to\").val(data.userCreated.reply_To);\n            $(verifyEmailContainer).closest(\".js-email-configuration-container\").find(\".js-from-name\").val(data.userCreated.from_Name);\n        }\n        else if (data.existingUser != null) {\n            $(verifyEmailContainer).closest(\".js-email-configuration-container\").find(\".js-reply-to\").val(data.existingUser.reply_To);\n            $(verifyEmailContainer).closest(\".js-email-configuration-container\").find(\".js-from-name\").val(data.existingUser.from_Name);\n        }\n    }\n    IsValidFromEmailAddress(emailAddress) {\n        var pattern = /^([a-z\\d!#$%&'*+\\-\\/=?^_`{|}~\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+(\\.[a-z\\d!#$%&'*+\\-\\/=?^_`{|}~\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+)*|\"((([ \\t]*\\r\\n)?[ \\t]+)?([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f\\x21\\x23-\\x5b\\x5d-\\x7e\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))*(([ \\t]*\\r\\n)?[ \\t]+)?\")@(([a-z\\d\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]|[a-z\\d\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF][a-z\\d\\-._~\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]*[a-z\\d\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])\\.)+([a-z\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]|[a-z\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF][a-z\\d\\-._~\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]*[a-z\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])\\.?$/i;\n        return pattern.test(emailAddress);\n    }\n    OpenSendGridConfirmationLinkModal(caller, fromAddress) {\n        waitingDialog.hide();\n        var me = this;\n        var sendGridConfirmationLinkDTO = {\n            fromAddress: fromAddress\n        };\n        var getConfirmationLinkFormaft = getAntiForgeryToken();\n        $.ajax({\n            method: \"POST\",\n            url: \"/SendGridVerification/GetConfirmationLinkForm\",\n            data: JSON.stringify(sendGridConfirmationLinkDTO),\n            cache: false,\n            traditional: true,\n            contentType: \"application/json; charset=utf-8\",\n            headers: {\n                'RequestVerificationToken': getConfirmationLinkFormaft\n            }\n        }).done(function (data) {\n            if (data != null) {\n                var options = {\n                    classes: \"configure-sender-confirmation-modal\",\n                };\n                me._globalModal.openGlobalModal(data, \"panel\", options);\n                $(\".global-modal\").find(\".js-verify-confirmation-link\").attr(\"caller\", caller);\n                $(\".global-modal\").find(\".js-verify-confirmation-link\").on(\"click\", function (e) {\n                    e.preventDefault();\n                    var buttonId = $(e.currentTarget).attr(\"caller\");\n                    var verifyEmailContainer = $(\"[data-button-identifier=\" + buttonId + \"]\").closest(\".js-verify-email-container\");\n                    var verifiedMessage = $(\".global-modal\").find(\".submit-confirmation-link-container\").attr(\"data-confirm-message\");\n                    var errorMessage = $(\".global-modal\").find(\".submit-confirmation-link-container\").attr(\"data-confirm-error-message\");\n                    $(verifyEmailContainer).attr(\"data-sender-verified\", \"false\");\n                    var fromEmail = $(e.currentTarget).attr(\"data-from-email-address\");\n                    var sendGridConfirmationLinkDTO = {\n                        url: $(\".global-modal\").find(\".js-link-from-confirmation-email\").val(),\n                        fromEmail: fromEmail\n                    };\n                    var url = \"/SendGridVerification/VerifySenderRequest\";\n                    $.when(submitAjaxRequest(sendGridConfirmationLinkDTO, url, \"POST\").done(function (data) {\n                        if (data != null) {\n                            if (data.isVerified) {\n                                $(verifyEmailContainer).attr(\"data-sender-verified\", \"true\");\n                                $(verifyEmailContainer).find(\".js-verified-icon\").removeClass(\"hide\");\n                                me._globalModal.closeGlobalModal();\n                                $(\".global-modal\").find(\".js-link-from-confirmation-email\").val(\"\");\n                                me.SetVerificationData(verifyEmailContainer, data);\n                                alert(verifiedMessage);\n                            }\n                            else if (!data.isVerified) {\n                                bootbox.alert(errorMessage);\n                                $(verifyEmailContainer).find(\".js-verified-icon\").addClass(\"hide\");\n                                $(verifyEmailContainer).attr(\"data-sender-verified\", \"false\");\n                                $(\".global-modal\").find(\".js-link-from-confirmation-email\").val(\"\");\n                            }\n                            else if (data.exceptionErrors != \"\") {\n                                bootbox.alert(data.exceptionErrors);\n                                $(verifyEmailContainer).find(\".js-verified-icon\").addClass(\"hide\");\n                            }\n                        }\n                        else {\n                        }\n                    }));\n                });\n            }\n            else {\n            }\n        });\n    }\n    openDirectMailUploadedListRecipients(button) {\n        var me = this;\n        var contactListId = $(button).attr(\"data-contact-list-id\");\n        waitingDialog.show(\"\");\n        $.ajax({\n            method: \"GET\",\n            url: \"/DirectMail/GetDirectMailUploadedListRecipientsByContactId/\" + contactListId\n        }).done(function (data, textStatus, request) {\n            waitingDialog.hide();\n            if (data) {\n                var globalModal = new GlobalModal(contactListId);\n                var html = data;\n                globalModal.openGlobalModal(html, \"panel\", { origin: $(this), classes: 'configure-launch-modal' });\n                var table = $(\".global-modal-inner-container\").find(\".dataTable\");\n                $(table).DataTable({\n                    \"pageLength\": 25,\n                    \"searching\": false,\n                    \"dom\": '<\"top\"<\"left\"><\"right\"f><\"clearfix\">>rt<\"bottom\"<\"left\"l><\"right\"p>><\"clearfix\">'\n                });\n                $(\".global-modal-inner-container\").find(\".js-download-direct-mail-uploaded-list-recipients\").attr(\"data-contact-list-id\", contactListId);\n                $(\".global-modal-inner-container\").find(\".js-download-direct-mail-uploaded-list-recipients\").click(function (e) {\n                    var contactListId = $(e.currentTarget).attr(\"data-contact-list-id\");\n                    window.location.href = \"/Catalog/ProductCustomization/DownloadDirectMailUploadedListRecipientsByContactId/\" + contactListId + \"/\" + $(\".global-modal-inner-container\").find(\".js-directmailuploadedlistrecipientsdownloadfiletype\").val();\n                });\n            }\n            else {\n                waitingDialog.hide();\n            }\n        });\n        waitingDialog.hide();\n    }\n    openEmailUploadedListRecipients(button) {\n        var me = this;\n        var contactListId = $(button).attr(\"data-contact-list-id\");\n        waitingDialog.show(\"\");\n        $.ajax({\n            method: \"GET\",\n            url: \"/EmailCampaign/GetEmailUploadedListRecipientsByContactId/\" + contactListId\n        }).done(function (data, textStatus, request) {\n            waitingDialog.hide();\n            if (data) {\n                var globalModal = new GlobalModal(contactListId);\n                var html = data;\n                globalModal.openGlobalModal(html, \"panel\", { origin: $(this), classes: 'configure-launch-modal' });\n                var table = $(\".global-modal-inner-container\").find(\".dataTable\");\n                $(table).DataTable({\n                    \"pageLength\": 25,\n                    \"searching\": false,\n                    \"dom\": '<\"top\"<\"left\"><\"right\"f><\"clearfix\">>rt<\"bottom\"<\"left\"l><\"right\"p>><\"clearfix\">'\n                });\n                $(\".global-modal-inner-container\").find(\".js-download-email-uploaded-list-recipients\").attr(\"data-contact-list-id\", contactListId);\n                $(\".global-modal-inner-container\").find(\".js-download-email-uploaded-list-recipients\").click(function (e) {\n                    var contactListId = $(e.currentTarget).attr(\"data-contact-list-id\");\n                    window.location.href = \"/EmailCampaign/DownloadEmailUploadedListRecipientsByContactId/\" + contactListId + \"/\" + $(\".global-modal-inner-container\").find(\".js-emailuploadedlistrecipientsdownloadfiletype\").val();\n                });\n            }\n            else {\n                waitingDialog.hide();\n            }\n        });\n        waitingDialog.hide();\n    }\n    GetUploadModal(uploadType, assignmentIdentifier, locale) {\n        return $.ajax({\n            method: \"GET\",\n            url: '/EmailCampaign/GetListUpload/' + uploadType + \"/\" + assignmentIdentifier + \"/\" + locale,\n        });\n    }\n    GetDirectMailUploadModal(assignmentIdentifier, locale) {\n        return $.ajax({\n            method: \"GET\",\n            url: '/DirectMail/GetDirectMailListUpload/' + assignmentIdentifier + \"/\" + locale,\n        });\n    }\n    bindLocalizedTime() {\n        var me = this;\n        $.each($(me._widget).find(\".localized-time-email-configuration\"), function (i, e) {\n            const localDate = $(e).text();\n            $(e).html(DisplayDateInLocalFormat(localDate, \"MM/DD/YYYY\") + \"  <div><small>\" + DisplayDateInLocalFormat(localDate, \"hh:mm a\") + \"</small></div>\");\n        });\n    }\n    buildParams() {\n        var params = {\n            Identifier: this._identifier,\n            ProductId: this._productId,\n            Quantity: $(this._widget).find(\".quantity-input\").val(),\n            Attributes: [],\n            OrderNow: 0,\n            CheckSkuExists: true\n        };\n        var me = this;\n        $.each($(this._widget).find(\".attribute-selector\"), function (index, item) {\n            if ($(this).find(\":selected\").val() !== \"\") {\n                params.Attributes.push($(this).find(\":selected\").val());\n            }\n        });\n        return params;\n    }\n}\nclass Checkout {\n    constructor(widget) {\n        this._widget = widget;\n        this.initialize();\n    }\n    GetParticipantInfo() {\n        return $.ajax({\n            //contentType: \"application/json\",\n            method: \"GET\",\n            url: '/Api/ShoppingCart/GetItemsDetailsInCart'\n        });\n    }\n    canProceedToSubmit(button) {\n        var me = this;\n        var participantInfo = $(me._widget).find(\".cart-participant-info\");\n        var noItemsInforow = $(me._widget).find(\".shoppingcart-notiemsincart\");\n        var shoppingCartUrl = $(button).attr(\"data-shopping-cart-url\");\n        var midQuantityAllowedMessage = $(button).attr(\"data-mid-quantity-allowed-for-cart-message\");\n        var minQuantityAllowedMessage = $(button).attr(\"data-min-quantity-allowed-for-cart-message\");\n        var maxQuantityAllowedMessage = $(button).attr(\"data-max-quantity-allowed-for-cart-message\");\n        var minQuantityAllowed = $(button).attr(\"data-min-quantity-per-order\");\n        var maxQuantityAllowed = $(button).attr(\"data-max-quantity-per-order\");\n        var proceed1 = true;\n        var proceed2 = true;\n        if ($(me._widget).find(\"#cartItemCount\").val() !== \"0\" || $(me._widget).find(\"#cartItemCount\").val() !== \"\") {\n            var items = [];\n            $(me._widget).find(\".checkout-item-row\").each(function () {\n                var item = {\n                    Quantity: parseInt($(this).find(\".quantitytext\").html())\n                };\n                if (item.Quantity < parseInt(minQuantityAllowed)) {\n                    proceed1 = false;\n                }\n                if (item.Quantity > parseInt(maxQuantityAllowed) && parseInt(maxQuantityAllowed) != -1) {\n                    proceed2 = false;\n                }\n            });\n            if (!proceed1 && !proceed2) {\n                $('#ItemQuantity').val(Math.max(parseInt(minQuantityAllowed), 1));\n                alert(midQuantityAllowedMessage);\n                return false;\n            }\n            else if (!proceed1) {\n                $('#ItemQuantity').val(Math.max(parseInt(minQuantityAllowed), 1));\n                alert(minQuantityAllowedMessage);\n                return false;\n            }\n            else if (!proceed2) {\n                $('#ItemQuantity').val(Math.max(parseInt(maxQuantityAllowed), 0));\n                alert(maxQuantityAllowedMessage);\n                return false;\n            }\n        }\n        return true;\n    }\n    AddOrder(btn) {\n        var me = this;\n        if (!me.canProceedToSubmit(btn)) {\n            return false;\n        }\n        var addressId = $(me._widget).find(\"#address-list\").val() != null ? parseInt($(me._widget).find(\"#address-list\").val()) : 0;\n        if (addressId === 0 && $(btn).attr(\"data-should-check-address\") == \"True\") {\n            var addressRequiredMessage = $(btn).attr(\"data-address-required-message\");\n            bootbox.alert(addressRequiredMessage);\n            $(btn).removeAttr('disabled');\n            btn.button('reset');\n            return;\n        }\n        var OrderNotesRequired = $(me._widget).find(\"#shopping-cart-order-notes-required\").val() === \"true\";\n        var OrderNotes = $(me._widget).find(\"#OrderNotes\").val();\n        if (OrderNotes == undefined)\n            OrderNotes = \"\";\n        if (OrderNotesRequired && OrderNotes.trim() === \"\") {\n            alert(\"Order Notes are required\");\n            $(btn).removeAttr('disabled');\n            btn.button('reset');\n            return;\n        }\n        var cartUrl = $(btn).attr(\"data-cart-url\");\n        var orderUrl = $(btn).attr(\"data-order-detail-url\");\n        var firstName = $(me._widget).find(\"#hidden-first-name\").val();\n        var lastName = $(me._widget).find(\"#hidden-last-name\").val();\n        $(\".btn-submitorder\").attr('disabled', 'disabled');\n        if ($(btn).attr(\"data-should-check-address\") == \"False\") {\n            addressId = 0;\n        }\n        var params = {\n            \"addressId\": addressId, \"OrderNotes\": OrderNotes, \"FirstName\": firstName, \"LastName\": lastName\n        };\n        var url = '/Api/ParticipantOrder/AddOrder';\n        $.when(submitAjaxRequest(params, url, \"POST\").done(function (data) {\n            $(\".btn-submitorder\").removeAttr('disabled');\n            if (data.status == \"OK\" && data.participantOrderId > 0) {\n                $(me._widget).find(\".js-checkout-order-notes\").hide();\n                var detailLink = $(me._widget).find(\".panel-thankyou\").find(\".order-detail-link\").attr(\"href\");\n                detailLink += data.identifier;\n                window.location.href = detailLink;\n                btn.button('reset');\n            }\n            else {\n                alert(data.status);\n                btn.button('reset');\n                if (data.cartUrl != undefined)\n                    window.location.href = data.cartUrl;\n            }\n        }));\n    }\n    GetDistributorAddresses() {\n        return $.ajax({\n            method: \"GET\",\n            url: '/Api/Checkout/GetDistributorAddress'\n        });\n    }\n    GetAddressForm(addressId, showNames) {\n        return $.ajax({\n            method: \"GET\",\n            url: '/Api/Checkout/GetAddressForm',\n            data: { addressId: addressId, showNames: showNames }\n        });\n    }\n    ShowAddressForm(btn, container, mode, action) {\n        var me = this;\n        var sourceButton = btn;\n        var addressId = \"\";\n        if (mode == \"edit\") {\n            addressId = $(container).find(\"#address-list\").val();\n        }\n        if ((addressId == \"\" || addressId == \"0\") && mode == \"edit\") {\n            bootbox.alert($(btn).attr(\"data-select-address-to-edit-message\"));\n            return false;\n        }\n        var showNames = $(btn).data('display-names');\n        $.when(me.GetAddressForm(addressId, showNames).done(function (data, textStatus, response) {\n            if (data) {\n                var options = {\n                    classes: \"checkout-address-modal\",\n                    origin: $(sourceButton)\n                };\n                me._globalModal.openGlobalModal(data.responseMessage, \"modal\", options);\n                $(\".global-modal\").find(\".js-add-new-shippingaddress\").on('click', function (e) {\n                    e.preventDefault();\n                    if (me.ValidateShippingAddress()) {\n                        var address = $(\".global-modal\").find(\"#address\").val();\n                        var address2 = $(\".global-modal\").find(\"#address2\").val();\n                        var city = $(\".global-modal\").find(\"#city\").val();\n                        var state = $(\".global-modal\").find(\"#state\").val().substring(5);\n                        var zipCode = $(\".global-modal\").find(\"#zipCode\").val();\n                        var country = $(\".global-modal\").find(\"#country\").val().substring(0, 4);\n                        var phoneNumber = $(\".global-modal\").find(\"#phonenumber\").val();\n                        var addressId = $(\".global-modal\").find(\"#addressId\").val();\n                        var addressName = $(\".global-modal\").find(\"#addressName\").val();\n                        var companyName = $(\".global-modal\").find(\"#companyName\").val();\n                        var firstName = $(\".global-modal\").find(\"#firstName\").val();\n                        var lastName = $(\".global-modal\").find(\"#lastName\").val();\n                        var email = $(\".global-modal\").find(\"#email\").val();\n                        var saveAddressButton = this;\n                        me.AddParticipantAddress(addressId, firstName, lastName, companyName, addressName, address, address2, city, state, zipCode, country, phoneNumber, saveAddressButton, me._widget, action, email);\n                    }\n                });\n            }\n        }));\n    }\n    ValidateShippingAddress() {\n        var _a, _b, _c, _d, _e, _f;\n        var isValid = true;\n        var message = \"\";\n        // validators  \n        var validators = $(\".global-modal\").find(\"#country option:selected\").data('validators');\n        var emailValidator = \"[\\\\u00C0\\\\u00C2\\\\u00C4\\\\u00C7\\\\u00C8\\\\u00C9\\\\u00CA\\\\u00CB\\\\u00CE\\\\u00CF\\\\u00D4\\\\u00DA\\\\u00DB\\\\u00E0\\\\u00E2\\\\u00E4\\\\u00E7\\\\u00E8\\\\u00E9\\\\u00EA\\\\u00EB\\\\u00EE\\\\u00EF\\\\u00F4\\\\u00FA\\\\u00FBa-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\\\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\\\\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\";\n        var zipValidator = \"\";\n        var phoneValidator = \"\";\n        if (validators != undefined && validators != null && validators != \"\") {\n            emailValidator = (_b = (_a = validators === null || validators === void 0 ? void 0 : validators.email) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : \"[\\\\u00C0\\\\u00C2\\\\u00C4\\\\u00C7\\\\u00C8\\\\u00C9\\\\u00CA\\\\u00CB\\\\u00CE\\\\u00CF\\\\u00D4\\\\u00DA\\\\u00DB\\\\u00E0\\\\u00E2\\\\u00E4\\\\u00E7\\\\u00E8\\\\u00E9\\\\u00EA\\\\u00EB\\\\u00EE\\\\u00EF\\\\u00F4\\\\u00FA\\\\u00FBa-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\\\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\\\\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\";\n            zipValidator = (_d = (_c = validators === null || validators === void 0 ? void 0 : validators.postal) === null || _c === void 0 ? void 0 : _c.toString()) !== null && _d !== void 0 ? _d : \"\";\n            phoneValidator = (_f = (_e = validators === null || validators === void 0 ? void 0 : validators.phone) === null || _e === void 0 ? void 0 : _e.toString()) !== null && _f !== void 0 ? _f : \"\";\n        }\n        // required and validation\n        if ($(\".global-modal\").find(\"#address\").attr(\"data-attribute-required-to-save\") == \"REQUIRED\" && $(\".global-modal\").find(\"#address\").is(\":visible\")) {\n            if ($(\".global-modal\").find(\"#address\").val() == \"\") {\n                message += $(\".global-modal\").find(\"#address\").data(\"required\");\n                isValid = false;\n            }\n        }\n        if ($(\".global-modal\").find(\"#address2\").attr(\"data-attribute-required-to-save\") == \"REQUIRED\" && $(\".global-modal\").find(\"#address\").is(\":visible\")) {\n            if ($(\".global-modal\").find(\"#address2\").val() == \"\") {\n                message += \"\\n\" + $(\".global-modal\").find(\"#address2\").data(\"required\");\n                isValid = false;\n            }\n        }\n        if ($(\".global-modal\").find(\"#city\").attr(\"data-attribute-required-to-save\") == \"REQUIRED\" && $(\".global-modal\").find(\"#city\").is(\":visible\")) {\n            if ($(\".global-modal\").find(\"#city\").val() == \"\") {\n                message += \"\\n\" + $(\".global-modal\").find(\"#city\").data(\"required\");\n                isValid = false;\n            }\n        }\n        if ($(\".global-modal\").find(\"#state\").attr(\"data-attribute-required-to-save\") == \"REQUIRED\" && $(\".global-modal\").find(\"#state\").is(\":visible\")) {\n            if ($(\".global-modal\").find(\"#state\").val() == \"\") {\n                var countryId = $(\".global-modal #country\").val().substring(0, 4);\n                var found = false;\n                $('.global-modal').find('#state > option').each(function () {\n                    if (this.value.substring(0, 4) === countryId && this.value !== \"\") {\n                        found = true;\n                    }\n                });\n                if (found) {\n                    message += \"\\n\" + $(\".global-modal\").find(\"#state\").data(\"required\");\n                    isValid = false;\n                }\n            }\n        }\n        if ($(\".global-modal\").find(\"#zipCode\").is(\":visible\")) {\n            if ($(\".global-modal\").find(\"#zipCode\").attr(\"data-attribute-required-to-save\") == \"REQUIRED\") {\n                if ($(\".global-modal\").find(\"#zipCode\").val() == \"\") {\n                    message += \"\\n\" + $(\".global-modal\").find(\"#zipCode\").data(\"required\");\n                    isValid = false;\n                }\n                if ($(\".global-modal\").find(\"#zipCode\").val() !== \"\" && zipValidator != \"\") {\n                    var regex = new RegExp(zipValidator);\n                    if (regex.test($(\".global-modal\").find(\"#zipCode\").val())) {\n                        //valid\n                    }\n                    else {\n                        message += \"\\n\" + $(\".global-modal\").find(\"#zipCode\").data(\"invalid\");\n                        isValid = false;\n                    }\n                }\n            }\n            else if ($(\".global-modal\").find(\"#zipCode\").attr(\"data-attribute-required-to-save\") == \"OPTIONAL\") {\n                if ($(\".global-modal\").find(\"#zipCode\").val() !== \"\" && zipValidator != \"\") {\n                    var regex = new RegExp(zipValidator);\n                    if (regex.test($(\".global-modal\").find(\"#zipCode\").val())) {\n                        //valid\n                    }\n                    else {\n                        message += \"\\n\" + $(\".global-modal\").find(\"#zipCode\").data(\"invalid\");\n                        isValid = false;\n                    }\n                }\n            }\n        }\n        if ($(\".global-modal\").find(\"#country\").attr(\"data-attribute-required-to-save\") == \"REQUIRED\" && $(\".global-modal\").find(\"#country\").is(\":visible\")) {\n            if ($(\".global-modal\").find(\"#country\").val() == \"\") {\n                message += \"\\n\" + $(\".global-modal\").find(\"#country\").data(\"required\");\n                isValid = false;\n            }\n        }\n        if ($(\".global-modal\").find(\"#email\").is(\":visible\")) {\n            if ($(\".global-modal\").find(\"#email\").attr(\"data-attribute-required-to-save\") == \"REQUIRED\") {\n                if ($(\".global-modal\").find(\"#email\").val() == \"\") {\n                    message += \"\\n\" + $(\".global-modal\").find(\"#email\").data(\"required\");\n                    isValid = false;\n                }\n                if ($(\".global-modal\").find(\"#email\").val() !== \"\" && emailValidator != \"\") {\n                    var regex = new RegExp(emailValidator);\n                    if (regex.test($(\".global-modal\").find(\"#email\").val())) {\n                        //valid\n                    }\n                    else {\n                        message += \"\\n\" + $(\".global-modal\").find(\"#email\").data(\"invalid\");\n                        isValid = false;\n                    }\n                }\n            }\n            else if ($(\".global-modal\").find(\"#email\").attr(\"data-attribute-required-to-save\") == \"OPTIONAL\") {\n                if ($(\".global-modal\").find(\"#email\").val() !== \"\" && emailValidator != \"\") {\n                    var regex = new RegExp(emailValidator);\n                    if (regex.test($(\".global-modal\").find(\"#email\").val())) {\n                        //valid\n                    }\n                    else {\n                        message += \"\\n\" + $(\".global-modal\").find(\"#email\").data(\"invalid\");\n                        isValid = false;\n                    }\n                }\n            }\n        }\n        if ($(\".global-modal\").find(\"#phonenumber\").is(\":visible\")) {\n            if ($(\".global-modal\").find(\"#phonenumber\").attr(\"data-attribute-required-to-save\") == \"REQUIRED\") {\n                if ($(\".global-modal\").find(\"#phonenumber\").val() == \"\") {\n                    message += \"\\n\" + $(\".global-modal\").find(\"#phonenumber\").data(\"required\");\n                    isValid = false;\n                }\n                if ($(\".global-modal\").find(\"#phonenumber\").val() !== \"\" && phoneValidator != \"\") {\n                    var regex = new RegExp(phoneValidator);\n                    if (regex.test($(\".global-modal\").find(\"#phonenumber\").val())) {\n                        //valid\n                    }\n                    else {\n                        message += \"\\n\" + $(\".global-modal\").find(\"#phonenumber\").data(\"invalid\");\n                        isValid = false;\n                    }\n                }\n            }\n            else if ($(\".global-modal\").find(\"#phonenumber\").attr(\"data-attribute-required-to-save\") == \"OPTIONAL\") {\n                if ($(\".global-modal\").find(\"#phonenumber\").val() !== \"\" && phoneValidator != \"\") {\n                    var regex = new RegExp(phoneValidator);\n                    if (regex.test($(\".global-modal\").find(\"#phonenumber\").val())) {\n                        //valid\n                    }\n                    else {\n                        message += \"\\n\" + $(\".global-modal\").find(\"#phonenumber\").data(\"invalid\");\n                        isValid = false;\n                    }\n                }\n            }\n        }\n        //var shippingInputs = [];\n        //$(\".global-modal\").find(\".js-address-group\").each(function (index, elem) {\n        //    if ($(this).attr(\"data-attribute-required-to-save\") == \"OPTIONAL\" && $(this).val() !== \"\") {\n        //        shippingInputs.push(jQuery(this).attr(\"id\"));\n        //        isValid = false;\n        //    }\n        //});\n        //if (shippingInputs.length > 0) {\n        //    $(\".global-modal\").find(\".js-address-group\").each(function (index, elem) {\n        //        if ($(this).attr(\"data-attribute-required-to-save\") == \"OPTIONAL\" && $(this).val() === \"\" && $(this).data(\"required\").length > 0) {\n        //            message += \"\\n\" + $(this).data(\"required\");\n        //        }\n        //    });\n        //}\n        if (message !== \"\") {\n            alert(message);\n        }\n        return isValid;\n    }\n    ShowAddressSelector(btn) {\n        var me = this;\n        var sourceButton = btn;\n        var container = $(me._widget).find(\".js-addressselector-container\");\n        $.when(me.GetDistributorAddresses().done(function (data, textStatus, response) {\n            if (data.responseMessage) {\n                var options = {\n                    origin: $(sourceButton)\n                };\n                me._globalModal.openGlobalModal(data.responseMessage, \"modal\", options);\n                sourceButton.button('reset');\n                $(\".global-modal\").find(\".btn-saveshippingaddress\").on('click', function (e) {\n                    var saveAddressButton = this;\n                    var dropDown = $(\".global-modal\").find(\"#shippingaddress-list\");\n                    var distributorCompanyAddressId = $(dropDown).val();\n                    e.preventDefault();\n                    me.AddShippingAddress(distributorCompanyAddressId, saveAddressButton, me._widget);\n                });\n            }\n        }));\n    }\n    // the submit is required because paypal won't allow you to use ajax to modify the amount dynamically\n    // changing the amount due to shipping changes can't be done cleanly using ajax.\n    // make this call anytime the checkout might change the amount to bill\n    RefreshCheckout(me, addressId) {\n        var pleaseWaitMessageForcheckout = $(me._widget).find(\"#checkout-wait-message\").val();\n        waitingDialog.show(pleaseWaitMessageForcheckout);\n        //me._globalModal.closeGlobalModal();        \n        $(me._widget).find(\".js-selectedAddressid\").val(addressId);\n        $(me._widget).find(\".widget-checkout-form\").trigger(\"submit\");\n    }\n    ;\n    AddShippingAddress(distributorCompanyAddressId, saveAddressButton, container) {\n        var me = this;\n        var modalDialog = $(container).find(\"#customaddressselector-modal\");\n        var sourceButton = saveAddressButton;\n        var sourceDropDown = $(container).find(\"#address-list\");\n        var params = { \"distributorCompanyAddressId\": parseInt(distributorCompanyAddressId) };\n        var url = '/Api/Checkout/SaveParticipantAddressFromDistributor';\n        $.when(submitAjaxRequest(params, url, \"POST\").done(function (data) {\n            if (data.status == \"OK\") {\n                me.RefreshCheckout(me, data.selectedAddressId);\n            }\n            else {\n                waitingDialog.hide();\n                alert(data.status);\n            }\n        }));\n    }\n    AddParticipantAddress(addressId, firstName, lastName, companyName, addressName, address, address2, city, state, zipCode, country, phoneNumber, saveAddressButton, container, action, email) {\n        var me = this;\n        var editingAddressId = addressId;\n        var editAddress = $(container).find(\".js-edit-address\");\n        var deleteAddress = $(container).find(\".js-delete-address\");\n        var noshippinglabel = $(container).find(\".js-noshipping-label\");\n        var sourceButton = saveAddressButton;\n        var sourceDropDown = $(container).find(\"#address-list\");\n        var params = {\n            \"addressId\": addressId,\n            \"companyName\": companyName,\n            \"addressName\": addressName,\n            \"address\": address,\n            \"address2\": address2,\n            \"city\": city,\n            \"state\": state,\n            \"zipCode\": zipCode,\n            \"country\": country,\n            \"phoneNumber\": phoneNumber,\n            \"email\": email,\n            \"firstName\": firstName,\n            \"lastName\": lastName,\n        };\n        var url = '/Api/Checkout/SaveParticipantAddress';\n        $.when(submitAjaxRequest(params, url, \"POST\").done(function (data) {\n            if (data.status == \"OK\") {\n                me.RefreshCheckout(me, data.selectedAddressId);\n            }\n            else {\n                waitingDialog.hide();\n                alert(data.status);\n            }\n        }));\n    }\n    DeleteAddress(container, button) {\n        var me = this;\n        var sourceDropDown = $(container).find(\"#address-list\");\n        var editAddress = $(container).find(\".js-edit-address\");\n        var deleteAddress = $(container).find(\".js-delete-address\");\n        var noshippinglabel = $(container).find(\".js-noshipping-label\");\n        var addressId = $(container).find(\"#address-list\").val();\n        if (addressId === \"\" || addressId === null || addressId == undefined || addressId == \"0\") {\n            bootbox.alert($(button).attr(\"data-select-address-to-delete-message\"));\n            return false;\n        }\n        if (addressId !== \"\" || addressId !== null || addressId !== undefined || addressId !== \"0\") {\n            if (confirm($(deleteAddress).data(\"message\"))) {\n                var params = {\n                    \"addressId\": addressId\n                };\n                var url = '/Api/Checkout/DeleteParticipantAddress';\n                $.when(submitAjaxRequest(params, url, \"DELETE\").done(function (data) {\n                    if (data.status == \"OK\") {\n                        me.RefreshCheckout(me, data.selectedAddressId);\n                    }\n                    else {\n                        waitingDialog.hide();\n                        alert(data.status);\n                    }\n                }));\n            }\n        }\n    }\n    initialize() {\n        this._widgetId = parseInt($(this._widget).attr(\"data-contentwidgetid\"));\n        this.bindControls();\n        this._globalModal = new GlobalModal(this._widgetId);\n    }\n    bindControls() {\n        var me = this;\n        me._widgetId = parseInt($(this._widget).attr(\"data-contentwidgetid\"));\n        $(me._widget).find(\".btn-submitorder\").on(\"click\", function (e) {\n            var btn = $(this);\n            if (me.canProceedToSubmit) {\n                btn.button('loading');\n                if ($(me._widget).find(\".js-addressRequired\").val() === \"True\") {\n                    e.preventDefault();\n                    var address = $(me._widget).find(\"#address-list\");\n                    if ($(address).children('option').length == 0) {\n                        bootbox.alert($(btn).attr(\"data-add-new-address-required-message\"));\n                        return false;\n                    }\n                    else {\n                        me.AddOrder(btn);\n                    }\n                }\n                else {\n                    me.AddOrder(btn);\n                }\n            }\n        });\n        var container = $(me._widget).find(\".js-addressselector-container\");\n        $(me._widget).find(\".btn-addnewaddress\").on(\"click\", function (e) {\n            e.preventDefault();\n            var btn = $(this);\n            //btn.button('loading')\n            me.ShowAddressSelector(btn);\n        });\n        $(me._widget).find(\".js-add-new-address\").on(\"click\", function (e) {\n            e.preventDefault();\n            me.ShowAddressForm($(this), me._widget, \"add\", \"normal\");\n        });\n        $(me._widget).find(\".js-add-new-address_hidden\").on(\"click\", function (e) {\n            e.preventDefault();\n            me.ShowAddressForm($(this), me._widget, \"add\", \"silent\");\n        });\n        $(me._widget).find(\".js-address-list\").on(\"change\", function (e) {\n            var addressId = $(me._widget).find(\"#address-list\").val();\n            me.RefreshCheckout(me, addressId);\n        });\n        $(me._widget).find(\".js-edit-address\").on(\"click\", function (e) {\n            e.preventDefault();\n            me.ShowAddressForm($(this), me._widget, \"edit\", \"normal\");\n        });\n        $(me._widget).find(\".js-delete-address\").on(\"click\", function (e) {\n            e.preventDefault();\n            me.DeleteAddress(me._widget, this);\n        });\n    }\n}\nfunction refreshCartCount(reload) {\n    var cartCount = getStorageCartItemCount();\n    if (!reload && cartCount != null) {\n        updateCartItemCount(cartCount);\n        return;\n    }\n    var url = '/Api/ShoppingCart/GetCartItems';\n    $.when(submitAjaxRequest(undefined, url, \"GET\").done(function (data) {\n        updateCartItemCount(data.cartItemCount);\n    }));\n}\nfunction updateCartItemCount(cartCount) {\n    if (cartCount !== undefined && cartCount !== null) {\n        var userToken = $(\".cart-count-indicator\").attr(\"data-user-identifier\");\n        if (localStorageIsAvailable() && userToken != null && userToken.length > 0) {\n            setStorageCartItemCount(cartCount, userToken);\n        }\n    }\n    $(\".cart-count-indicator\").html(cartCount);\n}\nfunction localStorageIsAvailable() {\n    return (typeof (Storage) != \"undefined\");\n}\nfunction setStorageCartItemCount(cartItemCount, userToken) {\n    var itemKey = userToken + \"_\" + cartItemCount;\n    localStorage.setItem(itemKey, cartItemCount);\n    sessionStorage.setItem(itemKey, cartItemCount);\n}\nfunction getStorageCartItemCount() {\n    var cartCount = null;\n    var userToken = $(\".cart-count-indicator\").attr(\"data-user-identifier\");\n    if (localStorageIsAvailable() && userToken != null && userToken.length > 0) {\n        cartCount = localStorage.getItem(userToken + \"_cartCount\");\n    }\n    return cartCount;\n}\nfunction initCartCountMonitor() {\n    // update if multiple browsers tabs are open\n    window.setInterval(function () {\n        var myCartCount = sessionStorage.getItem(\"cartCount\");\n        var globalCartCount = getStorageCartItemCount();\n        var cartWidget = $(\".widget.catalog-shoppingcart-list\");\n        if (myCartCount != globalCartCount && cartWidget.length > 0) {\n            window.location.reload();\n        }\n        else {\n            updateCartItemCount(null);\n        }\n    }, 60000);\n}\nfunction addCommas(str) {\n    var parts = (str + \"\").split(\".\"), main = parts[0], len = main.length, output = \"\", i = len - 1;\n    while (i >= 0) {\n        output = main.charAt(i) + output;\n        if ((len - i) % 3 === 0 && i > 0) {\n            output = \",\" + output;\n        }\n        --i;\n    }\n    // put decimal part back\n    if (parts.length > 1) {\n        output += \".\" + parts[1];\n    }\n    return output;\n}\nfunction formatColumn(val, format) {\n    var formatted = \"\";\n    var decimalPlaces = format.split('.').length > 1 ? format.split('.')[1].length : 0;\n    if (decimalPlaces > 0) {\n        var currency = format.substring(0, 1);\n        if (val < 0)\n            formatted = \"-\" + currency + (-1 * val).toFixed(decimalPlaces).replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, '$1,');\n        else\n            formatted = currency + (val).toFixed(decimalPlaces).replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, '$1,');\n    }\n    else\n        formatted = val.toLocaleString();\n    return formatted;\n}\n$(function () {\n    // locate all product list widgets on page\n    $(\".widget.catalog-product-list\").each(function (index, item) {\n        $(item).data(\"manager\", new CatalogProductList(item));\n    });\n    $(\".widget.catalog-product-detail\").each(function (index, item) {\n        $(item).data(\"manager\", new CatalogProductDetail(item));\n    });\n    $(\".widget.catalog-shoppingcart-list\").each(function (index, item) {\n        $(item).data(\"manager\", new ShoppingCartList(item));\n    });\n    $(\".widget.checkout-container\").each(function (index, item) {\n        $(item).data(\"manager\", new Checkout(item));\n    });\n    if ($(\"html\").data(\"rewards\") !== \"False\") {\n        refreshCartCount(getStorageCartItemCount() == null);\n    }\n    //   initCartCountMonitor();\n});\n/// <reference path=\"../lib/helper.admin.d.ts\" />\nclass Search {\n    constructor() {\n        this.SortAscending = false;\n        this.Skip = 0;\n        this.Take = 9;\n    }\n    PerformSearch() {\n        $(\"#ajax-loading\").show();\n        var dto = {\n            Title: $(\"#search-results-title\").val(),\n            Description: $(\"#search-results-description\").val(),\n            SuppressTypeColumn: $(\"#search-results-suppresstypecolumn\").is(\":checked\"),\n            SearchType: $(\"#search-type\").val(),\n            SearchTerm: this.SearchTerm,\n            SortAscending: this.SortAscending,\n            SortField: this.SortField,\n            Take: this.Take,\n            Skip: this.Skip\n        };\n        var parent = this;\n        trackSearchLink(window.location.pathname + '?q=' + encodeURIComponent(dto.SearchTerm));\n        var url = '/Content/SearchContent';\n        $.when(submitAjaxRequest(dto, url, \"POST\").done(function (data) {\n            $(\"button.search-results-view-more\").attr(\"data-startat\", parseInt($(\"button.search-results-view-more\").attr(\"data-startat\")) + parent.Take);\n            if (parent.Skip === 0) {\n                $(\"#search-results\").replaceWith(data);\n            }\n            else {\n                // It's a Load More request, need to only update specific areas\n                $(data).insertBefore(\"div.load-more\");\n                if (parseInt($(\"button.search-results-view-more\").attr(\"data-startat\")) >= parseInt($(\"#search-results\").attr(\"data-total-results\"))) {\n                    $(\"div.load-more\").hide();\n                }\n            }\n            $(\"#ajax-loading\").hide();\n        }));\n        window.location.hash = this.SearchTerm;\n    }\n}\nvar search = new Search();\n$(document).ready(function () {\n    if (window.location.hash.length > 0 && $(\"#search-query\").length > 0) {\n        search.SearchTerm = window.location.hash.substring(1);\n        search.PerformSearch();\n    }\n    $(\"body\").on(\"click\", \"#search-button\", function (e) {\n        e.preventDefault();\n        search.Skip = 0;\n        search.SearchTerm = $(\"#search-query\").val();\n        search.PerformSearch();\n    });\n    $(\"#nav-search\").on(\"click\", function (e) {\n        if ($(\"#nav-search-overlay\").hasClass(\"hide\")) {\n            $(\"#nav-search-overlay\").removeClass(\"hide\");\n        }\n        else {\n        }\n    });\n    $(\"body\").on(\"click\", \"div[data-action='sort']\", function (e) {\n        var field = $(this).attr(\"data-field\");\n        if (search.SortField === field) {\n            search.SortAscending = search.SortAscending ? false : true;\n        }\n        $(\"button.search-results-view-more\").attr(\"data-startat\", \"0\");\n        search.Skip = 0;\n        search.SortField = field;\n        search.SearchTerm = $(\"#search-query\").val();\n        search.PerformSearch();\n    });\n    $(\"body\").on(\"click\", \".search-results-view-more\", function (e) {\n        var currentNumberDisplayed = parseInt($(this).attr(\"data-startat\"));\n        search.Skip = currentNumberDisplayed;\n        search.SearchTerm = $(\"#search-query\").val();\n        search.PerformSearch();\n    });\n    $(\"body\").on(\"click\", \"#nav-search-cancel\", function () {\n        $(\"#nav-search-overlay\").addClass(\"hide\");\n    });\n});\nfunction trackSearchLink(action) {\n    var analyticField = $(\"html\").data(\"ga-code\");\n    if (analyticField != null && analyticField.length > 0) {\n        (function (i, s, o, g, r, a, m) {\n            i['GoogleAnalyticsObject'] = r;\n            i[r] = i[r] ||\n                function () {\n                    (i[r].q = i[r].q || []).push(arguments);\n                    //@ts-ignore\n                }, i[r].l = 1 * new Date();\n            a = s.createElement(o),\n                m = s.getElementsByTagName(o)[0];\n            a.async = 1;\n            a.src = g;\n            m.parentNode.insertBefore(a, m);\n        })(window, document, 'script', 'https://www.google-analytics.com/analytics.js', 'ga');\n        //@ts-ignore\n        ga('create', analyticField, 'auto');\n        //ga('send', 'pageview');\n        //@ts-ignore\n        ga('send', {\n            hitType: 'pageview',\n            page: action\n        });\n    }\n}\n/// <reference path=\"../lib/helper.admin.d.ts\" />\n/// <reference path=\"../lib/helper.thirdParty.d.ts\" />\n$(document).ready(function () {\n    //$('body').tooltip({\n    //    selector: '[data-toggle=\"tooltip\"]'\n    //});\n    ApplyGageToolTip($('[data-toggle=\"tooltip\"]'));\n    ApplyGageToolTip($('[data-bs-toggle=\"tooltip\"]'));\n});\n/* Copy Text To Clipboard */\nfunction copyToClipboardFunction(el, e) {\n    e.preventDefault();\n    var id = el.dataset.for;\n    var text = \"\";\n    var target = document.getElementById(id);\n    if (target) {\n        text = target.innerText;\n    }\n    // @ts-ignore\n    const input = document.createElement('textarea');\n    input.style.marginLeft = \"-10000px\";\n    //  document.body.appendChild(input);\n    target.parentNode.insertBefore(input, target.nextSibling);\n    input.value = text;\n    // @ts-ignore\n    input.focus();\n    // @ts-ignore\n    input.select();\n    document.execCommand('Copy');\n    input.remove();\n    el.trigger(\"focus\"); // not sure if this method is used - for this to work, el must be a jQuery object.\n}\n;\n/// <reference path=\"../lib/twbs-pagination.d.ts\" />\n/// <reference path=\"../lib/jquery.d.ts\" />\n/// <reference path=\"../lib/helper.admin.d.ts\" />\nclass AccountTransaction {\n    constructor(widget) {\n        this._widget = widget;\n        this.initialize();\n    }\n    initialize() {\n        this._pageIndex = 0;\n        this._totalPages = parseFloat($(this._widget).attr(\"data-total-pages\"));\n        this._take = parseInt($(this._widget).find(\"#uxAccountTransactionListPageSize\").val());\n        this._widgetId = parseInt($(this._widget).attr(\"data-contentwidgetid\"));\n        this._sortBy = $(this._widget).attr(\"data-sort-by\");\n        this.bindControls();\n    }\n    bindControls() {\n        var me = this;\n        $(me._widget).find(\".filter-text, .filter-close\").on(\"click\", function () {\n            me.ShowHideFilter(this);\n        });\n        $(me._widget).find(\".filter-facet\").on(\"click\", function () {\n            me.SelectDeselectFacet(this);\n        });\n        $(me._widget).find(\"#uxAccountTransactionListPageSize\").on(\"change\", function () {\n            me._sortBy = \"datecreated\";\n            me._pageIndex = 0;\n            me._sortAscending = \"false\";\n            me._take = $(this).val();\n            me.LoadData(false);\n        });\n        $(me._widget).find(\"#order-history-modal\").on('show.bs.modal', function (event) {\n            var self = this;\n            var orderlineItemId = $(event.relatedTarget).attr(\"data-order-line-item-id\");\n            var params = {\n                \"participantOrderLineItemId\": orderlineItemId,\n            };\n            $.ajax({\n                data: params,\n                method: \"GET\",\n                url: \"/Manage/ParticipantOrder/GetParticipantOrderHistory\"\n            }).done(function (data, textStatus, request) {\n                $(\"#order-history-modal\").find(\".modal-body\").html(data);\n            }).fail(function (response, textStatus, errorThrown) {\n                alert(errorThrown);\n            });\n        });\n        $(me._widget).find(\".js-vieworderdetail\").on('click', function () {\n            var expand = this;\n            me.showDetail(expand);\n        });\n        me.ShowPager();\n        $(me._widget).find(\".accounttransactionListHeading\").click(function () {\n            var newHeader = $(this);\n            var oldHeader = $(\".dataTable\").find(\".sorting_asc,.sorting_desc\");\n            if (newHeader.data(\"sort-field\") === oldHeader.data(\"sort-field\")) // change direction\n             {\n                if ($(\".accounttransactionListHeading.sorting_asc\").length > 0) {\n                    //change from ASC to DESC\n                    oldHeader.removeClass(\"sorting_asc\");\n                    newHeader.addClass(\"sorting_desc\");\n                    me._sortAscending = \"false\";\n                }\n                else {\n                    //change from DESC to ASC\n                    oldHeader.removeClass(\"sorting_desc\");\n                    newHeader.addClass(\"sorting_asc\");\n                    me._sortAscending = \"true\";\n                }\n            }\n            else // change sort column\n             {\n                oldHeader.removeClass(\"sorting_asc\").removeClass(\"sorting_desc\").addClass(\"sorting\");\n                newHeader.removeClass(\"sorting\").addClass(\"sorting_asc\");\n                me._sortAscending = \"true\";\n            }\n            $(me._widget).find(\"#list-items\").html();\n            me._sortBy = newHeader.data(\"sort-field\");\n            me._pageIndex = 0;\n            me.LoadData(false);\n        });\n        $(me._widget).find(\".button.filter-facet-apply\").on(\"click\", function () {\n            me.ApplyFilter(this);\n        });\n    }\n    SendCompositionEmail(button) {\n        var params = {\n            id: parseInt($(button).attr(\"data-order-line-item-id\")),\n            emailAddress: $(button).attr(\"data-email-address\"),\n        };\n        var url = \"/Api/ParticipantOrder/SendCompositionEmail\";\n        $.when(submitAjaxRequest(params, url, \"POST\").done((data, textStatus, request) => {\n            if (data.success) {\n                bootbox.alert($(button).attr(\"data-post-email-body\"));\n            }\n        }));\n    }\n    showDetail(expand) {\n        var me = this;\n        var widgetContainer = $('.widget-accounttransaction-list');\n        var parentContainer = $(expand).parent().closest('tr').next('tr');\n        var detailContainer = $(parentContainer).find(\".detail-\" + $(expand).data(\"identifier\"));\n        var icon = $(expand).find('span');\n        if ($(icon).hasClass('fa-chevron-down')) {\n            if ($(detailContainer).hasClass(\"js-data-loaded\")) {\n                $(parentContainer).removeClass('hide');\n                $(icon).toggleClass('fa-chevron-down fa-chevron-up');\n            }\n            else {\n                $(widgetContainer).find('.js-vieworderdetail').attr('disabled', 'true');\n                var identifier = $(expand).data(\"identifier\");\n                var actionid = $(expand).data(\"actionid\");\n                var source = $(expand).data(\"source\");\n                var transactiontype = $(expand).data(\"transactiontype\");\n                var participantactivityid = $(expand).data(\"participantactivityid\");\n                var showaccount = $(expand).data(\"showaccount\");\n                var showdepositsource = $(expand).data(\"showdepositsource\");\n                var activityname = $(expand).data(\"activityname\");\n                var isadmin = $(expand).data(\"isadmin\");\n                var suppressViewLink = $(widgetContainer).find('.dataTable').attr(\"suppress-view-link\");\n                $.when(me.GetOrderDetail(identifier, actionid, source, transactiontype, participantactivityid, activityname, showaccount, showdepositsource, isadmin, suppressViewLink).done(function (data, textStatus, response) {\n                    $(parentContainer).removeClass('hide');\n                    $(parentContainer).slideDown(1000);\n                    detailContainer.html($(this).data(\"identifier\"));\n                    detailContainer.addClass(\"js-data-loaded\");\n                    $(icon).toggleClass('fa-chevron-down fa-chevron-up');\n                    detailContainer.html(data);\n                    $(widgetContainer).find('.js-vieworderdetail').removeAttr('disabled');\n                    $(widgetContainer).find(\".js-order-send-email\").on(\"click\", function (e) {\n                        e.preventDefault();\n                        var button = $(e.currentTarget);\n                        bootbox.prompt({\n                            title: $(button).attr(\"data-email-address-header\"),\n                            inputType: 'email',\n                            value: $(button).attr(\"data-email-address\"),\n                            callback: function (result) {\n                                if (result != null) {\n                                    $(button).attr(\"data-email-address\", result);\n                                    me.SendCompositionEmail(button);\n                                }\n                            }\n                        });\n                    });\n                    $(widgetContainer).find(\".js-download-action\").on('click', function (e) {\n                        var button = $(e.currentTarget);\n                        me.Download(button);\n                    });\n                }));\n            }\n        }\n        else {\n            $(parentContainer).addClass('hide');\n            $(icon).toggleClass('fa-chevron-down fa-chevron-up');\n        }\n    }\n    GetOrderDetail(identifier, actionid, source, transactiontype, participantactivityid, activityname, showaccount, showdepositsource, isadmin, suppressViewLink) {\n        var params = {\n            \"source\": source,\n            \"transactionType\": transactiontype,\n            \"identifier\": identifier,\n            \"actionId\": actionid,\n            \"participantActivityId\": participantactivityid,\n            \"activityName\": activityname,\n            \"showAccount\": showaccount,\n            \"showDepositSource\": showdepositsource,\n            \"isAdmin\": isadmin,\n            \"suppressViewLink\": suppressViewLink\n        };\n        return $.ajax({\n            data: params,\n            method: \"GET\",\n            url: '/Api/AccountTransaction/GetTransactionDetail'\n        });\n    }\n    SetPager() {\n        var me = this;\n        var defaultOpts = {};\n        if (me._totalPages !== 0) {\n            $(me._widget).find('#accounttransaction-list-pagination').html('');\n            $(me._widget).find('#accounttransaction-list-pagination').html('<ul id=\"pagination\" class=\"pagination-sm\"></ul>');\n            $(me._widget).find('#accounttransaction-list-pagination').find('#pagination').twbsPagination({\n                initiateStartPageClick: false,\n                totalPages: me._totalPages,\n                startPage: (me._pageIndex === 0 ? 1 : (me._pageIndex + 1)),\n                onPageClick: function (event, page) {\n                    me._pageIndex = (page - 1);\n                    me.LoadData(false);\n                }\n            });\n        }\n        else {\n            $(me._widget).find('#accounttransaction-list-pagination').html('');\n        }\n    }\n    LoadData(filterClose) {\n        var me = this;\n        var params = me.BuildParams(me._widgetId);\n        var url = '/Content/RenderAccountTransactionList/' + me._widgetId.toString();\n        //var url = '/Widgets/AccountTransaction/RenderAccountTransactionList/' + me._widgetId.toString();\n        $.when(submitAjaxRequest(params, url, \"POST\").done((data, textStatus, request) => {\n            me._pageIndex = parseInt(request.getResponseHeader(\"X-PageIndex\"));\n            me._totalPages = parseFloat(request.getResponseHeader(\"X-TotalPages\"));\n            $(me._widget).find(\"#list-items\").html(data);\n            me.ShowPager();\n            if (filterClose) {\n                $(\"#ajax-loading\").modal(\"hide\");\n                $(me._widget).find(\".filter-close\").click();\n            }\n            $(me._widget).find(\".js-vieworderdetail\").on('click', function () {\n                var expand = this;\n                me.showDetail(expand);\n            });\n        }));\n    }\n    ShowHideFilter(el) {\n        var me = this;\n        var list = $(el).parent(\".widget-accounttransactionlist\").attr(\"id\");\n        var filterType = $(el).attr(\"data-filtertype\");\n        var $dropdown = $(me._widget).find(\"div[id='\" + list + \"'] .filter-drop-down[data-filtertype='\" + filterType + \"']\");\n        var $indicator = $(me._widget).find(\".filter-indicator\");\n        var dropdownIsClosed = $dropdown.hasClass(\"hide\");\n        $(me._widget).find(\".filter-drop-down\").addClass(\"hide\");\n        $(me._widget).find(\".filter-indicator\").removeClass(\"fa-caret-up\").addClass(\"fa-caret-down\");\n        if (dropdownIsClosed) {\n            $dropdown.removeClass(\"hide\");\n            $indicator.removeClass(\"fa-caret-down\").addClass(\"fa-caret-up\");\n        }\n    }\n    SelectDeselectFacet(el) {\n        var me = this;\n        if ($(el).hasClass(\"disabled\")) {\n            return;\n        }\n        var $facetIndicator = $(el).find(\".filter-facet-indicator\");\n        var $accountTransactionList = $(el).closest(\".accounttransaction-list\");\n        $facetIndicator.toggleClass(\"fa-check\");\n        var contentWidgetID = me._widgetId;\n        if ($facetIndicator.hasClass(\"fa-check\")) {\n            $facetIndicator.removeClass(\"hidden\");\n            $(me._widget).find(\"#widget-accounttransactionlist-appliedfilters-\" + contentWidgetID).append(\"<button class='pull-left btn btn-color1 accounttransaction-list-remove-filter' data-filter-type='\" + $(el).attr(\"data-filter-type\") + \"' data-filter-id='\" + $(el).attr(\"data-filter-id\") + \"'><span class='fa-solid fa-check'></span> \" + $(el).attr(\"data-name\") + \" | <span class='remove'>x</span></button>\");\n            $(me._widget).find(\".accounttransaction-list-remove-filter\").off(\"click\");\n            $(me._widget).find(\".accounttransaction-list-remove-filter\").on(\"click\", function () {\n                var filterID = parseInt($(this).attr(\"data-filter-id\"));\n                var filterType = $(this).attr(\"data-filter-type\");\n                me.SelectDeselectFacet($(\"button.filter-facet[data-filter-type='\" + filterType + \"'][data-filter-id='\" + filterID + \"']\"));\n            });\n        }\n        else {\n            $facetIndicator.addClass(\"hidden\");\n            $(me._widget).find(\"#widget-accounttransactionlist-appliedfilters-\" + contentWidgetID).find(\"button[data-filter-type='\" + $(el).attr(\"data-filter-type\") + \"'][data-filter-id='\" + $(el).attr(\"data-filter-id\") + \"']\").remove();\n        }\n        me.UpdateFilter(contentWidgetID);\n    }\n    ApplyFilter(el) {\n        var me = this;\n        this.UpdateFilter(me._widgetId);\n    }\n    UpdateFilter(contentWidgetID) {\n        var me = this;\n        $('#ajax-loading').modal();\n        me._sortBy = \"datecreated\";\n        me._pageIndex = 0;\n        me._sortAscending = \"false\";\n        me.LoadData(true);\n    }\n    ShowPager() {\n        var me = this;\n        if (me._totalPages > 0) {\n            if (me._totalPages < 1) {\n                me._totalPages = 0;\n            }\n            else {\n                me._totalPages = Math.ceil(me._totalPages);\n            }\n            me.SetPager();\n        }\n    }\n    BuildParams(contentWidgetId) {\n        var $transactiontypeFilter = $(\"div[data-contentwidgetid='\" + contentWidgetId + \"'] div.filter-drop-down[data-filtertype='TransactionTypes']\");\n        var arrayTypes = new Array;\n        $transactiontypeFilter.find(\"span.fa-check\").each(function (i, e) {\n            arrayTypes.push(parseInt($(e).attr(\"data-id\")));\n        });\n        var transactionTypes = arrayTypes.join(\",\");\n        var params = {\n            Take: this._take,\n            PageIndex: this._pageIndex,\n            SortBy: this._sortBy,\n            SortAscending: this._sortAscending,\n            Skip: 0,\n            TransactionTypes: transactionTypes\n        };\n        return params;\n    }\n    Download(button) {\n        var params = {\n            \"id\": parseInt($(button).attr(\"data-order-line-item-id\")),\n        };\n        var url = \"/Api/ParticipantOrder/DownloadAction\";\n        $.when(submitAjaxRequest(params, url, \"POST\").done(function (data, textStatus, request) {\n            if (data.success) {\n                // parentrow status description \n                $(button).closest(\".orderdetail-container\").find(\".js-header-orderstatus\").html(data.data.orderHeaderStatus);\n                ;\n                $(button).closest(\".orderdetail-item-row\").find(\".js-order-status\").html(data.data.orderLineItemStatus);\n                location.href = $(button).attr(\"data-href\");\n            }\n        }));\n    }\n}\n;\n$(document).ready(function () {\n    $(\".widget-accounttransaction-list\").each(function (index, item) {\n        $(item).data(\"manager\", new AccountTransaction(item));\n    });\n});\nclass AccountTransactionFielo {\n    constructor(widget) {\n        this._widget = widget;\n        this.initialize();\n    }\n    initialize() {\n        this.bindControls();\n    }\n    bindControls() {\n        var me = this;\n        var take = 50;\n        var offset = parseInt($(me._widget).find(\".fielo-account-transaction-view-more\").attr(\"data-offset\"));\n        this._widgetId = parseInt($(this._widget).attr(\"data-contentwidgetid\"));\n        var htmlContentToUpdate = $(me._widget).find(\"#accounttransactionfielolist-items\");\n        var filterContentToUpdate = $(me._widget).find(\".accounttransactionfilter-list\");\n        var fields = $(htmlContentToUpdate).attr(\"data-fielo-fields-list\");\n        var additionalFieldsList = $(htmlContentToUpdate).attr(\"data-fielo-additional-fields\");\n        if ($(me._widget).attr(\"data-is-edit-mode\") !== \"true\" && fields != \"\") {\n            if ($(me._widget).attr(\"data-fielo-member-id\") != \"\") {\n                me.GetTransactions(fields, 0, false, htmlContentToUpdate, filterContentToUpdate, additionalFieldsList, take, 0);\n            }\n        }\n        $(me._widget).find(\".fielo-account-transaction-view-more\").on(\"click\", function (e) {\n            var viewmorebutton = $(e.currentTarget);\n            me.viewMore(viewmorebutton, $(this).attr(\"data-offset\"));\n        });\n        if ($(me._widget).attr(\"data-fielo-member-id\") != \"\") {\n            this.BindDataTable();\n        }\n    }\n    viewMore(viewmorebutton, offset) {\n        var me = this;\n        var take = 50;\n        this._widgetId = parseInt($(this._widget).attr(\"data-contentwidgetid\"));\n        var transactionTypes = me.BuildParams(me._widgetId);\n        var htmlContentToUpdate = $(me._widget).find(\"#accounttransactionfielolist-items\");\n        var filterContentToUpdate = $(me._widget).find(\".accounttransactionfilter-list\");\n        var fields = $(htmlContentToUpdate).attr(\"data-fielo-fields-list\");\n        var additionalFieldsList = $(htmlContentToUpdate).attr(\"data-fielo-additional-fields\");\n        if ($(me._widget).attr(\"data-is-edit-mode\") !== \"true\" && fields != \"\") {\n            var currentOffSet = $(viewmorebutton).attr(\"data-offset\");\n            if (currentOffSet != undefined) {\n                var nextOffSet = parseInt(currentOffSet) + 1;\n                $(viewmorebutton).attr(\"data-offset\", nextOffSet);\n            }\n            me.GetTransactionLineItems(fields, transactionTypes, 1, false, htmlContentToUpdate, filterContentToUpdate, additionalFieldsList, take, offset);\n        }\n    }\n    GetTransactions(fielofieldToRetrieve, attempt, renew, htmlContentToUpdate, filterContentToUpdate, additionalFieldsList, take, offset) {\n        $('#ajax-loading').modal();\n        var url = \"/Fielo/GetTransactionsWithAdditional/\" + fielofieldToRetrieve + \"/\" + renew + \"/\" + additionalFieldsList + \"/\" + take + \"/\" + offset;\n        if (additionalFieldsList == \"\") {\n            url = \"/Fielo/GetTransactionsNoAdditional/\" + fielofieldToRetrieve + \"/\" + renew + \"/\" + take + \"/\" + offset;\n        }\n        var me = this;\n        if (attempt < 5) {\n            $.ajax({\n                method: \"GET\",\n                url: url,\n            }).done(function (data, textStatus, request) {\n                if (data != null && data.result != null) {\n                    data.result.fieldName = fielofieldToRetrieve;\n                    data.result.attempt = attempt + 1;\n                    data.result.htmlContentToUpdate = htmlContentToUpdate;\n                    data.result.filterContentToUpdate = filterContentToUpdate;\n                    me.updateTransactionsUI(data.result, take, offset);\n                }\n            });\n        }\n        else {\n            alert(\"too many attempts\");\n            return;\n        }\n    }\n    updateTransactionsUI(data, take, offset) {\n        var me = this;\n        $(\"#ajax-loading\").modal(\"hide\");\n        if (data != null && data.errorCode != undefined) {\n            if (data.errorCode == \"INVALID_SESSION_ID\") {\n                me.GetTransactions(data.fieldName, data.attempt, true, data.htmlContentToUpdate, data.filterContentToUpdate, data.additionalFieldsList, take, offset);\n            }\n            else if (data.errorCode != \"\") {\n                alert(data.errorMessage);\n                return;\n            }\n            else {\n                $(data.htmlContentToUpdate).html(data.transactionHTML);\n                $(data.filterContentToUpdate).html(data.filterHTML);\n                $(me._widget).find(\".filter-text, .filter-close\").on(\"click\", function () {\n                    me.ShowHideFilter(this, false);\n                });\n                $(me._widget).find(\".filter-facet\").on(\"click\", function () {\n                    me.SelectDeselectFacet(this);\n                });\n                $(data.htmlContentToUpdate).find(\".js-account-transaction-additional-fields\").on(\"click\", function (e) {\n                    me.bindAdditionalFields($(e.currentTarget));\n                });\n            }\n        }\n    }\n    bindAdditionalFields(button) {\n        var transactionidentifier = $(button).attr(\"data-transaction-identifier\");\n        var childRow = $(button).closest(\"#accounttransactionfielolist-items\").find(\".js-child-row-\" + transactionidentifier);\n        if ($(childRow).length > 0) {\n            childRow.remove();\n            return;\n        }\n        var json = $(button).attr(\"data-additional-fields-json\");\n        var parentRow = $(button).closest(\"#accounttransactionfielolist-items\").find(\".js-parent-row-\" + transactionidentifier);\n        var panelHeader = $(button).closest(\"#accounttransactionfielolist-items\").attr(\"data-panel-header\");\n        if (json !== \"\") {\n            var jsonobj = JSON.parse(json);\n            var container = \"<tr class='js-child-row-\" + transactionidentifier + \"'><td colspan='5'><div class='panel-group' ><div class='panel panel-primary' >\" +\n                \"<div class='panel-heading'><h4 class='panel-title' >\" + panelHeader + \"</h4></div>\" +\n                \"<div class='panel-body' >\";\n            $.each(jsonobj, function (i, obj) {\n                container = container + \"<div class= 'row' > \" +\n                    \"<div class='col-xs-2' > <label>\" + obj[\"ApiFieldLabel\"] + \"</label></div> \" +\n                    \"<div class='col-xs-10' > <label>\" + obj[\"ApiFieldValue\"] + \"</label></div > \" +\n                    \"</div>\";\n            });\n            container = container + \"</div></div></div></td></tr>\";\n            $(container).insertAfter(parentRow);\n        }\n    }\n    SelectDeselectFacet(el) {\n        var me = this;\n        var contentWidgetID = me._widgetId;\n        if ($(el).hasClass(\"disabled\")) {\n            return;\n        }\n        var $facetIndicator = $(el).find(\".filter-facet-indicator\");\n        var $accountTransactionList = $(el).closest(\".accounttransactionfilter-list\");\n        $(el).find(\".filter-facet-indicator\").toggleClass(\"fa-check\");\n        if ($facetIndicator.hasClass(\"fa-check\")) {\n            $facetIndicator.removeClass(\"hidden\");\n            $(me._widget).find(\"#widget-accounttransactionfilter-appliedfilters-\" + contentWidgetID).append(\"<button class='pull-left btn btn-color1 accounttransactionfilter-list-remove-filter' data-filter-type='\" + $(el).attr(\"data-filter-type\") + \"' data-filter-id='\" + $(el).attr(\"data-filter-id\") + \"'><span class='fa-solid fa-check'></span> \" + $(el).attr(\"data-name\") + \" | <span class='remove'>x</span></button>\");\n            $(me._widget).find(\".accounttransactionfilter-list-remove-filter\").off(\"click\");\n            $(me._widget).find(\".accounttransactionfilter-list-remove-filter\").on(\"click\", function () {\n                var filterID = $(this).attr(\"data-filter-id\");\n                var filterType = $(this).attr(\"data-filter-type\");\n                me.SelectDeselectFacet($(\"button.filter-facet[data-filter-type='\" + filterType + \"'][data-filter-id='\" + filterID + \"']\"));\n            });\n        }\n        else {\n            $facetIndicator.addClass(\"hidden\");\n            $(me._widget).find(\"#widget-accounttransactionfilter-appliedfilters-\" + contentWidgetID).find(\"button[data-filter-type='\" + $(el).attr(\"data-filter-type\") + \"'][data-filter-id='\" + $(el).attr(\"data-filter-id\") + \"']\").remove();\n        }\n        me.UpdateFilter(contentWidgetID);\n    }\n    ApplyFilter(el) {\n        var me = this;\n        this.UpdateFilter(me._widgetId);\n    }\n    UpdateFilter(contentWidgetID) {\n        var me = this;\n        $('#ajax-loading').modal();\n        me.LoadData(true);\n    }\n    LoadData(filterClose) {\n        var me = this;\n        var transactionTypes = me.BuildParams(me._widgetId);\n        var htmlContentToUpdate = $(me._widget).find(\"#accounttransactionfielolist-items\");\n        var filterContentToUpdate = $(me._widget).find(\".accounttransactionfilter-list\");\n        var fielofieldToRetrieve = $(htmlContentToUpdate).attr(\"data-fielo-fields-list\");\n        var additionalFieldsList = $(htmlContentToUpdate).attr(\"data-fielo-additional-fields\");\n        var me = this;\n        var attempt = 1;\n        //$(me._widget).find(\".fielo-account-transaction-view-more\").attr(\"data-offset\", \"0\")\n        var offset = parseInt($(me._widget).find(\".fielo-account-transaction-view-more\").attr(\"data-offset\"));\n        offset = offset - 1;\n        me.GetTransactionLineItems(fielofieldToRetrieve, transactionTypes, attempt, false, htmlContentToUpdate, filterContentToUpdate, additionalFieldsList, 50, offset);\n    }\n    GetTransactionLineItems(fielofieldToRetrieve, transactionType, attempt, renew, htmlContentToUpdate, filterContentToUpdate, additionalFieldsList, take, offset) {\n        var me = this;\n        if (transactionType == \"\") {\n            transactionType = \"ALL\";\n        }\n        var url = \"\";\n        if (additionalFieldsList == \"\") {\n            url = \"/Fielo/GetTransactionLineItemsNoAdditionalFields/\" + fielofieldToRetrieve + \"/\" + transactionType + \"/\" + false + \"/\" + take + \"/\" + offset;\n        }\n        else {\n            url = \"/Fielo/GetTransactionLineItemsWithAdditionalFields/\" + fielofieldToRetrieve + \"/\" + transactionType + \"/\" + false + \"/\" + additionalFieldsList + \"/\" + take + \"/\" + offset;\n        }\n        if (attempt < 5) {\n            $.ajax({\n                method: \"GET\",\n                url: url\n            }).done(function (data, textStatus, request) {\n                if (data != null && data.result != null) {\n                    data.result.fieldName = fielofieldToRetrieve;\n                    data.result.attempt = attempt + 1;\n                    data.result.htmlContentToUpdate = htmlContentToUpdate;\n                    data.result.filterContentToUpdate = filterContentToUpdate;\n                    me.updateTransactionLineItemsUI(data.result, take, offset);\n                }\n            });\n        }\n        else {\n            alert(\"too many attempts\");\n            return;\n        }\n    }\n    BindDataTable() {\n        var me = this;\n        var table = $(me._widget).find(\"#accounttransactionfielo-\" + me._widgetId);\n        $(table).DataTable({\n            searching: false,\n            blengthChange: true,\n            bPaginate: false,\n            bInfo: false,\n            order: [],\n            \"columnDefs\": [\n                { type: 'date', \"orderable\": false, \"searchable\": false, \"targets\": 2 },\n                { \"targets\": 0, \"orderable\": false },\n                { \"targets\": 1, \"orderable\": false },\n                { \"targets\": 3, \"orderable\": false },\n                { \"targets\": 4, \"orderable\": false },\n                { \"targets\": 5, \"orderable\": false },\n            ]\n        });\n    }\n    updateTransactionLineItemsUI(data, take, offset) {\n        var me = this;\n        if (data != null && data.errorCode != undefined) {\n            if (data.errorCode == \"INVALID_SESSION_ID\") {\n                me.GetTransactionLineItems(data.fieldName, data.transactionType, data.attempt, true, data.htmlContentToUpdate, data.filterContentToUpdate, data.additionalFieldsList, take, offset);\n            }\n            else if (data.errorCode != \"\") {\n                alert(data.errorMessage);\n                $(\"#ajax-loading\").modal(\"hide\");\n                me.ShowHideFilter($(me._widget).find(\".filter-text\"), true);\n                //me.SelectDeselectFacet($(me._widget).find(\".filter-text, .filter-close\"));\n                return;\n            }\n            else {\n                //var table = $(me._widget).find(\"#accounttransactionfielo-\" + me._widgetId);\n                //$(table).DataTable().destroy();\n                $(data.htmlContentToUpdate).empty();\n                $(data.htmlContentToUpdate).html(data.transactionHTML);\n                $(data.filterContentToUpdate).html(data.filterHTML);\n                //me.BindDataTable();\n                $(me._widget).find(\".filter-text, .filter-close\").on(\"click\", function () {\n                    me.ShowHideFilter(this, false);\n                });\n                $(me._widget).find(\".filter-facet\").on(\"click\", function () {\n                    me.SelectDeselectFacet(this);\n                });\n                $(data.htmlContentToUpdate).find(\".js-account-transaction-additional-fields\").on(\"click\", function (e) {\n                    me.bindAdditionalFields($(e.currentTarget));\n                });\n                me.ShowHideFilter($(me._widget).find(\".filter-text\"), true);\n                $(\"#ajax-loading\").modal(\"hide\");\n            }\n        }\n    }\n    BuildParams(contentWidgetId) {\n        var $transactiontypeFilter = $(\"div[data-contentwidgetid='\" + contentWidgetId + \"'] div.filter-drop-down[data-filtertype='TransactionTypes']\");\n        var arrayTypes = new Array;\n        $transactiontypeFilter.find(\"span.fa-check\").each(function (i, e) {\n            arrayTypes.push($(e).attr(\"data-id\"));\n        });\n        var transactionTypes = arrayTypes.join(\",\");\n        if (transactionTypes == \"\") {\n            transactionTypes = \"All\";\n        }\n        return transactionTypes;\n    }\n    ShowHideFilter(el, close) {\n        var me = this;\n        var filterType = $(el).attr(\"data-filtertype\");\n        var $dropdown = $(me._widget).find(\"div[id='accounttransactionfilter-list'] .filter-drop-down[data-filtertype='\" + filterType + \"']\");\n        var $indicator = $(me._widget).find(\".filter-indicator\");\n        var dropdownIsClosed = $dropdown.hasClass(\"hide\");\n        if (close) {\n            dropdownIsClosed = false;\n        }\n        $(me._widget).find(\".filter-drop-down\").addClass(\"hide\");\n        $(me._widget).find(\".filter-indicator\").removeClass(\"fa-caret-up\").addClass(\"fa-caret-down\");\n        if (dropdownIsClosed) {\n            $dropdown.removeClass(\"hide\");\n            $indicator.removeClass(\"fa-caret-down\").addClass(\"fa-caret-up\");\n        }\n    }\n}\n;\n$(document).ready(function () {\n    $(\".widget-accounttransactionfielo\").each(function (index, item) {\n        $(item).data(\"manager\", new AccountTransactionFielo(item));\n    });\n});\n/// <reference path=\"../lib/jquery.d.ts\" />\n/// <reference path=\"../lib/gage.d.ts\" />\n/// <reference path=\"../lib/helper.admin.d.ts\" />\nclass AgentMarketingPlan {\n    constructor(widget) {\n        this._widget = widget;\n        this.initialize();\n    }\n    initialize() {\n        this._widgetId = parseInt($(this._widget).attr(\"data-contentwidgetid\"));\n        this._widgetContainer = \"widget-teamleader-team-detail-container-\" + this._widgetId;\n        this._globalModal = new GlobalModal(this._widgetId);\n        this.bindControls();\n    }\n    bindControls() {\n        var me = this;\n        $('.js-agent-marketing-plan-form-numeric').on('keypress', function (event) {\n            var charCode = (event.which) ? event.which : event.keyCode;\n            if (charCode == 101 || charCode == 69 || charCode == 45 || charCode == 43 || charCode == 46) {\n                return false;\n            }\n            this.value = this.value.replace(/[^0-9\\.]/g, '');\n        });\n    }\n}\n$(document).ready(function () {\n    $(\".widget-agent-marketing-plan\").each(function (index, item) {\n        $(item).data(\"manager\", new AgentMarketingPlan(item));\n    });\n});\n/// <reference path=\"../lib/jquery.d.ts\" />\n/// <reference path=\"../lib/helper.admin.d.ts\" />\nclass ViewCompletionList {\n    constructor(widget) {\n        this._widget = widget;\n        this.initialize();\n    }\n    initialize() {\n        this._sortBy = $(this._widget).attr(\"data-sort-by\");\n        this.bindControls();\n    }\n    bindControls() {\n        var me = this;\n        $(me._widget).find(\".coursecompletionsListHeading\")\n            .click(function () {\n            var newHeader = $(this);\n            var oldHeader = $(me._widget).find(\".dataTable\").find(\".sorting_asc,.sorting_desc\");\n            if (newHeader.data(\"sort-field\") === oldHeader.data(\"sort-field\")) // change direction\n             {\n                if (oldHeader.hasClass(\"sorting_asc\")) {\n                    //change from ASC to DESC\n                    oldHeader.removeClass(\"sorting_asc\");\n                    newHeader.addClass(\"sorting_desc\");\n                    me._sortAscending = \"false\";\n                }\n                else {\n                    //change from DESC to ASC\n                    oldHeader.removeClass(\"sorting_desc\");\n                    newHeader.addClass(\"sorting_asc\");\n                    me._sortAscending = \"true\";\n                }\n            }\n            else // change sort column\n             {\n                oldHeader.removeClass(\"sorting_asc\").removeClass(\"sorting_desc\").addClass(\"sorting\");\n                newHeader.removeClass(\"sorting\").addClass(\"sorting_asc\");\n                me._sortAscending = \"true\";\n            }\n            //$(me._widget).find(\"#list-items\").html();\n            $(me._widget).find(\".completion-list-view-more\").removeAttr(\"disabled\");\n            me._sortBy = newHeader.data(\"sort-field\");\n            $(me._widget).find(\"#data-startat\").val(0);\n            me.LoadMore(me._widget);\n        });\n    }\n    LoadMore(el) {\n        var thisWidget = $(el).closest('.widget-coursecompletions');\n        var contentWidgetId = parseInt(thisWidget.find(\"#data-contentwidgetid\").val());\n        var totalNumberOfCompletions = parseInt(thisWidget.find(\"#data-totalitem\").val());\n        var skip = parseInt(thisWidget.find(\"#data-skip\").val());\n        var start = parseInt(thisWidget.find(\"#data-startat\").val());\n        var dto = {\n            Categories: null,\n            Tags: null,\n            ContentTypes: null,\n            Skip: skip,\n            Take: start,\n            SortField: this._sortBy,\n            SortAscending: this._sortAscending\n        };\n        var url = '/Content/RenderCompletionsList/' + contentWidgetId;\n        $.when(submitAjaxRequest(dto, url, \"POST\", function () {\n            $(\"#ajax-loading\").modal();\n        }).done(function (data, textStatus, request) {\n            $(\"#ajax-loading\").modal(\"hide\");\n            var completionsTable = '#usercompletions-completed-' + contentWidgetId;\n            if (start === 0) {\n                $(completionsTable).find('tbody').empty();\n                $(completionsTable).find('tbody').append(data);\n            }\n            else {\n                $(completionsTable + ' tr:last').after(data);\n            }\n            var numberOfItems = request.getResponseHeader('X-StartAt');\n            thisWidget.find(\"#data-startat\").val(numberOfItems);\n            if (numberOfItems >= totalNumberOfCompletions)\n                $(el).attr(\"disabled\", \"disabled\");\n        }));\n    }\n    GenerateTranscript(el) {\n        var contentWidgetId = parseInt($(el).attr(\"data-contentwidgetid\"));\n        var participantId = parseInt($(el).attr(\"data-participant-id\"));\n        var token = $(el).attr(\"data-token\");\n        var $completionsTable = $(\"#usercompletions-completed-\" + contentWidgetId);\n        var dto = null;\n        var selectedCourses = [];\n        var selectedCurriculums = [];\n        $completionsTable.find('input[type=\"checkbox\"]:checked').each(function (index, row) {\n            var currentRow = $(this).closest(\"tr\");\n            var itemId = parseInt(currentRow.find(\"td:eq(0)\").attr(\"data-filter-id\"));\n            switch (currentRow.data(\"type\")) {\n                case \"content\":\n                    selectedCourses.push(itemId);\n                    break;\n                case \"curriculum\":\n                    selectedCurriculums.push(itemId);\n                    break;\n            }\n        });\n        if (selectedCourses.length === 0 && selectedCurriculums.length === 0) {\n            bootbox.alert({\n                title: '<span class=\"fa-solid fa-circle-exclamation\"></span> Transcript Generation',\n                message: 'Please select a course for transcript generation.',\n                closeButton: true\n            });\n        }\n        else {\n            dto = {\n                Token: token,\n                ParticipantId: participantId,\n                WidgetId: contentWidgetId,\n                ContentIds: selectedCourses,\n                CurriculumIds: selectedCurriculums\n            };\n            var url = '/Content/DownLoadEntitlementFile?' + btoa(JSON.stringify(dto));\n            window.open(url, '_blank');\n        }\n    }\n}\nvar viewCompletionList;\n$(document).ready(function () {\n    $(\".widget-coursecompletions\").each(function (index, item) {\n        viewCompletionList = new ViewCompletionList(item);\n    });\n    $(\"body\").on(\"click\", \".completion-list-view-more\", function () {\n        viewCompletionList.LoadMore(this);\n    });\n    $(\"body\")\n        .on(\"click\", \".completion-list-generatetranscript\", function () {\n        viewCompletionList\n            .GenerateTranscript(this);\n    });\n});\n/// <reference path=\"../lib/jquery.d.ts\" />\n/// <reference path=\"../lib/helper.admin.d.ts\" />\nclass ViewContentList {\n    LoadMore(el) {\n        var $list = $(\"#\" + $(el).attr(\"data-contentlist-id\"));\n        var totalNumberOftiles = parseInt($list.attr(\"data-numberoftiles\"));\n        var contentWidgetId = parseInt($list.attr(\"data-contentwidgetid\"));\n        var $listItems = $(\"#content-list-\" + contentWidgetId + \"-items\");\n        var dto = this.getFiltersDto(contentWidgetId);\n        dto.Skip = parseInt($(el).attr(\"data-startat\"));\n        // disable the view more button (will be enabled after successful ajax call)\n        $(el).prop(\"disabled\", true);\n        // remove the outline on mouse click so that there isn't a lingering outline\n        $(el).on(\"mousedown\", function () {\n            $(this).css(\"outline\", \"none\");\n        });\n        var url = '/Content/RenderContentList/' + contentWidgetId;\n        $.when(submitAjaxRequest(dto, url, \"POST\").done(function (response) {\n            // view more button enabled\n            $(\"[data-contentlist-id='content-list-\" + contentWidgetId + \"']\").prop(\"disabled\", false);\n        }).done(function (data) {\n            $listItems.append(data);\n            var totalTiles = $list.find(\".list-item:not(.spacer)\").length;\n            if (totalTiles == 0) { // list, not tiles\n                totalTiles = $list.find(\".content-list-result\").length;\n            }\n            if (totalTiles >= totalNumberOftiles) {\n                $list.find(\".view-more-container\").hide();\n            }\n            $(el).attr(\"data-startat\", totalTiles);\n        }));\n        globalThis.gage.log(\"[data-contentlist-id='content-list-\" + contentWidgetId + \"']\");\n    }\n    ShowHideFilter(el) {\n        var list = $(el).parent(\".widget-contentlist\").attr(\"id\");\n        var filterType = $(el).attr(\"data-filtertype\");\n        var $dropdown = $(\"div[id='\" + list + \"'] .filter-drop-down[data-filtertype='\" + filterType + \"']\");\n        var $indicator = $(el).find(\".filter-indicator\");\n        var dropdownIsClosed = $dropdown.hasClass(\"hide\");\n        $(\".filter-drop-down\").addClass(\"hide\");\n        $(\".filter-indicator\").removeClass(\"fa-caret-up\").addClass(\"fa-caret-down\");\n        if (dropdownIsClosed) {\n            $dropdown.removeClass(\"hide\");\n            $indicator.removeClass(\"fa-caret-down\").addClass(\"fa-caret-up\");\n        }\n    }\n    SelectDeselectFacet(el) {\n        if ($(el).hasClass(\"disabled\")) {\n            return;\n        }\n        var $contentList = $(el).closest(\".content-list\");\n        var $filterParent = $(el).closest(\"li\");\n        var $facetIndicator = $filterParent.find(\".filter-facet-indicator\");\n        $facetIndicator.toggleClass(\"fa-check\");\n        var contentWidgetID = parseInt($contentList.attr(\"data-contentwidgetid\"));\n        var filterType = $(el).attr(\"data-filter-type\");\n        if ($(el).attr(\"data-selected\") === \"false\") {\n            $(el).attr(\"data-selected\", \"true\");\n        }\n        else {\n            $(el).attr(\"data-selected\", \"false\");\n        }\n        if ($facetIndicator.hasClass(\"fa-check\")) {\n            $facetIndicator.removeClass(\"hidden\");\n            $(\"#widget-contentlist-appliedfilters-\" + contentWidgetID).append(\"<button class='pull-left btn btn-color1 content-list-remove-filter' data-filter-type='\" + $(el).attr(\"data-filter-type\") + \"' data-filter-id='\" + $(el).attr(\"data-filter-id\") + \"'><span class='fa-solid fa-check'></span> \" + $(el).attr(\"data-name\") + \" | <span class='remove'>x</span></button>\");\n        }\n        else {\n            $facetIndicator.addClass(\"hidden\");\n            $(\"#widget-contentlist-appliedfilters-\" + contentWidgetID).find(\"button[data-filter-type='\" + $(el).attr(\"data-filter-type\") + \"'][data-filter-id='\" + $(el).attr(\"data-filter-id\") + \"']\").remove();\n        }\n        this.updateFilter(contentWidgetID);\n    }\n    ApplyFilter(el) {\n        this.updateFilter(parseInt($(el).closest(\".content-list\").attr(\"data-contentwidgetid\")));\n    }\n    ClearFilter(el) {\n        var contentWidgetID = parseInt($(el).closest(\".content-list\").attr(\"data-contentwidgetid\"));\n        $(\"div[data-contentwidgetid='\" + contentWidgetID + \"'] ul.js-filter-drop-down\").find(\"input[type=checkbox]\").prop(\"checked\", false);\n        this.updateFilter(contentWidgetID);\n    }\n    updateFilter(contentWidgetID) {\n        $('#ajax-loading').modal();\n        var $list = $(\"#content-list-\" + contentWidgetID);\n        var $listItems = $(\"#content-list-\" + contentWidgetID + \"-items\");\n        var dto = this.getFiltersDto(contentWidgetID);\n        var url = '/Content/RenderContentList/' + contentWidgetID;\n        $.when(submitAjaxRequest(dto, url, \"POST\").done(function (data, textStatus, request) {\n            var numberOfItems = parseInt(request.getResponseHeader(\"X-NumberOfListItems\"));\n            var numberOfItemsToShow = parseInt(request.getResponseHeader(\"X-NumberOfItemsToShow\"));\n            $list.find(\".btn-view-more\").attr(\"data-startat\", numberOfItemsToShow);\n            if (numberOfItems <= numberOfItemsToShow) {\n                $list.find(\".view-more-container\").hide();\n            }\n            else {\n                $list.find(\".view-more-container\").show();\n            }\n            $list.attr(\"data-numberoftiles\", numberOfItems);\n            $listItems.html(data);\n            $(\".filter-facet\").removeClass(\"processed\").removeClass(\"disabled\");\n            //var $filterUpdates: JQuery = $listItems.find(\"#content-list-\" + contentWidgetID + \"-filter-update\");\n            var $filterUpdates = $(\"#content-list-\" + contentWidgetID);\n            var $categories = JSON.parse($filterUpdates.attr(\"data-filters-categories\"));\n            $($categories).each(function (i, e) {\n                var $filter = $(\"#content-list-filter-category-\" + e.ID);\n                $filter.addClass(\"processed\");\n                if (e.NumberOfItems > 0) {\n                    $filter.find(\".content-list-filter-count\").text(\"(\" + e.NumberOfItems + \")\");\n                }\n            });\n            var $contenttypes = JSON.parse($filterUpdates.attr(\"data-filters-contenttypes\"));\n            $($contenttypes).each(function (i, e) {\n                var $filter = $(\"#content-list-filter-contenttype-\" + e.ID);\n                $filter.addClass(\"processed\");\n                if (e.NumberOfItems > 0) {\n                    $filter.find(\".content-list-filter-count\").text(\"(\" + e.NumberOfItems + \")\");\n                }\n            });\n            var $tags = JSON.parse($filterUpdates.attr(\"data-filters-tags\"));\n            $($tags).each(function (i, e) {\n                var $filter = $(\"#content-list-filter-tag-\" + e.ID);\n                $filter.addClass(\"processed\");\n                if (e.NumberOfItems > 0) {\n                    $filter.find(\".content-list-filter-count\").text(\"(\" + e.NumberOfItems + \")\");\n                }\n            });\n            var $completionStatuses = JSON.parse($filterUpdates.attr(\"data-filters-completionstatus\"));\n            $($completionStatuses).each(function (i, e) {\n                var $filter = $(\"#content-list-filter-completionstatus-\" + e.ID);\n                $filter.addClass(\"processed\");\n                if (e.NumberOfItems > 0) {\n                    $filter.find(\".content-list-filter-count\").text(\"(\" + e.NumberOfItems + \")\");\n                }\n            });\n            $(\".filter-facet\").not(\".processed\").each(function (i, e) {\n                $(e).addClass(\"disabled\");\n                $(e).find(\".content-list-filter-count\").text(\"(0)\");\n            });\n            $(\"#ajax-loading\").modal(\"hide\");\n            $(\".filter-close\").click();\n        }));\n    }\n    getFiltersDto(contentWidgetId) {\n        var $categoriesFilter = $(\"div[data-contentwidgetid='\" + contentWidgetId + \"'] ul.js-filter-drop-down[data-filtertype='Categories']\");\n        var $tagsFilter = $(\"div[data-contentwidgetid='\" + contentWidgetId + \"'] ul.js-filter-drop-down[data-filtertype='Tags']\");\n        var $contentTypesFilter = $(\"div[data-contentwidgetid='\" + contentWidgetId + \"'] ul.js-filter-drop-down[data-filtertype='ContentTypes']\");\n        var $completionStatusesFilter = $(\"div[data-contentwidgetid='\" + contentWidgetId + \"'] ul.js-filter-drop-down[data-filtertype='CompletionStatus']\");\n        var categories = new Array;\n        var tags = new Array;\n        var contentTypes = new Array;\n        var completionStatuses = new Array;\n        $categoriesFilter.find(\"input[type=checkbox]:checked, button.filter-facet[data-selected=true]\").each(function (i, e) {\n            categories.push(parseInt($(e).attr(\"data-id\")));\n        });\n        $tagsFilter.find(\"input[type=checkbox]:checked, button.filter-facet[data-selected=true]\").each(function (i, e) {\n            tags.push(parseInt($(e).attr(\"data-id\")));\n        });\n        $contentTypesFilter.find(\"input[type=checkbox]:checked, button.filter-facet[data-selected=true]\").each(function (i, e) {\n            contentTypes.push(parseInt($(e).attr(\"data-id\")));\n        });\n        $completionStatusesFilter.find(\"input[type=checkbox]:checked, button.filter-facet[data-selected=true]\").each(function (i, e) {\n            completionStatuses.push(parseInt($(e).attr(\"data-id\")));\n        });\n        var dto = {\n            Categories: categories,\n            Tags: tags,\n            ContentTypes: contentTypes,\n            EntityItemTypes: contentTypes,\n            CompletionStatuses: completionStatuses,\n            Skip: 0\n        };\n        return dto;\n    }\n}\nvar viewContentList = new ViewContentList();\n$(document).ready(function () {\n    $(\"body\").on(\"click\", \".content-list-view-more\", function () {\n        viewContentList.LoadMore(this);\n        // $(this).css(\"outline-color\", \"none\");\n    });\n    $(\"body\").on(\"click\", \".content-list .filter-text, .content-list .filter-close\", function () {\n        viewContentList.ShowHideFilter(this);\n    });\n    $(\"body\").on(\"click\", \".content-list .filter-facet\", function () {\n        viewContentList.SelectDeselectFacet(this);\n    });\n    $(\"body\").on(\"click\", \".js-filter-clear\", function () {\n        viewContentList.ClearFilter(this);\n    });\n    $(\".js-content-list-side-filter\").on(\"click\", \".js-content-list-filter-apply\", function () {\n        viewContentList.ApplyFilter(this);\n    });\n    $(\".js-content-list-side-filter\").on(\"click\", \".js-expand-filter-section\", function (e) {\n        var controlId = $(this).attr(\"aria-controls\");\n        var exState = $(this).attr(\"aria-expanded\");\n        if (exState == \"false\") {\n            $(\"#\" + controlId).removeClass(\"hidden\");\n            $(this).attr(\"aria-expanded\", \"true\");\n            $(this).find(\"span.fa-solid\").removeClass(\"fa-plus\");\n            $(this).find(\"span.fa-solid\").addClass(\"fa-minus\");\n        }\n        else {\n            $(\"#\" + controlId).addClass(\"hidden\");\n            $(this).attr(\"aria-expanded\", \"false\");\n            $(this).find(\"span.fa-solid\").removeClass(\"fa-minus\");\n            $(this).find(\"span.fa-solid\").addClass(\"fa-plus\");\n        }\n    });\n    $(\"body\").on(\"click\", \".content-list .content-list-remove-filter\", function () {\n        var filterID = parseInt($(this).attr(\"data-filter-id\"));\n        var filterType = $(this).attr(\"data-filter-type\");\n        viewContentList.SelectDeselectFacet($(\"button.filter-facet[data-filter-type='\" + filterType + \"'][data-filter-id='\" + filterID + \"']\"));\n    });\n    $(\"body\").on(\"click\", \".content-list button.filter-facet-apply\", function () {\n        viewContentList.ApplyFilter(this);\n    });\n});\n/// <reference path=\"../lib/twbs-pagination.d.ts\" />\n/// <reference path=\"../lib/jquery.d.ts\" />\n/// <reference path=\"../lib/gage.d.ts\" />\n/// <reference path=\"../lib/helper.admin.d.ts\" />\nclass EmailConfiguration {\n    constructor(widget) {\n        this._widget = widget;\n        this.initialize();\n    }\n    initialize() {\n        this._widgetId = parseInt($(this._widget).attr(\"data-contentwidgetid\"));\n        this.bindControls();\n    }\n    bindControls() {\n        const me = this;\n        // me.bindLocalizedTime();\n        $(\"body\").on(\"click\", \".js-remove-list\", function () {\n            $(this).next(\".js-remove-list-confirm\").removeClass(\"hidden\");\n        });\n        $(\"body\").on(\"click\", \".js-replace-add-list\", function (e) {\n            $(this).next(\".js-replace-list-confirm\").removeClass(\"hidden\");\n        });\n        $(\"body\").on(\"click\", \".js-replace-list-confirm button\", function () {\n            $(this).closest(\".js-replace-list-confirm\").addClass(\"hidden\");\n        });\n        $(\"body\").on(\"click\", \".js-remove-list-confirm button\", function () {\n            $(this).closest(\".js-remove-list-confirm\").addClass(\"hidden\");\n        });\n        $(\"body\").on(\"click\", \".js-replace-campaign-recipient-list\", function (e) {\n            $(\".js-global-modal\").find(\"#uploadList\").attr(\"data-replace-list-action\", \"replace\");\n            if ($(e.currentTarget).attr(\"data-is-seed-list-type\") == \"True\") {\n                $(\".js-global-modal\").find(\"#emailListType\").val(\"Seed\");\n            }\n            else {\n                $(\".js-global-modal\").find(\"#emailListType\").val(\"Recipient\");\n            }\n            $(\".js-global-modal #listTab\").trigger(\"click\");\n        });\n        $(\"body\").on(\"click\", \".js-upload-recipient-replace-action\", function (e) {\n            e.preventDefault();\n            $(this).closest(\".js-upload-recipient-replace-list-confirm\").addClass(\"hidden\");\n            me.uploadRecipients();\n        });\n        $(\"body\").on(\"click\", \".js-upload-recipient-add-action\", function (e) {\n            e.preventDefault();\n            $(this).closest(\".js-upload-recipient-replace-list-confirm\").addClass(\"hidden\");\n            $(\"#uploadList\").attr(\"data-replace-list-action\", \"\");\n            me.uploadRecipients();\n        });\n        $(\"body\").on(\"click\", \".js-upload-recipient-replace-cancel-action\", function (e) {\n            e.preventDefault();\n            $(\"#uploadList\").attr(\"data-replace-list-action\", \"\");\n            $(this).closest(\".js-upload-recipient-replace-list-confirm\").addClass(\"hidden\");\n        });\n        $(\"body\").on(\"click\", \".js-remove-campaign-recipient-list\", function (e) {\n            e.preventDefault();\n            var campaignIdentifier = $(e.currentTarget).closest(\".js-send-details\").attr(\"data-campaign-identifier\");\n            var campaignItemScheduleId = $(e.currentTarget).closest(\".js-send-details\").attr('data-campaign-item-schedule-id');\n            var isSeedContact = $(e.currentTarget).attr(\"data-is-seed-list-type\") === \"True\";\n            var emailListContainer = $(\".js-global-modal\").find(\".js-email-list-recipient-container\");\n            var url = (\"/EmailCampaign/DeleteContactCampaignItemSchedules/\" + campaignIdentifier + \"/\" + campaignItemScheduleId + \"/\" + isSeedContact);\n            // TODO: Endpoint doesn't exist.\n            $.when(submitAjaxRequest(undefined, url, \"DELETE\").done(function (data) {\n                if (data !== null) {\n                    if (data.errorMessage !== null && data.errorMessage.length > 0) {\n                    }\n                    else {\n                        const url = \"/EmailCampaign/GetEmailLists/\" + $(e.currentTarget).closest(\".js-send-details\").attr(\"data-campaign-identifier\") + \"/\" + campaignItemScheduleId;\n                        $.when(globalThis.gage.submitAjaxRequest(null, url, \"GET\")\n                            .done(function (data, status, request) {\n                            $(emailListContainer).html(data);\n                            me.bindLocalizedTime();\n                        })\n                            .fail(function (response, textStatus, errorThrown) {\n                            alert(errorThrown);\n                        }));\n                    }\n                }\n            }));\n        });\n        $(\"input[name=productSelecter]\").on(\"click\", function (el) {\n            const selectedOptions = [];\n            $(\"input:checkbox[name=productSelecter]:checked\").each(function () {\n                selectedOptions.push($(this).val());\n            });\n            if (selectedOptions.length > 0) {\n                $(\".js-configure-send\").prop('disabled', false);\n            }\n            else {\n                $(\".js-configure-send\").prop('disabled', true);\n            }\n        });\n        $(\".js-global-modal\").on(\"change\", \"input[name=seedListSend]\", function (e) {\n            if ($(this).val() === \"seperate\") {\n                $(\".js-seed-list-schedule\").removeClass(\"hidden\");\n            }\n            else {\n                $(\".js-seed-list-schedule\").addClass(\"hidden\");\n            }\n        });\n        $(\".js-global-modal\").on(\"change\", \"input[name=listSend]\", function (e) {\n            if ($(this).val() === \"schedule\") {\n                $(\".js-schedule-send-config\").removeClass(\"hidden\");\n            }\n            else {\n                $(\".js-schedule-send-config\").addClass(\"hidden\");\n            }\n        });\n        $(\".js-configure-send\").on(\"click\", function (e) {\n            e.preventDefault();\n            const id = $(e.currentTarget).attr('data-customization-identifier');\n            const campaignId = $(e.currentTarget).attr('data-campaign-id');\n            const campaignIdentifier = $(e.currentTarget).attr('data-campaign-identifier');\n            const campaignItemId = $(e.currentTarget).attr('data-campaign-item-id');\n            const campaignItemScheduleId = $(e.currentTarget).attr('data-campaign-item-schedule-id');\n            const url = \"/EmailCampaign/GetEmailProductCustomization/\" + id + \"/\" + campaignIdentifier + \"/\" + campaignItemScheduleId;\n            $.when(globalThis.gage.submitAjaxRequest(null, url, \"GET\")\n                .done(function (data, status, request) {\n                var html = data;\n                var globalModal = new GlobalModal(id);\n                globalModal.openGlobalModal(html, \"panel\", { origin: $(this), classes: 'configure-send-modal' });\n                const details = $(\".js-global-modal\").find(\".js-send-details\");\n                details.attr(\"data-campaign-id\", campaignId);\n                details.attr(\"data-campaign-item-id\", campaignItemId);\n                details.attr(\"data-campaign-identifier\", campaignIdentifier);\n                details.attr(\"data-campaign-item-schedule-id\", campaignItemScheduleId);\n                details.find(\".js-campaignidentifier\").val(campaignIdentifier);\n                details.find(\".js-campaign-item-schedule-id\").val(campaignItemScheduleId);\n                details.attr(\"data-customization-identifier\", id);\n                $(\".js-schedule-email\").on(\"click\", function (e) {\n                    e.preventDefault();\n                    let startDate = null;\n                    let seedStartDate = null;\n                    //const campaignId = details.attr(\"data-campaign-id\");\n                    //const campaignItemId = details.attr(\"data-campaign-item-id\");\n                    const campaignItemScheduleId = details.attr(\"data-campaign-item-schedule-id\");\n                    let timeZone = $(\".js-schedule-send-config\").find(\".js-send-time-zone\").val();\n                    let seedTimeZone = $(\".js-schedule-seed-send-config\").find(\".js-seed-send-time-zone\").val();\n                    const errorcontainer = $(\".js-global-modal\").find(\".js-error-schedule-container\");\n                    $(errorcontainer).empty();\n                    $(errorcontainer).addClass(\"hide\");\n                    if ($(\"input:radio[name='listSend']:checked\").val() === \"schedule\" || ($(\"input:radio[name='seedListSend']:checked\").val() === \"same\" && $(\"input:radio[name='listSend']:checked\").val() === \"schedule\")) {\n                        if ($(\".js-schedule-send-config\").find(\"#send-date\").val() === \"\") {\n                            alert(\"Please select a date\");\n                            return false;\n                        }\n                        if ($(\".js-schedule-send-config\").find(\"#send-time\").val() === \"\") {\n                            alert(\"Please select a time\");\n                            return false;\n                        }\n                        const dateString = $('#send-date-picker').data(\"DateTimePicker\").date().format(\"YYYY-MM-DD\") +\n                            \" \" +\n                            $('#send-time-picker').data(\"DateTimePicker\").date().format(\"HH:mm:ss\");\n                        const timeZoneDate = dayjs.tz(dateString, timeZone);\n                        startDate = timeZoneDate.utc().format();\n                        seedStartDate = startDate;\n                        timeZone = $(\".js-schedule-send-config\").find(\".js-send-time-zone\").val();\n                        seedTimeZone = timeZone;\n                    }\n                    if ($(e.currentTarget).closest(\"#schedule\").find(\"#sendName\").val() === \"\") {\n                        alert(\"Please enter a name\");\n                        return false;\n                    }\n                    if ($(\"input:radio[name='seedListSend']:checked\").val() === \"seperate\") {\n                        if ($(\".js-schedule-seed-send-config\").find(\"#seed-send-date\").val() === \"\") {\n                            alert(\"Please select a seed start date\");\n                            return false;\n                        }\n                        if ($(\".js-schedule-seed-send-config\").find(\"#seed-send-time\").val() === \"\") {\n                            alert(\"Please select a seed send time\");\n                            return false;\n                        }\n                        const dateString = $('#seed-send-date-picker').data(\"DateTimePicker\").date().format(\"YYYY-MM-DD\") +\n                            \" \" +\n                            $('#seed-send-time-picker').data(\"DateTimePicker\").date().format(\"HH:mm:ss\");\n                        const newDate = new Date(dateString);\n                        const utcDate = dayjs.utc(newDate.toString()).tz(timeZone);\n                        seedStartDate = utcDate.utc().format('YYYY-MM-DD HH:mm:ss');\n                        seedTimeZone = $(\".js-schedule-seed-send-config\").find(\".js-seed-send-time-zone\").val();\n                    }\n                    var url = \"/EmailCampaign/AddCampaignSchedule\";\n                    var params = {\n                        \"campaignItemScheduleId\": campaignItemScheduleId,\n                        \"campaignIdentifier\": $(\".js-global-modal\").find(\".js-send-details\").attr(\"data-campaign-identifier\"),\n                        \"campaignItemId\": parseInt($(\".js-global-modal\").find(\".js-send-details\").attr(\"data-campaign-item-id\")),\n                        \"name\": $(e.currentTarget).closest(\"#schedule\").find(\"#sendName\").val(),\n                        \"startDateTime\": startDate,\n                        \"timeZone\": timeZone,\n                        \"seedStartDateTime\": seedStartDate,\n                        \"seedTimeZone\": seedTimeZone\n                    };\n                    $.when(submitAjaxRequest(params, url, \"POST\").done(function (data, textStatus, request) {\n                        if (data.success == true) {\n                            window.location.reload();\n                            //$(errorcontainer).html($(errorcontainer).attr(\"data-success-message\"));\n                            //$(errorcontainer).removeClass(\"hide\");\n                        }\n                        else {\n                            alert(data.errorMessage);\n                        }\n                    }).fail(function (response, textStatus, errorThrown) {\n                        alert(errorThrown);\n                    }));\n                });\n                me.populateTimeZonesOnly($(\".time-zone\"));\n                $(\"#uploadList\").on(\"click\", function (e) {\n                    if ($(e.currentTarget).attr(\"data-replace-list-action\") === \"replace\") {\n                        $(this).next(\".js-upload-recipient-replace-list-confirm\").removeClass(\"hidden\");\n                    }\n                    else {\n                        me.uploadRecipients();\n                    }\n                });\n                // TODO: this should be removed, there are no enpoints for AddEmailRecipient\n                // there are components in cshtml that still reference this that wouldn't work.\n                $(\".js-upload-single-recipient\").on(\"click\", function (e) {\n                    var emailListContainer = $(\".js-global-modal\").find(\".js-email-list-recipient-container\");\n                    var errorcontainer = $(\".js-upload-single-recipient-container\").find(\".js-error-single-recipient-container\");\n                    var campaignIdentifier = $(e.currentTarget).closest(\".js-send-details\").attr(\"data-campaign-identifier\");\n                    var campaignItemScheduleId = $(e.currentTarget).closest(\".js-send-details\").attr('data-campaign-item-schedule-id');\n                    e.preventDefault();\n                    var url = (\"/EmailCampaign/AddEmailRecipient\");\n                    //TODO: ANTI  - was needs fixup due to how this worked  - data: $(\"#form-single-recipient\").serialize()\n                    //TODO XXX$.ajax({\n                    //     type: \"POST\",\n                    //    data: $(\"#form-single-recipient\").serialize(),\n                    //    dataType: 'json',\n                    //    contentType: 'application/x-www-form-urlencoded; charset=UTF-8',\n                    //    headers: {\n                    //        'RequestVerificationToken': rvaftoValue\n                    //    }\n                    $.when(submitAjaxRequest(undefined, url, \"POST\").done(function (data) {\n                        if (data != null) {\n                            if (data.errorMessage != null && data.errorMessage.length > 0) {\n                                $(errorcontainer).html(data.errorMessage);\n                                $(errorcontainer).removeClass(\"hide\");\n                            }\n                            else {\n                                var url = \"/EmailCampaign/GetEmailLists/\" + campaignIdentifier + \"/\" + campaignItemScheduleId;\n                                $.when(globalThis.gage.submitAjaxRequest(null, url, \"GET\")\n                                    .done(function (data, status, request) {\n                                    $(emailListContainer).html(data);\n                                    $(errorcontainer).html($(errorcontainer).attr(\"data-success-message\"));\n                                    $(errorcontainer).removeClass(\"hide\");\n                                    $(\".js-single-recipient-reset\").click();\n                                    me.bindLocalizedTime();\n                                })\n                                    .fail(function (response, textStatus, errorThrown) {\n                                    alert(errorThrown);\n                                }));\n                            }\n                        }\n                    }));\n                });\n                $(\".js-single-recipient-reset\").on(\"click\", function (e) {\n                    e.preventDefault();\n                    var campaignIdentifier = $(\".js-global-modal\").find(\".js-send-details\").find(\".js-campaignidentifier\").val();\n                    var campaignItemScheduleId = $(\".js-global-modal\").find(\".js-send-details\").find(\".js-campaign-item-schedule-id\").val();\n                    var productCustomizationIdentifier = $(\".js-global-modal\").find(\".js-send-details\").find(\".js-product-customization-identifier\").val();\n                    var item = $(\"#form-single-recipient\")[0];\n                    item.reset();\n                    $(\".js-global-modal\").find(\".js-send-details\").find(\".js-campaignidentifier\").val(campaignIdentifier);\n                    $(\".js-global-modal\").find(\".js-send-details\").find(\".js-campaign-item-schedule-id\").val(campaignItemScheduleId);\n                    $(\".js-global-modal\").find(\".js-send-details\").find(\".js-product-customization-identifier\").val(productCustomizationIdentifier);\n                });\n                $(\".js-cancel-schedule\").on(\"click\", function (e) {\n                    window.location.reload();\n                    //globalModal.closeGlobalModal();\n                });\n                $(\".js-close-modal-overlay\").on(\"click\", function (e) {\n                    window.location.reload();\n                    //globalModal.closeGlobalModal();\n                });\n                $(\"#send-data-picker-full\").datetimepicker();\n                $(\"#seed-send-data-picker-full\").datetimepicker();\n                $('#seed-send-date-picker').datetimepicker({\n                    useCurrent: false,\n                    format: 'MM/DD/YYYY'\n                });\n                $('#send-time-picker').datetimepicker({\n                    format: 'LT'\n                });\n                $('#seed-send-time-picker').datetimepicker({\n                    format: 'LT'\n                });\n                $('#send-date-picker').datetimepicker({\n                    useCurrent: false,\n                    format: 'MM/DD/YYYY'\n                });\n                if ($(\".js-send-time-zone-data\").val() !== \"\" && $(\".js-send-time-zone-data\").val() !== undefined) {\n                    $(\".js-send-time-zone\").val($(\".js-send-time-zone-data\").val());\n                }\n                if ($(\".js-seed-send-time-zone-data\").val() !== \"\" && $(\".js-seed-send-time-zone-data\").val() !== undefined) {\n                    $(\".js-seed-send-time-zone\").val($(\".js-seed-send-time-zone-data\").val());\n                }\n                if ($(\"#send-date-full\").val() !== \"\") {\n                    const setTime = dayjs.utc($('#send-date-full').val()).tz($(\".js-schedule-send-config\").find(\".js-send-time-zone\").val()).format(\"hh:mm A\");\n                    $('#send-time-picker').data(\"DateTimePicker\").date(setTime);\n                }\n                if ($(\"#seed-send-date-full\").val() !== \"\") {\n                    const setSeedTime = dayjs.utc($('#seed-send-date-full').val()).tz($(\".js-schedule-seed-send-config\").find(\".js-seed-send-time-zone\").val()).format(\"hh:mm A\");\n                    $('#seed-send-time-picker').data(\"DateTimePicker\").date(setSeedTime);\n                }\n                me.bindLocalizedTime();\n            })\n                .fail(function (response, textStatus, errorThrown) {\n                alert(errorThrown);\n            }));\n        });\n        $(\".js-delete-send\").on(\"click\", function (e) {\n            const campaignIdentifier = $(e.currentTarget).attr('data-campaign-identifier');\n            const campaignItemId = $(e.currentTarget).attr('data-campaign-item-id');\n            const campaignItemScheduleId = $(e.currentTarget).attr('data-campaign-item-schedule-id');\n            e.preventDefault();\n            const addEmailId = \"add-\" + $(e).attr(\"data-campaign-item-schedule-id\");\n            const testHtml = $(\".js-delete-confirm-content-schedule-single-schedule\").html();\n            const globalModal = new GlobalModal(addEmailId);\n            globalModal.openGlobalModal(testHtml, \"modal\", { origin: $(this), classes: 'delete-modal' });\n            $(\".js-global-modal\").find(\".js-delete-campaign-schedule\").attr(\"data-campaign-identifier\", campaignIdentifier);\n            $(\".js-global-modal\").find(\".js-delete-campaign-schedule\").attr(\"data-campaign-item-id\", campaignItemId);\n            $(\".js-global-modal\").find(\".js-delete-campaign-schedule\").attr(\"data-campaign-item-schedule-id\", campaignItemScheduleId);\n            $(\".js-global-modal\").find(\".js-cancel-confirm\").on(\"click\", function () {\n                globalModal.closeGlobalModal();\n            });\n            // TODO: this should be removed, there are no enpoints for RemoveCampaignItemSchedule\n            // there are components in cshtml that still reference this that wouldn't work.\n            $(\".js-delete-campaign-schedule\").on(\"click\", function (e) {\n                var campaignIdentifier = $(e.currentTarget).attr(\"data-campaign-identifier\");\n                var campaignItemScheduleId = $(e.currentTarget).attr('data-campaign-item-schedule-id');\n                var url = (\"/EmailCampaign/RemoveCampaignItemSchedule/\" + campaignIdentifier + \"/\" + campaignItemScheduleId);\n                // TODO: need to pass a model!!!\n                //    url: (\"/EmailCampaign/RemoveCampaignItemSchedule/\" + campaignIdentifier + \"/\" + campaignItemScheduleId),\n                //    type: \"DELETE\",\n                $.when(submitAjaxRequest(undefined, url, \"DELETE\").done(function (data) {\n                    if (data != null) {\n                        if (data.errorMessage != null && data.errorMessage.length > 0) {\n                        }\n                        else {\n                            window.location.reload();\n                        }\n                    }\n                }));\n            });\n        });\n        $(\".js-review-order\").on(\"click\", function (e) {\n            event.preventDefault();\n            const addEmailId = \"add-\" + $(e).attr(\"id\");\n            const testHtml = $(\".js-confirm-campaign-order\").html();\n            const globalModal = new GlobalModal(addEmailId);\n            globalModal.openGlobalModal(testHtml, \"modal\", { origin: $(this), classes: 'delete-modal' });\n            const productCustomizations = [];\n            $.each($(e.currentTarget).closest(\".js-email-configuration-container\").find(\"#campaign-schedule-items\").find(\".js-configure-send\"), function (index, elem) {\n                productCustomizations.push($(elem).attr(\"data-customization-identifier\") + \"|\" + $(elem).attr(\"data-campaign-item-schedule-id\"));\n            });\n            $(\".js-global-modal\").find(\".js-confirm-campaign-order-continue\").attr(\"identifiers\", productCustomizations.join(\",\"));\n            $(\".js-close-modal, .js-cancel-confirm\").on(\"click\", function () {\n                globalModal.closeGlobalModal();\n            });\n            $(\".js-confirm-campaign-order-continue\").on(\"click\", function (e) {\n                e.preventDefault();\n                const array = $(e.currentTarget).attr(\"identifiers\").split(',');\n                const productCustomizationIdentifiers = [];\n                $.each(array, function (index, elem) {\n                    const productCustomization = {\n                        \"identifier\": elem.split(\"|\")[0],\n                        \"campaignItemScheduleId\": elem.split(\"|\")[1]\n                    };\n                    productCustomizationIdentifiers.push(productCustomization);\n                });\n                var url = \"/Api/ProductCustomization/CreateOrder\";\n                // TODO make sure that serialization worked and content type is correct\n                // XXX$.ajax({\n                //    data: JSON.stringify(productCustomizationIdentifiers),\n                //    method: \"POST\",\n                //    url: \"/Api/ProductCustomization/CreateOrder\",\n                //    contentType: \"application/json; charset=utf-8\",\n                //})\n                $.when(submitAjaxRequest(productCustomizationIdentifiers, url, \"POST\").done(function (data, textStatus, request) {\n                    if (data !== null && data.redirectUrl != null) {\n                        window.location.href = data.redirectUrl;\n                        return;\n                    }\n                }).fail(function (response, textStatus, errorThrown) {\n                    alert(errorThrown);\n                }));\n            });\n        });\n    }\n    uploadRecipients() {\n        var me = this;\n        var btn = $(\"#uploadList\");\n        var campaignIdentifier = $(btn).closest(\".js-send-details\").attr(\"data-campaign-identifier\");\n        var campaignItemScheduleId = $(btn).closest(\".js-send-details\").attr('data-campaign-item-schedule-id');\n        var customizationIdentifier = $(btn).attr(\"data-customization-identifier\");\n        var replaceAction = $(btn).attr(\"data-replace-list-action\");\n        var formData = new FormData();\n        var element = document.getElementById(\"uploadRecipientList\");\n        var file = element.files[0];\n        var emailListContainer = $(\".js-global-modal\").find(\".js-email-list-recipient-container\");\n        formData.append('file', file);\n        formData.append('id', customizationIdentifier);\n        formData.append('contactType', $(btn).closest(\".js-upload-recipient-container\").find(\"#emailListType\").val());\n        formData.append('campaignId', $(btn).closest(\".js-send-details\").attr(\"data-campaign-id\"));\n        formData.append('campaignIdentifier', campaignIdentifier);\n        formData.append('campaignItemScheduleId', campaignItemScheduleId);\n        formData.append('campaignItemScheduleId', campaignItemScheduleId);\n        formData.append('replaceAction', replaceAction);\n        var errorcontainer = $(\".js-upload-recipient-container\").find(\".js-error-recipient-container\");\n        $(errorcontainer).empty();\n        $(errorcontainer).addClass(\"hide\");\n        var url = (\"/EmailCampaign/UploadEmailRecipients\");\n        $.when(submitAjaxRequest(undefined, url, \"POST\", undefined, undefined, undefined, formData).done(function (data) {\n            if (data != null) {\n                if (data.errorMessage != null && data.errorMessage.length > 0) {\n                    $(errorcontainer).html(data.errorMessage);\n                    $(errorcontainer).removeClass(\"hide\");\n                }\n                else {\n                    var url = \"/EmailCampaign/GetEmailLists/\" + campaignIdentifier + \"/\" + campaignItemScheduleId;\n                    $.when(globalThis.gage.submitAjaxRequest(null, url, \"GET\")\n                        .done(function (data, status, request) {\n                        $(emailListContainer).html(data);\n                        $(errorcontainer).html($(errorcontainer).attr(\"data-success-message\"));\n                        $(errorcontainer).removeClass(\"hide\");\n                        me.bindLocalizedTime();\n                    })\n                        .fail(function (response, textStatus, errorThrown) {\n                        alert(errorThrown);\n                    }));\n                }\n            }\n        }));\n    }\n    populateTimeZonesOnly(el) {\n        GetTimeZoneNameList().then(function (timeZones) {\n            FillTimeZoneDropDown($(el), timeZones, dayjs.tz.guess());\n        });\n    }\n    populateTimeZones(el) {\n        GetTimeZoneNameList().then(function (timeZones) {\n            FillTimeZoneDropDown($(el), timeZones, dayjs.tz.guess());\n        });\n    }\n    bindLocalizedTime() {\n        $.each($(\".localized-time-email-configuration\"), function (i, e) {\n            const localDate = $(e).text();\n            $(e).html(dayjs.utc(localDate).local().format('MM/DD/YYYY') + \" <div><small>\" + dayjs.utc(localDate).local().format('hh:mm a') + \"</small></div>\");\n        });\n    }\n}\n;\n$(document).ready(function () {\n    $(\".widget-email-configuration-list\").each(function (index, item) {\n        $(item).data(\"manager\", new EmailConfiguration(item));\n    });\n});\n/// <reference path=\"../lib/twbs-pagination.d.ts\" />\n/// <reference path=\"../lib/jquery.d.ts\" />\n/// <reference path=\"../lib/gage.d.ts\" />\n/// <reference path=\"../lib/helper.admin.d.ts\" />\n///// <reference path=\"../../node_modules/dayjs/plugin/utc.d.ts\" />\n///// <reference path=\"../../node_modules/dayjs/plugin/timezone.d.ts\" />\n///// <reference path=\"../../node_modules/dayjs/plugin/localeData.d.ts\" />\n///// <reference path=\"../../node_modules/dayjs/plugin/localizedFormat.d.ts\" />\n///// <reference path=\"../../node_modules/dayjs/index.d.ts\" />\n//import dayjs = require('../../node_modules/dayjs/index');\n//import utc = require(\"../../node_modules/dayjs/plugin/utc\");\n//import timezone = require(\"../../node_modules/dayjs/plugin/timezone\");\n//import localizedFormat = require(\"../../node_modules/dayjs/plugin/localizedFormat\");\n//import localeData = require(\"../../node_modules/dayjs/plugin/localeData\");\n//dayjs.extend(utc);\n//dayjs.extend(timezone);\n//dayjs.extend(localizedFormat);\n//dayjs.extend(localeData);\nclass EmailManagement {\n    constructor(widget) {\n        this._widget = widget;\n        this.initialize();\n    }\n    initialize() {\n        this._widgetId = parseInt($(this._widget).attr(\"data-contentwidgetid\"));\n        this.bindControls();\n    }\n    bindControls() {\n        var me = this;\n        me.bindLocalizedTime();\n        $(\"body\").on(\"click\", \".js-remove-list\", function () {\n            $(this).next(\".js-remove-list-confirm\").removeClass(\"hidden\");\n        });\n        $(\"body\").on(\"click\", \".js-remove-list-confirm button\", function () {\n            $(this).closest(\".js-remove-list-confirm\").addClass(\"hidden\");\n        });\n        $(\"body\").on(\"click\", \".js-remove-campaign-recipient-list\", function (e) {\n            e.preventDefault();\n            var campaignIdentifier = $(e.currentTarget).closest(\".js-send-details\").attr(\"data-campaign-identifier\");\n            var campaignItemScheduleId = $(e.currentTarget).closest(\".js-send-details\").attr('data-campaign-item-schedule-id');\n            var isSeedContact = $(e.currentTarget).attr(\"data-is-seed-list-type\") === \"True\";\n            var emailListContainer = $(\".js-global-modal\").find(\".js-email-list-recipient-container\");\n            var url = (\"/EmailCampaign/DeleteContactCampaignItemSchedules/\" + campaignIdentifier + \"/\" + campaignItemScheduleId + \"/\" + isSeedContact);\n            // TODO: This endpoint doesn't exist in CS code.\n            // url: (\"/EmailCampaign/DeleteContactCampaignItemSchedules/\" + campaignIdentifier + \"/\" + campaignItemScheduleId + \"/\" + isSeedContact),\n            // type: \"DELETE\",\n            $.when(submitAjaxRequest(undefined, url, \"DELETE\").done(function (data) {\n                if (data != null) {\n                    if (data.errorMessage != null && data.errorMessage.length > 0) {\n                    }\n                    else {\n                        var url = \"/EmailCampaign/GetEmailLists/\" + $(e.currentTarget).closest(\".js-send-details\").attr(\"data-campaign-identifier\") + \"/\" + campaignItemScheduleId;\n                        $.when(globalThis.gage.submitAjaxRequest(null, url, \"GET\")\n                            .done(function (data, status, request) {\n                            $(emailListContainer).html(data);\n                            me.bindLocalizedTime();\n                        })\n                            .fail(function (response, textStatus, errorThrown) {\n                            alert(errorThrown);\n                        }));\n                    }\n                }\n            }));\n        });\n        try {\n            $(\"#email-schedules\").DataTable({\n                pageLength: 50,\n                searching: false,\n                \"order\": [[1, \"asc\"]],\n                \"columnDefs\": [\n                    {\n                        orderable: false,\n                        targets: [6]\n                    }\n                ]\n            });\n        }\n        catch (error) {\n            console.log(error);\n        }\n        $(\".js-clone-email-schedule\").on(\"click\", function (e) {\n            e.preventDefault();\n            var catalogAssignmentIdentifier = $(e.currentTarget).attr('data-catalog-assignment-identifier');\n            var customizationExistsMessage = $(e.currentTarget).attr(\"data-customization-exist-message\");\n            var productDetailUrl = $(e.currentTarget).attr(\"data-product-detail-url\");\n            var id = $(e.currentTarget).attr('data-customization-identifier');\n            var url = \"/EmailCampaign/CloneSchedule/\" + id;\n            var cancelText = $(e.currentTarget).attr(\"data-cancel-text\");\n            var okText = $(e.currentTarget).attr(\"data-ok-text\");\n            $.when(globalThis.gage.submitAjaxRequest(null, url, \"GET\")\n                .done(function (data, status, request) {\n                if (data.success) {\n                    var redirectUrl = productDetailUrl + \"?product-id=\" + catalogAssignmentIdentifier + \"&customization-identifier=\" + data.data;\n                    window.location.href = redirectUrl;\n                }\n                else {\n                    if (data.errorMessage == \"InProgress\") {\n                        bootbox.confirm({\n                            message: \"<p>\" + customizationExistsMessage + \"</p>\",\n                            buttons: {\n                                confirm: {\n                                    label: okText,\n                                    className: 'btn-success'\n                                },\n                                cancel: {\n                                    label: cancelText,\n                                    className: 'btn-danger'\n                                }\n                            },\n                            callback: function (result) {\n                                if (result) {\n                                    window.location.href = productDetailUrl + \"?product-id=\" + catalogAssignmentIdentifier + \"&customization-identifier=\" + id;\n                                    ;\n                                }\n                            }\n                        });\n                    }\n                    else {\n                        alert(data.errorMessage);\n                    }\n                }\n            })\n                .fail(function (response, textStatus, errorThrown) {\n                alert(errorThrown);\n            }));\n        });\n        $(\".js-edit-email-schedule\").on(\"click\", function (e) {\n            e.preventDefault();\n            var id = $(e.currentTarget).attr('data-customization-identifier');\n            var campaignId = $(e.currentTarget).attr('data-campaign-id');\n            var campaignIdentifier = $(e.currentTarget).attr('data-campaign-identifier');\n            var campaignItemId = $(e.currentTarget).attr('data-campaign-item-id');\n            var campaignItemScheduleId = $(e.currentTarget).attr('data-campaign-item-schedule-id');\n            var url = \"/EmailCampaign/GetEmailSchedule/\" + id + \"/\" + campaignIdentifier + \"/\" + campaignItemScheduleId;\n            $.when(globalThis.gage.submitAjaxRequest(null, url, \"GET\")\n                .done(function (data, status, request) {\n                var html = data;\n                var globalModal = new GlobalModal(id);\n                globalModal.openGlobalModal(html, \"panel\", { origin: $(this), classes: 'configure-send-modal' });\n                $(\".js-global-modal\").find(\".js-send-details\").attr(\"data-campaign-id\", campaignId);\n                $(\".js-global-modal\").find(\".js-send-details\").attr(\"data-campaign-item-id\", campaignItemId);\n                $(\".js-global-modal\").find(\".js-send-details\").attr(\"data-campaign-identifier\", campaignIdentifier);\n                $(\".js-global-modal\").find(\".js-send-details\").attr(\"data-campaign-item-schedule-id\", campaignItemScheduleId);\n                $(\".js-global-modal\").find(\".js-send-details\").find(\".js-campaign-item-schedule-id\").val(campaignItemScheduleId);\n                $(\".js-global-modal\").find(\".js-send-details\").attr(\"data-customization-identifier\", id);\n                me.populateTimeZones($(\".time-zone\"));\n                $(\"#send-data-picker-full\").datetimepicker();\n                $('#send-time-picker').datetimepicker({\n                    format: 'LT'\n                });\n                $('#send-date-picker').datetimepicker({\n                    useCurrent: false,\n                    format: 'MM/DD/YYYY'\n                });\n                if ($(\"#send-date-full\").val() !== \"\") {\n                    var setTime = dayjs($('#send-data-picker-full').data(\"DateTimePicker\").date().format(\"MM/DD/YYYY h:mm A\"));\n                    $('#send-time-picker').data(\"DateTimePicker\").date(setTime);\n                }\n                if ($(\".js-send-time-zone-data\").val() !== \"\" && $(\".js-send-time-zone-data\").val() != undefined) {\n                    $(\".js-send-time-zone\").val($(\".js-send-time-zone-data\").val());\n                }\n                me.bindLocalizedTime();\n                $(\"#uploadList\").on(\"click\", function (e) {\n                    e.preventDefault();\n                    me.uploadRecipients();\n                });\n                $(\".js-update-email\").on(\"click\", function (e) {\n                    e.preventDefault();\n                    me.updateSchedule(this);\n                });\n            })\n                .fail(function (response, textStatus, errorThrown) {\n                alert(errorThrown);\n            }));\n        });\n        $(\".js-cancel-email\").on(\"click\", function (e) {\n            var campaignIdentifier = $(e.currentTarget).attr('data-campaign-identifier');\n            var campaignItemId = $(e.currentTarget).attr('data-campaign-item-id');\n            var campaignItemScheduleId = $(e.currentTarget).attr('data-campaign-item-schedule-id');\n            e.preventDefault();\n            var addEmailId = \"add-\" + $(e).attr(\"data-campaign-item-schedule-id\");\n            var testHtml = $(\".js-delete-confirm-content-schedule-single-schedule\").html();\n            var globalModal = new GlobalModal(addEmailId);\n            globalModal.openGlobalModal(testHtml, \"modal\", { origin: $(this), classes: 'delete-modal' });\n            $(\".js-global-modal\").find(\".js-delete-campaign-schedule\").attr(\"data-campaign-identifier\", campaignIdentifier);\n            $(\".js-global-modal\").find(\".js-delete-campaign-schedule\").attr(\"data-campaign-item-id\", campaignItemId);\n            $(\".js-global-modal\").find(\".js-delete-campaign-schedule\").attr(\"data-campaign-item-schedule-id\", campaignItemScheduleId);\n            $(\".js-global-modal\").find(\".js-cancel-confirm\").on(\"click\", function () {\n                globalModal.closeGlobalModal();\n            });\n            $(\".js-delete-campaign-schedule\").on(\"click\", function (e) {\n                var campaignIdentifier = $(e.currentTarget).attr(\"data-campaign-identifier\");\n                var campaignItemScheduleId = $(e.currentTarget).attr('data-campaign-item-schedule-id');\n                // TODO: Endpoint doesn't exist in CS.\n                var url = (\"/EmailCampaign/RemoveCampaignItemSchedule/\" + campaignIdentifier + \"/\" + campaignItemScheduleId);\n                $.when(submitAjaxRequest(undefined, url, \"DELETE\").done(function (data) {\n                    if (data != null) {\n                        if (data.errorMessage != null && data.errorMessage.length > 0) {\n                            alert(data.errorMessage);\n                        }\n                        else {\n                            window.location.reload();\n                        }\n                    }\n                }));\n            });\n        });\n    }\n    updateSchedule(btn) {\n        var startDate = null;\n        var campaignItemScheduleId = $(\".js-global-modal\").find(\".js-send-details\").attr(\"data-campaign-item-schedule-id\");\n        var timeZone = $(\".js-schedule-send-config\").find(\".js-send-time-zone\").val();\n        var errorcontainer = $(\".js-global-modal\").find(\".js-error-schedule-container\");\n        $(errorcontainer).empty();\n        $(errorcontainer).addClass(\"hide\");\n        if ($(\".js-schedule-send-config\").find(\"#send-date\").val() === \"\") {\n            alert(\"Please select a date\");\n            return false;\n        }\n        if ($(\".js-schedule-send-config\").find(\"#send-time\").val() === \"\") {\n            alert(\"Please select a time\");\n            return false;\n        }\n        var dateString = $('#send-date-picker').data(\"DateTimePicker\").date().format(\"YYYY-MM-DD\") +\n            \" \" +\n            $('#send-time-picker').data(\"DateTimePicker\").date().format(\"HH:mm:ss\");\n        var newDate = new Date(dateString);\n        var utcDate = dayjs.utc(newDate.toString()).tz(timeZone);\n        startDate = utcDate.utc().format('YYYY-MM-DD HH:mm:ss');\n        timeZone = $(\".js-schedule-send-config\").find(\".js-send-time-zone\").val();\n        if ($(btn).closest(\"#schedule\").find(\"#sendName\").val() === \"\") {\n            alert(\"Please enter a name\");\n            return false;\n        }\n        var url = \"/EmailCampaign/UpdateCampaignSchedule\";\n        var params = {\n            \"campaignItemScheduleId\": campaignItemScheduleId,\n            \"campaignIdentifier\": $(\".js-global-modal\").find(\".js-send-details\").attr(\"data-campaign-identifier\"),\n            \"campaignItemId\": parseInt($(\".js-global-modal\").find(\".js-send-details\").attr(\"data-campaign-item-id\")),\n            \"name\": $(btn).closest(\"#schedule\").find(\"#sendName\").val(),\n            \"startDateTime\": startDate,\n            \"timeZone\": timeZone\n        };\n        $.when(submitAjaxRequest(params, url, \"post\").done(function (data, textStatus, request) {\n            if (data.success == true) {\n                $(errorcontainer).html($(errorcontainer).attr(\"data-success-message\"));\n                $(errorcontainer).removeClass(\"hide\");\n            }\n            else {\n                alert(data.errorMessage);\n            }\n        }).fail(function (response, textStatus, errorThrown) {\n            alert(errorThrown);\n        }));\n    }\n    uploadRecipients() {\n        var me = this;\n        var btn = $(\"#uploadList\");\n        var campaignIdentifier = $(btn).closest(\".js-send-details\").attr(\"data-campaign-identifier\");\n        var campaignItemScheduleId = $(btn).closest(\".js-send-details\").attr('data-campaign-item-schedule-id');\n        var customizationIdentifier = $(btn).attr(\"data-customization-identifier\");\n        var formData = new FormData();\n        var element = document.getElementById(\"uploadRecipientList\");\n        var file = element.files[0];\n        var emailListContainer = $(\".js-global-modal\").find(\".js-email-list-recipient-container\");\n        formData.append('file', file);\n        formData.append('id', customizationIdentifier);\n        formData.append('contactType', $(btn).closest(\".js-upload-recipient-container\").find(\"#emailListType\").val());\n        formData.append('campaignId', $(btn).closest(\".js-send-details\").attr(\"data-campaign-id\"));\n        formData.append('campaignIdentifier', campaignIdentifier);\n        formData.append('campaignItemScheduleId', campaignItemScheduleId);\n        formData.append('campaignItemScheduleId', campaignItemScheduleId);\n        formData.append('replaceAction', \"\");\n        var errorcontainer = $(\".js-upload-recipient-container\").find(\".js-error-recipient-container\");\n        $(errorcontainer).empty();\n        $(errorcontainer).addClass(\"hide\");\n        var url = \"/EmailCampaign/UploadEmailRecipients\";\n        $.when(submitAjaxRequest(undefined, url, \"post\", undefined, undefined, undefined, formData).done(function (data) {\n            if (data != null) {\n                if (data.errorMessage != null && data.errorMessage.length > 0) {\n                    $(errorcontainer).html(data.errorMessage);\n                    $(errorcontainer).removeClass(\"hide\");\n                }\n                else {\n                    var url = \"/EmailCampaign/GetEmailLists/\" + campaignIdentifier + \"/\" + campaignItemScheduleId;\n                    $.when(globalThis.gage.submitAjaxRequest(null, url, \"GET\")\n                        .done(function (data, status, request) {\n                        $(emailListContainer).html(data);\n                        $(errorcontainer).html($(errorcontainer).attr(\"data-success-message\"));\n                        $(errorcontainer).removeClass(\"hide\");\n                        me.bindLocalizedTime();\n                    })\n                        .fail(function (response, textStatus, errorThrown) {\n                        alert(errorThrown);\n                    }));\n                }\n            }\n        }));\n    }\n    populateTimeZones(el) {\n        GetTimeZoneNameList().then(function (timeZones) {\n            FillTimeZoneDropDown($(el), timeZones, dayjs.tz.guess());\n        });\n    }\n    bindLocalizedTime() {\n        $.each($(\".localized-time-email-configuration\"), function (i, e) {\n            var localDate = $(e).text();\n            $(e).html(dayjs.utc(localDate).local().format('MM/DD/YYYY') + \" <div><small>\" + dayjs.utc(localDate).local().format('hh:mm a') + \"</small></div>\");\n        });\n    }\n}\n;\n$(document).ready(function () {\n    $(\".widget-email-management-list\").each(function (index, item) {\n        $(item).data(\"manager\", new EmailManagement(item));\n    });\n});\n/// <reference path=\"../lib/jquery.d.ts\" />\n/// <reference path=\"../lib/gage.d.ts\" />\n/*import timezone = require(\"../../wwwroot/lib/dayjs1.11.10/plugin/timezone\");*/\n//import dayjs, { Dayjs } from '../../node_modules/dayjs/index';\n//import utc from \"../../node_modules/dayjs/plugin/utc\";\n//import timezone from \"../../node_modules/dayjs/plugin/timezone\";\n//import localizedFormat from \"../../node_modules/dayjs/plugin/localizedFormat\";\n//import localeData from \"../../node_modules/dayjs/plugin/localeData\";\n//import timezones from \"../../node_modules/timezones-list/dist/index\";\n//dayjs.extend(utc);\n//dayjs.extend(timezone);\n//dayjs.extend(localizedFormat);\n//dayjs.extend(localeData);\n/* ///// <reference path=\"../lib/moment.d.ts\" /> */\n/// <reference path=\"../lib/helper.admin.d.ts\" />\n/// <reference path=\"../lib/helper.timezones.d.ts\" />\n/// <reference path=\"../lib/helper.thirdParty.d.ts\" />\nclass FieloBadgesList {\n    constructor(widget) {\n        this._widget = widget;\n        this.initialize();\n    }\n    initialize() {\n        var me = this;\n        this.bindControls();\n    }\n    bindControls() {\n        var me = this;\n        var me = this;\n        var take = $(me._widget).find(\"#pageSize\").val();\n        var offset = 0;\n        this._widgetId = parseInt($(this._widget).attr(\"data-contentwidgetid\"));\n        var statusToRetrieve = $(me._widget).find(\"#fieloBadgesStatusTypesToRetrieve\").val();\n        $(me._widget).find(\".js-view-more\").on(\"click\", function (e) {\n            var attempt = $(e.currentTarget).attr(\"data-attempt\");\n            var offset = $(e.currentTarget).attr(\"data-offset\");\n            if ($(e.currentTarget).attr(\"data-badge-status-type\") == \"Earned\") {\n                me.GetEarnedBadges(\"Earned\", attempt, false, take, offset);\n            }\n            else if ($(e.currentTarget).attr(\"data-badge-status-type\") == \"Achievables\") {\n                me.GetUnEarnedBadges(\"Achievables\", attempt, false, take, offset);\n            }\n            else if ($(e.currentTarget).attr(\"data-badge-status-type\") == \"Expired\") {\n                me.GetUnEarnedBadges(\"Expired\", attempt, false, take, offset);\n            }\n        });\n        if ($(me._widget).attr(\"data-is-edit-mode\") !== \"true\" && statusToRetrieve != \"\") {\n            if ($(me._widget).attr(\"data-fielo-member-id\") != \"\") {\n                var strarray = statusToRetrieve.split(',');\n                for (var i = 0; i < strarray.length; i++) {\n                    if (strarray[i] == \"Earned\") {\n                        me.GetEarnedBadges(\"Earned\", 0, false, take, offset);\n                    }\n                    if (strarray[i] == \"Achievables\") {\n                        me.GetUnEarnedBadges(\"Achievables\", 0, false, take, offset);\n                    }\n                    if (strarray[i] == \"Expired\") {\n                        me.GetExpiredBadges(\"Expired\", 0, false, take, offset);\n                    }\n                }\n            }\n            ;\n        }\n    }\n    GetEarnedBadges(statusToRetrieve, attempt, renew, take, offset) {\n        $(\"#earned-ajax-loading\").show();\n        var url = \"/Fielo/GetBadges/\" + statusToRetrieve + \"/\" + renew + \"/\" + take + \"/\" + offset;\n        var me = this;\n        if (attempt < 5) {\n            $.ajax({\n                method: \"GET\",\n                url: url,\n            }).done(function (data, textStatus, request) {\n                if (data != null && data.result != null) {\n                    data.result.fieldName = statusToRetrieve;\n                    data.result.attempt = parseInt(attempt) + 1;\n                    me.updateEarnedUI(data.result, take, offset);\n                }\n            });\n        }\n        else {\n            alert(\"too many attempts\");\n            $(\"#earned-ajax-loading\").hide();\n            return;\n        }\n    }\n    updateEarnedUI(data, take, offset) {\n        var me = this;\n        $(\"#earned-ajax-loading\").hide();\n        if (data != null && data.errorCode != undefined) {\n            if (data.errorCode == \"INVALID_SESSION_ID\") {\n                me.GetEarnedBadges(data.fieldName, data.attempt, true, take, offset);\n            }\n            else if (data.errorCode != \"\") {\n                alert(data.errorMessage);\n                $(\"#earned-ajax-loading\").hide();\n                return;\n            }\n            else {\n                $(\".js-earned-card\").find(\".card-body\").find(\".js-card-body-row\").append(data.badgeHTML);\n                var container = $(\".js-earned-card\").find(\".card-body\").find(\".js-card-body-row\");\n                var currentOffSet = $(\".js-earned-card\").find(\".js-view-more\").attr(\"data-offset\");\n                $(me._widget).find(\".js-earned-card\").find(\".btn-view-more\").removeClass(\"hide\");\n                me.SetViewMore(currentOffSet, data, $(me._widget).find(\".view-more-earned-container\"), $(me._widget).find(\"#pageSize\").val());\n                me.GetBadgePopDetail(container);\n            }\n        }\n    }\n    SetViewMore(currentOffSet, data, viewMoreContainer, pageSize) {\n        if (currentOffSet != undefined) {\n            var nextOffSet = parseInt(currentOffSet) + parseInt(pageSize);\n            if (data.totalRecords != undefined) {\n                if (parseInt(data.totalRecords) <= (parseInt(currentOffSet) + parseInt(pageSize))) {\n                    $(viewMoreContainer).remove();\n                }\n                else {\n                    $(viewMoreContainer).find(\".js-view-more\").attr(\"data-offset\", nextOffSet);\n                    $(viewMoreContainer).find(\".js-view-more\").attr(\"data-attempt\", 1);\n                }\n            }\n        }\n    }\n    GetBadgePopDetail(container) {\n        var me = this;\n        $(container).find(\".js-fielobadge-img\").each(function (e) {\n            $(this).on(\"click\", function (e) {\n                // Explicitly hide all entitlement panels, we do not allow more\n                // than one to be open at a time.\n                $(\".widget-entitlement-info\").addClass('hidden');\n                // Show only the active info panel\n                $(this).siblings(\".widget-entitlement-info\").removeClass('hidden');\n                $(document.body).off(\"click\", me.clickHandlerFieloBadge);\n                $(document.body).on(\"click\", me.clickHandlerFieloBadge);\n            });\n        });\n    }\n    GetUnEarnedBadges(statusToRetrieve, attempt, renew, take, offset) {\n        $(\"#unearned-ajax-loading\").show();\n        var url = \"/Fielo/GetBadges/\" + statusToRetrieve + \"/\" + renew + \"/\" + take + \"/\" + offset;\n        var me = this;\n        if (attempt < 5) {\n            $.ajax({\n                method: \"GET\",\n                url: url,\n            }).done(function (data, textStatus, request) {\n                if (data != null && data.result != null) {\n                    data.result.fieldName = statusToRetrieve;\n                    data.result.attempt = parseInt(attempt) + 1;\n                    me.updateUnEarnedUI(data.result, take, offset);\n                }\n            });\n        }\n        else {\n            alert(\"too many attempts\");\n            $(\"#unearned-ajax-loading\").hide();\n            return;\n        }\n    }\n    updateUnEarnedUI(data, take, offset) {\n        var me = this;\n        $(\"#unearned-ajax-loading\").hide();\n        if (data != null && data.errorCode != undefined) {\n            if (data.errorCode == \"INVALID_SESSION_ID\") {\n                me.GetUnEarnedBadges(data.fieldName, data.attempt, true, take, offset);\n            }\n            else if (data.errorCode != \"\") {\n                alert(data.errorMessage);\n                return;\n            }\n            else {\n                $(\".js-unearned-card\").find(\".card-body\").find(\".js-card-body-row\").append(data.badgeHTML);\n                var container = $(\".js-unearned-card\").find(\".card-body\").find(\".js-card-body-row\");\n                var currentOffSet = $(\".js-unearned-card\").find(\".js-view-more\").attr(\"data-offset\");\n                $(me._widget).find(\".js-unearned-card\").find(\".btn-view-more\").removeClass(\"hide\");\n                me.SetViewMore(currentOffSet, data, $(me._widget).find(\".view-more-unearned-container\"), $(me._widget).find(\"#pageSize\").val());\n                me.GetBadgePopDetail(container);\n            }\n        }\n    }\n    GetExpiredBadges(statusToRetrieve, attempt, renew, take, offset) {\n        $(\"#expired-ajax-loading\").show();\n        var url = \"/Fielo/GetBadges/\" + statusToRetrieve + \"/\" + renew + \"/\" + take + \"/\" + offset;\n        var me = this;\n        if (attempt < 5) {\n            $.ajax({\n                method: \"GET\",\n                url: url,\n            }).done(function (data, textStatus, request) {\n                if (data != null && data.result != null) {\n                    data.result.fieldName = statusToRetrieve;\n                    data.result.attempt = parseInt(attempt) + 1;\n                    me.updateExpiredUI(data.result, take, offset);\n                }\n            });\n        }\n        else {\n            alert(\"too many attempts\");\n            $(\"#expired-ajax-loading\").hide();\n            return;\n        }\n    }\n    updateExpiredUI(data, take, offset) {\n        var me = this;\n        $(\"#expired-ajax-loading\").hide();\n        if (data != null && data.errorCode != undefined) {\n            if (data.errorCode == \"INVALID_SESSION_ID\") {\n                me.GetExpiredBadges(data.fieldName, data.attempt, true, take, offset);\n            }\n            else if (data.errorCode != \"\") {\n                alert(data.errorMessage);\n                return;\n            }\n            else {\n                $(\".js-expired-card\").find(\".card-body\").find(\".js-card-body-row\").append(data.badgeHTML);\n                var container = $(\".js-expired-card\").find(\".card-body\").find(\".js-card-body-row\");\n                var currentOffSet = $(\".js-expired-card\").find(\".js-view-more\").attr(\"data-offset\");\n                $(me._widget).find(\".js-expired-card\").find(\".btn-view-more\").removeClass(\"hide\");\n                me.SetViewMore(currentOffSet, data, $(me._widget).find(\".view-more-expired-container\"), $(me._widget).find(\"#pageSize\").val());\n                me.GetBadgePopDetail(container);\n            }\n        }\n    }\n    clickHandlerFieloBadge(e) {\n        if (!$(e.target).siblings(\".widget-entitlement-info\").is(\":visible\")) {\n            var me = this;\n            if ($(e.target).hasClass('widget-entitlement-info') || $(e.target).parents('.widget-entitlement-info').length) {\n                // User clicked inside open modal\n                // Check if they clicked close button, otherwise ignore\n                if ($(e.target).hasClass('close')) {\n                    $(document.body).off(\"click\", me.clickHandlerFieloBadge);\n                    $(\".widget-entitlement-info\").addClass('hidden');\n                }\n            }\n            else {\n                // If click is outside of modal, simply close\n                $(document.body).off(\"click\", me.clickHandlerFieloBadge);\n                $(\".widget-entitlement-info\").addClass('hidden');\n            }\n        }\n    }\n    ;\n}\n;\n$(document).ready(function () {\n    $(\".widget-fielobadges-list\").each(function (index, item) {\n        $(item).data(\"manager\", new FieloBadgesList(item));\n    });\n});\n/// <reference path=\"../lib/jquery.d.ts\" />\n/// <reference path=\"../lib/gage.d.ts\" />\n/*import timezone = require(\"../../wwwroot/lib/dayjs1.11.10/plugin/timezone\");*/\n//import dayjs, { Dayjs } from '../../node_modules/dayjs/index';\n//import utc from \"../../node_modules/dayjs/plugin/utc\";\n//import timezone from \"../../node_modules/dayjs/plugin/timezone\";\n//import localizedFormat from \"../../node_modules/dayjs/plugin/localizedFormat\";\n//import localeData from \"../../node_modules/dayjs/plugin/localeData\";\n//import timezones from \"../../node_modules/timezones-list/dist/index\";\n//dayjs.extend(utc);\n//dayjs.extend(timezone);\n//dayjs.extend(localizedFormat);\n//dayjs.extend(localeData);\n/* ///// <reference path=\"../lib/moment.d.ts\" /> */\n/// <reference path=\"../lib/helper.admin.d.ts\" />\n/// <reference path=\"../lib/helper.timezones.d.ts\" />\n/// <reference path=\"../lib/helper.thirdParty.d.ts\" />\nclass FieloLeaderBoardList {\n    constructor(widget) {\n        this._widget = widget;\n        this.initialize();\n    }\n    initialize() {\n        var me = this;\n        this.bindControls();\n    }\n    bindControls() {\n        var me = this;\n        this._widgetId = parseInt($(this._widget).attr(\"data-contentwidgetid\"));\n        if ($(me._widget).attr(\"data-fielo-member-id\") != \"\") {\n            //me.BindDataTable();\n        }\n        $(me._widget).find(\".js-fielo-leaderboard-card-footer\").addClass(\"hide\");\n        if ($(me._widget).attr(\"data-is-edit-mode\") !== \"true\") {\n            if ($(me._widget).attr(\"data-fielo-member-id\") != \"\") {\n                me.GetLeaderBoard(0, false, true, false);\n                $(me._widget).on(\"change\", \"#leaderboards\", function (e) {\n                    e.preventDefault();\n                    $(me._widget).find(\"#leaderboardfielo-\" + me._widgetId).DataTable().destroy();\n                    me.GetLeaderBoard(1, false, false, false);\n                });\n            }\n        }\n        ;\n    }\n    GetLeaderBoard(attempt, renew, isPageLoad, isReset) {\n        var me = this;\n        $(\"#leaderboard-ajax-loading\").show();\n        var fromDate = \"\";\n        var toDate = \"\";\n        if ($(me._widget).find(\"#start-date\").length > 0) {\n            fromDate = $(me._widget).find(\"#start-date\").val();\n            toDate = $(me._widget).find(\"#end-date\").val();\n        }\n        var missionRequested = $(me._widget).find(\"#leaderboards\").val();\n        if (isReset) {\n            fromDate = \"\";\n            toDate = \"\";\n            missionRequested = \"\";\n        }\n        var params = {\n            MissionsDisplayRequested: missionRequested,\n            FromDate: fromDate,\n            ToDate: toDate,\n            Renew: renew,\n            LimitToSpecificMissions: $(me._widget).attr(\"data-fielo-limittospecificmissions\") == \"True\" ? true : false,\n            MaximumLeaderboardsToReturn: $(me._widget).attr(\"data-fielo-maximumleaderboardstoreturn\") == \"\" ? null : parseInt($(me._widget).attr(\"data-fielo-maximumleaderboardstoreturn\")),\n            MissionsToDisplay: $(me._widget).attr(\"data-fielo-missionstodisplay\"),\n            MaximumNumberofEntriesToDisplayPerLeaderboard: $(me._widget).attr(\"data-fielo-maximumnumberofentriestodisplayperleaderboard\") == \"\" ? null : parseInt($(me._widget).attr(\"data-fielo-maximumnumberofentriestodisplayperleaderboard\")),\n            LeaderboardType: $(me._widget).attr(\"data-fielo-leaderboardtype\"),\n            LeaderboardScope: $(me._widget).attr(\"data-fielo-leaderboardscope\"),\n            LeaderboardStatus: $(me._widget).attr(\"data-fielo-leaderboardstatus\"),\n            LeaderboardOrder: $(me._widget).attr(\"data-fielo-leaderboardorder\"),\n            ParticipantIdentificationOptions: $(me._widget).attr(\"data-fielo-participantIdentificationOptions\"),\n            RelatedOrganizationNamesDisplayAsAnonymous: $(me._widget).attr(\"data-fielo-relatedorganizationnamesdisplayasanonymous\") == \"True\" ? true : false,\n            SuppressProfilePhoto: $(me._widget).attr(\"data-fielo-suppressprofilephoto\") == \"True\" ? true : false,\n            SuppressScore: $(me._widget).attr(\"data-fielo-SuppressScore\") == \"True\" ? true : false,\n            AllowParticipantToConstrainByDate: $(me._widget).attr(\"data-fielo-allowparticipanttoconstrainbydate\") == \"True\" ? true : false,\n            IsPageLoad: isPageLoad,\n            InitialAllLeaderboards: $(me._widget).find(\"#initialAllLeaderboards\").val()\n        };\n        var url = \"/Fielo/GetLeaderboard/\";\n        var me = this;\n        if (attempt < 5) {\n            $.when(submitAjaxRequest(params, url, \"POST\")\n                .done(function (data, textStatus, request) {\n                if (data != null && data.result != null) {\n                    data.result.attempt = attempt + 1;\n                    me.updateLeaderboardUI(data.result, isPageLoad, isReset);\n                }\n            })\n                .fail(function (response, textStatus, errorThrown) {\n                alert(\"too many attempts\");\n                $(\"#leaderboard-ajax-loading\").hide();\n                return;\n            }));\n        }\n        else {\n            alert(\"too many attempts\");\n            $(\"#leaderboard-ajax-loading\").hide();\n            return;\n        }\n    }\n    updateLeaderboardUI(data, isPageLoad, isReset) {\n        var me = this;\n        $(\"#leaderboard-ajax-loading\").hide();\n        $(me._widget).find(\".js-fielo-leaderboard-card-footer\").addClass(\"hide\");\n        if (data != null && data.errorCode != undefined) {\n            if (data.errorCode == \"INVALID_SESSION_ID\") {\n                me.GetLeaderBoard(data.attempt, true, isPageLoad, isReset);\n            }\n            else if (data.errorCode != \"\") {\n                alert(data.errorMessage);\n                $(\"#leaderboard-ajax-loading\").hide();\n                return;\n            }\n            else if (data.errorMessage == \"NORECORDS\") {\n                $(me._widget).find(\".leaderboardfielolist-items\").empty();\n                $(me._widget).find(\".js-fielo-leaderboard-card-footer\").removeClass(\"hide\");\n            }\n            else {\n                $(me._widget).find(\".js-leaderboard-filter-container\").html(data.filterHTML);\n                $(me._widget).find(\".leaderboardfielolist-items\").html(data.memberListHTML);\n                me.BindDatePickers();\n                me.BindFilterButtons();\n                me.BindDataTable();\n            }\n        }\n    }\n    BindFilterButtons() {\n        var me = this;\n        if ($(me._widget).find(\".js-refresh-button\").length > 0) {\n            $(me._widget).find(\".js-refresh-button\").click(function (e) {\n                e.preventDefault();\n                $(me._widget).find(\".js-fielo-leaderboard-card-footer\").addClass(\"hide\");\n                $(me._widget).find(\"#leaderboardfielo-\" + me._widgetId).DataTable().destroy();\n                me.GetLeaderBoard(0, false, false, false);\n            });\n            $(me._widget).find(\".js-reset-button\").click(function (e) {\n                $(me._widget).find(\".js-fielo-leaderboard-card-footer\").addClass(\"hide\");\n                e.preventDefault();\n                $(me._widget).find(\"#leaderboardfielo-\" + me._widgetId).DataTable().destroy();\n                me.GetLeaderBoard(0, false, false, true);\n            });\n        }\n    }\n    BindDatePickers() {\n        var me = this;\n        if ($(me._widget).find(\"#start-date\").length > 0) {\n            var pickers = ConfigureDatePicker($('.trigger-date'), \"MM/dd/yyyy\");\n            var startPicker = pickers.filter(function (element) { return element[0] == \"startdatepicker\"; })[0][1];\n            var endDatePicker = pickers.filter(function (element) { return element[0] == \"enddatepicker\"; })[0][1];\n            //BindDatePickerEvents(startPicker, endDatePicker, document.getElementById(\"startdatepicker\"), document.getElementById(\"enddatepicker\"));\n        }\n    }\n    BindDataTable() {\n        var me = this;\n        var table = $(me._widget).find(\"#leaderboardfielo-\" + me._widgetId);\n        $(table).DataTable({\n            searching: false,\n            blengthChange: false,\n            bPaginate: false,\n            bInfo: false,\n            order: [[0, \"asc\"]]\n        });\n    }\n}\n$(document).ready(function () {\n    $(\".widget-fieloleaderboard-list\").each(function (index, item) {\n        $(item).data(\"manager\", new FieloLeaderBoardList(item));\n    });\n});\nexport class FieloProfile {\n    constructor(widget) {\n        this._widget = widget;\n        this._dateFormat = $(widget).attr(\"data-date-format\");\n        this.initialize();\n    }\n    initialize() {\n        var me = this;\n        if ($(me._widget).attr(\"data-is-edit-mode\") !== \"true\") {\n            if ($(me._widget).attr(\"data-fielo-member-id\") != \"\") {\n                me.GetFieloSessionStatus(0, false);\n            }\n        }\n    }\n    GetFieloSessionStatus(attempt, renew) {\n        var me = this;\n        if (attempt < 5) {\n            $.ajax({\n                method: \"GET\",\n                url: \"/Fielo/GetFieloSessionStatus\" + \"/\" + renew,\n            }).done(function (data, textStatus, request) {\n                if (data != null && data.result != null) {\n                    data.result.attempt = attempt + 1;\n                    me.updateSessionCheck(data.result);\n                }\n            });\n        }\n        else {\n            alert(\"too many attempts\");\n            return;\n        }\n    }\n    updateSessionCheck(data) {\n        var me = this;\n        if (data != null) {\n            if (!data.success) {\n                me.GetFieloSessionStatus(data.attempt, true);\n            }\n            else if (data.errorCode != undefined) {\n                if (data.errorCode == \"INVALID_SESSION_ID\") {\n                    me.GetFieloSessionStatus(data.attempt, true);\n                }\n                else if (data.errorCode != \"\") {\n                    alert(data.errorMessage);\n                    return;\n                }\n                else {\n                    if (data.success) {\n                        if ($(me._widget).attr(\"data-fielo-member-id\") != \"\") {\n                            me.bindControls();\n                        }\n                    }\n                }\n            }\n        }\n    }\n    bindControls() {\n        var me = this;\n        var membersRequests = [];\n        var memberRequest = {\n            \"dataType\": null,\n            \"callType\": null,\n            \"pointValue\": null,\n            \"fieldName\": \"\",\n            \"renew\": false,\n            \"placeHolderToUpdate\": \"\"\n        };\n        if ($(me._widget).find(\"#FieloProfile-Name-Field\").length > 0) {\n            var placeHolderToUpdate = $(me._widget).find(\"#FieloProfile-Name-Field\").attr(\"Id\");\n            var fieloField = $(me._widget).find(\"#FieloProfile-Name-Field\").attr(\"data-fielo-field\");\n            var dataType = $(me._widget).find(\"#FieloProfile-Name-Field\").attr(\"data-type\");\n            memberRequest = {\n                \"dataType\": dataType,\n                \"callType\": \"GetMemberName\",\n                \"pointValue\": 1,\n                \"fieldName\": fieloField,\n                \"renew\": false,\n                \"placeHolderToUpdate\": placeHolderToUpdate\n            };\n            membersRequests.push(memberRequest);\n        }\n        if ($(me._widget).find(\"#FieloProfile-Email-Field\").length > 0) {\n            var placeHolderToUpdate = $(me._widget).find(\"#FieloProfile-Email-Field\").attr(\"Id\");\n            var fieloField = $(me._widget).find(\"#FieloProfile-Email-Field\").attr(\"data-fielo-field\");\n            var dataType = $(me._widget).find(\"#FieloProfile-Email-Field\").attr(\"data-type\");\n            memberRequest = {\n                \"dataType\": dataType,\n                \"callType\": \"GetMemberEmail\",\n                \"pointValue\": 1,\n                \"fieldName\": fieloField,\n                \"renew\": false,\n                \"placeHolderToUpdate\": placeHolderToUpdate\n            };\n            membersRequests.push(memberRequest);\n        }\n        if ($(me._widget).find(\"#FieloProfile-JoinDate-Field\").length > 0) {\n            var placeHolderToUpdate = $(me._widget).find(\"#FieloProfile-JoinDate-Field\").attr(\"Id\");\n            var fieloField = $(me._widget).find(\"#FieloProfile-JoinDate-Field\").attr(\"data-fielo-field\");\n            var dataType = $(me._widget).find(\"#FieloProfile-JoinDate-Field\").attr(\"data-type\");\n            memberRequest = {\n                \"dataType\": dataType,\n                \"callType\": \"GetMemberJoinDate\",\n                \"pointValue\": 1,\n                \"fieldName\": fieloField,\n                \"renew\": false,\n                \"placeHolderToUpdate\": placeHolderToUpdate\n            };\n            membersRequests.push(memberRequest);\n        }\n        if ($(me._widget).find(\"#FieloProfile-AccountName-Field\").length > 0) {\n            var placeHolderToUpdate = $(me._widget).find(\"#FieloProfile-AccountName-Field\").attr(\"Id\");\n            var fieloField = $(me._widget).find(\"#FieloProfile-AccountName-Field\").attr(\"data-fielo-field\");\n            var dataType = $(me._widget).find(\"#FieloProfile-AccountName-Field\").attr(\"data-type\");\n            memberRequest = {\n                \"dataType\": dataType,\n                \"callType\": \"GetMemberAccountName\",\n                \"pointValue\": 1,\n                \"fieldName\": fieloField,\n                \"renew\": false,\n                \"placeHolderToUpdate\": placeHolderToUpdate\n            };\n            membersRequests.push(memberRequest);\n        }\n        if ($(me._widget).find(\"#FieloProfile-ProfilePicture-Field\").length > 0) {\n            var placeHolderToUpdate = $(me._widget).find(\"#FieloProfile-ProfilePicture-Field\").attr(\"Id\");\n            var fieloField = $(me._widget).find(\"#FieloProfile-ProfilePicture-Field\").attr(\"data-fielo-field\");\n            var dataType = $(me._widget).find(\"#FieloProfile-ProfilePicture-Field\").attr(\"data-type\");\n            memberRequest = {\n                \"dataType\": dataType,\n                \"callType\": \"GetMemberProfilePicture\",\n                \"pointValue\": 1,\n                \"fieldName\": fieloField,\n                \"renew\": false,\n                \"placeHolderToUpdate\": placeHolderToUpdate\n            };\n            membersRequests.push(memberRequest);\n        }\n        // Handle custom fields\n        $(me._widget).find(\".fieloprofile-custom-field\").each(function (index, elem) {\n            var placeHolderToUpdate = $(elem).attr(\"Id\");\n            var fieloField = $(elem).attr(\"data-fielo-field\");\n            var dataType = $(elem).attr(\"data-type\");\n            memberRequest = {\n                \"dataType\": dataType,\n                \"callType\": \"GetMemberCustomField\",\n                \"pointValue\": 1,\n                \"fieldName\": fieloField,\n                \"renew\": false,\n                \"placeHolderToUpdate\": placeHolderToUpdate\n            };\n            membersRequests.push(memberRequest);\n        });\n        me.GetCommmonMember(0, membersRequests);\n    }\n    GetCommmonMember(attempt, membersRequests) {\n        var me = this;\n        if (attempt < 5) {\n            $.when(submitAjaxRequest(membersRequests, \"/Fielo/GetCommonMember\", \"POST\").done(function (data, textStatus, request) {\n                if (data != null && data.result != null) {\n                    data.result.attempt = attempt + 1;\n                    data.result.memberRequests = membersRequests;\n                    me.updateCommmonMemberUI(data.result);\n                }\n            }));\n        }\n        else {\n            alert(\"too many attempts\");\n            return;\n        }\n    }\n    updateCommmonMemberUI(data) {\n        var me = this;\n        if (data != null && data.errorCode != undefined) {\n            if (data.errorCode == \"INVALID_SESSION_ID\") {\n                me.GetCommmonMember(data.attempt, data.membersRequests);\n            }\n            else if (data.errorCode != \"\") {\n                data.attempt = data.attempt + 1;\n                me.GetCommmonMember(data.attempt, data.membersRequests);\n                return;\n            }\n            else {\n                if (data.responseData != null && data.responseData != undefined && data.responseData.memberResponseObject != null && data.responseData.memberResponseObject !== undefined) {\n                    $.each(data.responseData.memberResponseObject, function (index, value) {\n                        if (value.callType == \"GetMemberProfilePicture\") {\n                            $(\"#\" + value.placeHolderToUpdate).attr(\"src\", value.formattedData);\n                        }\n                        else {\n                            $(\"#\" + value.placeHolderToUpdate).html(value.formattedData);\n                        }\n                    });\n                }\n            }\n        }\n    }\n}\n$(document).ready(function () {\n    $(\".widget-fieloprofile\").each(function (index, item) {\n        $(item).data(\"manager\", new FieloProfile(item));\n    });\n});\nwindow[\"FieloProfile\"] = FieloProfile;\n/// <reference path=\"../lib/twbs-pagination.d.ts\" />\n/// <reference path=\"../lib/jquery.d.ts\" />\n/// <reference path=\"../lib/helper.admin.d.ts\" />\nclass InProgressCustomization {\n    constructor(widget) {\n        this._widget = widget;\n        this.initialize();\n    }\n    initialize() {\n        this._pageIndex = 0;\n        this._totalPages = parseFloat($(this._widget).attr(\"data-total-pages\"));\n        this._take = parseInt($(this._widget).find(\"#uxInProgressCustomizationListPageSize\").val());\n        this._widgetId = parseInt($(this._widget).attr(\"data-contentwidgetid\"));\n        this._sortBy = $(this._widget).attr(\"data-sort-by\");\n        this.bindControls();\n    }\n    bindControls() {\n        var me = this;\n        $(me._widget).find(\"#uxInProgressCustomizationListPageSize\").on(\"change\", function () {\n            me._sortBy = \"datecreated\";\n            me._pageIndex = 0;\n            me._sortAscending = \"false\";\n            me._take = $(this).val();\n            me.loadData(false);\n        });\n        $(me._widget).find(\".js-delete-inprogresscustomization\").on(\"click\", function (e) {\n            var button = $(e.currentTarget);\n            var title = $(button).attr(\"data-delete-title\");\n            var body = $(button).attr(\"data-delete-message\");\n            var cancelButton = $(button).attr(\"data-cancel-button\");\n            var removeButton = $(button).attr(\"data-ok-button\");\n            var customizationidentifier = $(button).attr(\"data-customization-Identifier\");\n            var deleteButton = button;\n            bootbox.confirm({\n                title: title,\n                message: body,\n                buttons: {\n                    'cancel': { label: cancelButton },\n                    'confirm': { label: removeButton }\n                },\n                callback(confirmed) {\n                    if (confirmed) {\n                        var params = {\n                            Identifier: customizationidentifier\n                        };\n                        var url = \"/Api/ProductCustomization/DeleteCustomization\";\n                        $.when(submitAjaxRequest(params, url, \"DELETE\")\n                            .done(function (data, textStatus, request) {\n                            $(deleteButton).closest('tr').remove();\n                        })\n                            .fail(function (response, textStatus, errorThrown) {\n                        }));\n                    }\n                }\n            });\n        });\n        me.showPager();\n        $(me._widget).find(\".InProgressCustomizationListHeading\").click(function (e) {\n            var newHeader = $(e.currentTarget);\n            ;\n            var oldHeader = $(\".dataTable\").find(\".sorting_asc,.sorting_desc\");\n            if (newHeader.data(\"sort-field\") === oldHeader.data(\"sort-field\")) // change direction\n             {\n                if ($(\".InProgressCustomizationListHeading.sorting_asc\").length > 0) {\n                    //change from ASC to DESC\n                    oldHeader.removeClass(\"sorting_asc\");\n                    newHeader.addClass(\"sorting_desc\");\n                    me._sortAscending = \"false\";\n                }\n                else {\n                    //change from DESC to ASC\n                    oldHeader.removeClass(\"sorting_desc\");\n                    newHeader.addClass(\"sorting_asc\");\n                    me._sortAscending = \"true\";\n                }\n            }\n            else // change sort column\n             {\n                oldHeader.removeClass(\"sorting_asc\").removeClass(\"sorting_desc\").addClass(\"sorting\");\n                newHeader.removeClass(\"sorting\").addClass(\"sorting_asc\");\n                me._sortAscending = \"true\";\n            }\n            $(me._widget).find(\"#list-items\").html();\n            me._sortBy = newHeader.data(\"sort-field\");\n            me._pageIndex = 0;\n            me.loadData(false);\n        });\n    }\n    setPager() {\n        var me = this;\n        var defaultOpts = {};\n        if (me._totalPages !== 0) {\n            $(me._widget).find('#inprogresscustomization-list-pagination').html('');\n            $(me._widget).find('#inprogresscustomization-list-pagination').html('<ul id=\"pagination\" class=\"pagination-sm\"></ul>');\n            $(me._widget).find('#inprogresscustomization-list-pagination').find('#pagination').twbsPagination({\n                initiateStartPageClick: false,\n                totalPages: me._totalPages,\n                startPage: (me._pageIndex === 0 ? 1 : (me._pageIndex + 1)),\n                onPageClick: function (event, page) {\n                    me._pageIndex = (page - 1);\n                    me.loadData(false);\n                }\n            });\n        }\n        else {\n            $(me._widget).find('#inprogresscustomization-list-pagination').html('');\n        }\n    }\n    loadData(filterClose) {\n        var me = this;\n        var params = me.buildParams(me._widgetId);\n        var url = '/Content/RenderInProgressCustomizationList/' + me._widgetId.toString();\n        $.when(submitAjaxRequest(params, url, \"post\").done(function (data, textStatus, request) {\n            me._pageIndex = parseInt(request.getResponseHeader(\"X-PageIndex\"));\n            me._totalPages = parseFloat(request.getResponseHeader(\"X-TotalPages\"));\n            $(me._widget).find(\"#list-items\").html(data);\n            me.showPager();\n        }));\n    }\n    showPager() {\n        var me = this;\n        if (me._totalPages > 0) {\n            if (me._totalPages < 1) {\n                me._totalPages = 0;\n            }\n            else {\n                me._totalPages = Math.ceil(me._totalPages);\n            }\n            me.setPager();\n        }\n    }\n    buildParams(contentWidgetId) {\n        return {\n            Take: this._take,\n            PageIndex: this._pageIndex,\n            SortBy: this._sortBy,\n            SortAscending: this._sortAscending,\n            Skip: 0,\n        };\n    }\n}\n;\n$(document).ready(function () {\n    $(\".widget-inprogresscustomization-list\").each(function (index, item) {\n        $(item).data(\"manager\", new InProgressCustomization(item));\n    });\n});\n/// <reference path=\"../lib/twbs-pagination.d.ts\" />\n/// <reference path=\"../lib/jquery.d.ts\" />\n/// <reference path=\"../lib/helper.admin.d.ts\" />\nclass LeaderBoard {\n    constructor(widget) {\n        this._widget = widget;\n        this.initialize();\n    }\n    initialize() {\n        this._pageIndex = 0;\n        this._totalPages = parseFloat($(this._widget).attr(\"data-total-pages\"));\n        this._take = parseInt($(this._widget).attr(\"data-take\"));\n        this._widgetId = parseInt($(this._widget).attr(\"data-contentwidgetid\"));\n        //  this._sortBy = $(this._widget).attr(\"data-sort-by\");\n        this.bindControls();\n    }\n    bindControls() {\n        var me = this;\n        me.ShowPager();\n        $(me._widget).find(\".leaderboardListHeading\").click(function () {\n            var newHeader = $(this);\n            var oldHeader = $(\".dataTable\").find(\".sorting_asc,.sorting_desc\");\n            if (newHeader.data(\"sort-field\") === oldHeader.data(\"sort-field\")) // change direction\n             {\n                if ($(\".leaderboardListHeading.sorting_asc\").length > 0) {\n                    //change from ASC to DESC\n                    oldHeader.removeClass(\"sorting_asc\");\n                    newHeader.addClass(\"sorting_desc\");\n                    me._sortAscending = \"false\";\n                }\n                else {\n                    //change from DESC to ASC\n                    oldHeader.removeClass(\"sorting_desc\");\n                    newHeader.addClass(\"sorting_asc\");\n                    me._sortAscending = \"true\";\n                }\n            }\n            else // change sort column\n             {\n                oldHeader.removeClass(\"sorting_asc\").removeClass(\"sorting_desc\").addClass(\"sorting\");\n                newHeader.removeClass(\"sorting\").addClass(\"sorting_asc\");\n                me._sortAscending = \"true\";\n            }\n            $(me._widget).find(\"#list-items\").html();\n            me._sortBy = newHeader.data(\"sort-field\");\n            me._pageIndex = 0;\n            me.LoadData(false);\n        });\n    }\n    SetPager() {\n        var me = this;\n        var defaultOpts = {};\n        if (me._totalPages !== 0) {\n            $(me._widget).find('#leaderboard-list-pagination').html('');\n            $(me._widget).find('#leaderboard-list-pagination').html('<ul id=\"pagination\" class=\"pagination-sm\"></ul>');\n            $(me._widget).find('#leaderboard-list-pagination').find('#pagination').twbsPagination({\n                initiateStartPageClick: false,\n                totalPages: me._totalPages,\n                startPage: (me._pageIndex === 0 ? 1 : (me._pageIndex + 1)),\n                onPageClick: function (event, page) {\n                    me._pageIndex = (page - 1);\n                    me.LoadData(false);\n                }\n            });\n        }\n        else {\n            $(me._widget).find('#leaderboard-list-pagination').html('');\n        }\n    }\n    LoadData(filterClose) {\n        var me = this;\n        var params = me.BuildParams(me._widgetId);\n        var url = '/Content/RenderLeaderBoardList/' + me._widgetId.toString();\n        $.when(submitAjaxRequest(params, url, \"post\")\n            .done(function (data, textStatus, request) {\n            me._pageIndex = parseInt(request.getResponseHeader(\"X-PageIndex\"));\n            me._totalPages = parseFloat(request.getResponseHeader(\"X-TotalPages\"));\n            $(me._widget).find(\"#list-items\").html(data);\n            me.ShowPager();\n        }));\n    }\n    ShowPager() {\n        var me = this;\n        if (me._totalPages > 0) {\n            if (me._totalPages < 1) {\n                me._totalPages = 0;\n            }\n            else {\n                me._totalPages = Math.ceil(me._totalPages);\n            }\n            me.SetPager();\n        }\n    }\n    BuildParams(contentWidgetId) {\n        var $transactiontypeFilter = $(\"div[data-contentwidgetid='\" + contentWidgetId + \"'] div.filter-drop-down[data-filtertype='TransactionTypes']\");\n        var arrayTypes = new Array;\n        $transactiontypeFilter.find(\"span.fa-check\").each(function (i, e) {\n            arrayTypes.push(parseInt($(e).attr(\"data-id\")));\n        });\n        var transactionTypes = arrayTypes.join(\",\");\n        var params = {\n            Take: this._take,\n            PageIndex: this._pageIndex,\n            SortBy: this._sortBy,\n            SortAscending: this._sortAscending,\n            Skip: 0,\n            TransactionTypes: transactionTypes\n        };\n        return params;\n    }\n}\n;\n$(document).ready(function () {\n    $(\".widget-leaderboard-list\").each(function (index, item) {\n        $(item).data(\"manager\", new LeaderBoard(item));\n    });\n});\n/// <reference path=\"../lib/twbs-pagination.d.ts\" />\n/// <reference path=\"../lib/jquery.d.ts\" />\n/// <reference path=\"../lib/helper.admin.d.ts\" />\nclass ListPromotions {\n    constructor(widget) {\n        this._widget = widget;\n        this.initialize();\n    }\n    initialize() {\n        this._pageIndex = 0;\n        this._totalPages = parseFloat($(this._widget).attr(\"data-total-pages\"));\n        this._take = parseInt($(this._widget).find(\".js-listpromotions-pagesize\").val());\n        this._widgetId = parseInt($(this._widget).attr(\"data-contentwidgetid\"));\n        this._sortBy = $(this._widget).attr(\"data-sort-by\");\n        this.bindControls();\n    }\n    bindControls() {\n        var me = this;\n        me.BindTooltips();\n        $(me._widget).find(\".js-listpromotions-pagesize\").on(\"change\", function () {\n            me._sortBy = \"begindate\";\n            me._pageIndex = 0;\n            me._sortAscending = \"false\";\n            me._take = $(this).val();\n            me.LoadData();\n        });\n        me.ShowPager();\n        $(me._widget).find(\".js-listpromotions-sortby\").on(\"change\", function () {\n            me._sortAscending = $(this).find(':selected').data(\"sortasc\");\n            me._sortBy = $(this).val();\n            $(me._widget).find(\"#list-items\").html();\n            me._pageIndex = 0;\n            me.LoadData();\n        });\n        $(me._widget).find(\".js-resetfilters\").on(\"click\", function () {\n            me.ResetFilters();\n            me.LoadData();\n        });\n        $(me._widget).find(\"#SearchButton\").on(\"click\", function () {\n            me._pageIndex = 0;\n            me.LoadData();\n        });\n        $(me._widget).find(\".js-toggle-filters\").on(\"click\", function () {\n            var origText = $(this).html();\n            var altTextHolder = $(me._widget).find(\".js-filter-alt-text\");\n            $(this).html(altTextHolder.html());\n            altTextHolder.html(origText);\n            if ($(me._widget).find(\"#filterFieldset\").hasClass(\"collapse\")) {\n                $(me._widget).find(\"#filterFieldset\").removeClass(\"collapse\");\n            }\n            else {\n                $(me._widget).find(\"#filterFieldset\").addClass(\"collapse\");\n            }\n        });\n        //$(me._widget).find(\"#IsBonus\").on(\"click\", function () {\n        //    me._pageIndex = 0;\n        //    me.LoadData();\n        //});\n        //$(me._widget).find(\"#ShowFuture\").on(\"click\", function () {\n        //    me._pageIndex = 0;\n        //    me.LoadData();\n        //});\n        $(me._widget).find(\"#FilterActivityTypes\").multiselect({ numberDisplayed: 0 });\n    }\n    BindTooltips() {\n        $(this._widget).find('.participant-activity-tooltip').tooltip();\n    }\n    SetPager() {\n        var me = this;\n        var defaultOpts = {};\n        if (me._totalPages !== 0) {\n            $(me._widget).find('#listpromotions-pagination').html('');\n            $(me._widget).find('#listpromotions-pagination').html('<ul id=\"pagination\" class=\"pagination-sm\"></ul>');\n            $(me._widget).find('#listpromotions-pagination').find('#pagination').twbsPagination({\n                initiateStartPageClick: false,\n                totalPages: me._totalPages,\n                startPage: (me._pageIndex === 0 ? 1 : (me._pageIndex + 1)),\n                onPageClick: function (event, page) {\n                    me._pageIndex = (page - 1);\n                    me.LoadData();\n                }\n            });\n        }\n        else {\n            $(me._widget).find('#listpromotions-pagination').html('');\n        }\n    }\n    LoadData() {\n        var me = this;\n        var params = me.BuildParams(me._widgetId);\n        // Show loading indicator\n        $(this._widget).find('.js-loading-overlay').removeClass('hidden');\n        var url = '/Content/RenderActivityCriteriaList/' + me._widgetId.toString();\n        $.when(submitAjaxRequest(params, url, \"post\")\n            .done(function (data, textStatus, request) {\n            me._pageIndex = parseInt(request.getResponseHeader(\"X-PageIndex\"));\n            me._totalPages = parseFloat(request.getResponseHeader(\"X-TotalPages\"));\n            $(me._widget).find(\"#list-items\").html(data);\n            me.ShowPager();\n            me.BindTooltips();\n            // Hide loading indicator\n            $(me._widget).find('.js-loading-overlay').addClass('hidden');\n        }));\n    }\n    ShowPager() {\n        var me = this;\n        if (me._totalPages > 0) {\n            if (me._totalPages < 1) {\n                me._totalPages = 0;\n            }\n            else {\n                me._totalPages = Math.ceil(me._totalPages);\n            }\n        }\n        me.SetPager();\n    }\n    BuildParams(contentWidgetId) {\n        var me = this;\n        var isShowFutureSelected = $(me._widget).find(\"#ShowFuture\").is(\":checked\");\n        var showFuture = isShowFutureSelected !== null ? isShowFutureSelected : false;\n        var selectedActivityTypes = $(me._widget).find(\"#FilterActivityTypes\").val();\n        var activityTypes = selectedActivityTypes != null ? selectedActivityTypes.join(\",\") : null;\n        var isBonusSelected = $(me._widget).find(\"#IsBonus\").is(\":checked\");\n        var isBonus = isBonusSelected !== null ? isBonusSelected : false;\n        var searchText = $(me._widget).find(\"#SearchText\").val();\n        var params = {\n            Take: this._take,\n            PageIndex: this._pageIndex,\n            SortBy: this._sortBy,\n            SortAscending: this._sortAscending,\n            ActivityTypes: activityTypes,\n            ShowFuture: showFuture,\n            IsBonus: isBonus,\n            SearchText: searchText\n        };\n        return params;\n    }\n    ResetFilters() {\n        $(this._widget).find(\"#ShowFuture\").prop('checked', false);\n        $(this._widget).find(\"#IsBonus\").prop('checked', false);\n        $(this._widget).find(\"#SearchText\").val(\"\");\n        $(this._widget).find(\"#FilterActivityTypes\").val(\"\");\n        $(this._widget).find(\"#FilterActivityTypes\").multiselect('refresh');\n    }\n}\n;\n$(document).ready(function () {\n    $(\".widget-listpromotion\").each(function (index, item) {\n        $(item).data(\"manager\", new ListPromotions(item));\n    });\n});\n/// <reference path=\"../lib/twbs-pagination.d.ts\" />\n/// <reference path=\"../lib/jquery.d.ts\" />\n/// <reference path=\"../lib/helper.admin.d.ts\" />\n/// <reference path=\"../lib/helper.timezones.d.ts\" />\n/// <reference path=\"../lib/helper.orders.d.ts\" />\nclass MyProject {\n    constructor(widget) {\n        this._widget = widget;\n        this.initialize();\n    }\n    initialize() {\n        this._pageIndex = 0;\n        this._totalPages = parseFloat($(this._widget).attr(\"data-total-pages\"));\n        this._take = parseInt($(this._widget).find(\"#uxMyProjectListPageSize\").val());\n        this._widgetId = parseInt($(this._widget).attr(\"data-contentwidgetid\"));\n        this.bindControls();\n    }\n    bindControls() {\n        var me = this;\n        $(me._widget).find(\".filter-text, .filter-close\").on(\"click\", function () {\n            me.ShowHideFilter(this);\n        });\n        $(me._widget).find(\".filter-facet\").on(\"click\", function () {\n            me.selectDeselectFacet(this);\n        });\n        $(me._widget).find(\"#uxMyProjectListPageSize\").on(\"change\", function () {\n            me._sortBy = \"datecreated\";\n            me._pageIndex = 0;\n            me._sortAscending = \"false\";\n            me._take = $(this).val();\n            me.loadData(false);\n        });\n        $(me._widget).find(\".js-delete-order\").on(\"click\", function (e) {\n            me.delete($(e.currentTarget));\n        });\n        $(me._widget).find(\".js-vieworderdetail\").on('click', function () {\n            var expand = this;\n            me.showDetail(expand);\n        });\n        me.showPager();\n        $(me._widget).find(\".js-order-send-email\").on(\"click\", function (e) {\n            e.preventDefault();\n            var button = $(e.currentTarget);\n            bootbox.prompt({\n                title: $(button).attr(\"data-email-address-header\"),\n                inputType: 'email',\n                value: $(button).attr(\"data-email-address\"),\n                callback: function (result) {\n                    if (result != null) {\n                        $(button).attr(\"data-email-address\", result);\n                        me.SendCompositionEmail(button);\n                    }\n                }\n            });\n        });\n        $(me._widget).find(\".myProjectListHeading\").click(function () {\n            var newHeader = $(this);\n            var oldHeader = $(\".dataTable\").find(\".sorting_asc,.sorting_desc\");\n            if (newHeader.data(\"sort-field\") === oldHeader.data(\"sort-field\")) // change direction\n             {\n                if ($(\".myProjectListHeading.sorting_asc\").length > 0) {\n                    //change from ASC to DESC\n                    oldHeader.removeClass(\"sorting_asc\");\n                    newHeader.addClass(\"sorting_desc\");\n                    me._sortAscending = \"false\";\n                }\n                else {\n                    //change from DESC to ASC\n                    oldHeader.removeClass(\"sorting_desc\");\n                    newHeader.addClass(\"sorting_asc\");\n                    me._sortAscending = \"true\";\n                }\n            }\n            else // change sort column\n             {\n                oldHeader.removeClass(\"sorting_asc\").removeClass(\"sorting_desc\").addClass(\"sorting\");\n                newHeader.removeClass(\"sorting\").addClass(\"sorting_asc\");\n                me._sortAscending = \"true\";\n            }\n            $(me._widget).find(\"#list-items\").html();\n            me._sortBy = newHeader.data(\"sort-field\");\n            me._pageIndex = 0;\n            me.loadData(false);\n        });\n        $(me._widget).find(\".button.filter-facet-apply\").on(\"click\", function () {\n            me.applyFilter(this);\n        });\n        $(me._widget).find(\"#order-history-modal\").on('show.bs.modal', function (event) {\n            var self = this;\n            var orderlineItemId = $(event.relatedTarget).attr(\"data-order-line-item-id\");\n            var params = {\n                \"participantOrderLineItemId\": orderlineItemId,\n            };\n            $.ajax({\n                data: params,\n                method: \"GET\",\n                url: \"/Manage/ParticipantOrder/GetParticipantOrderHistory\"\n            }).done(function (data, textStatus, request) {\n                $(\"#order-history-modal\").find(\".modal-body\").html(data);\n            });\n        });\n    }\n    SendCompositionEmail(button) {\n        var params = {\n            id: parseInt($(button).attr(\"data-order-line-item-id\")),\n            emailAddress: $(button).attr(\"data-email-address\"),\n            \"updateStatus\": true\n        };\n        var url = \"/Api/ParticipantOrder/SendCompositionEmail\";\n        $.when(submitAjaxRequest(params, url, \"post\")\n            .done((data, textStatus, request) => {\n            if (data.success) {\n                $(button).closest(\".orderdetail-container\").find(\".js-header-orderstatus\").html(data.data.orderHeaderStatus);\n                $(button).closest(\".orderdetail-item-row\").find(\".js-order-status\").html(data.data.orderLineItemStatus);\n                bootbox.alert($(button).attr(\"data-post-email-body\"));\n            }\n        }));\n    }\n    openDirectMailListRecipients(button) {\n        var me = this;\n        var contactListIdentifier = $(button).attr(\"data-contact-list-identifier\");\n        var orderLineItemDetailIdentifier = $(button).attr(\"data-item-detail-identifier\");\n        $.ajax({\n            method: \"GET\",\n            url: \"/DirectMail/GetDirectMailListRecipients/\" + orderLineItemDetailIdentifier + \"/\" + contactListIdentifier\n        }).done(function (data, textStatus, request) {\n            if (data) {\n                var globalModal = new GlobalModal(contactListIdentifier);\n                var html = data;\n                globalModal.openGlobalModal(html, \"panel\", { origin: $(this), classes: 'configure-launch-modal' });\n                var table = $(\".global-modal-inner-container\").find(\".dataTable\");\n                $(table).DataTable({\n                    \"pageLength\": 25,\n                    \"searching\": false,\n                    \"dom\": '<\"top\"<\"left\"><\"right\"f><\"clearfix\">>rt<\"bottom\"<\"left\"l><\"right\"p>><\"clearfix\">'\n                });\n                $(\".global-modal-inner-container\").find(\".js-download-direct-mail-list-recipients\").attr(\"data-contact-list-identifier\", contactListIdentifier);\n                $(\".global-modal-inner-container\").find(\".js-download-direct-mail-list-recipients\").attr(\"data-item-detail-identifier\", orderLineItemDetailIdentifier);\n                $(\".global-modal-inner-container\").find(\".js-download-direct-mail-list-recipients\").click(function (e) {\n                    var contactListIdentifier = $(e.currentTarget).attr(\"data-contact-list-identifier\");\n                    var orderLineItemDetailIdentifier = $(e.currentTarget).attr(\"data-item-detail-identifier\");\n                    window.location.href = \"/DirectMail/DownloadDirectMailListRecipients/\" + orderLineItemDetailIdentifier + \"/\" + contactListIdentifier + \"/\" + $(\".global-modal-inner-container\").find(\".js-direct-maillistrecipientsdownloadfiletype\").val();\n                });\n            }\n            else {\n            }\n        });\n    }\n    openEmailUploadedListRecipients(button) {\n        var me = this;\n        var contactListIdentifier = $(button).attr(\"data-contact-list-identifier\");\n        var orderLineItemDetailIdentifier = $(button).attr(\"data-item-detail-identifier\");\n        $.ajax({\n            method: \"GET\",\n            url: \"/EmailCampaign/GetEmailUploadedListRecipients/\" + orderLineItemDetailIdentifier + \"/\" + contactListIdentifier\n        }).done(function (data, textStatus, request) {\n            if (data) {\n                var globalModal = new GlobalModal(contactListIdentifier);\n                var html = data;\n                globalModal.openGlobalModal(html, \"panel\", { origin: $(this), classes: 'configure-launch-modal' });\n                var table = $(\".global-modal-inner-container\").find(\".dataTable\");\n                $(table).DataTable({\n                    \"pageLength\": 25,\n                    \"searching\": false,\n                    \"dom\": '<\"top\"<\"left\"><\"right\"f><\"clearfix\">>rt<\"bottom\"<\"left\"l><\"right\"p>><\"clearfix\">'\n                });\n                $(\".global-modal-inner-container\").find(\".js-download-email-uploaded-list-recipients\").attr(\"data-contact-list-identifier\", contactListIdentifier);\n                $(\".global-modal-inner-container\").find(\".js-download-email-uploaded-list-recipients\").attr(\"data-item-detail-identifier\", orderLineItemDetailIdentifier);\n                $(\".global-modal-inner-container\").find(\".js-download-email-uploaded-list-recipients\").click(function (e) {\n                    var contactListIdentifier = $(e.currentTarget).attr(\"data-contact-list-identifier\");\n                    var orderLineItemDetailIdentifier = $(e.currentTarget).attr(\"data-item-detail-identifier\");\n                    window.location.href = \"/EmailCampaign/DownloadEmailUploadedListRecipients/\" + orderLineItemDetailIdentifier + \"/\" + contactListIdentifier + \"/\" + $(\".global-modal-inner-container\").find(\".js-emailuploadedlistrecipientsdownloadfiletype\").val();\n                });\n            }\n            else {\n            }\n        });\n    }\n    openMicrositeListRecipients(button) {\n        var me = this;\n        var contactListIdentifier = $(button).attr(\"data-contact-list-identifier\");\n        var orderLineItemDetailIdentifier = $(button).attr(\"data-item-detail-identifier\");\n        $.ajax({\n            method: \"GET\",\n            url: \"/EmailCampaign/GetMicrositeListRecipients/\" + orderLineItemDetailIdentifier + \"/\" + contactListIdentifier\n        }).done(function (data, textStatus, request) {\n            if (data) {\n                var globalModal = new GlobalModal(contactListIdentifier);\n                var html = data;\n                globalModal.openGlobalModal(html, \"panel\", { origin: $(this), classes: 'configure-launch-modal' });\n                var table = $(\".global-modal-inner-container\").find(\".dataTable\");\n                $(table).DataTable({\n                    \"pageLength\": 25,\n                    \"searching\": false,\n                    \"dom\": '<\"top\"<\"left\"><\"right\"f><\"clearfix\">>rt<\"bottom\"<\"left\"l><\"right\"p>><\"clearfix\">'\n                });\n                $(\".global-modal-inner-container\").find(\".js-download-microsite-list-recipients\").attr(\"data-contact-list-identifier\", contactListIdentifier);\n                $(\".global-modal-inner-container\").find(\".js-download-microsite-list-recipients\").attr(\"data-item-detail-identifier\", orderLineItemDetailIdentifier);\n                $(\".global-modal-inner-container\").find(\".js-download-microsite-list-recipients\").click(function (e) {\n                    var contactListIdentifier = $(e.currentTarget).attr(\"data-contact-list-identifier\");\n                    var orderLineItemDetailIdentifier = $(e.currentTarget).attr(\"data-item-detail-identifier\");\n                    window.location.href = \"/EmailCampaign/DownloadMicrositeListRecipients/\" + orderLineItemDetailIdentifier + \"/\" + contactListIdentifier + \"/\" + $(\".global-modal-inner-container\").find(\".js-micrositelistrecipientsdownloadfiletype\").val();\n                });\n            }\n            else {\n            }\n        });\n    }\n    openContactActivityList(button) {\n        var me = this;\n        var contactListIdentifier = $(button).attr(\"data-contact-list-identifier\");\n        var orderLineItemDetailIdentifier = $(button).attr(\"data-item-detail-identifier\");\n        $.ajax({\n            method: \"GET\",\n            url: \"/EmailCampaign/GetActivitySummaryListLimited/\" + orderLineItemDetailIdentifier + \"/\" + contactListIdentifier\n        }).done(function (data, textStatus, request) {\n            if (data) {\n                var globalModal = new GlobalModal(contactListIdentifier);\n                var html = data;\n                globalModal.openGlobalModal(html, \"panel\", { origin: $(this), classes: 'configure-launch-modal' });\n                $(\".global-modal-inner-container\").find(\".js-download-activity-list\").click(function (e) {\n                    var dataType = $(e.currentTarget).attr(\"data-type\");\n                    var searchText = $(\".global-modal-inner-container\").find(\".js-campaign-list-filter-text\").val();\n                    var title = $(e.currentTarget).attr(\"data-title\");\n                    var body = $(e.currentTarget).attr(\"data-body\");\n                    // @ts-ignore\n                    var uniqueId = 'EmailOrderDownload-' + getUniqueGuid();\n                    var url = \"/EmailCampaign/DownloadActivitySummaryList\" +\n                        \"?orderLineItemDetailIdentifier=\" + orderLineItemDetailIdentifier +\n                        \"&contactListIdentifier=\" + contactListIdentifier +\n                        \"&fileType=\" + dataType +\n                        \"&uniqueId=\" + uniqueId +\n                        \"&searchText=\" + searchText;\n                    e.preventDefault();\n                    // @ts-ignore\n                    bootbox.dialog({\n                        title: title,\n                        message: body +\n                            '<div id=\"progress-wrapper-upload\">' +\n                            '<div class=\"progress-wrapper\">' +\n                            '<div class=\"progress-indicator text-center\">' +\n                            '</div></div></div>',\n                        closeButton: false\n                    });\n                    // move box to front\n                    $(\".bootbox.modal.bootbox\").css({ \"z-index\": \"10006\" });\n                    // initialize process status row, and return to call loop\n                    // @ts-ignore\n                    updateProgressStatus(uniqueId, '/API/Manage/ProcessStatus/AddProgress/', function () { progressBar(url, uniqueId); });\n                });\n                // @ts-ignore\n                function progressBar(url, uniqueId) {\n                    $.when(submitAjaxRequest(null, url, \"GET\")\n                        .done(function (data, textStatus, request) {\n                        // tell process it is done\n                        $('#loadupload-loop').val('1');\n                        // swallow success since I will handle it with the ProgressStatus\n                    })\n                        .fail(function (response, textStatus, errorThrown) {\n                        // swallow timeout error since I will handle it with the ProgressStatus\n                    }));\n                    var pollingStop = $('#loadupload-loop'); // used for a quick exit from the loop if applicable\n                    var progressWrapper = $('#progress-wrapper-upload');\n                    // getStatus is a recursive process which waits for 0% or 100%. When found, run the passed function, which is in the helper.\n                    getStatus(uniqueId, '/API/Manage/ProcessStatus/GetCurrentProgress/', pollingStop, progressWrapper, \n                    // @ts-ignore\n                    function () {\n                        // done, reset and get the file\n                        $('#loadupload-loop').val('0');\n                        var finalUrl = '/EmailCampaign/GetDownLoadFile?UniqueId=' + uniqueId;\n                        // @ts-ignore\n                        window.location = finalUrl;\n                        // remove the process status row\n                        //updateProgressStatus(uniqueId, '/API/Manage/ProcessStatus/RemoveProgress/');\n                    });\n                }\n                $(\".global-modal-inner-container\").find(\".js-campaign-list-filter-button-reset\").click(function (e) {\n                    e.stopPropagation();\n                    e.stopImmediatePropagation();\n                    var me = this;\n                    $(\".global-modal-inner-container\").find(\".js-campaign-list-filter-text\").val(\"\");\n                    var searchText = $(\".global-modal-inner-container\").find(\".js-campaign-list-filter-text\").val();\n                    var params = {\n                        \"searchText\": searchText\n                    };\n                    $.ajax({\n                        data: params,\n                        method: \"GET\",\n                        url: \"/EmailCampaign/GetActivitySummaryListLimitedDataOnly/\" + orderLineItemDetailIdentifier + \"/\" + contactListIdentifier\n                    }).done(function (data, textStatus, request) {\n                        if (data) {\n                            $(\".global-modal-inner-container\").find(\".js-campaign-list-filtered-table\").html(data);\n                        }\n                    });\n                });\n                $(\".global-modal-inner-container\").find(\".js-campaign-list-filter-button\").click(function (e) {\n                    e.stopPropagation();\n                    e.stopImmediatePropagation();\n                    var me = this;\n                    var searchText = $(\".global-modal-inner-container\").find(\".js-campaign-list-filter-text\").val();\n                    var params = {\n                        \"searchText\": searchText\n                    };\n                    $.ajax({\n                        data: params,\n                        method: \"GET\",\n                        url: \"/EmailCampaign/GetActivitySummaryListLimitedDataOnly/\" + orderLineItemDetailIdentifier + \"/\" + contactListIdentifier\n                    }).done(function (data, textStatus, request) {\n                        if (data) {\n                            $(\".global-modal-inner-container\").find(\".js-campaign-list-filtered-table\").html(data);\n                        }\n                    });\n                });\n            }\n            else {\n            }\n        });\n    }\n    openMicrositeActivityList(button) {\n        var me = this;\n        var contactListIdentifier = $(button).attr(\"data-contact-list-identifier\");\n        $.ajax({\n            method: \"GET\",\n            url: \"/Microsite/GetActivitySummaryList/\" + contactListIdentifier\n        }).done(function (data, textStatus, request) {\n            if (data) {\n                var globalModal = new GlobalModal(contactListIdentifier);\n                var html = data;\n                globalModal.openGlobalModal(html, \"panel\", { origin: $(this), classes: 'configure-launch-modal' });\n                $(\".global-modal-inner-container\").find(\".js-download-activity-list\").attr(\"data-contact-list-identifier\", contactListIdentifier);\n                $(\".global-modal-inner-container\").find(\".js-download-activity-list\").click(function (e) {\n                    var contactListIdentifier = $(e.currentTarget).attr(\"data-contact-list-identifier\");\n                    window.location.href = \"/Microsite/DownloadActivitySummaryList/\" +\n                        contactListIdentifier +\n                        \"/\" +\n                        $(\".global-modal-inner-container\").find(\".js-micrositedownloadfiletype\").val();\n                });\n            }\n            else {\n            }\n        });\n    }\n    download(button) {\n        var params = {\n            \"id\": parseInt($(button).attr(\"data-order-line-item-id\")),\n        };\n        var url = \"/Api/ParticipantOrder/DownloadAction\";\n        $.when(submitAjaxRequest(params, url, \"post\").done(function (data, textStatus, request) {\n            if (data.success) {\n                // parentrow status description \n                var parentrowIdentifier = $(button).attr(\"data-transaction-identifier\");\n                var parentrow = $(button).closest(\"#list-items\").find(\".js-row-parent-\" + parentrowIdentifier);\n                $(parentrow).find(\".js-order-status\").html(data.data.orderHeaderStatus);\n                // header status description in my project\n                var orderdetailrow = $(button).closest(\"#list-items\")\n                    .find(\".detail-\" + parentrowIdentifier)\n                    .find(\".js-header-orderstatus\")\n                    .html(data.data.orderHeaderStatus);\n                $(button).closest(\".orderdetail-item-row\").find(\".js-order-status\").html(data.data.orderLineItemStatus);\n                location.href = $(button).attr(\"data-href\");\n            }\n        }));\n    }\n    sendCompositionEmail(button) {\n        var params = {\n            \"id\": parseInt($(button).attr(\"data-order-line-item-id\")),\n            \"emailAddress\": $(button).attr(\"data-email-address\"),\n            \"updateStatus\": true\n        };\n        var url = \"/Api/ParticipantOrder/SendCompositionEmail\";\n        $.when(submitAjaxRequest(params, url, \"post\").done(function (data, textStatus, request) {\n            // TODO XXX$.ajax({\n            if (data.success) {\n                // parentrow status description \n                var parentrowIdentifier = $(button).attr(\"data-transaction-identifier\");\n                var parentrow = $(button).closest(\"#list-items\").find(\".js-row-parent-\" + parentrowIdentifier);\n                $(parentrow).find(\".js-order-status\").html(data.data.orderHeaderStatus);\n                // header status description in my project\n                var orderdetailrow = $(button).closest(\"#list-items\")\n                    .find(\".detail-\" + parentrowIdentifier)\n                    .find(\".js-header-orderstatus\")\n                    .html(data.data.orderHeaderStatus);\n                // detail  status description \n                $(button).closest(\".orderdetail-item-row\").find(\".js-order-status\").html(data.data.orderLineItemStatus);\n                bootbox.alert($(button).attr(\"data-post-email-body\"));\n            }\n        }));\n    }\n    delete(button) {\n        var title = $(button).attr(\"data-delete-title\");\n        var body = $(button).attr(\"data-delete-message\");\n        var cancelButton = $(button).attr(\"data-cancel-button\");\n        var removeButton = $(button).attr(\"data-ok-button\");\n        var orderidentifier = $(button).attr(\"data-order-identifier\");\n        bootbox.confirm({\n            title: title,\n            message: body,\n            buttons: {\n                'cancel': {\n                    label: cancelButton\n                },\n                'confirm': {\n                    label: removeButton\n                }\n            },\n            callback: function (confirmed) {\n                if (confirmed) {\n                    var params = {\n                        identifier: orderidentifier\n                    };\n                    var url = \"/Api/ParticipantOrder/ArchiveOrder\";\n                    $.when(submitAjaxRequest(params, url, \"post\").done(function (data, textStatus, request) {\n                        // TODO XXX$.ajax({\n                        var parentRow = $(button).parent().closest('tr');\n                        var detailRow = $(parentRow).next('tr').remove();\n                        $(parentRow).remove();\n                        bootbox.alert(\"done\");\n                    }));\n                }\n            }\n        });\n    }\n    resubmitOrderItem(button, displayPopup) {\n        var params = {\n            \"orderLineItemId\": parseInt($(button).attr(\"data-order-line-item-id\")),\n            \"orderIdentifier\": $(button).attr(\"data-order-identifier\")\n        };\n        $.ajax({\n            data: params,\n            method: \"GET\",\n            url: \"/Api/ParticipantOrder/ResubmitOrderItem\"\n        }).done(function (data, textStatus, request) {\n            if (data.success) {\n                $(button).addClass(\"hide\");\n                $(button).closest(\".orderdetail-item-row\").find(\".js-check-status\").removeClass(\"hide\");\n            }\n            else {\n                if (displayPopup) {\n                    alert(data.errorMessage);\n                }\n            }\n        });\n    }\n    openFaceBookPost(button) {\n        var me = this;\n        var orderLineItemId = $(button).attr(\"data-order-line-item-id\");\n        var child = window.open(\"/SocialPost/GetFaceBookUserToken\", 'self', 'toolbar=no,status=no,menubar=no,scrollbars=no,resizable=no');\n        var leftDomain = false;\n        var interval = setInterval(function () {\n            try {\n                if (child.document.domain === document.domain) {\n                    if (child.document.readyState === \"complete\") {\n                        // we're here when the child window returned to our domain\n                        var child_url = child.document.URL;\n                        if (child_url.indexOf(\"code=\") !== -1) {\n                            var accessToken = $(child.document).contents().find(\"body pre\").html();\n                            $(button).attr(\"facebook-access-token\", accessToken);\n                            clearInterval(interval);\n                            child.close();\n                            var dto = {\n                                \"accessToken\": accessToken,\n                                \"orderLineItemId\": orderLineItemId\n                            };\n                            if (accessToken !== \"\") {\n                                var url = \"/SocialPost/GetAccountLists/\" + accessToken + \"/\" + orderLineItemId;\n                                $.when(globalThis.gage.submitAjaxRequest(null, url, \"GET\")\n                                    .done(function (data, status, request) {\n                                    var globalModal = new GlobalModal(accessToken);\n                                    var html = data;\n                                    globalModal.openGlobalModal(html, \"panel\", { origin: $(this), classes: 'configure-facebook-post-information--modal' });\n                                    $(\".global-modal-inner-container\").find(\".js-messagecontainer\").find(\".panel-heading\").html(\"\");\n                                    $(\".global-modal-inner-container\").find(\".js-messagecontainer\").find(\".panel-body\").html(\"\");\n                                    $(\".global-modal-inner-container\").find(\".js-submit-facebook-post\").attr(\"data-order-line-item-id\", orderLineItemId);\n                                    $(\".global-modal-inner-container\").find(\"#imageurl\").attr(\"src\", $(button).attr(\"data-image-url\"));\n                                    var pages = $(\".global-modal-inner-container\").find(\".js-facebook-post-pages\");\n                                    $(pages).multiselect({ numberDisplayed: 0 });\n                                    $(pages).multiselect();\n                                    $(\".global-modal-inner-container\").find(\".js-submit-facebook-post\").click(function (e) {\n                                        var submitButton = $(e.currentTarget);\n                                        $(submitButton).attr(\"disabled\", \"disabled\");\n                                        $(\".global-modal-inner-container\").find(\".js-messagecontainer\").addClass(\"hide\");\n                                        $(\".global-modal-inner-container\").find(\".js-messagecontainer\").find(\".panel-heading\").html(\"\");\n                                        $(\".global-modal-inner-container\").find(\".js-messagecontainer\").find(\".panel-body\").html(\"\");\n                                        var requiredMessage = $(e.currentTarget).attr(\"data-required-error-message\");\n                                        var postedMessage = $(e.currentTarget).attr(\"data-post-submitted-message\");\n                                        var postedText = $(submitButton).attr(\"data-posted-text\");\n                                        if ($(pages).length > 0 && ($(pages).val() == \"\" || $(pages).val() == null)) {\n                                            alert(requiredMessage);\n                                            return false;\n                                        }\n                                        else {\n                                            var pageIds = $(pages).val().toString();\n                                            var errorHeader = $(e.currentTarget).attr(\"data-error-header\");\n                                            var columnErrorHeader = $(e.currentTarget).attr(\"data-error-header-error\");\n                                            var columnPageNameHeader = $(e.currentTarget).attr(\"data-error-header-page-name\");\n                                            var postSuccessfulSubHeading = $(e.currentTarget).attr(\"data-post-sucessful-subheading\");\n                                            var dto = {\n                                                \"pageId\": pageIds,\n                                                \"orderLineItemId\": orderLineItemId\n                                            };\n                                            var url = \"/SocialPost/PostPhoto\";\n                                            var notSubmittedMessage = \"\";\n                                            var postError = false;\n                                            $.when(globalThis.gage.submitAjaxRequest(dto, url, \"POST\")\n                                                .done(function (data, status, request) {\n                                                $(submitButton).removeAttr(\"disabled\");\n                                                var table = \"<table class='table table-responsive'><thead><tr><th>\" + columnPageNameHeader + \"</th><th>\" + columnErrorHeader + \"</th></tr></thead>\";\n                                                $.each(data.result, function (i, v) {\n                                                    var statusCode = v.statusCode;\n                                                    if (statusCode == \"OK\") {\n                                                        statusCode = postedText;\n                                                    }\n                                                    if (v.statusCode != \"OK\") {\n                                                        postError = true;\n                                                    }\n                                                    if (v.faceBookPostURL !== \"\") {\n                                                        table += \"<tr><td> <a  target='_blank' href='\" + v.faceBookPostURL + \"'>\" + v.postName + \"</a></td><td>\" + statusCode + \"</td></tr>\";\n                                                    }\n                                                    else {\n                                                        table += \"<tr><td>\" + v.postName + \"</td><td>\" + statusCode + \"</td></tr>\";\n                                                    }\n                                                });\n                                                table += \"</table>\";\n                                                $(\".global-modal-inner-container\").find(\".js-messagecontainer\").find(\".panel-heading\").html(errorHeader);\n                                                $(\".global-modal-inner-container\").find(\".js-messagecontainer\").find(\".panel-body\").html(\"<p class='alert alert-info' >\" + postSuccessfulSubHeading + \" </p>\");\n                                                $(\".global-modal-inner-container\").find(\".js-messagecontainer\").find(\".panel-body\").append(table);\n                                                $(\".global-modal-inner-container\").find(\".js-messagecontainer\").removeClass(\"hide\");\n                                                if (postError) {\n                                                    $(\".global-modal-inner-container\").find(\".js-messagecontainer\").find(\".js-messagecontainer-reset-permission-container\").removeClass(\"hide\");\n                                                }\n                                                else {\n                                                    $(\".global-modal-inner-container\").find(\".js-messagecontainer\").find(\".js-messagecontainer-reset-permission-container\").addClass(\"hide\");\n                                                }\n                                                $(\".global-modal-inner-container\").find(\".submit-facebook-post-container\").find(\".js-managed-facebook-pages-container\").remove();\n                                                $(\".global-modal-inner-container\").find(\".submit-facebook-post-container\").find(\".js-submit-facebook-post\").remove();\n                                                $(\".global-modal-inner-container\").find(\".submit-facebook-post-container\").find(\".js-cancel-confirmation-link\").addClass(\"hide\");\n                                                $(\".global-modal-inner-container\").find(\".submit-facebook-post-container\").find(\".js-close-confirmation-link\").removeClass(\"hide\");\n                                                //$(button).closest(\".js-action-container\").find(\".js-post-social-network-revoke\").click();\n                                            })\n                                                .fail(function (response, textStatus, errorThrown) {\n                                                globalModal.closeGlobalModal();\n                                                alert(errorThrown);\n                                                $(submitButton).removeAttr(\"disabled\");\n                                            }));\n                                        }\n                                    });\n                                    $(\".global-modal-inner-container\").find(\".js-reset-permission\").click(function (e) {\n                                        globalModal.closeGlobalModal();\n                                        $(\".js-facebook-reset-permission\").click();\n                                    });\n                                })\n                                    .fail(function (response, textStatus, errorThrown) {\n                                }));\n                            }\n                        }\n                    }\n                }\n                else {\n                    // this code should never be reached, \n                    // as the x-site security check throws\n                    // but just in case\n                    leftDomain = true;\n                }\n            }\n            catch (e) {\n                // we're here when the child window has been navigated away or closed\n                if (child.closed) {\n                    clearInterval(interval);\n                    return;\n                }\n                // navigated to another domain  \n                leftDomain = true;\n            }\n        }, 500);\n    }\n    resetFaceBookPermissions(button) {\n        $(button).attr(\"disabled\", \"disabled\");\n        var child = window.open(\"/SocialPost/GetFaceBookUserToken\", 'self', 'toolbar=no,status=no,menubar=no,scrollbars=no,resizable=no');\n        var successMessage = $(button).attr(\"data-reset-permission-success-message\");\n        var leftDomain = false;\n        var interval = setInterval(function () {\n            try {\n                if (child.document.domain === document.domain) {\n                    if (child.document.readyState === \"complete\") {\n                        // we're here when the child window returned to our domain\n                        var child_url = child.document.URL;\n                        if (child_url.indexOf(\"code=\") !== -1) {\n                            var accessToken = $(child.document).contents().find(\"body pre\").html();\n                            clearInterval(interval);\n                            child.close();\n                            if (accessToken !== \"\") {\n                                var params = {\n                                    AccessToken: accessToken\n                                };\n                                $.when(globalThis.gage.submitAjaxRequest(params, \"/SocialPost/DeletePermission/\", \"DELETE\")\n                                    .done(function (data, status, request) {\n                                    if (data != null && data.result == 200) {\n                                        bootbox.alert(successMessage);\n                                        $(button).removeAttr(\"disabled\");\n                                    }\n                                })\n                                    .fail(function (response, textStatus, errorThrown) {\n                                    alert(errorThrown);\n                                    $(button).removeAttr(\"disabled\");\n                                }));\n                            }\n                        }\n                    }\n                }\n                else {\n                    // this code should never be reached, \n                    // as the x-site security check throws\n                    // but just in case\n                    leftDomain = true;\n                }\n            }\n            catch (e) {\n                // we're here when the child window has been navigated away or closed\n                if (child.closed) {\n                    clearInterval(interval);\n                    return;\n                }\n                // navigated to another domain  \n                leftDomain = true;\n            }\n        }, 500);\n    }\n    checkCompositionFileStatus(button, showModal) {\n        waitingDialog.show($(button).attr(\"data-wait-message\"));\n        var me = this;\n        var params = {\n            \"orderItemId\": parseInt($(button).attr(\"data-order-line-item-id\")),\n        };\n        var uri = \"/Api/ParticipantOrder/CheckCompositionFileStatus\";\n        $.ajax({\n            data: params,\n            method: \"GET\",\n            url: uri\n        }).done(function (data, textStatus, request) {\n            waitingDialog.hide();\n            if (data.success) {\n                var transactionidentifier = $(button).attr(\"data-transaction-identifier\");\n                var parentrow = $(button).closest(\"#list-items\").find(\".js-row-parent-\" + transactionidentifier);\n                var detailrow = $(button).closest(\"#list-items\").find(\".detail-\" + transactionidentifier);\n                var expandbutton = $(parentrow).find(\".js-vieworderdetail\");\n                var icon = $(expandbutton).find('span');\n                $(icon).toggleClass('fa-chevron-up fa-chevron-down');\n                $(detailrow).removeClass(\"js-data-loaded\");\n                $(parentrow).find(\".js-order-status\").html(data.orderHeaderStatus);\n                me.showDetail(expandbutton);\n            }\n            else {\n                if (data.fileStatus == \"None\") {\n                    $(button).addClass(\"hide\");\n                    $(button).closest(\".orderdetail-item-row\").find(\".js-resubmit-order-item\").removeClass(\"hide\");\n                    bootbox.alert($(button).attr(\"data-customization-error-none-instruction\"));\n                }\n                //if (data.fileStatus !== \"None\") {\n                //    if (showModal) {\n                //        bootbox.alert(data.errorMessage);\n                //    }\n                //}\n            }\n        });\n    }\n    openCancelCampaignMessage(button) {\n        var yesText = $(button).attr(\"data-yes-text\");\n        var noText = $(button).attr(\"data-no-text\");\n        var overwriteMessage = $(button).attr(\"data-campaign-cancel-message\");\n        var sendSequenceNumber = $(button).closest(\".js-order-detail-row\").attr(\"data-send-sequence-number\") === \"\" ? 0 : $(button).closest(\".js-order-detail-row\").attr(\"data-send-sequence-number\");\n        var seedSequenceNumber = $(button).closest(\".js-order-detail-row\").attr(\"data-seed-sequence-number\") === \"\" ? 0 : $(button).closest(\".js-order-detail-row\").attr(\"data-seed-sequence-number\");\n        var orderLineItemId = $(button).closest(\".js-order-detail-row\").attr(\"data-order-line-item-id\");\n        var cancelledStatusText = $(button).attr(\"data-cancelled-status-text\");\n        bootbox.confirm({\n            message: \"<p>\" + overwriteMessage + \"</p>\",\n            buttons: {\n                confirm: {\n                    label: yesText,\n                    className: 'btn-success'\n                },\n                cancel: {\n                    label: noText,\n                    className: 'btn-danger'\n                }\n            },\n            callback: function (result) {\n                if (result) {\n                    var params = {\n                        SendSequenceNumber: sendSequenceNumber,\n                        SeedSequenceNumber: seedSequenceNumber,\n                        OrderLineItemId: orderLineItemId,\n                        IsAdmin: false\n                    };\n                    var url = \"/EmailCampaign/CancelCampaign\";\n                    $.when(globalThis.gage.submitAjaxRequest(params, url, \"PUT\")\n                        .done(function (data, textStatus, request) {\n                        $(button).closest(\".js-order-detail-row\").find(\".js-order-status-row\").html(cancelledStatusText);\n                        $(button).closest(\".js-order-detail-row\").find(\".localized-time-email-configuration\").remove();\n                        $(button).closest(\".js-order-detail-row\").find(\".js-campaign-action-row\").remove();\n                    })\n                        .fail(function (response, textStatus, errorThrown) {\n                        var x = 1;\n                    }));\n                    return true;\n                }\n            }\n        });\n    }\n    openCancelSocialPostMessage(button) {\n        var yesText = $(button).attr(\"data-yes-text\");\n        var noText = $(button).attr(\"data-no-text\");\n        var overwriteMessage = $(button).attr(\"data-campaign-cancel-message\");\n        var orderLineItemId = $(button).closest(\".js-order-detail-row\").attr(\"data-order-line-item-id\");\n        var orderLineItemDetailId = $(button).attr(\"data-order-line-item-detail-id\");\n        var cancelledStatusText = $(button).attr(\"data-cancelled-status-text\");\n        bootbox.confirm({\n            message: \"<p>\" + overwriteMessage + \"</p>\",\n            buttons: {\n                confirm: {\n                    label: yesText,\n                    className: 'btn-success'\n                },\n                cancel: {\n                    label: noText,\n                    className: 'btn-danger'\n                }\n            },\n            callback: function (result) {\n                if (result) {\n                    var url = \"/SocialPost/CancelSocialPost/\" + orderLineItemId + \"/\" + orderLineItemDetailId + \"/false\";\n                    $.when(globalThis.gage.submitAjaxRequest(null, url, \"PUT\")\n                        .done(function (data, textStatus, request) {\n                        $(button).closest(\".js-order-detail-row\").find(\".js-order-status-row\").html(cancelledStatusText);\n                        $(button).closest(\".js-order-detail-row\").find(\".js-social-post-action-row\").remove();\n                    })\n                        .fail(function (response, textStatus, errorThrown) {\n                    }));\n                    return true;\n                }\n            }\n        });\n    }\n    openCancelMicrositeMessage(button) {\n        var yesText = $(button).attr(\"data-yes-text\");\n        var noText = $(button).attr(\"data-no-text\");\n        var overwriteMessage = $(button).attr(\"data-campaign-cancel-message\");\n        var orderLineItemId = $(button).closest(\".js-order-detail-row\").attr(\"data-order-line-item-id\");\n        var orderLineItemDetailId = $(button).attr(\"data-order-line-item-detail-id\");\n        var cancelledStatusText = $(button).attr(\"data-cancelled-status-text\");\n        bootbox.confirm({\n            message: \"<p>\" + overwriteMessage + \"</p>\",\n            buttons: {\n                confirm: {\n                    label: yesText,\n                    className: 'btn-success'\n                },\n                cancel: {\n                    label: noText,\n                    className: 'btn-danger'\n                }\n            },\n            callback: function (result) {\n                if (result) {\n                    var params = {\n                        OrderLineItemId: orderLineItemId,\n                        OrderLineItemDetailId: orderLineItemDetailId,\n                        IsAdmin: false\n                    };\n                    var url = \"/Microsite/CancelMicrosite/\";\n                    $.when(globalThis.gage.submitAjaxRequest(params, url, \"PUT\")\n                        .done(function (data, textStatus, request) {\n                        $(button).closest(\".js-order-detail-row\").find(\".js-order-status-row\").html(cancelledStatusText);\n                        $(button).closest(\".js-order-detail-row\").find(\".localized-time-microsite-launch-date-configuration\").remove();\n                        $(button).closest(\".js-order-detail-row\").find(\".localized-time-microsite-archive-date-configuration\").remove();\n                        $(button).closest(\".js-order-detail-row\").find(\".js-microsite-action-row\").remove();\n                    })\n                        .fail(function (response, textStatus, errorThrown) {\n                    }));\n                    return true;\n                }\n            }\n        });\n    }\n    modifyCampaignDates(button) {\n        var me = this;\n        var lineItemDetailId = $(button).attr(\"data-order-line-item-detail-id\");\n        var suppressViewLink = $(button).attr(\"data-suppress-view-link\") == \"False\" ? false : true;\n        $.ajax({\n            method: \"GET\",\n            url: \"/EmailCampaign/GetParticipantOrderDetail/\" + lineItemDetailId\n        }).done(function (data, textStatus, request) {\n            if (data) {\n                var globalModal = new GlobalModal(lineItemDetailId);\n                var html = data;\n                globalModal.openGlobalModal(html, \"panel\", { origin: $(this), classes: 'configure-send-modal' });\n                var refreshContainer = $(button).closest(\".js-order-detail-row\");\n                GlobalPopulateTimeZones($(\".js-global-modal\").find(\".time-zone\"));\n                if ($(\".js-global-modal\").find(\".js-send-time-zone-data\").val() !== \"\" && $(\".js-global-modal\").find(\".js-send-time-zone-data\").val() !== undefined) {\n                    $(\".js-send-time-zone\").val($(\".js-send-time-zone-data\").val());\n                }\n                if ($(\".js-global-modal\").find(\".js-seed-send-time-zone-data\").val() !== \"\" && $(\".js-global-modal\").find(\".js-seed-send-time-zone-data\").val() !== undefined) {\n                    $(\".js-global-modal\").find(\".js-seed-send-time-zone\").val($(\".js-seed-send-time-zone-data\").val());\n                }\n                if ($(\".js-global-modal\").find(\"#send-date-full\").val() !== \"\") {\n                    SetModifiedDatesForCustomization($(\".js-global-modal\").find('#send-date-full').val(), $(\".js-global-modal\").find(\".js-schedule-send-config\").find(\".js-send-time-zone\").val(), $(\".js-global-modal\").find('#send-time'), $(\".js-global-modal\").find('#send-date-picker'), $(\".js-global-modal\").find('#send-date'));\n                }\n                if ($(\".js-global-modal\").find(\"#seed-send-date-full\").val() !== \"\" && $(\".js-global-modal\").find(\"#seed-send-date-full\").val() !== undefined) {\n                    SetModifiedDatesForCustomization($(\".js-global-modal\").find('#seed-send-date-full').val(), $(\".js-global-modal\").find(\".js-schedule-seed-send-config\").find(\".js-seed-send-time-zone\").val(), $(\".js-global-modal\").find('#seed-send-time'), $(\".js-global-modal\").find('#seed-send-date-picker'), $(\".js-global-modal\").find('#seed-send-date'));\n                }\n                var sendDateEl = $(\".js-global-modal\").find('#send-date-picker').get(0);\n                var sendDateTimeEl = $(\".js-global-modal\").find('#send-time-picker').get(0);\n                var seedSendDateEl = $(\".js-global-modal\").find('#seed-send-date-picker').get(0);\n                var seedSendDateTimeEl = $(\".js-global-modal\").find('#seed-send-time-picker').get(0);\n                ConfigureDatePicker($(\".js-global-modal\").find('#send-date-picker'));\n                ConfigureDatePicker($(\".js-global-modal\").find('#seed-send-date-picker'));\n                ConfigureTimePicker($(\".js-global-modal\").find('#send-time-picker'));\n                ConfigureTimePicker($(\".js-global-modal\").find('#seed-send-time-picker'));\n                //InitializeDatePickerForOrder(sendDateEl, sendDateTimeEl, seedSendDateEl, seedSendDateTimeEl);\n                $(\".js-global-modal\").find(\".js-change-campaign-dates\").attr(\"data-order-line-item-detail-id\", lineItemDetailId);\n                $(\".js-global-modal\").find(\".js-change-campaign-dates\").on(\"click\", function (e) {\n                    var errorMessage = \"\";\n                    var recipientSendDateRequired = $(e.currentTarget).attr(\"data-recipient-send-date-required\");\n                    var seedSendDateRequired = $(e.currentTarget).attr(\"data-seed-send-date-required\");\n                    var recipientSendTimeRequired = $(e.currentTarget).attr(\"data-recipient-send-time-required\");\n                    var seedSendTimeRequired = $(e.currentTarget).attr(\"data-seed-send-time-required\");\n                    var recipientSendDateGreaterThanToday = $(e.currentTarget).attr(\"data-recipient-send-date-greater-than-today\");\n                    var seedSendDateGreaterThanToday = $(e.currentTarget).attr(\"data-seed-send-date-greater-than-today\");\n                    var timeZone = $(\".js-global-modal\").find(\".js-schedule-send-config\").find(\".js-send-time-zone\").val();\n                    var seedTimeZone = $(\".js-global-modal\").find(\".js-schedule-seed-send-config\").find(\".js-seed-send-time-zone\").val();\n                    var seedSendDateGreaterThanSendDate = $(e.currentTarget).attr(\"data-seed-send-date-greater-than-send-date\");\n                    if ($(\".js-global-modal\").find(\".js-schedule-send-config\").find(\"#send-date\").val() === \"\") {\n                        errorMessage += recipientSendDateRequired + \"<br/>\";\n                    }\n                    if ($(\".js-global-modal\").find(\".js-schedule-send-config\").find(\"#send-time\").val() === \"\") {\n                        errorMessage += recipientSendTimeRequired + \"<br/>\";\n                    }\n                    if ($(\".js-global-modal\").find(\".js-schedule-seed-send-config\").length > 0) {\n                        if ($(\".js-global-modal\").find(\".js-schedule-seed-send-config\").find(\"#seed-send-date\").val() === \"\") {\n                            errorMessage += seedSendDateRequired + \"<br/>\";\n                        }\n                        if ($(\".js-global-modal\").find(\".js-schedule-seed-send-config\").find(\"#seed-send-time\").val() === \"\") {\n                            errorMessage += seedSendTimeRequired + \"<br/>\";\n                        }\n                    }\n                    if (errorMessage === \"\") {\n                        var sendDateString = $(\".js-global-modal\").find('#send-date').val() +\n                            \" \" +\n                            $(\".js-global-modal\").find('#send-time').val();\n                        var currentDate = new Date().toISOString();\n                        var startDate = GetISODate(dayjs(sendDateString), timeZone, \"MM/DD/YYYY hh:mm:s a\");\n                        if (startDate < currentDate) {\n                            errorMessage += recipientSendDateGreaterThanToday + \"<br/>\";\n                        }\n                        var seedDateString = null;\n                        var seedStartDate = null;\n                        if ($(\".js-global-modal\").find(\".js-schedule-seed-send-config\").length > 0) {\n                            if ($(\".js-global-modal\").find('#seed-send-date').val() != \"\") {\n                                seedDateString = $(\".js-global-modal\").find('#seed-send-date').val() +\n                                    \" \" +\n                                    $(\".js-global-modal\").find('#seed-send-time').val();\n                                var seedStartDate = GetISODate(dayjs(seedDateString), seedTimeZone, \"MM/DD/YYYY hh:mm:s a\");\n                                if (seedStartDate < currentDate) {\n                                    errorMessage += seedSendDateGreaterThanToday + \"<br/>\";\n                                }\n                                if (seedStartDate > startDate) {\n                                    errorMessage += seedSendDateGreaterThanSendDate + \"<br/>\";\n                                }\n                            }\n                        }\n                        if (errorMessage === \"\") {\n                            if (seedDateString == null) {\n                                seedTimeZone = null;\n                            }\n                            var campaignDatesDtO = {\n                                \"orderLineItemDetailId\": lineItemDetailId,\n                                \"sendDate\": startDate,\n                                \"sendTimeZone\": timeZone,\n                                \"seedSendDate\": seedStartDate,\n                                \"seedSendTimeZone\": seedTimeZone\n                            };\n                            var url = \"/EmailCampaign/UpdateCampaignOrderLineItemDetail\" + \"/\" + lineItemDetailId;\n                            $.when(globalThis.gage.submitAjaxRequest(campaignDatesDtO, url, \"PUT\")\n                                .done(function (data, textStatus, request) {\n                                globalModal.closeGlobalModal();\n                                var url = \"/EmailCampaign/GetParticipantOrderDetailForDisplay\" + \"/\" + lineItemDetailId + \"/\" + suppressViewLink;\n                                $.when(globalThis.gage.submitAjaxRequest(null, url, \"GET\")\n                                    .done(function (data, status, request) {\n                                    $(refreshContainer).html(data);\n                                    $(refreshContainer).find(\".js-modify-campaign\").on('click', function (e) {\n                                        var button = $(e.currentTarget);\n                                        me.modifyCampaignDates(button);\n                                    });\n                                    $(refreshContainer).find(\".js-download-action\").on('click', function (e) {\n                                        var button = $(e.currentTarget);\n                                        me.download(button);\n                                    });\n                                    $(refreshContainer).find(\".js-remove-campaign\").on('click', function (e) {\n                                        var button = $(e.currentTarget);\n                                        me.openCancelCampaignMessage(button);\n                                    });\n                                    me.bindLocalizedTime();\n                                })\n                                    .fail(function (response, textStatus, errorThrown) {\n                                    alert(errorThrown);\n                                }));\n                            })\n                                .fail(function (response, textStatus, errorThrown) {\n                                bootbox.alert(response.responseJSON.errorMessage);\n                                return false;\n                            }));\n                        }\n                        else {\n                            bootbox.alert(errorMessage);\n                            return false;\n                        }\n                    }\n                    else {\n                        bootbox.alert(errorMessage);\n                        return false;\n                    }\n                });\n            }\n            else {\n            }\n        });\n    }\n    modifyMicrositeDates(button) {\n        var me = this;\n        var lineItemDetailId = $(button).attr(\"data-order-line-item-detail-id\");\n        var suppressViewLink = $(button).attr(\"data-suppress-view-link\") == \"False\" ? false : true;\n        $.ajax({\n            method: \"GET\",\n            url: \"/Microsite/GetParticipantOrderDetail/\" + lineItemDetailId\n        }).done(function (data, textStatus, request) {\n            if (data) {\n                var globalModal = new GlobalModal(lineItemDetailId);\n                var html = data;\n                globalModal.openGlobalModal(html, \"panel\", { origin: $(this), classes: 'configure-launch-modal' });\n                var refreshContainer = $(button).closest(\".js-order-detail-row\");\n                GlobalPopulateTimeZones($(\".js-global-modal\").find(\".time-zone\"));\n                if ($(\".js-global-modal\").find(\".js-launch-time-zone-data\").val() !== \"\" && $(\".js-global-modal\").find(\".js-launch-time-zone-data\").val() !== undefined) {\n                    $(\".js-launch-time-zone\").val($(\".js-launch-time-zone-data\").val());\n                }\n                if ($(\".js-global-modal\").find(\".js-archive-time-zone-data\").val() !== \"\" && $(\".js-global-modal\").find(\".js-archive-time-zone-data\").val() !== undefined) {\n                    $(\".js-global-modal\").find(\".js-archive-time-zone\").val($(\".js-archive-time-zone-data\").val());\n                }\n                if ($(\".js-global-modal\").find(\"#launch-date-full\").val() !== \"\") {\n                    SetModifiedDatesForCustomization($(\".js-global-modal\").find('#launch-date-full').val(), $(\".js-global-modal\").find(\".js-schedule-launch-config\").find(\".js-launch-time-zone\").val(), $(\".js-global-modal\").find('#launch-time'), $(\".js-global-modal\").find('#launch-date-picker'), $(\".js-global-modal\").find(\"#launch-date\"));\n                }\n                if ($(\".js-global-modal\").find(\"#archive-date-full\").val() !== \"\" && $(\".js-global-modal\").find(\"#archive-date-full\").val() !== undefined) {\n                    SetModifiedDatesForCustomization($(\".js-global-modal\").find('#archive-date-full').val(), $(\".js-global-modal\").find(\".js-schedule-archive-config\").find(\".js-archive-time-zone\").val(), $(\".js-global-modal\").find('#archive-time'), $(\".js-global-modal\").find('#archive-date-picker'), $(\".js-global-modal\").find(\"#archive-date\"));\n                }\n                var launchDateEl = $(\".js-global-modal\").find('#launch-date-picker').get(0);\n                var archiveDateEl = $(\".js-global-modal\").find('#archive-date-picker').get(0);\n                var launchTimeEl = $(\".js-global-modal\").find('#launch-time-picker').get(0);\n                var archiveTimeEl = $(\".js-global-modal\").find('#archive-time-picker').get(0);\n                ConfigureDatePicker($(\".js-global-modal\").find('#launch-date-picker'));\n                ConfigureDatePicker($(\".js-global-modal\").find('#archive-date-picker'));\n                ConfigureTimePicker($(\".js-global-modal\").find('#launch-time-picker'));\n                ConfigureTimePicker($(\".js-global-modal\").find('#archive-time-picker'));\n                //InitializeDatePickerForOrder(launchDateEl, launchTimeEl, archiveDateEl, archiveTimeEl);\n                // me.bindLocalizedTime();\n                $(\".js-global-modal\").find(\".js-change-microsite-dates\").attr(\"data-order-line-item-detail-id\", lineItemDetailId);\n                $(\".js-global-modal\").find(\".js-change-microsite-dates\").on(\"click\", function (e) {\n                    var errorMessage = \"\";\n                    var launchDateRequired = $(e.currentTarget).attr(\"data-launch-date-required\");\n                    var archiveDateRequired = $(e.currentTarget).attr(\"data-archive-date-required\");\n                    var launchTimeRequired = $(e.currentTarget).attr(\"data-launch-time-required\");\n                    var archiveTimeRequired = $(e.currentTarget).attr(\"data-archive-time-required\");\n                    var timeZone = $(\".js-global-modal\").find(\".js-schedule-launch-config\").find(\".js-launch-time-zone\").val();\n                    var archiveTimeZone = $(\".js-global-modal\").find(\".js-schedule-archive-config\").find(\".js-archive-time-zone\").val();\n                    if ($(\".js-global-modal\").find(\".js-schedule-launch-config\").find(\"#launch-date\").val() === \"\") {\n                        errorMessage += launchDateRequired + \"<br/>\";\n                    }\n                    if ($(\".js-global-modal\").find(\".js-schedule-launch-config\").find(\"#launch-time\").val() === \"\") {\n                        errorMessage += launchTimeRequired + \"<br/>\";\n                    }\n                    if (errorMessage === \"\") {\n                        var launchDateString = $(\".js-global-modal\").find('#launch-date').val() +\n                            \" \" +\n                            $(\".js-global-modal\").find('#launch-time').val();\n                        var launchDate = GetISODate(dayjs(launchDateString), timeZone, \"MM/DD/YYYY hh:mm:s a\");\n                        var archiveDateString = null;\n                        var archiveDate = null;\n                        if ($(\".js-global-modal\").find(\".js-schedule-archive-config\").length > 0) {\n                            if ($(\".js-global-modal\").find('#archive-date').val() != \"\") {\n                                archiveDateString =\n                                    $(\".js-global-modal\").find('#archive-date').val() +\n                                        \" \" +\n                                        $(\".js-global-modal\").find('#archive-time').val();\n                                archiveDate = GetISODate(dayjs(archiveDateString), archiveTimeZone, \"MM/DD/YYYY hh:mm:s a\");\n                            }\n                        }\n                        if (errorMessage === \"\") {\n                            if (archiveDateString == null) {\n                                archiveTimeZone = null;\n                            }\n                            var micrositeDatesDtO = {\n                                \"orderLineItemDetailId\": lineItemDetailId,\n                                \"launchDate\": launchDate,\n                                \"launchTimeZone\": timeZone,\n                                \"archiveDate\": archiveDate,\n                                \"archiveTimeZone\": archiveTimeZone\n                            };\n                            var url = \"/Microsite/UpdateMicrositeOrderLineItemDetail\" + \"/\" + lineItemDetailId;\n                            $.when(globalThis.gage.submitAjaxRequest(micrositeDatesDtO, url, \"PUT\")\n                                .done(function (data, textStatus, request) {\n                                globalModal.closeGlobalModal();\n                                var url = \"/Microsite/GetParticipantOrderDetailForDisplay\" + \"/\" + lineItemDetailId + \"/\" + suppressViewLink;\n                                $.when(globalThis.gage.submitAjaxRequest(null, url, \"GET\")\n                                    .done(function (data, status, request) {\n                                    $(refreshContainer).html(data);\n                                    $(refreshContainer).find(\".js-modify-microsite\").on('click', function (e) {\n                                        var button = $(e.currentTarget);\n                                        me.modifyMicrositeDates(button);\n                                    });\n                                    $(refreshContainer).find(\".js-remove-microsite\").on('click', function (e) {\n                                        var button = $(e.currentTarget);\n                                        me.openCancelMicrositeMessage(button);\n                                    });\n                                    me.bindLocalizedTime();\n                                })\n                                    .fail(function (response, textStatus, errorThrown) {\n                                    alert(errorThrown);\n                                }));\n                            })\n                                .fail(function (response, textStatus, errorThrown) {\n                                bootbox.alert(response.responseJSON.errorMessage);\n                                return false;\n                            }));\n                        }\n                        else {\n                            bootbox.alert(errorMessage);\n                            return false;\n                        }\n                    }\n                    else {\n                        bootbox.alert(errorMessage);\n                        return false;\n                    }\n                });\n            }\n            else {\n            }\n        });\n    }\n    modifySocialPostDates(button) {\n        var me = this;\n        var lineItemDetailId = $(button).attr(\"data-order-line-item-detail-id\");\n        $.ajax({\n            method: \"GET\",\n            url: \"/SocialPost/GetParticipantOrderDetail/\" + lineItemDetailId\n        }).done(function (data, textStatus, request) {\n            if (data) {\n                var globalModal = new GlobalModal(lineItemDetailId);\n                var html = data;\n                globalModal.openGlobalModal(html, \"panel\", { origin: $(this), classes: 'configure-launch-modal' });\n                var refreshContainer = $(button).closest(\".js-order-detail-row\");\n                $(\".js-global-modal\").find(\"#launch-data-picker-full\").datetimepicker();\n                me.populateTimeZonesOnly($(\".js-global-modal\").find(\".time-zone\"));\n                $(\".js-global-modal\").find('#launch-time-picker').datetimepicker({\n                    format: 'LT'\n                });\n                $(\".js-global-modal\").find('#launch-date-picker').datetimepicker({\n                    useCurrent: false,\n                    format: 'MM/DD/YYYY'\n                });\n                if ($(\".js-global-modal\").find(\".js-launch-time-zone-data\").val() !== \"\" && $(\".js-global-modal\").find(\".js-launch-time-zone-data\").val() !== undefined) {\n                    $(\".js-launch-time-zone\").val($(\".js-launch-time-zone-data\").val());\n                }\n                if ($(\".js-global-modal\").find(\"#launch-date-full\").val() !== \"\") {\n                    const setTime = dayjs.utc($(\".js-global-modal\").find('#launch-date-full').val()).tz($(\".js-global-modal\").find(\".js-schedule-launch-config\").find(\".js-launch-time-zone\").val()).format(\"hh:mm A\");\n                    $(\".js-global-modal\").find('#launch-time-picker').data(\"DateTimePicker\").date(setTime);\n                    var localDate = dayjs.utc($(\".js-global-modal\").find('#launch-date-full').val())\n                        .tz($(\".js-global-modal\").find(\".js-schedule-launch-config\").find(\".js-launch-time-zone\").val()).local()\n                        .format('MM/DD/YYYY');\n                    $(\".js-global-modal\").find('#launch-date').val(localDate);\n                    $(\".js-global-modal\").find(\"#launch-date\").attr(\"value\", (localDate + \" \" + setTime));\n                    $(\".js-global-modal\").find('#launch-date-picker').data(\"DateTimePicker\").date($(\".js-global-modal\").find(\"#launch-date\").attr(\"value\"));\n                }\n                // me.bindLocalizedTime();\n                $(\".js-global-modal\").find(\".js-change-social-post-dates\").attr(\"data-order-line-item-detail-id\", lineItemDetailId);\n                $(\".js-global-modal\").find(\".js-change-social-post-dates\").on(\"click\", function (e) {\n                    var errorMessage = \"\";\n                    var launchDateRequired = $(e.currentTarget).attr(\"data-launch-date-required\");\n                    var launchTimeRequired = $(e.currentTarget).attr(\"data-launch-time-required\");\n                    var timeZone = $(\".js-global-modal\").find(\".js-schedule-launch-config\").find(\".js-launch-time-zone\").val();\n                    if ($(\".js-global-modal\").find(\".js-schedule-launch-config\").find(\"#launch-date\").val() === \"\") {\n                        errorMessage += launchDateRequired + \"<br/>\";\n                    }\n                    if ($(\".js-global-modal\").find(\".js-schedule-launch-config\").find(\"#launch-time\").val() === \"\") {\n                        errorMessage += launchTimeRequired + \"<br/>\";\n                    }\n                    if (errorMessage === \"\") {\n                        var launchDateString = $(\".js-global-modal\").find('#launch-date-picker').data(\"DateTimePicker\").date()\n                            .format(\"YYYY-MM-DD\") +\n                            \" \" +\n                            $(\".js-global-modal\").find('#launch-time-picker').data(\"DateTimePicker\").date()\n                                .format(\"HH:mm:ss\");\n                        var timeZoneDate = dayjs.tz(launchDateString, timeZone);\n                        var launchDate = timeZoneDate.utc().format();\n                        if (errorMessage === \"\") {\n                            var socialPostDatesDtO = {\n                                \"orderLineItemDetailId\": lineItemDetailId,\n                                \"launchDate\": launchDate,\n                                \"launchTimeZone\": timeZone,\n                            };\n                            var url = \"/SocialPost/UpdateMicrositeOrderLineItemDetail\" + \"/\" + lineItemDetailId;\n                            $.when(globalThis.gage.submitAjaxRequest(socialPostDatesDtO, url, \"PUT\")\n                                .done(function (data, textStatus, request) {\n                                globalModal.closeGlobalModal();\n                                var url = \"/SocialPost/GetParticipantOrderDetailForDisplay\" + \"/\" + lineItemDetailId;\n                                $.when(globalThis.gage.submitAjaxRequest(null, url, \"GET\")\n                                    .done(function (data, status, request) {\n                                    $(refreshContainer).html(data);\n                                    $(refreshContainer).find(\".js-modify-social-post\").on('click', function (e) {\n                                        var button = $(e.currentTarget);\n                                        me.modifySocialPostDates(button);\n                                    });\n                                    $(refreshContainer).find(\".js-remove-social-post\").on('click', function (e) {\n                                        var button = $(e.currentTarget);\n                                        me.openCancelSocialPostMessage(button);\n                                    });\n                                    me.bindLocalizedTime();\n                                })\n                                    .fail(function (response, textStatus, errorThrown) {\n                                    alert(errorThrown);\n                                }));\n                            })\n                                .fail(function (response, textStatus, errorThrown) {\n                                bootbox.alert(response.responseJSON.errorMessage);\n                                return false;\n                            }));\n                        }\n                        else {\n                            bootbox.alert(errorMessage);\n                            return false;\n                        }\n                    }\n                    else {\n                        bootbox.alert(errorMessage);\n                        return false;\n                    }\n                });\n            }\n            else {\n            }\n        });\n    }\n    populateTimeZonesOnly(el) {\n        var timeZones = Intl.supportedValuesOf(\"timeZone\");\n        $(el).append(\"<option value='UTC'>UTC</option>\");\n        $.each(timeZones, function (i, v) {\n            $(el).append(\"<option value='\" + v + \"'>\" + v + \"</option>\");\n        });\n        // Set default time zone based on their location\n        $(el).find(\"option[value='\" + dayjs.tz.guess() + \"']\").attr('selected', \"true\");\n    }\n    populateTimeZones(el) {\n        var timeZones = Intl.supportedValuesOf(\"timeZone\");\n        $(el).append(\"<option value='UTC'>UTC</option>\");\n        $.each(timeZones, function (i, v) {\n            $(el).append(\"<option value='\" + v + \"'>\" + v + \"</option>\");\n        });\n        // Set default time zone based on their location\n        $(el).find(\"option[value='\" + dayjs.tz.guess() + \"']\").attr('selected', \"true\");\n    }\n    bindLocalizedTime() {\n        var me = this;\n        $.each($(me._widget).find(\".localized-time-email-configuration\"), function (i, e) {\n            const localDate = $(e).text();\n            $(e).html(DisplayDateInLocalFormat(localDate, \"MM/DD/YYYY\") + \"  <div><small>\" + DisplayDateInLocalFormat(localDate, \"hh:mm a\") + \"</small></div>\");\n        });\n        $.each($(me._widget).find(\".localized-time-microsite-launch-date-configuration\"), function (i, e) {\n            const localDate = $(e).text();\n            $(e).html(DisplayDateInLocalFormat(localDate, \"MM/DD/YYYY\") + \" <div><small>\" + DisplayDateInLocalFormat(localDate, \"hh:mm a\") + \"</small></div>\");\n        });\n        $.each($(me._widget).find(\".localized-time-microsite-archive-date-configuration\"), function (i, e) {\n            const localDate = $(e).text();\n            $(e).html(DisplayDateInLocalFormat(localDate, \"MM/DD/YYYY\") + \" <div><small>\" + DisplayDateInLocalFormat(localDate, \"hh:mm a\") + \"</small></div>\");\n        });\n    }\n    showDetail(expand) {\n        var me = this;\n        var widgetContainer = $('.widget-myproject-list');\n        var parentContainer = $(expand).parent().closest('tr').next('tr');\n        var detailContainer = $(parentContainer).find(\".detail-\" + $(expand).data(\"identifier\"));\n        var icon = $(expand).find('span');\n        if ($(icon).hasClass('fa-chevron-down')) {\n            if ($(detailContainer).hasClass(\"js-data-loaded\")) {\n                $(parentContainer).removeClass('hide');\n                $(icon).toggleClass('fa-chevron-down fa-chevron-up');\n                if ($(detailContainer).find(\".js-check-status\").length > 0) {\n                    var statusButton = $(detailContainer).find(\".js-check-status\");\n                    me.checkCompositionFileStatus(statusButton, true);\n                }\n                if ($(detailContainer).find(\".js-post-social-network-action\").length > 0) {\n                    $(detailContainer).find(\".js-post-social-network-action\").on('click', function () {\n                        var expand = this;\n                        me.openFaceBookPost(expand);\n                    });\n                }\n                if ($(detailContainer).find(\".js-facebook-reset-permission\").length > 0) {\n                    $(detailContainer).find(\".js-facebook-reset-permission\").on('click', function () {\n                        var expand = this;\n                        me.resetFaceBookPermissions(expand);\n                    });\n                }\n            }\n            else {\n                $(widgetContainer).find('.js-vieworderdetail').attr('disabled', 'true');\n                var identifier = $(expand).data(\"identifier\");\n                var source = \"order\";\n                var suppressViewLink = $(widgetContainer).find('.dataTable').attr(\"suppress-view-link\");\n                $.when(me.getOrderDetail(identifier, source, suppressViewLink).done(function (data, textStatus, response) {\n                    $(parentContainer).removeClass('hide');\n                    $(parentContainer).slideDown(1000);\n                    detailContainer.html($(this).data(\"identifier\"));\n                    detailContainer.addClass(\"js-data-loaded\");\n                    $(icon).toggleClass('fa-chevron-down fa-chevron-up');\n                    detailContainer.html(data);\n                    $(widgetContainer).find('.js-vieworderdetail').removeAttr('disabled');\n                    $(widgetContainer).find(\".js-download-action\").on('click', function () {\n                        var expand = this;\n                        me.download(expand);\n                    });\n                    if ($(detailContainer).find(\".js-check-status\").length > 0) {\n                        var statusButton = $(detailContainer).find(\".js-check-status\");\n                        //me.checkCompositionFileStatus(statusButton, true);\n                        $(detailContainer).find(\".js-check-status\").on('click', function () {\n                            var expand = this;\n                            me.checkCompositionFileStatus(expand, true);\n                        });\n                    }\n                    if ($(detailContainer).find(\".js-post-social-network-action\").length > 0) {\n                        $(detailContainer).find(\".js-post-social-network-action\").on('click', function () {\n                            var expand = this;\n                            me.openFaceBookPost(expand);\n                        });\n                    }\n                    if ($(detailContainer).find(\".js-resubmit-order-item\").length > 0) {\n                        $(detailContainer).find(\".js-resubmit-order-item\").on('click', function () {\n                            var expand = this;\n                            me.resubmitOrderItem(expand, false);\n                        });\n                    }\n                    if ($(detailContainer).find(\".js-order-send-email\").length > 0) {\n                        $(detailContainer).find(\".js-order-send-email\").on(\"click\", function (e) {\n                            e.preventDefault();\n                            var button = $(e.currentTarget);\n                            bootbox.prompt({\n                                title: $(button).attr(\"data-email-address-header\"),\n                                inputType: 'email',\n                                value: $(button).attr(\"data-email-address\"),\n                                callback: function (result) {\n                                    if (result != null) {\n                                        $(button).attr(\"data-email-address\", result);\n                                        me.SendCompositionEmail(button);\n                                    }\n                                }\n                            });\n                        });\n                    }\n                    me.bindLocalizedTime();\n                    if ($(detailContainer).find(\".js-modify-campaign\").length > 0) {\n                        $(detailContainer).find(\".js-modify-campaign\").on('click', function (e) {\n                            var button = $(e.currentTarget);\n                            me.modifyCampaignDates(button);\n                        });\n                    }\n                    if ($(detailContainer).find(\".js-remove-campaign\").length > 0) {\n                        $(detailContainer).find(\".js-remove-campaign\").on('click', function (e) {\n                            var button = $(e.currentTarget);\n                            me.openCancelCampaignMessage(button);\n                        });\n                    }\n                    if ($(detailContainer).find(\".js-microsite-activity-list\").length > 0) {\n                        $(detailContainer).find(\".js-microsite-activity-list\").on('click', function (e) {\n                            var button = $(e.currentTarget);\n                            me.openMicrositeActivityList(button);\n                        });\n                    }\n                    $(detailContainer).find(\".js-direct-mail-list-recipients\").on('click', function (e) {\n                        var button = $(e.currentTarget);\n                        me.openDirectMailListRecipients(button);\n                    });\n                    $(detailContainer).find(\".js-email-uploaded-list-recipients\").on('click', function (e) {\n                        var button = $(e.currentTarget);\n                        me.openEmailUploadedListRecipients(button);\n                    });\n                    $(detailContainer).find(\".js-microsite-list-recipients\").on('click', function (e) {\n                        var button = $(e.currentTarget);\n                        me.openMicrositeListRecipients(button);\n                    });\n                    if ($(detailContainer).find(\".js-contact-activity-list\").length > 0) {\n                        $(detailContainer).find(\".js-contact-activity-list\").on('click', function (e) {\n                            var button = $(e.currentTarget);\n                            me.openContactActivityList(button);\n                        });\n                    }\n                    if ($(detailContainer).find(\".js-modify-microsite\").length > 0) {\n                        $(detailContainer).find(\".js-modify-microsite\").on('click', function (e) {\n                            var button = $(e.currentTarget);\n                            me.modifyMicrositeDates(button);\n                        });\n                    }\n                    if ($(detailContainer).find(\".js-modify-social-post\").length > 0) {\n                        $(detailContainer).find(\".js-modify-social-post\").on('click', function (e) {\n                            var button = $(e.currentTarget);\n                            me.modifySocialPostDates(button);\n                        });\n                    }\n                    if ($(detailContainer).find(\".js-remove-microsite\").length > 0) {\n                        $(detailContainer).find(\".js-remove-microsite\").on('click', function (e) {\n                            var button = $(e.currentTarget);\n                            me.openCancelMicrositeMessage(button);\n                        });\n                    }\n                    if ($(detailContainer).find(\".js-remove-social-post\").length > 0) {\n                        $(detailContainer).find(\".js-remove-social-post\").on('click', function (e) {\n                            var button = $(e.currentTarget);\n                            me.openCancelSocialPostMessage(button);\n                        });\n                    }\n                }));\n            }\n        }\n        else {\n            $(parentContainer).addClass('hide');\n            $(icon).toggleClass('fa-chevron-down fa-chevron-up');\n        }\n    }\n    getOrderDetail(identifier, source, suppressViewLink) {\n        var params = {\n            \"source\": source,\n            \"identifier\": identifier,\n            \"suppressViewLink\": suppressViewLink\n        };\n        return $.ajax({\n            data: params,\n            method: \"GET\",\n            url: '/Api/AccountTransaction/GetTransactionDetail'\n        });\n    }\n    setPager() {\n        var me = this;\n        var defaultOpts = {};\n        if (me._totalPages !== 0) {\n            $(me._widget).find('#myproject-list-pagination').html('');\n            $(me._widget).find('#myproject-list-pagination').html('<ul id=\"pagination\" class=\"pagination-sm\"></ul>');\n            $(me._widget).find('#myproject-list-pagination').find('#pagination').twbsPagination({\n                initiateStartPageClick: false,\n                totalPages: me._totalPages,\n                startPage: (me._pageIndex === 0 ? 1 : (me._pageIndex + 1)),\n                onPageClick: function (event, page) {\n                    me._pageIndex = (page - 1);\n                    me.loadData(false);\n                }\n            });\n        }\n        else {\n            $(me._widget).find('#myproject-list-pagination').html('');\n        }\n    }\n    loadData(filterClose) {\n        var me = this;\n        var params = me.buildParams(me._widgetId);\n        var url = '/Content/RenderOrderList/' + me._widgetId.toString();\n        $.when(submitAjaxRequest(params, url, \"POST\")\n            .done(function (data, textStatus, request) {\n            me._pageIndex = parseInt(request.getResponseHeader(\"X-PageIndex\"));\n            me._totalPages = parseFloat(request.getResponseHeader(\"X-TotalPages\"));\n            $(me._widget).find(\"#list-items\").html(data);\n            me.showPager();\n            if (filterClose) {\n                $(\"#ajax-loading\").modal(\"hide\");\n                $(me._widget).find(\".filter-close\").click();\n            }\n            $(me._widget).find(\".js-vieworderdetail\").on('click', function (e) {\n                me.showDetail($(e.currentTarget));\n            });\n            $(me._widget).find(\".js-delete-order\").on('click', function (e) {\n                me.delete($(e.currentTarget));\n            });\n        }));\n    }\n    ShowHideFilter(el) {\n        var me = this;\n        var list = $(el).parent(\".widget-myprojectlist\").attr(\"id\");\n        var filterType = $(el).attr(\"data-filtertype\");\n        var $dropdown = $(me._widget).find(\"div[id='\" + list + \"'] .filter-drop-down[data-filtertype='\" + filterType + \"']\");\n        var $indicator = $(me._widget).find(\".filter-indicator\");\n        var dropdownIsClosed = $dropdown.hasClass(\"hide\");\n        $(me._widget).find(\".filter-drop-down\").addClass(\"hide\");\n        $(me._widget).find(\".filter-indicator\").removeClass(\"fa-caret-up\").addClass(\"fa-caret-down\");\n        if (dropdownIsClosed) {\n            $dropdown.removeClass(\"hide\");\n            $indicator.removeClass(\"fa-caret-down\").addClass(\"fa-caret-up\");\n        }\n    }\n    selectDeselectFacet(el) {\n        var me = this;\n        if ($(el).hasClass(\"disabled\")) {\n            return;\n        }\n        var $facetIndicator = $(el).find(\".filter-facet-indicator\");\n        var $accountTransactionList = $(el).closest(\".accounttransaction-list\");\n        $facetIndicator.toggleClass(\"fa-check\");\n        var contentWidgetID = me._widgetId;\n        if ($facetIndicator.hasClass(\"fa-check\")) {\n            $facetIndicator.removeClass(\"hidden\");\n            $(me._widget).find(\"#widget-myprojectlist-appliedfilters-\" + contentWidgetID).append(\"<button class='pull-left btn btn-color1 myproject-list-remove-filter' data-filter-type='\" + $(el).attr(\"data-filter-type\") + \"' data-filter-id='\" + $(el).attr(\"data-filter-id\") + \"'><span class='fa-solid fa-check'></span> \" + $(el).attr(\"data-name\") + \" | <span class='remove'>x</span></button>\");\n            $(me._widget).find(\".myproject-list-remove-filter\").off(\"click\");\n            $(me._widget).find(\".myproject-list-remove-filter\").on(\"click\", function () {\n                var filterID = parseInt($(this).attr(\"data-filter-id\"));\n                var filterType = $(this).attr(\"data-filter-type\");\n                me.selectDeselectFacet($(\"button.filter-facet[data-filter-type='\" + filterType + \"'][data-filter-id='\" + filterID + \"']\"));\n            });\n        }\n        else {\n            $facetIndicator.addClass(\"hidden\");\n            $(me._widget).find(\"#widget-myprojectlist-appliedfilters-\" + contentWidgetID).find(\"button[data-filter-type='\" + $(el).attr(\"data-filter-type\") + \"'][data-filter-id='\" + $(el).attr(\"data-filter-id\") + \"']\").remove();\n        }\n        me.UpdateFilter(contentWidgetID);\n    }\n    applyFilter(el) {\n        var me = this;\n        this.UpdateFilter(me._widgetId);\n    }\n    UpdateFilter(contentWidgetID) {\n        var me = this;\n        $('#ajax-loading').modal();\n        me._sortBy = \"datecreated\";\n        me._pageIndex = 0;\n        me._sortAscending = \"false\";\n        me.loadData(true);\n    }\n    showPager() {\n        var me = this;\n        if (me._totalPages > 0) {\n            if (me._totalPages < 1) {\n                me._totalPages = 0;\n            }\n            else {\n                me._totalPages = Math.ceil(me._totalPages);\n            }\n            me.setPager();\n        }\n    }\n    buildParams(contentWidgetId) {\n        var $statustypeFilter = $(\"div[data-contentwidgetid='\" + contentWidgetId + \"'] div.filter-drop-down[data-filtertype='StatusTypes']\");\n        var arrayTypes = new Array;\n        $statustypeFilter.find(\"span.fa-check\").each(function (i, e) {\n            arrayTypes.push(parseInt($(e).attr(\"data-id\")));\n        });\n        var statusTypes = arrayTypes.join(\",\");\n        var params = {\n            Take: this._take,\n            PageIndex: this._pageIndex,\n            SortBy: this._sortBy,\n            SortAscending: this._sortAscending,\n            Skip: 0,\n            StatusTypes: statusTypes\n        };\n        return params;\n    }\n}\n;\n$(document).ready(function () {\n    $(\".widget-myproject-list\").each(function (index, item) {\n        $(item).data(\"manager\", new MyProject(item));\n    });\n});\n/// <reference path=\"../lib/jquery.d.ts\" />\n/// <reference path=\"../lib/gage.d.ts\" />\n/// <reference path=\"../lib/helper.admin.d.ts\" />\n/// <reference path=\"../lib/helper.timezones.d.ts\" />\n/// <reference path=\"../lib/helper.orders.d.ts\" />\nvar emailRegex = /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\nclass OrderDetail {\n    constructor(widget) {\n        this._widget = widget;\n        this.initialize();\n    }\n    initialize() {\n        this.bindControls();\n    }\n    bindControls() {\n        var me = this;\n        window.setTimeout(function () {\n            $(me._widget).find(\".orderdetail-item-row\").each(function (i, obj) {\n                if ($(obj).find(\".js-check-status\").length > 0) {\n                    var statusButton = $(obj).find(\".js-check-status\");\n                    if ($(statusButton).attr(\"data-product-type-id\") !== \"10\") {\n                        me.checkCompositionFileStatus(statusButton, false);\n                    }\n                }\n            });\n        }, 150000);\n        $(me._widget).find(\".js-download-pdf\").on(\"click\", function (e) {\n            me.downloadPdf($(e.currentTarget));\n        });\n        $(me._widget).find(\".js-send-list-based-email\").on(\"click\", function (e) {\n            me.sendListBasedEmail(e);\n        });\n        $(me._widget).find(\".orderdetail-item-row\").each(function (i, obj) {\n            if ($(obj).find(\".js-check-status\").length > 0) {\n                var statusButton = $(obj).find(\".js-check-status\");\n                if ($(statusButton).attr(\"data-product-type-id\") !== \"10\") {\n                    me.checkCompositionFileStatus(statusButton, false);\n                }\n            }\n        });\n        $(me._widget).find(\".js-order-send-email\").on(\"click\", function (e) {\n            e.preventDefault();\n            var button = $(e.currentTarget);\n            bootbox.prompt({\n                title: $(button).attr(\"data-email-address-header\"),\n                inputType: 'email',\n                value: $(button).attr(\"data-email-address\"),\n                callback: function (result) {\n                    if (result != null) {\n                        var validEmail = emailRegex.test(result);\n                        if (!validEmail) {\n                            var invalidEmailErroMessage = $(button).attr(\"data-invalid-email-message\");\n                            bootbox.alert(invalidEmailErroMessage);\n                            $(\".bootbox.modal.bootbox-alert\").css({ \"z-index\": \"10006\" });\n                            return false;\n                        }\n                        $(button).attr(\"data-email-address\", result);\n                        me.SendCompositionEmail(button);\n                    }\n                }\n            });\n        });\n        $(me._widget).find(\"#order-history-modal\").on('show.bs.modal', function (event) {\n            var self = this;\n            var orderlineItemId = $(event.relatedTarget).attr(\"data-order-line-item-id\");\n            var params = {\n                \"participantOrderLineItemId\": orderlineItemId,\n            };\n            $.ajax({\n                data: params,\n                method: \"GET\",\n                url: \"/Manage/ParticipantOrder/GetParticipantOrderHistory\"\n            }).done(function (data, textStatus, request) {\n                $(\"#order-history-modal\").find(\".modal-body\").html(data);\n            });\n        });\n        $(me._widget).find(\".js-download-action\").on('click', function () {\n            var expand = this;\n            me.download(expand);\n        });\n        $(me._widget).find(\".js-post-social-network-action\").on('click', function () {\n            var button = this;\n            me.openFaceBookPost(button);\n        });\n        $(me._widget).find(\".js-facebook-reset-permission\").on('click', function (e) {\n            var button = this;\n            me.resetFaceBookPermissions(button);\n        });\n        $(me._widget).find(\".js-check-status\").on('click', function () {\n            var expand = this;\n            me.checkCompositionFileStatus(expand, true);\n        });\n        $(me._widget).find(\".js-resubmit-order-item\").on('click', function () {\n            var expand = this;\n            me.resubmitOrderItem(expand, false);\n        });\n        $(me._widget).find(\".js-modify-campaign\").on('click', function (e) {\n            var button = $(e.currentTarget);\n            me.modifyCampaignDates(button);\n        });\n        $(me._widget).find(\".js-contact-activity-list\").on('click', function (e) {\n            var button = $(e.currentTarget);\n            me.openContactActivityList(button);\n        });\n        $(me._widget).find(\".js-email-uploaded-list-recipients\").on('click', function (e) {\n            var button = $(e.currentTarget);\n            me.openEmailUploadedListRecipients(button);\n        });\n        $(me._widget).find(\".js-microsite-list-recipients\").on('click', function (e) {\n            var button = $(e.currentTarget);\n            me.openMicrositeListRecipients(button);\n        });\n        $(me._widget).find(\".js-direct-mail-list-recipients\").on('click', function (e) {\n            var button = $(e.currentTarget);\n            me.openDirectMailListRecipients(button);\n        });\n        $(me._widget).find(\".js-microsite-activity-list\").on('click', function (e) {\n            var button = $(e.currentTarget);\n            me.openMicrositeActivityList(button);\n        });\n        $(me._widget).find(\".js-modify-microsite\").on('click', function (e) {\n            var button = $(e.currentTarget);\n            me.modifyMicrositeDates(button);\n        });\n        $(me._widget).find(\".js-modify-social-post\").on('click', function (e) {\n            var button = $(e.currentTarget);\n            me.modifySocialPostDates(button);\n        });\n        $(me._widget).find(\".js-remove-campaign\").on('click', function (e) {\n            var button = $(e.currentTarget);\n            me.openCancelCampaignMessage(button);\n        });\n        $(me._widget).find(\".js-remove-microsite\").on('click', function (e) {\n            var button = $(e.currentTarget);\n            me.openCancelMicrositeMessage(button);\n        });\n        $(me._widget).find(\".js-remove-social-post\").on('click', function (e) {\n            var button = $(e.currentTarget);\n            me.openCancelSocialPostMessage(button);\n        });\n        me.bindLocalizedTime();\n    }\n    openMicrositeActivityList(button) {\n        var me = this;\n        var contactListIdentifier = $(button).attr(\"data-contact-list-identifier\");\n        $.ajax({\n            method: \"GET\",\n            url: \"/Microsite/GetActivitySummaryList/\" + contactListIdentifier\n        }).done(function (data, textStatus, request) {\n            if (data) {\n                var globalModal = new GlobalModal(contactListIdentifier);\n                var html = data;\n                globalModal.openGlobalModal(html, \"panel\", { origin: $(this), classes: 'configure-launch-modal' });\n                $(\".global-modal-inner-container\").find(\".js-download-activity-list\").attr(\"data-contact-list-identifier\", contactListIdentifier);\n                $(\".global-modal-inner-container\").find(\".js-download-activity-list\").click(function (e) {\n                    var contactListIdentifier = $(e.currentTarget).attr(\"data-contact-list-identifier\");\n                    window.location.href = \"/Microsite/DownloadActivitySummaryList/\" +\n                        contactListIdentifier +\n                        \"/\" +\n                        $(\".global-modal-inner-container\").find(\".js-micrositedownloadfiletype\").val();\n                });\n            }\n            else {\n            }\n        });\n    }\n    openEmailUploadedListRecipients(button) {\n        var me = this;\n        var contactListIdentifier = $(button).attr(\"data-contact-list-identifier\");\n        var orderLineItemDetailIdentifier = $(button).attr(\"data-item-detail-identifier\");\n        $.ajax({\n            method: \"GET\",\n            url: \"/EmailCampaign/GetEmailUploadedListRecipients/\" + orderLineItemDetailIdentifier + \"/\" + contactListIdentifier\n        }).done(function (data, textStatus, request) {\n            if (data) {\n                var globalModal = new GlobalModal(contactListIdentifier);\n                var html = data;\n                globalModal.openGlobalModal(html, \"panel\", { origin: $(this), classes: 'configure-launch-modal' });\n                var table = $(\".global-modal-inner-container\").find(\".dataTable\");\n                $(table).DataTable({\n                    \"pageLength\": 25,\n                    \"searching\": false,\n                    \"dom\": '<\"top\"<\"left\"><\"right\"f><\"clearfix\">>rt<\"bottom\"<\"left\"l><\"right\"p>><\"clearfix\">'\n                });\n                $(\".global-modal-inner-container\").find(\".js-download-email-uploaded-list-recipients\").attr(\"data-contact-list-identifier\", contactListIdentifier);\n                $(\".global-modal-inner-container\").find(\".js-download-email-uploaded-list-recipients\").attr(\"data-item-detail-identifier\", orderLineItemDetailIdentifier);\n                $(\".global-modal-inner-container\").find(\".js-download-email-uploaded-list-recipients\").click(function (e) {\n                    var contactListIdentifier = $(e.currentTarget).attr(\"data-contact-list-identifier\");\n                    var orderLineItemDetailIdentifier = $(e.currentTarget).attr(\"data-item-detail-identifier\");\n                    window.location.href = \"/EmailCampaign/DownloadEmailUploadedListRecipients/\" + orderLineItemDetailIdentifier + \"/\" + contactListIdentifier + \"/\" + $(\".global-modal-inner-container\").find(\".js-emailuploadedlistrecipientsdownloadfiletype\").val();\n                });\n            }\n            else {\n            }\n        });\n    }\n    openDirectMailListRecipients(button) {\n        var me = this;\n        var contactListIdentifier = $(button).attr(\"data-contact-list-identifier\");\n        var orderLineItemDetailIdentifier = $(button).attr(\"data-item-detail-identifier\");\n        $.ajax({\n            method: \"GET\",\n            url: \"/DirectMail/GetDirectMailListRecipients/\" + orderLineItemDetailIdentifier + \"/\" + contactListIdentifier\n        }).done(function (data, textStatus, request) {\n            if (data) {\n                var globalModal = new GlobalModal(contactListIdentifier);\n                var html = data;\n                globalModal.openGlobalModal(html, \"panel\", { origin: $(this), classes: 'configure-launch-modal' });\n                var table = $(\".global-modal-inner-container\").find(\".dataTable\");\n                $(table).DataTable({\n                    \"pageLength\": 25,\n                    \"searching\": false,\n                    \"dom\": '<\"top\"<\"left\"><\"right\"f><\"clearfix\">>rt<\"bottom\"<\"left\"l><\"right\"p>><\"clearfix\">'\n                });\n                $(\".global-modal-inner-container\").find(\".js-download-direct-mail-list-recipients\").attr(\"data-contact-list-identifier\", contactListIdentifier);\n                $(\".global-modal-inner-container\").find(\".js-download-direct-mail-list-recipients\").attr(\"data-item-detail-identifier\", orderLineItemDetailIdentifier);\n                $(\".global-modal-inner-container\").find(\".js-download-direct-mail-list-recipients\").click(function (e) {\n                    var contactListIdentifier = $(e.currentTarget).attr(\"data-contact-list-identifier\");\n                    var orderLineItemDetailIdentifier = $(e.currentTarget).attr(\"data-item-detail-identifier\");\n                    window.location.href = \"/DirectMail/DownloadDirectMailListRecipients/\" + orderLineItemDetailIdentifier + \"/\" + contactListIdentifier + \"/\" + $(\".global-modal-inner-container\").find(\".js-direct-maillistrecipientsdownloadfiletype\").val();\n                });\n            }\n            else {\n            }\n        });\n    }\n    openMicrositeListRecipients(button) {\n        var me = this;\n        var contactListIdentifier = $(button).attr(\"data-contact-list-identifier\");\n        var orderLineItemDetailIdentifier = $(button).attr(\"data-item-detail-identifier\");\n        $.ajax({\n            method: \"GET\",\n            url: \"/EmailCampaign/GetMicrositeListRecipients/\" + orderLineItemDetailIdentifier + \"/\" + contactListIdentifier\n        }).done(function (data, textStatus, request) {\n            if (data) {\n                var globalModal = new GlobalModal(contactListIdentifier);\n                var html = data;\n                globalModal.openGlobalModal(html, \"panel\", { origin: $(this), classes: 'configure-launch-modal' });\n                var table = $(\".global-modal-inner-container\").find(\".dataTable\");\n                $(table).DataTable({\n                    \"pageLength\": 25,\n                    \"searching\": false,\n                    \"dom\": '<\"top\"<\"left\"><\"right\"f><\"clearfix\">>rt<\"bottom\"<\"left\"l><\"right\"p>><\"clearfix\">'\n                });\n                $(\".global-modal-inner-container\").find(\".js-download-microsite-list-recipients\").attr(\"data-contact-list-identifier\", contactListIdentifier);\n                $(\".global-modal-inner-container\").find(\".js-download-microsite-list-recipients\").attr(\"data-item-detail-identifier\", orderLineItemDetailIdentifier);\n                $(\".global-modal-inner-container\").find(\".js-download-microsite-list-recipients\").click(function (e) {\n                    var contactListIdentifier = $(e.currentTarget).attr(\"data-contact-list-identifier\");\n                    var orderLineItemDetailIdentifier = $(e.currentTarget).attr(\"data-item-detail-identifier\");\n                    window.location.href = \"/EmailCampaign/DownloadMicrositeListRecipients/\" + orderLineItemDetailIdentifier + \"/\" + contactListIdentifier + \"/\" + $(\".global-modal-inner-container\").find(\".js-micrositelistrecipientsdownloadfiletype\").val();\n                });\n            }\n            else {\n            }\n        });\n    }\n    openContactActivityList(button) {\n        var me = this;\n        var contactListIdentifier = $(button).attr(\"data-contact-list-identifier\");\n        var orderLineItemDetailIdentifier = $(button).attr(\"data-item-detail-identifier\");\n        $.ajax({\n            method: \"GET\",\n            url: \"/EmailCampaign/GetActivitySummaryListLimited/\" + orderLineItemDetailIdentifier + \"/\" + contactListIdentifier\n        }).done(function (data, textStatus, request) {\n            if (data) {\n                var globalModal = new GlobalModal(contactListIdentifier);\n                var html = data;\n                globalModal.openGlobalModal(html, \"panel\", { origin: $(this), classes: 'configure-launch-modal' });\n                $(\".global-modal-inner-container\").find(\".js-download-activity-list\").click(function (e) {\n                    var dataType = $(e.currentTarget).attr(\"data-type\");\n                    var searchText = $(\".global-modal-inner-container\").find(\".js-campaign-list-filter-text\").val();\n                    var title = $(e.currentTarget).attr(\"data-title\");\n                    var body = $(e.currentTarget).attr(\"data-body\");\n                    // handles big files without timing out\n                    // @ts-ignore\n                    var uniqueId = 'EmailOrderDownload-' + getUniqueGuid();\n                    var url = \"/EmailCampaign/DownloadActivitySummaryList\" +\n                        \"?orderLineItemDetailIdentifier=\" + orderLineItemDetailIdentifier +\n                        \"&contactListIdentifier=\" + contactListIdentifier +\n                        \"&fileType=\" + dataType +\n                        \"&uniqueId=\" + uniqueId +\n                        \"&searchText=\" + searchText;\n                    e.preventDefault();\n                    // @ts-ignore\n                    bootbox.dialog({\n                        title: title,\n                        message: body +\n                            '<div id=\"progress-wrapper-upload\">' +\n                            '<div class=\"progress-wrapper\">' +\n                            '<div class=\"progress-indicator text-center\">' +\n                            '</div></div></div>',\n                        closeButton: false\n                    });\n                    // move box to front\n                    $(\".bootbox.modal.bootbox\").css({ \"z-index\": \"10006\" });\n                    // initialize process status row, and return to call loop\n                    // @ts-ignore\n                    updateProgressStatus(uniqueId, '/API/Manage/ProcessStatus/AddProgress/', function () { progressBar(url, uniqueId); });\n                });\n                // @ts-ignore\n                function progressBar(url, uniqueId) {\n                    $.when(submitAjaxRequest(null, url, \"GET\")\n                        .done(function (data, textStatus, request) {\n                        // tell process it is done\n                        $('#loadupload-loop').val('1');\n                        // swallow success since I will handle it with the ProgressStatus\n                    })\n                        .fail(function (response, textStatus, errorThrown) {\n                        // swallow timeout error since I will handle it with the ProgressStatus\n                    }));\n                    var pollingStop = $('#loadupload-loop'); // used for a quick exit from the loop if applicable\n                    var progressWrapper = $('#progress-wrapper-upload');\n                    // getStatus is a recursive process which waits for 0% or 100%. When found, run the passed function, which is in the helper.\n                    getStatus(uniqueId, '/API/Manage/ProcessStatus/GetCurrentProgress/', pollingStop, progressWrapper, \n                    // @ts-ignore\n                    function () {\n                        // done, reset and get the file\n                        $('#loadupload-loop').val('0');\n                        var finalUrl = '/EmailCampaign/GetDownLoadFile?UniqueId=' + uniqueId;\n                        // @ts-ignore\n                        window.location = finalUrl;\n                        // remove the process status row\n                        //updateProgressStatus(uniqueId, '/API/Manage/ProcessStatus/RemoveProgress/');\n                    });\n                }\n                $(\".global-modal-inner-container\").find(\".js-campaign-list-filter-button-reset\").click(function (e) {\n                    e.stopPropagation();\n                    e.stopImmediatePropagation();\n                    var me = this;\n                    $(\".global-modal-inner-container\").find(\".js-campaign-list-filter-text\").val(\"\");\n                    var searchText = $(\".global-modal-inner-container\").find(\".js-campaign-list-filter-text\").val();\n                    var params = {\n                        \"searchText\": searchText\n                    };\n                    $.ajax({\n                        data: params,\n                        method: \"GET\",\n                        url: \"/EmailCampaign/GetActivitySummaryListLimitedDataOnly/\" + orderLineItemDetailIdentifier + \"/\" + contactListIdentifier\n                    }).done(function (data, textStatus, request) {\n                        if (data) {\n                            $(\".global-modal-inner-container\").find(\".js-campaign-list-filtered-table\").html(data);\n                        }\n                    });\n                });\n                $(\".global-modal-inner-container\").find(\".js-campaign-list-filter-button\").click(function (e) {\n                    e.stopPropagation();\n                    e.stopImmediatePropagation();\n                    var me = this;\n                    var searchText = $(\".global-modal-inner-container\").find(\".js-campaign-list-filter-text\").val();\n                    var params = {\n                        \"searchText\": searchText\n                    };\n                    $.ajax({\n                        data: params,\n                        method: \"GET\",\n                        url: \"/EmailCampaign/GetActivitySummaryListLimitedDataOnly/\" + orderLineItemDetailIdentifier + \"/\" + contactListIdentifier\n                    }).done(function (data, textStatus, request) {\n                        if (data) {\n                            $(\".global-modal-inner-container\").find(\".js-campaign-list-filtered-table\").html(data);\n                        }\n                    });\n                });\n            }\n            else {\n            }\n        });\n    }\n    modifyCampaignDates(button) {\n        var me = this;\n        var lineItemDetailId = $(button).attr(\"data-order-line-item-detail-id\");\n        var suppressViewLink = $(button).attr(\"data-suppress-view-link\") == \"False\" ? false : true;\n        $.ajax({\n            method: \"GET\",\n            url: \"/EmailCampaign/GetParticipantOrderDetail/\" + lineItemDetailId\n        }).done(function (data, textStatus, request) {\n            if (data) {\n                var globalModal = new GlobalModal(lineItemDetailId);\n                var html = data;\n                globalModal.openGlobalModal(html, \"panel\", { origin: $(this), classes: 'configure-send-modal' });\n                var refreshContainer = $(button).closest(\".js-order-detail-row\");\n                GlobalPopulateTimeZones($(\".js-global-modal\").find(\".time-zone\"));\n                if ($(\".js-global-modal\").find(\".js-send-time-zone-data\").val() !== \"\" && $(\".js-global-modal\").find(\".js-send-time-zone-data\").val() !== undefined) {\n                    $(\".js-send-time-zone\").val($(\".js-send-time-zone-data\").val());\n                }\n                if ($(\".js-global-modal\").find(\".js-seed-send-time-zone-data\").val() !== \"\" && $(\".js-global-modal\").find(\".js-seed-send-time-zone-data\").val() !== undefined) {\n                    $(\".js-global-modal\").find(\".js-seed-send-time-zone\").val($(\".js-seed-send-time-zone-data\").val());\n                }\n                if ($(\".js-global-modal\").find(\"#send-date-full\").val() !== \"\") {\n                    SetModifiedDatesForCustomization($(\".js-global-modal\").find('#send-date-full').val(), $(\".js-global-modal\").find(\".js-schedule-send-config\").find(\".js-send-time-zone\").val(), $(\".js-global-modal\").find('#send-time'), $(\".js-global-modal\").find('#send-date-picker'), $(\".js-global-modal\").find('#send-date'));\n                }\n                if ($(\".js-global-modal\").find(\"#seed-send-date-full\").val() !== \"\" && $(\".js-global-modal\").find(\"#seed-send-date-full\").val() !== undefined) {\n                    SetModifiedDatesForCustomization($(\".js-global-modal\").find('#seed-send-date-full').val(), $(\".js-global-modal\").find(\".js-schedule-seed-send-config\").find(\".js-seed-send-time-zone\").val(), $(\".js-global-modal\").find('#seed-send-time'), $(\".js-global-modal\").find('#seed-send-date-picker'), $(\".js-global-modal\").find('#seed-send-date'));\n                }\n                var sendDateEl = $(\".js-global-modal\").find('#send-date-picker').get(0);\n                var sendDateTimeEl = $(\".js-global-modal\").find('#send-time-picker').get(0);\n                var seedSendDateEl = $(\".js-global-modal\").find('#seed-send-date-picker').get(0);\n                var seedSendDateTimeEl = $(\".js-global-modal\").find('#seed-send-time-picker').get(0);\n                ConfigureDatePicker($(\".js-global-modal\").find('#send-date-picker'));\n                ConfigureDatePicker($(\".js-global-modal\").find('#seed-send-date-picker'));\n                ConfigureTimePicker($(\".js-global-modal\").find('#send-time-picker'));\n                ConfigureTimePicker($(\".js-global-modal\").find('#seed-send-time-picker'));\n                //InitializeDatePickerForOrder(sendDateEl, sendDateTimeEl, seedSendDateEl, seedSendDateTimeEl);\n                $(\".js-global-modal\").find(\".js-change-campaign-dates\").attr(\"data-order-line-item-detail-id\", lineItemDetailId);\n                $(\".js-global-modal\").find(\".js-change-campaign-dates\").on(\"click\", function (e) {\n                    var errorMessage = \"\";\n                    var recipientSendDateRequired = $(e.currentTarget).attr(\"data-recipient-send-date-required\");\n                    var seedSendDateRequired = $(e.currentTarget).attr(\"data-seed-send-date-required\");\n                    var recipientSendTimeRequired = $(e.currentTarget).attr(\"data-recipient-send-time-required\");\n                    var seedSendTimeRequired = $(e.currentTarget).attr(\"data-seed-send-time-required\");\n                    var recipientSendDateGreaterThanToday = $(e.currentTarget).attr(\"data-recipient-send-date-greater-than-today\");\n                    var seedSendDateGreaterThanToday = $(e.currentTarget).attr(\"data-seed-send-date-greater-than-today\");\n                    var timeZone = $(\".js-global-modal\").find(\".js-schedule-send-config\").find(\".js-send-time-zone\").val();\n                    var seedTimeZone = $(\".js-global-modal\").find(\".js-schedule-seed-send-config\").find(\".js-seed-send-time-zone\").val();\n                    var seedSendDateGreaterThanSendDate = $(e.currentTarget).attr(\"data-seed-send-date-greater-than-send-date\");\n                    if ($(\".js-global-modal\").find(\".js-schedule-send-config\").find(\"#send-date\").val() === \"\") {\n                        errorMessage += recipientSendDateRequired + \"<br/>\";\n                    }\n                    if ($(\".js-global-modal\").find(\".js-schedule-send-config\").find(\"#send-time\").val() === \"\") {\n                        errorMessage += recipientSendTimeRequired + \"<br/>\";\n                    }\n                    if ($(\".js-global-modal\").find(\".js-schedule-seed-send-config\").length > 0) {\n                        if ($(\".js-global-modal\").find(\".js-schedule-seed-send-config\").find(\"#seed-send-date\").val() === \"\") {\n                            errorMessage += seedSendDateRequired + \"<br/>\";\n                        }\n                        if ($(\".js-global-modal\").find(\".js-schedule-seed-send-config\").find(\"#seed-send-time\").val() === \"\") {\n                            errorMessage += seedSendTimeRequired + \"<br/>\";\n                        }\n                    }\n                    if (errorMessage === \"\") {\n                        var sendDateString = $(\".js-global-modal\").find('#send-date').val() +\n                            \" \" +\n                            $(\".js-global-modal\").find('#send-time').val();\n                        var currentDate = new Date().toISOString();\n                        var startDate = GetISODate(dayjs(sendDateString), timeZone, \"MM/DD/YYYY hh:mm:s a\");\n                        if (startDate < currentDate) {\n                            errorMessage += recipientSendDateGreaterThanToday + \"<br/>\";\n                        }\n                        var seedDateString = null;\n                        var seedStartDate = null;\n                        if ($(\".js-global-modal\").find(\".js-schedule-seed-send-config\").length > 0) {\n                            if ($(\".js-global-modal\").find('#seed-send-date').val() != \"\") {\n                                seedDateString = $(\".js-global-modal\").find('#seed-send-date').val() +\n                                    \" \" +\n                                    $(\".js-global-modal\").find('#seed-send-time').val();\n                                var seedStartDate = GetISODate(dayjs(seedDateString), seedTimeZone, \"MM/DD/YYYY hh:mm:s a\");\n                                if (seedStartDate < currentDate) {\n                                    errorMessage += seedSendDateGreaterThanToday + \"<br/>\";\n                                }\n                                if (seedStartDate > startDate) {\n                                    errorMessage += seedSendDateGreaterThanSendDate + \"<br/>\";\n                                }\n                            }\n                        }\n                        if (errorMessage === \"\") {\n                            if (seedDateString == null) {\n                                seedTimeZone = null;\n                            }\n                            var campaignDatesDtO = {\n                                \"orderLineItemDetailId\": lineItemDetailId,\n                                \"sendDate\": startDate,\n                                \"sendTimeZone\": timeZone,\n                                \"seedSendDate\": seedStartDate,\n                                \"seedSendTimeZone\": seedTimeZone\n                            };\n                            var url = \"/EmailCampaign/UpdateCampaignOrderLineItemDetail\" + \"/\" + lineItemDetailId;\n                            $.when(globalThis.gage.submitAjaxRequest(campaignDatesDtO, url, \"PUT\")\n                                .done(function (data, textStatus, request) {\n                                globalModal.closeGlobalModal();\n                                var url = \"/EmailCampaign/GetParticipantOrderDetailForDisplay\" + \"/\" + lineItemDetailId + \"/\" + suppressViewLink;\n                                $.when(globalThis.gage.submitAjaxRequest(null, url, \"GET\")\n                                    .done(function (data, status, request) {\n                                    $(refreshContainer).html(data);\n                                    $(refreshContainer).find(\".js-modify-campaign\").on('click', function (e) {\n                                        var button = $(e.currentTarget);\n                                        me.modifyCampaignDates(button);\n                                    });\n                                    $(refreshContainer).find(\".js-download-action\").on('click', function (e) {\n                                        var button = $(e.currentTarget);\n                                        me.download(button);\n                                    });\n                                    $(refreshContainer).find(\".js-remove-campaign\").on('click', function (e) {\n                                        var button = $(e.currentTarget);\n                                        me.openCancelCampaignMessage(button);\n                                    });\n                                    me.bindLocalizedTime();\n                                })\n                                    .fail(function (response, textStatus, errorThrown) {\n                                    alert(errorThrown);\n                                }));\n                            })\n                                .fail(function (response, textStatus, errorThrown) {\n                                bootbox.alert(response.responseJSON.errorMessage);\n                                return false;\n                            }));\n                        }\n                        else {\n                            bootbox.alert(errorMessage);\n                            return false;\n                        }\n                    }\n                    else {\n                        bootbox.alert(errorMessage);\n                        return false;\n                    }\n                });\n            }\n            else {\n            }\n        });\n    }\n    modifyMicrositeDates(button) {\n        var me = this;\n        var lineItemDetailId = $(button).attr(\"data-order-line-item-detail-id\");\n        var suppressViewLink = $(button).attr(\"data-suppress-view-link\") == \"False\" ? false : true;\n        $.ajax({\n            method: \"GET\",\n            url: \"/Microsite/GetParticipantOrderDetail/\" + lineItemDetailId\n        }).done(function (data, textStatus, request) {\n            if (data) {\n                var globalModal = new GlobalModal(lineItemDetailId);\n                var html = data;\n                globalModal.openGlobalModal(html, \"panel\", { origin: $(this), classes: 'configure-launch-modal' });\n                var refreshContainer = $(button).closest(\".js-order-detail-row\");\n                GlobalPopulateTimeZones($(\".js-global-modal\").find(\".time-zone\"));\n                if ($(\".js-global-modal\").find(\".js-launch-time-zone-data\").val() !== \"\" && $(\".js-global-modal\").find(\".js-launch-time-zone-data\").val() !== undefined) {\n                    $(\".js-launch-time-zone\").val($(\".js-launch-time-zone-data\").val());\n                }\n                if ($(\".js-global-modal\").find(\".js-archive-time-zone-data\").val() !== \"\" && $(\".js-global-modal\").find(\".js-archive-time-zone-data\").val() !== undefined) {\n                    $(\".js-global-modal\").find(\".js-archive-time-zone\").val($(\".js-archive-time-zone-data\").val());\n                }\n                if ($(\".js-global-modal\").find(\"#launch-date-full\").val() !== \"\") {\n                    SetModifiedDatesForCustomization($(\".js-global-modal\").find('#launch-date-full').val(), $(\".js-global-modal\").find(\".js-schedule-launch-config\").find(\".js-launch-time-zone\").val(), $(\".js-global-modal\").find('#launch-time'), $(\".js-global-modal\").find('#launch-date-picker'), $(\".js-global-modal\").find(\"#launch-date\"));\n                }\n                if ($(\".js-global-modal\").find(\"#archive-date-full\").val() !== \"\" && $(\".js-global-modal\").find(\"#archive-date-full\").val() !== undefined) {\n                    SetModifiedDatesForCustomization($(\".js-global-modal\").find('#archive-date-full').val(), $(\".js-global-modal\").find(\".js-schedule-archive-config\").find(\".js-archive-time-zone\").val(), $(\".js-global-modal\").find('#archive-time'), $(\".js-global-modal\").find('#archive-date-picker'), $(\".js-global-modal\").find(\"#archive-date\"));\n                }\n                var launchDateEl = $(\".js-global-modal\").find('#launch-date-picker').get(0);\n                var archiveDateEl = $(\".js-global-modal\").find('#archive-date-picker').get(0);\n                var launchTimeEl = $(\".js-global-modal\").find('#launch-time-picker').get(0);\n                var archiveTimeEl = $(\".js-global-modal\").find('#archive-time-picker').get(0);\n                ConfigureDatePicker($(\".js-global-modal\").find('#launch-date-picker'));\n                ConfigureDatePicker($(\".js-global-modal\").find('#archive-date-picker'));\n                ConfigureTimePicker($(\".js-global-modal\").find('#launch-time-picker'));\n                ConfigureTimePicker($(\".js-global-modal\").find('#archive-time-picker'));\n                //InitializeDatePickerForOrder(launchDateEl, launchTimeEl, archiveDateEl, archiveTimeEl);\n                // me.bindLocalizedTime();\n                $(\".js-global-modal\").find(\".js-change-microsite-dates\").attr(\"data-order-line-item-detail-id\", lineItemDetailId);\n                $(\".js-global-modal\").find(\".js-change-microsite-dates\").on(\"click\", function (e) {\n                    var errorMessage = \"\";\n                    var launchDateRequired = $(e.currentTarget).attr(\"data-launch-date-required\");\n                    var archiveDateRequired = $(e.currentTarget).attr(\"data-archive-date-required\");\n                    var launchTimeRequired = $(e.currentTarget).attr(\"data-launch-time-required\");\n                    var archiveTimeRequired = $(e.currentTarget).attr(\"data-archive-time-required\");\n                    var timeZone = $(\".js-global-modal\").find(\".js-schedule-launch-config\").find(\".js-launch-time-zone\").val();\n                    var archiveTimeZone = $(\".js-global-modal\").find(\".js-schedule-archive-config\").find(\".js-archive-time-zone\").val();\n                    if ($(\".js-global-modal\").find(\".js-schedule-launch-config\").find(\"#launch-date\").val() === \"\") {\n                        errorMessage += launchDateRequired + \"<br/>\";\n                    }\n                    if ($(\".js-global-modal\").find(\".js-schedule-launch-config\").find(\"#launch-time\").val() === \"\") {\n                        errorMessage += launchTimeRequired + \"<br/>\";\n                    }\n                    if (errorMessage === \"\") {\n                        var launchDateString = $(\".js-global-modal\").find('#launch-date').val() +\n                            \" \" +\n                            $(\".js-global-modal\").find('#launch-time').val();\n                        var launchDate = GetISODate(dayjs(launchDateString), timeZone, \"MM/DD/YYYY hh:mm:s a\");\n                        var archiveDateString = null;\n                        var archiveDate = null;\n                        if ($(\".js-global-modal\").find(\".js-schedule-archive-config\").length > 0) {\n                            if ($(\".js-global-modal\").find('#archive-date').val() != \"\") {\n                                archiveDateString =\n                                    $(\".js-global-modal\").find('#archive-date').val() +\n                                        \" \" +\n                                        $(\".js-global-modal\").find('#archive-time').val();\n                                archiveDate = GetISODate(dayjs(archiveDateString), archiveTimeZone, \"MM/DD/YYYY hh:mm:s a\");\n                            }\n                        }\n                        if (errorMessage === \"\") {\n                            if (archiveDateString == null) {\n                                archiveTimeZone = null;\n                            }\n                            var micrositeDatesDtO = {\n                                \"orderLineItemDetailId\": lineItemDetailId,\n                                \"launchDate\": launchDate,\n                                \"launchTimeZone\": timeZone,\n                                \"archiveDate\": archiveDate,\n                                \"archiveTimeZone\": archiveTimeZone\n                            };\n                            var url = \"/Microsite/UpdateMicrositeOrderLineItemDetail\" + \"/\" + lineItemDetailId;\n                            $.when(globalThis.gage.submitAjaxRequest(micrositeDatesDtO, url, \"PUT\")\n                                .done(function (data, textStatus, request) {\n                                globalModal.closeGlobalModal();\n                                var url = \"/Microsite/GetParticipantOrderDetailForDisplay\" + \"/\" + lineItemDetailId + \"/\" + suppressViewLink;\n                                $.when(globalThis.gage.submitAjaxRequest(null, url, \"GET\")\n                                    .done(function (data, status, request) {\n                                    $(refreshContainer).html(data);\n                                    $(refreshContainer).find(\".js-modify-microsite\").on('click', function (e) {\n                                        var button = $(e.currentTarget);\n                                        me.modifyMicrositeDates(button);\n                                    });\n                                    $(refreshContainer).find(\".js-remove-microsite\").on('click', function (e) {\n                                        var button = $(e.currentTarget);\n                                        me.openCancelMicrositeMessage(button);\n                                    });\n                                    me.bindLocalizedTime();\n                                })\n                                    .fail(function (response, textStatus, errorThrown) {\n                                    alert(errorThrown);\n                                }));\n                            })\n                                .fail(function (response, textStatus, errorThrown) {\n                                bootbox.alert(response.responseJSON.errorMessage);\n                                return false;\n                            }));\n                        }\n                        else {\n                            bootbox.alert(errorMessage);\n                            return false;\n                        }\n                    }\n                    else {\n                        bootbox.alert(errorMessage);\n                        return false;\n                    }\n                });\n            }\n            else {\n            }\n        });\n    }\n    modifySocialPostDates(button) {\n        var me = this;\n        var lineItemDetailId = $(button).attr(\"data-order-line-item-detail-id\");\n        $.ajax({\n            method: \"GET\",\n            url: \"/SocialPost/GetParticipantOrderDetail/\" + lineItemDetailId\n        }).done(function (data, textStatus, request) {\n            if (data) {\n                var globalModal = new GlobalModal(lineItemDetailId);\n                var html = data;\n                globalModal.openGlobalModal(html, \"panel\", { origin: $(this), classes: 'configure-launch-modal' });\n                var refreshContainer = $(button).closest(\".js-order-detail-row\");\n                $(\".js-global-modal\").find(\"#launch-data-picker-full\").datetimepicker();\n                GlobalPopulateTimeZones($(\".js-global-modal\").find(\".time-zone\"));\n                $(\".js-global-modal\").find('#launch-time-picker').datetimepicker({\n                    format: 'LT'\n                });\n                $(\".js-global-modal\").find('#launch-date-picker').datetimepicker({\n                    useCurrent: false,\n                    format: 'MM/DD/YYYY'\n                });\n                if ($(\".js-global-modal\").find(\".js-launch-time-zone-data\").val() !== \"\" && $(\".js-global-modal\").find(\".js-launch-time-zone-data\").val() !== undefined) {\n                    $(\".js-launch-time-zone\").val($(\".js-launch-time-zone-data\").val());\n                }\n                if ($(\".js-global-modal\").find(\"#launch-date-full\").val() !== \"\") {\n                    const setTime = dayjs.utc($(\".js-global-modal\").find('#launch-date-full').val()).tz($(\".js-global-modal\").find(\".js-schedule-launch-config\").find(\".js-launch-time-zone\").val()).format(\"hh:mm A\");\n                    $(\".js-global-modal\").find('#launch-time-picker').data(\"DateTimePicker\").date(setTime);\n                    var localDate = dayjs.utc($(\".js-global-modal\").find('#launch-date-full').val())\n                        .tz($(\".js-global-modal\").find(\".js-schedule-launch-config\").find(\".js-launch-time-zone\").val()).local()\n                        .format('MM/DD/YYYY');\n                    $(\".js-global-modal\").find('#launch-date').val(localDate);\n                    $(\".js-global-modal\").find(\"#launch-date\").attr(\"value\", (localDate + \" \" + setTime));\n                    $(\".js-global-modal\").find('#launch-date-picker').data(\"DateTimePicker\").date($(\".js-global-modal\").find(\"#launch-date\").attr(\"value\"));\n                }\n                // me.bindLocalizedTime();\n                $(\".js-global-modal\").find(\".js-change-social-post-dates\").attr(\"data-order-line-item-detail-id\", lineItemDetailId);\n                $(\".js-global-modal\").find(\".js-change-social-post-dates\").on(\"click\", function (e) {\n                    var errorMessage = \"\";\n                    var launchDateRequired = $(e.currentTarget).attr(\"data-launch-date-required\");\n                    var launchTimeRequired = $(e.currentTarget).attr(\"data-launch-time-required\");\n                    var timeZone = $(\".js-global-modal\").find(\".js-schedule-launch-config\").find(\".js-launch-time-zone\").val();\n                    if ($(\".js-global-modal\").find(\".js-schedule-launch-config\").find(\"#launch-date\").val() === \"\") {\n                        errorMessage += launchDateRequired + \"<br/>\";\n                    }\n                    if ($(\".js-global-modal\").find(\".js-schedule-launch-config\").find(\"#launch-time\").val() === \"\") {\n                        errorMessage += launchTimeRequired + \"<br/>\";\n                    }\n                    if (errorMessage === \"\") {\n                        var launchDateString = $(\".js-global-modal\").find('#launch-date-picker').data(\"DateTimePicker\").date()\n                            .format(\"YYYY-MM-DD\") +\n                            \" \" +\n                            $(\".js-global-modal\").find('#launch-time-picker').data(\"DateTimePicker\").date()\n                                .format(\"HH:mm:ss\");\n                        var timeZoneDate = dayjs.tz(launchDateString, timeZone);\n                        var launchDate = timeZoneDate.utc().format();\n                        if (errorMessage === \"\") {\n                            var socialPostDatesDtO = {\n                                \"orderLineItemDetailId\": lineItemDetailId,\n                                \"launchDate\": launchDate,\n                                \"launchTimeZone\": timeZone,\n                            };\n                            var url = \"/SocialPost/UpdateMicrositeOrderLineItemDetail\" + \"/\" + lineItemDetailId;\n                            $.when(globalThis.gage.submitAjaxRequest(socialPostDatesDtO, url, \"PUT\")\n                                .done(function (data, textStatus, request) {\n                                globalModal.closeGlobalModal();\n                                var url = \"/SocialPost/GetParticipantOrderDetailForDisplay\" + \"/\" + lineItemDetailId;\n                                $.when(globalThis.gage.submitAjaxRequest(null, url, \"GET\")\n                                    .done(function (data, status, request) {\n                                    $(refreshContainer).html(data);\n                                    $(refreshContainer).find(\".js-modify-social-post\").on('click', function (e) {\n                                        var button = $(e.currentTarget);\n                                        me.modifySocialPostDates(button);\n                                    });\n                                    $(refreshContainer).find(\".js-remove-social-post\").on('click', function (e) {\n                                        var button = $(e.currentTarget);\n                                        me.openCancelSocialPostMessage(button);\n                                    });\n                                    me.bindLocalizedTime();\n                                })\n                                    .fail(function (response, textStatus, errorThrown) {\n                                    alert(errorThrown);\n                                }));\n                            })\n                                .fail(function (response, textStatus, errorThrown) {\n                                bootbox.alert(response.responseJSON.errorMessage);\n                                return false;\n                            }));\n                        }\n                        else {\n                            bootbox.alert(errorMessage);\n                            return false;\n                        }\n                    }\n                    else {\n                        bootbox.alert(errorMessage);\n                        return false;\n                    }\n                });\n            }\n            else {\n            }\n        });\n    }\n    bindLocalizedTime() {\n        var me = this;\n        $.each($(me._widget).find(\".localized-time-email-configuration\"), function (i, e) {\n            const localDate = $(e).text();\n            $(e).html(DisplayDateInLocalFormat(localDate, \"MM/DD/YYYY\") + \"  <div><small>\" + DisplayDateInLocalFormat(localDate, \"hh:mm a\") + \"</small></div>\");\n            //$(e).html(dayjs.utc(localDate).local().format('MM/DD/YYYY') + \" <div><small>\" + dayjs.utc(localDate).local().format('hh:mm a') + \"</small></div>\");\n        });\n        $.each($(me._widget).find(\".localized-time-microsite-launch-date-configuration\"), function (i, e) {\n            const localDate = $(e).text();\n            $(e).html(DisplayDateInLocalFormat(localDate, \"MM/DD/YYYY\") + \" <div><small>\" + DisplayDateInLocalFormat(localDate, \"hh:mm a\") + \"</small></div>\");\n            //$(e).html(dayjs.utc(localDate).local().format('MM/DD/YYYY') + \" <div><small>\" + dayjs.utc(localDate).local().format('hh:mm a') + \"</small></div>\");\n        });\n        $.each($(me._widget).find(\".localized-time-microsite-archive-date-configuration\"), function (i, e) {\n            const localDate = $(e).text();\n            $(e).html(DisplayDateInLocalFormat(localDate, \"MM/DD/YYYY\") + \" <div><small>\" + DisplayDateInLocalFormat(localDate, \"hh:mm a\") + \"</small></div>\");\n        });\n    }\n    openCancelSocialPostMessage(button) {\n        var yesText = $(button).attr(\"data-yes-text\");\n        var noText = $(button).attr(\"data-no-text\");\n        var overwriteMessage = $(button).attr(\"data-campaign-cancel-message\");\n        var orderLineItemId = $(button).closest(\".js-order-detail-row\").attr(\"data-order-line-item-id\");\n        var orderLineItemDetailId = $(button).attr(\"data-order-line-item-detail-id\");\n        var cancelledStatusText = $(button).attr(\"data-cancelled-status-text\");\n        bootbox.confirm({\n            message: \"<p>\" + overwriteMessage + \"</p>\",\n            buttons: {\n                confirm: {\n                    label: yesText,\n                    className: 'btn-success'\n                },\n                cancel: {\n                    label: noText,\n                    className: 'btn-danger'\n                }\n            },\n            callback: function (result) {\n                if (result) {\n                    var url = \"/SocialPost/CancelSocialPost/\" + orderLineItemId + \"/\" + orderLineItemDetailId + \"/false\";\n                    $.when(globalThis.gage.submitAjaxRequest(null, url, \"PUT\")\n                        .done(function (data, textStatus, request) {\n                        $(button).closest(\".js-order-detail-row\").find(\".js-order-status-row\").html(cancelledStatusText);\n                        $(button).closest(\".js-order-detail-row\").find(\".js-social-post-action-row\").remove();\n                    })\n                        .fail(function (response, textStatus, errorThrown) {\n                    }));\n                    return true;\n                }\n            }\n        });\n    }\n    openCancelMicrositeMessage(button) {\n        var yesText = $(button).attr(\"data-yes-text\");\n        var noText = $(button).attr(\"data-no-text\");\n        var overwriteMessage = $(button).attr(\"data-campaign-cancel-message\");\n        var orderLineItemId = $(button).closest(\".js-order-detail-row\").attr(\"data-order-line-item-id\");\n        var orderLineItemDetailId = $(button).attr(\"data-order-line-item-detail-id\");\n        var cancelledStatusText = $(button).attr(\"data-cancelled-status-text\");\n        bootbox.confirm({\n            message: \"<p>\" + overwriteMessage + \"</p>\",\n            buttons: {\n                confirm: {\n                    label: yesText,\n                    className: 'btn-success'\n                },\n                cancel: {\n                    label: noText,\n                    className: 'btn-danger'\n                }\n            },\n            callback: function (result) {\n                if (result) {\n                    var params = {\n                        OrderLineItemId: orderLineItemId,\n                        OrderLineItemDetailId: orderLineItemDetailId,\n                        IsAdmin: false\n                    };\n                    var url = \"/Microsite/CancelMicrosite/\";\n                    $.when(globalThis.gage.submitAjaxRequest(params, url, \"PUT\")\n                        .done(function (data, textStatus, request) {\n                        $(button).closest(\".js-order-detail-row\").find(\".js-order-status-row\").html(cancelledStatusText);\n                        $(button).closest(\".js-order-detail-row\").find(\".localized-time-microsite-launch-date-configuration\").remove();\n                        $(button).closest(\".js-order-detail-row\").find(\".localized-time-microsite-archive-date-configuration\").remove();\n                        $(button).closest(\".js-order-detail-row\").find(\".js-microsite-action-row\").remove();\n                    })\n                        .fail(function (response, textStatus, errorThrown) {\n                    }));\n                    return true;\n                }\n            }\n        });\n    }\n    openCancelCampaignMessage(button) {\n        var yesText = $(button).attr(\"data-yes-text\");\n        var noText = $(button).attr(\"data-no-text\");\n        var overwriteMessage = $(button).attr(\"data-campaign-cancel-message\");\n        var sendSequenceNumber = $(button).closest(\".js-order-detail-row\").attr(\"data-send-sequence-number\") === \"\" ? 0 : $(button).closest(\".js-order-detail-row\").attr(\"data-send-sequence-number\");\n        var seedSequenceNumber = $(button).closest(\".js-order-detail-row\").attr(\"data-seed-sequence-number\") === \"\" ? 0 : $(button).closest(\".js-order-detail-row\").attr(\"data-seed-sequence-number\");\n        var orderLineItemId = $(button).closest(\".js-order-detail-row\").attr(\"data-order-line-item-id\");\n        var cancelledStatusText = $(button).attr(\"data-cancelled-status-text\");\n        bootbox.confirm({\n            message: \"<p>\" + overwriteMessage + \"</p>\",\n            buttons: {\n                confirm: {\n                    label: yesText,\n                    className: 'btn-success'\n                },\n                cancel: {\n                    label: noText,\n                    className: 'btn-danger'\n                }\n            },\n            callback: function (result) {\n                if (result) {\n                    var params = {\n                        SendSequenceNumber: sendSequenceNumber,\n                        SeedSequenceNumber: seedSequenceNumber,\n                        OrderLineItemId: orderLineItemId,\n                        IsAdmin: false\n                    };\n                    var url = \"/EmailCampaign/CancelCampaign/\";\n                    $.when(globalThis.gage.submitAjaxRequest(params, url, \"PUT\")\n                        .done(function (data, textStatus, request) {\n                        $(button).closest(\".js-order-detail-row\").find(\".js-order-status-row\")\n                            .html(cancelledStatusText);\n                        $(button).closest(\".js-order-detail-row\").find(\".localized-time-email-configuration\").remove();\n                        $(button).closest(\".js-order-detail-row\").find(\".js-campaign-action-row\").remove();\n                    })\n                        .fail(function (response, textStatus, errorThrown) {\n                        var x = 1;\n                    }));\n                    return true;\n                }\n            }\n        });\n    }\n    sendListBasedEmail(e) {\n        e.preventDefault();\n        var id = $(e.currentTarget).attr('data-product-catalog-assignment-identifier');\n        var postMessage = $(e.currentTarget).attr('data-post-email-body');\n        var orderDetailId = $(e.currentTarget).attr('data-order-line-item-id');\n        var url = \"/EmailCampaign/GetListBasedEmailFields/\" + id + \"/\";\n        $.when(globalThis.gage.submitAjaxRequest(null, url, \"GET\")\n            .done(function (data, status, request) {\n            var globalModal = new GlobalModal(id);\n            var html = data;\n            globalModal.openGlobalModal(html, \"panel\", { origin: $(this), classes: 'configure-send-modal' });\n            $(\".js-global-modal\").find(\".js-send-details\").find(\".js-order-detail-id\").val(orderDetailId);\n            $(\".js-send-test-list-based-email\").on(\"click\", function (e) {\n                e.preventDefault();\n                var url = \"/Api/ParticipantOrder/SendListBasedEmail\";\n                var params = $(\"#form-list-email-fields\").serialize();\n                $.when(submitAjaxRequest(params, url, \"POST\").done(function (data, textStatus, request) {\n                    if (data != null) {\n                        bootbox.alert(postMessage);\n                        globalModal.closeGlobalModal();\n                    }\n                }));\n            });\n        })\n            .fail(function (response, textStatus, errorThrown) {\n            alert(errorThrown);\n        }));\n    }\n    SendCompositionEmail(button) {\n        var params = {\n            id: parseInt($(button).attr(\"data-order-line-item-id\")),\n            emailAddress: $(button).attr(\"data-email-address\"),\n            \"updateStatus\": true\n        };\n        var url = \"/Api/ParticipantOrder/SendCompositionEmail\";\n        $.when(submitAjaxRequest(params, url, \"POST\").done(function (data, textStatus, request) {\n            if (data.success) {\n                $(button).closest(\".orderdetail-container\").find(\".js-header-orderstatus\").html(data.data.orderHeaderStatus);\n                $(button).closest(\".orderdetail-item-row\").find(\".js-order-status\").html(data.data.orderLineItemStatus);\n                bootbox.alert($(button).attr(\"data-post-email-body\"));\n            }\n        }));\n    }\n    resubmitOrderItem(button, displayPopup) {\n        waitingDialog.show($(button).attr(\"data-wait-message\"));\n        var params = {\n            \"orderLineItemId\": parseInt($(button).attr(\"data-order-line-item-id\")),\n            \"orderIdentifier\": $(button).attr(\"data-order-identifier\")\n        };\n        $.ajax({\n            data: params,\n            method: \"GET\",\n            url: \"/Api/ParticipantOrder/ResubmitOrderItem\"\n        }).done(function (data, textStatus, request) {\n            waitingDialog.hide();\n            if (data.success) {\n                location.reload();\n            }\n            else {\n                if (displayPopup) {\n                    alert(data.errorMessage);\n                }\n            }\n        });\n    }\n    checkCompositionFileStatus(button, showAlert) {\n        waitingDialog.show($(button).attr(\"data-wait-message\"));\n        var params = {\n            \"orderItemId\": parseInt($(button).attr(\"data-order-line-item-id\")),\n        };\n        var uri = \"/Api/ParticipantOrder/CheckCompositionFileStatus\";\n        $.ajax({\n            data: params,\n            method: \"GET\",\n            url: uri\n        }).done(function (data, textStatus, request) {\n            waitingDialog.hide();\n            if (data.success) {\n                if (data.orderHeaderStatus == \"Complete\") {\n                    location.reload();\n                }\n            }\n            else {\n                waitingDialog.hide();\n                if (data.fileStatus == \"None\") {\n                    $(button).addClass(\"hide\");\n                    $(button).closest(\".orderdetail-item-row\").find(\".js-resubmit-order-item\").removeClass(\"hide\");\n                    bootbox.alert($(button).attr(\"data-customization-error-none-instruction\"));\n                }\n                //if (data.fileStatus !== \"None\") {\n                //    if (showAlert) {\n                //        bootbox.alert(data.errorMessage);\n                //    }\n                //}\n            }\n        });\n    }\n    download(button) {\n        var params = {\n            \"id\": parseInt($(button).attr(\"data-order-line-item-id\")),\n        };\n        var url = \"/Api/ParticipantOrder/DownloadAction\";\n        $.when(submitAjaxRequest(params, url, \"POST\").done(function (data, textStatus, request) {\n            if (data.success) {\n                // parentrow status description \n                $(button).closest(\".orderdetail-container\").find(\".js-header-orderstatus\").html(data.data.orderHeaderStatus);\n                ;\n                $(button).closest(\".orderdetail-item-row\").find(\".js-order-status\").html(data.data.orderLineItemStatus);\n                location.href = $(button).attr(\"data-href\");\n            }\n        }));\n    }\n    openFaceBookPost(button) {\n        var me = this;\n        var orderLineItemId = $(button).attr(\"data-order-line-item-id\");\n        var child = window.open(\"/SocialPost/GetFaceBookUserToken\", 'self', 'toolbar=no,status=no,menubar=no,scrollbars=no,resizable=no');\n        var leftDomain = false;\n        var interval = setInterval(function () {\n            try {\n                if (child.document.domain === document.domain) {\n                    if (child.document.readyState === \"complete\") {\n                        // we're here when the child window returned to our domain\n                        var child_url = child.document.URL;\n                        if (child_url.indexOf(\"code=\") !== -1) {\n                            var accessToken = $(child.document).contents().find(\"body pre\").html();\n                            $(button).attr(\"facebook-access-token\", accessToken);\n                            clearInterval(interval);\n                            child.close();\n                            if (accessToken !== \"\") {\n                                var dto = {\n                                    \"accessToken\": accessToken,\n                                    \"orderLineItemId\": orderLineItemId\n                                };\n                                var url = \"/SocialPost/GetAccountLists/\" + accessToken + \"/\" + orderLineItemId;\n                                $.when(globalThis.gage.submitAjaxRequest(null, url, \"GET\")\n                                    .done(function (data, status, request) {\n                                    var globalModal = new GlobalModal(accessToken);\n                                    var html = data;\n                                    globalModal.openGlobalModal(html, \"panel\", { origin: $(this), classes: 'configure-facebook-post-information--modal' });\n                                    $(\".global-modal-inner-container\").find(\".js-messagecontainer\").find(\".panel-heading\").html(\"\");\n                                    $(\".global-modal-inner-container\").find(\".js-messagecontainer\").find(\".panel-body\").html(\"\");\n                                    $(\".global-modal-inner-container\").find(\".js-submit-facebook-post\").attr(\"data-order-line-item-id\", orderLineItemId);\n                                    $(\".global-modal-inner-container\").find(\"#imageurl\").attr(\"src\", $(button).attr(\"data-image-url\"));\n                                    var pages = $(\".global-modal-inner-container\").find(\".js-facebook-post-pages\");\n                                    $(pages).multiselect({ numberDisplayed: 0 });\n                                    $(pages).multiselect();\n                                    $(\".global-modal-inner-container\").find(\".js-submit-facebook-post\").click(function (e) {\n                                        var submitButton = $(e.currentTarget);\n                                        $(submitButton).attr(\"disabled\", \"disabled\");\n                                        $(\".global-modal-inner-container\").find(\".js-messagecontainer\").addClass(\"hide\");\n                                        $(\".global-modal-inner-container\").find(\".js-messagecontainer\").find(\".panel-heading\").html(\"\");\n                                        $(\".global-modal-inner-container\").find(\".js-messagecontainer\").find(\".panel-body\").html(\"\");\n                                        var requiredMessage = $(submitButton).attr(\"data-required-error-message\");\n                                        var postedMessage = $(submitButton).attr(\"data-post-submitted-message\");\n                                        var postedText = $(submitButton).attr(\"data-posted-text\");\n                                        if ($(pages).length > 0 && ($(pages).val() == \"\" || $(pages).val() == null)) {\n                                            alert(requiredMessage);\n                                            return false;\n                                        }\n                                        else {\n                                            var pageIds = $(pages).val().toString();\n                                            var errorHeader = $(e.currentTarget).attr(\"data-error-header\");\n                                            var columnErrorHeader = $(e.currentTarget).attr(\"data-error-header-error\");\n                                            var columnPageNameHeader = $(e.currentTarget).attr(\"data-error-header-page-name\");\n                                            var postSuccessfulSubHeading = $(e.currentTarget).attr(\"data-post-sucessful-subheading\");\n                                            var dto = {\n                                                \"pageId\": pageIds,\n                                                \"orderLineItemId\": orderLineItemId\n                                            };\n                                            var url = \"/SocialPost/PostPhoto\";\n                                            var notSubmittedMessage = \"\";\n                                            var postError = false;\n                                            $.when(globalThis.gage.submitAjaxRequest(dto, url, \"POST\")\n                                                .done(function (data, status, request) {\n                                                $(submitButton).removeAttr(\"disabled\");\n                                                var table = \"<table class='table table-responsive'><thead><tr><th>\" + columnPageNameHeader + \"</th><th>\" + columnErrorHeader + \"</th></tr></thead>\";\n                                                $.each(data.result, function (i, v) {\n                                                    var statusCode = v.statusCode;\n                                                    if (statusCode == \"OK\") {\n                                                        statusCode = postedText;\n                                                    }\n                                                    if (v.statusCode != \"OK\") {\n                                                        postError = true;\n                                                    }\n                                                    if (v.faceBookPostURL !== \"\") {\n                                                        table += \"<tr><td> <a  target='_blank' href='\" + v.faceBookPostURL + \"'>\" + v.postName + \"</a></td><td>\" + statusCode + \"</td></tr>\";\n                                                    }\n                                                    else {\n                                                        table += \"<tr><td>\" + v.postName + \"</td><td>\" + statusCode + \"</td></tr>\";\n                                                    }\n                                                });\n                                                table += \"</table>\";\n                                                $(\".global-modal-inner-container\").find(\".js-messagecontainer\").find(\".panel-heading\").html(errorHeader);\n                                                $(\".global-modal-inner-container\").find(\".js-messagecontainer\").find(\".panel-body\").html(\"<p class='alert alert-info' >\" + postSuccessfulSubHeading + \" </p>\");\n                                                $(\".global-modal-inner-container\").find(\".js-messagecontainer\").find(\".panel-body\").append(table);\n                                                $(\".global-modal-inner-container\").find(\".js-messagecontainer\").removeClass(\"hide\");\n                                                if (postError) {\n                                                    $(\".global-modal-inner-container\").find(\".js-messagecontainer\").find(\".js-messagecontainer-reset-permission-container\").removeClass(\"hide\");\n                                                }\n                                                else {\n                                                    $(\".global-modal-inner-container\").find(\".js-messagecontainer\").find(\".js-messagecontainer-reset-permission-container\").addClass(\"hide\");\n                                                }\n                                                $(\".global-modal-inner-container\").find(\".submit-facebook-post-container\").find(\".js-managed-facebook-pages-container\").remove();\n                                                $(\".global-modal-inner-container\").find(\".submit-facebook-post-container\").find(\".js-submit-facebook-post\").remove();\n                                                $(\".global-modal-inner-container\").find(\".submit-facebook-post-container\").find(\".js-cancel-confirmation-link\").addClass(\"hide\");\n                                                $(\".global-modal-inner-container\").find(\".submit-facebook-post-container\").find(\".js-close-confirmation-link\").removeClass(\"hide\");\n                                                //$(button).closest(\".js-action-container\").find(\".js-post-social-network-revoke\").click();\n                                            })\n                                                .fail(function (response, textStatus, errorThrown) {\n                                                globalModal.closeGlobalModal();\n                                                alert(errorThrown);\n                                                $(submitButton).removeAttr(\"disabled\");\n                                            }));\n                                        }\n                                    });\n                                    $(\".global-modal-inner-container\").find(\".js-reset-permission\").click(function (e) {\n                                        globalModal.closeGlobalModal();\n                                        $(\".js-facebook-reset-permission\").click();\n                                    });\n                                })\n                                    .fail(function (response, textStatus, errorThrown) {\n                                }));\n                            }\n                        }\n                    }\n                }\n                else {\n                    // this code should never be reached, \n                    // as the x-site security check throws\n                    // but just in case\n                    leftDomain = true;\n                }\n            }\n            catch (e) {\n                // we're here when the child window has been navigated away or closed\n                if (child.closed) {\n                    clearInterval(interval);\n                    return;\n                }\n                // navigated to another domain  \n                leftDomain = true;\n            }\n        }, 500);\n    }\n    resetFaceBookPermissions(button) {\n        $(button).attr(\"disabled\", \"disabled\");\n        var child = window.open(\"/SocialPost/GetFaceBookUserToken\", 'self', 'toolbar=no,status=no,menubar=no,scrollbars=no,resizable=no');\n        var successMessage = $(button).attr(\"data-reset-permission-success-message\");\n        var leftDomain = false;\n        var interval = setInterval(function () {\n            try {\n                if (child.document.domain === document.domain) {\n                    if (child.document.readyState === \"complete\") {\n                        // we're here when the child window returned to our domain\n                        var child_url = child.document.URL;\n                        if (child_url.indexOf(\"code=\") !== -1) {\n                            var accessToken = $(child.document).contents().find(\"body pre\").html();\n                            clearInterval(interval);\n                            child.close();\n                            if (accessToken !== \"\") {\n                                var params = {\n                                    AccessToken: accessToken\n                                };\n                                $.when(globalThis.gage.submitAjaxRequest(params, \"/SocialPost/DeletePermission/\", \"DELETE\")\n                                    .done(function (data, status, request) {\n                                    if (data != null && data.result == 200) {\n                                        bootbox.alert(successMessage);\n                                        $(button).removeAttr(\"disabled\");\n                                    }\n                                })\n                                    .fail(function (response, textStatus, errorThrown) {\n                                    alert(errorThrown);\n                                    $(button).removeAttr(\"disabled\");\n                                }));\n                            }\n                        }\n                    }\n                }\n                else {\n                    // this code should never be reached, \n                    // as the x-site security check throws\n                    // but just in case\n                    leftDomain = true;\n                }\n            }\n            catch (e) {\n                // we're here when the child window has been navigated away or closed\n                if (child.closed) {\n                    clearInterval(interval);\n                    return;\n                }\n                // navigated to another domain  \n                leftDomain = true;\n            }\n        }, 500);\n    }\n    downloadPdf(dropDown) {\n        var me = this;\n        var lineItemId = $(dropDown).attr(\"data-order-line-item-id\");\n        var templateIdentifier = lineItemId + \"-\" + $(dropDown).attr(\"data-template-name\");\n        var productIdentifier = $(dropDown).attr(\"data-product-identifier\");\n        window.location.href = \"/Api/ParticipantOrder/DownloadPdf?id=\" + productIdentifier + \"&templateIdentifier=\" + templateIdentifier;\n    }\n}\n;\n$(document).ready(function () {\n    $(\".widget-orderdetail\").each(function (index, item) {\n        $(item).data(\"manager\", new OrderDetail(item));\n    });\n});\n/// <reference path=\"../lib/twbs-pagination.d.ts\" />\n/// <reference path=\"../lib/jquery.d.ts\" />\n/// <reference path=\"../lib/helper.admin.d.ts\" />\nclass ParticipantActivityList {\n    constructor(widget) {\n        this._widget = widget;\n        this.initialize();\n    }\n    initialize() {\n        this._pageIndex = 0;\n        this._totalPages = parseFloat($(this._widget).attr(\"data-total-pages\"));\n        this._take = parseInt($(this._widget).find(\"#uxParticipantActivityListPageSize\").val());\n        this._widgetId = parseInt($(this._widget).attr(\"data-contentwidgetid\"));\n        this._sortBy = $(this._widget).attr(\"data-sort-by\");\n        this.bindControls();\n    }\n    bindControls() {\n        var me = this;\n        $(me._widget).find(\".filter-text, .filter-close\").on(\"click\", function () {\n            me.ShowHideFilter(this);\n        });\n        $(me._widget).find(\".filter-facet\").on(\"click\", function () {\n            me.SelectDeselectFacet(this);\n        });\n        $(me._widget).find(\"#uxParticipantActivityListPageSize\").on(\"change\", function () {\n            me._sortBy = \"activitydate\";\n            me._pageIndex = 0;\n            me._sortAscending = \"false\";\n            me._take = $(this).val();\n            me.LoadData(false, null);\n        });\n        $(me._widget).find(\".js-viewparticipantactivitylistdetail\").on(\"click\", function () {\n            var expand = this;\n            me.showDetail(expand);\n        });\n        $(me._widget).find(\".js-participantactivity-list-search-filter\").on(\"click\", function (e) {\n            var datarequiredtext = $(this).data(\"requiredtext\");\n            var dataattributerequiredtext = $(this).data(\"attributerequiredtext\");\n            var btn = $(this);\n            e.preventDefault();\n            var searchText = $(me._widget).find(\".js-participantactivity-list-search-text\").val();\n            var activityType = $(me._widget).find(\".js-participantactivitysearchactivitytype\").val();\n            var errorMessage = \"\";\n            if (searchText === \"\") {\n                errorMessage = datarequiredtext;\n            }\n            if (activityType === \"\") {\n                errorMessage += \"\\n\" + dataattributerequiredtext;\n            }\n            if (errorMessage !== \"\") {\n                alert(errorMessage);\n                return false;\n            }\n            me._searchActivityTypeId = activityType;\n            me._searchText = searchText;\n            btn.prop('disabled', true);\n            me.LoadData(false, btn);\n        });\n        $(me._widget).find(\".js-reset-participantactivity-list-search-filter\").on(\"click\", function (e) {\n            var btn = $(this);\n            $(me._widget).find(\".js-participantactivity-list-search-text\").val(\"\");\n            $(me._widget).find(\".js-participantactivitysearchactivitytype\").val(\"\");\n            me._searchText = \"\";\n            me._searchActivityTypeId = \"\";\n            btn.prop('disabled', true);\n            me.LoadData(false, btn);\n        });\n        me.ShowPager();\n        $(me._widget).find(\".participantactivityListHeading\").click(function () {\n            var newHeader = $(this);\n            var oldHeader = $(\".dataTable\").find(\".sorting_asc,.sorting_desc\");\n            if (newHeader.data(\"sort-field\") === oldHeader.data(\"sort-field\")) // change direction\n             {\n                if ($(\".participantactivityListHeading.sorting_asc\").length > 0) {\n                    //change from ASC to DESC\n                    oldHeader.removeClass(\"sorting_asc\");\n                    newHeader.addClass(\"sorting_desc\");\n                    me._sortAscending = \"false\";\n                }\n                else {\n                    //change from DESC to ASC\n                    oldHeader.removeClass(\"sorting_desc\");\n                    newHeader.addClass(\"sorting_asc\");\n                    me._sortAscending = \"true\";\n                }\n            }\n            else // change sort column\n             {\n                oldHeader.removeClass(\"sorting_asc\").removeClass(\"sorting_desc\").addClass(\"sorting\");\n                newHeader.removeClass(\"sorting\").addClass(\"sorting_asc\");\n                me._sortAscending = \"true\";\n            }\n            $(me._widget).find(\"#list-items\").html();\n            me._sortBy = newHeader.data(\"sort-field\");\n            me._pageIndex = 0;\n            me.LoadData(false, null);\n        });\n        $(me._widget).find(\".button.filter-facet-apply\").on(\"click\", function () {\n            me.ApplyFilter(this);\n        });\n    }\n    showDetail(expand) {\n        var me = this;\n        var widgetContainer = $(\".widget-participantactivitylist\");\n        var parentContainer = $(expand).parent().closest(\"tr\").next(\"tr\");\n        var detailContainer = $(parentContainer).find(\".detail-\" + $(expand).data(\"activityid\"));\n        var icon = $(expand).find(\"span\");\n        if ($(icon).hasClass(\"fa-chevron-down\")) {\n            if ($(detailContainer).hasClass(\"js-data-loaded\")) {\n                $(parentContainer).removeClass(\"hide\");\n                $(icon).toggleClass(\"fa-chevron-down fa-chevron-up\");\n            }\n            else {\n                $(widgetContainer).find(\".js-viewparticipantactivitylistdetail\").attr(\"disabled\", \"true\");\n                var activitydate = $(expand).data(\"activitydate\");\n                var activityTypeId = $(expand).data(\"activitytypeid\");\n                var activityId = $(expand).data(\"activityid\");\n                var activityItem = $(expand).data(\"activityitem\");\n                var participantId = $(expand).data(\"participantid\");\n                var multiplier = $(expand).data(\"multiplier\");\n                $.when(me.GetParticipantActivityDetail(participantId, activityTypeId, activityId, activityItem, activitydate, multiplier).done(function (data, textStatus, response) {\n                    $(parentContainer).removeClass(\"hide\");\n                    $(parentContainer).slideDown(1000);\n                    detailContainer.html($(this).data(\"identifier\"));\n                    detailContainer.addClass(\"js-data-loaded\");\n                    $(icon).toggleClass(\"fa-chevron-down fa-chevron-up\");\n                    detailContainer.html(data);\n                    $(widgetContainer).find(\".js-viewparticipantactivitylistdetail\").removeAttr(\"disabled\");\n                }));\n            }\n        }\n        else {\n            $(parentContainer).addClass(\"hide\");\n            $(icon).toggleClass(\"fa-chevron-down fa-chevron-up\");\n        }\n    }\n    GetParticipantActivityDetail(participantId, activityTypeId, activityId, activityItem, activityDate, multiplier) {\n        var updatedactivityItem = activityItem;\n        if (activityItem !== \"\") {\n            updatedactivityItem = JSON.stringify(activityItem);\n        }\n        var params = {\n            \"participantId\": participantId,\n            \"activityTypeId\": activityTypeId,\n            \"activityId\": activityId,\n            \"activityItem\": updatedactivityItem,\n            \"activityDate\": activityDate,\n            \"multiplier\": multiplier\n        };\n        return $.ajax({\n            method: \"GET\",\n            url: \"/Api/Participant/GetParticipantActivityDetail\",\n            data: params,\n        });\n    }\n    SetPager() {\n        var me = this;\n        var defaultOpts = {};\n        if (me._totalPages !== 0) {\n            $(me._widget).find(\"#participantactivity-list-pagination\").html(\"\");\n            $(me._widget).find(\"#participantactivity-list-pagination\").html('<ul id=\"pagination\" class=\"pagination-sm\"></ul>');\n            $(me._widget).find(\"#participantactivity-list-pagination\").find(\"#pagination\").twbsPagination({\n                initiateStartPageClick: false,\n                totalPages: me._totalPages,\n                startPage: (me._pageIndex === 0 ? 1 : (me._pageIndex + 1)),\n                onPageClick: function (event, page) {\n                    me._pageIndex = (page - 1);\n                    me.LoadData(false, null);\n                }\n            });\n        }\n        else {\n            $(me._widget).find(\"#participantactivity-list-pagination\").html(\"\");\n        }\n    }\n    LoadData(filterClose, btn) {\n        var me = this;\n        var params = me.BuildParams(me._widgetId);\n        var url = \"/Content/RenderParticipantActivityList/\" + me._widgetId.toString();\n        $.when(submitAjaxRequest(params, url, \"POST\").done((data, textStatus, request) => {\n            this._pageIndex = parseInt(request.getResponseHeader(\"X-PageIndex\"));\n            this._totalPages = parseFloat(request.getResponseHeader(\"X-TotalPages\"));\n            $(this._widget).find(\"#list-items\").html(data);\n            this.ShowPager();\n            if (filterClose) {\n                $(\"#ajax-loading\").modal(\"hide\");\n                $(this._widget).find(\".filter-close\").click();\n            }\n            $(this._widget).find(\".js-viewparticipantactivitylistdetail\").on(\"click\", function () {\n                var expand = this;\n                me.showDetail(expand);\n            });\n            if (btn != null) {\n                btn.prop('disabled', false);\n            }\n        }));\n    }\n    ShowHideFilter(el) {\n        var me = this;\n        var list = $(el).parent(\".widget-participantactivitylist\").attr(\"id\");\n        var filterType = $(el).attr(\"data-filtertype\");\n        var $dropdown = $(me._widget).find(\"div[id='\" + list + \"'] .filter-drop-down[data-filtertype='\" + filterType + \"']\");\n        var $indicator = $(me._widget).find(\".filter-indicator\");\n        var dropdownIsClosed = $dropdown.hasClass(\"hide\");\n        $(me._widget).find(\".filter-drop-down\").addClass(\"hide\");\n        $(me._widget).find(\".filter-indicator\").removeClass(\"fa-caret-up\").addClass(\"fa-caret-down\");\n        if (dropdownIsClosed) {\n            $dropdown.removeClass(\"hide\");\n            $indicator.removeClass(\"fa-caret-down\").addClass(\"fa-caret-up\");\n        }\n    }\n    SelectDeselectFacet(el) {\n        var me = this;\n        if ($(el).hasClass(\"disabled\")) {\n            return;\n        }\n        var $facetIndicator = $(el).find(\".filter-facet-indicator\");\n        var $accountTransactionList = $(el).closest(\".participantactivity-list\");\n        $facetIndicator.toggleClass(\"fa-check\");\n        var contentWidgetID = me._widgetId;\n        if ($facetIndicator.hasClass(\"fa-check\")) {\n            $facetIndicator.removeClass(\"hidden\");\n            $(me._widget).find(\"#widget-participantactivitylist-appliedfilters-\" + contentWidgetID).append(\"<button class='pull-left btn btn-color1 participantactivity-list-remove-filter' data-filter-type='\" + $(el).attr(\"data-filter-type\") + \"' data-filter-id='\" + $(el).attr(\"data-filter-id\") + \"'><span class='fa-solid fa-check'></span> \" + $(el).attr(\"data-name\") + \" | <span class='remove'>x</span></button>\");\n            $(me._widget).find(\".participantactivity-list-remove-filter\").off(\"click\");\n            $(me._widget).find(\".participantactivity-list-remove-filter\").on(\"click\", function () {\n                var filterID = parseInt($(this).attr(\"data-filter-id\"));\n                var filterType = $(this).attr(\"data-filter-type\");\n                me.SelectDeselectFacet($(\"button.filter-facet[data-filter-type='\" + filterType + \"'][data-filter-id='\" + filterID + \"']\"));\n            });\n        }\n        else {\n            $facetIndicator.addClass(\"hidden\");\n            $(me._widget).find(\"#widget-participantactivitylist-appliedfilters-\" + contentWidgetID).find(\"button[data-filter-type='\" + $(el).attr(\"data-filter-type\") + \"'][data-filter-id='\" + $(el).attr(\"data-filter-id\") + \"']\").remove();\n        }\n        me.UpdateFilter(contentWidgetID);\n    }\n    ApplyFilter(el) {\n        var me = this;\n        this.UpdateFilter(me._widgetId);\n    }\n    UpdateFilter(contentWidgetID) {\n        var me = this;\n        $(\"#ajax-loading\").modal();\n        me._sortBy = \"activitydate\";\n        me._pageIndex = 0;\n        me._sortAscending = \"false\";\n        me.LoadData(true, null);\n    }\n    ShowPager() {\n        var me = this;\n        if (me._totalPages >= 0) {\n            if (me._totalPages < 1) {\n                me._totalPages = 0;\n            }\n            else {\n                me._totalPages = Math.ceil(me._totalPages);\n            }\n            me.SetPager();\n        }\n    }\n    BuildParams(contentWidgetId) {\n        var $activitytypeFilter = $(\"div[data-contentwidgetid='\" + contentWidgetId + \"'] div.filter-drop-down[data-filtertype='ActivityTypes']\");\n        var arrayTypes = new Array;\n        $activitytypeFilter.find(\"span.fa-check\").each(function (i, e) {\n            arrayTypes.push(parseInt($(e).attr(\"data-id\")));\n        });\n        var activityTypes = arrayTypes.join(\",\");\n        var params = {\n            Take: this._take,\n            PageIndex: this._pageIndex,\n            SortBy: this._sortBy,\n            SortAscending: this._sortAscending,\n            Skip: 0,\n            ActivityTypes: activityTypes,\n            SearchText: this._searchText,\n            SearchAttributeTypeId: this._searchActivityTypeId\n        };\n        return params;\n    }\n}\n;\n$(document).ready(function () {\n    $(\".widget-participantactivity-list\").each(function (index, item) {\n        $(item).data(\"manager\", new ParticipantActivityList(item));\n    });\n});\nclass Points {\n    constructor(widget) {\n        this._widget = widget;\n        this.initialize();\n    }\n    initialize() {\n        this.bindControls();\n    }\n    bindControls() {\n        var me = this;\n        var isFielo = $(me._widget).find(\".participant-points\").attr(\"data-is-fielo\");\n        var htmlContentToUpdate = $(me._widget).find(\"#formatted-points\");\n        if (isFielo == \"True\" && $(me._widget).find(\".participant-points\").attr(\"data-fielo-member-id\") != \"\") {\n            var fielocustomfield = $(me._widget).find(\".participant-points\").attr(\"data-fielo-custom-field\");\n            me.GetMemberCall(fielocustomfield, 0, false, htmlContentToUpdate);\n        }\n    }\n    GetMemberCall(fielocustomfield, attempt, renew, htmlContentToUpdate) {\n        var me = this;\n        if (attempt < 5) {\n            $.ajax({\n                method: \"GET\",\n                url: \"/Fielo/GetMember/\" + fielocustomfield + \"/\" + renew,\n            }).done(function (data, textStatus, request) {\n                if (data != null && data.result != null && data.result != undefined) {\n                    data.result.fieldName = fielocustomfield;\n                    data.result.attempt = attempt + 1;\n                    data.result.htmlContentToUpdate = htmlContentToUpdate;\n                    me.updateUI(data.result);\n                }\n            });\n        }\n        else {\n            alert(\"too many attempts\");\n            return;\n        }\n    }\n    updateUI(data) {\n        var me = this;\n        if (data != null && data.errorCode != undefined) {\n            if (data.errorCode == \"INVALID_SESSION_ID\") {\n                me.GetMemberCall(data.fieldName, data.attempt, true, data.htmlContentToUpdate);\n            }\n            else if (data.errorCode != \"\") {\n                data.result.attempt = data.result.attempt + 1;\n                me.GetMemberCall(data.fieldName, data.attempt, true, data.htmlContentToUpdate);\n                return;\n            }\n            else {\n                $(data.htmlContentToUpdate).html(data.responseData.formattedData);\n            }\n        }\n    }\n}\n;\n$(document).ready(function () {\n    $(\".widget-points\").each(function (index, item) {\n        $(item).data(\"manager\", new Points(item));\n    });\n});\n/// <reference path=\"../lib/jquery.d.ts\" />\n/// <reference path=\"../lib/gage.d.ts\" />\n/// <reference path=\"../lib/helper.admin.d.ts\" />\n/// <reference path=\"../lib/helper.timezones.d.ts\" />\n/// <reference path=\"../lib/helper.orders.d.ts\" />\n/// <reference path=\"../lib/helper.thirdParty.d.ts\" />\nclass TeamLeaderTeamDetail {\n    constructor(widget) {\n        this.FilterValues = [];\n        this.FilterTrackedValues = [];\n        this._widget = widget;\n        this.initialize();\n    }\n    getValidationDiv(className) {\n        var validationDiv;\n        var validationDivTemp = $(\".js-global-modal\").find(className);\n        var isArray = $.isArray(validationDiv);\n        if (isArray) {\n            validationDiv = $(validationDivTemp[0]);\n        }\n        return validationDiv;\n    }\n    initialize() {\n        this._widgetId = parseInt($(this._widget).attr(\"data-contentwidgetid\"));\n        this._widgetContainer = \"widget-teamleader-team-detail-container-\" + this._widgetId;\n        this._globalModal = new GlobalModal(this._widgetId);\n        GlobalPopulateTimeZones($(\"#time-zone\"));\n        this.bindControls();\n    }\n    bindControls() {\n        var me = this;\n        //$(this._widget).find('.copy-link').tooltip({\n        //    trigger: 'click',\n        //    placement: 'bottom'\n        //});\n        ApplyGageToolTip($(this._widget).find('.copy-link'));\n        // Localize Date/Times for Assignments\n        $.each($(\".localized-time\"), function (i, e) {\n            var localDate = $(e).text();\n            $(e).html(DisplayDateInLocalFormat(localDate, \"MM/DD/YYYY\") + \" <small>\" + DisplayDateInLocalFormat(localDate, \"hh:mm a\") + \"</small>\");\n        });\n        // Localize Date/Times for Student List\n        $.each($(\".localized-time-joined\"), function (i, e) {\n            var localDate = $(e).text();\n            $(e).html(dayjs.utc(localDate).local().format('MM/DD/YYYY'));\n        });\n        var activeTab = me.getUrlVars()[\"activeTab\"];\n        if (activeTab) {\n            //$(\".\" + me._widgetContainer).find('.nav-tabs a[href=\"#' + activeTab + '\"]').tab('show');\n            // @ts-ignore\n            bootstrap.Tab.getOrCreateInstance(document.querySelector('#' + activeTab + '-tab')).show();\n        }\n        $(\".\" + me._widgetContainer).on(\"click\", \".js-member-completion\", function (e) {\n            e.preventDefault();\n            me.getTeamContentCompletionForParticipant($(e.currentTarget));\n        });\n        $(\".\" + me._widgetContainer).on(\"click\", \".js-save-team-detail\", function (e) {\n            e.preventDefault();\n            me.saveTeam($(e.currentTarget));\n        });\n        $(\".\" + me._widgetContainer).on(\"click\", \".js-add-assignment\", function (e) {\n            e.preventDefault();\n            me.getContentSelector($(e.currentTarget));\n        });\n        // Bulk edit start and end dates for assignments\n        $(\".\" + me._widgetContainer).on(\"click\", \".js-edit-assignments\", function (e) {\n            me.getEditAssignmentsSelector($(e.currentTarget));\n        });\n        $(\".\" + me._widgetContainer).on(\"click\", \".js-remove-content-assignment\", function (e) {\n            e.preventDefault();\n            me.removeContentAssignment($(e.currentTarget));\n        });\n        //$('body').tooltip({\n        //    selector: '[data-toggle=tooltip]'\n        //});\n        ApplyGageToolTip($('[data-toggle=\"tooltip\"]'));\n        ApplyGageToolTip($('[data-bs-toggle=\"tooltip\"]'));\n        $(\".js-global-modal\").on(\"click\", \".js-show-system-names\", function (e) {\n            var source = $(\".js-global-modal\").find(\".js-course-selection\");\n            if ($(e.currentTarget).is(\":checked\")) {\n                $.each(source, function (index, element) {\n                    $(element).attr(\"data-display-value\", $(element).attr(\"data-content-name\"));\n                    $(element).closest(\".js-selected-course-row\").find(\"#contentname\").html($(element).attr(\"data-content-name\"));\n                    $(element).find(\"td\").find(\"#contentname\").html($(element).attr(\"data-content-name\"));\n                });\n            }\n            else {\n                $.each(source, function (index, element) {\n                    $(element).attr(\"data-display-value\", $(element).attr(\"data-content-item-name\"));\n                    $(element).closest(\".js-selected-course-row\").find(\"#contentname\").html($(element).attr(\"data-content-item-name\"));\n                    $(element).find(\"td\").find(\"#contentname\").html($(element).attr(\"data-content-item-name\"));\n                });\n            }\n        });\n        $(\".js-global-modal\").on(\"click\", \".js-remove-course\", function () {\n            var contentid = $(this).attr(\"data-content-id\");\n            $(this).closest(\"tr\").remove();\n            var buttons = $(\".content-id-\" + contentid).find(\"button.js-course-selection\");\n            buttons.removeAttr(\"disabled\");\n            //buttons.find(\"span.fa-solid\").removeClass(\"fa-check\").addClass(\"fa-plus\");\n            buttons.find(\"span.fas\").removeClass(\"fa-check\").addClass(\"fa-plus\");\n            buttons.attr(\"data-selected\", \"false\");\n            // Show any curriclum rows that were previoulsy hidden\n            var parentCurriculumId = null;\n            $(\".content-id-\" + contentid + \" button.js-course-selection\").each(function (i, e) {\n                if ($(e).attr('data-parent') != \"\") {\n                    parentCurriculumId = $(e).attr('data-parent');\n                }\n            });\n            if ($(\"button.js-course-selection[data-parent=\" + parentCurriculumId + \"]:not(:disabled)\").length > 0) {\n                var currButton = $(\"tr.curriculum-id-\" + parentCurriculumId).find(\"button.js-curriculum-selection\");\n                currButton.removeAttr(\"disabled\");\n                //currButton.find(\"span.fa-solid\").removeClass(\"fa-check\").addClass(\"fa-plus\");\n                currButton.find(\"span.fas\").removeClass(\"fa-check\").addClass(\"fa-plus\");\n            }\n            if ($(\".js-assignments-list\").find(\".js-assigned-course\").length == 0) {\n                $(\".js-assignments-list\").addClass(\"hidden\");\n                $(\".js-no-assignments\").removeClass(\"hidden\");\n            }\n        });\n        $(\".js-global-modal\").on(\"click\", \".set-up-assignments\", function () {\n            $(\".global-modal-container\").animate({\n                scrollTop: $(\"#setupAssignments\").offset().top\n            }, 2000);\n        });\n        $(\".js-global-modal\").on(\"click\", \".js-curriculum-selection\", function (e) {\n            var alreadyAdded = $(this).attr(\"data-selected\");\n            if (alreadyAdded === \"false\") {\n                $(this).attr(\"data-selected\", \"true\");\n                //$(this).find(\"span.fa-solid\").removeClass(\"fa-plus\").addClass(\"fa-check\");\n                $(this).find(\"span.fas\").removeClass(\"fa-plus\").addClass(\"fa-check\");\n            }\n            else {\n                $(this).attr(\"data-selected\", \"false\");\n                //$(this).find(\"span.fa-solid\").removeClass(\"fa-check\").addClass(\"fa-plus\");\n                $(this).find(\"span.fas\").removeClass(\"fa-check\").addClass(\"fa-plus\");\n            }\n            var fieldName = $(this).attr('data-field-name');\n            $(\".js-global-modal .js-assignments-list\").removeClass('hidden');\n            $(\".js-global-modal .js-no-assignments\").addClass(\"hidden\");\n            $.each($('.js-global-modal .js-course-selection[data-parent=' + fieldName + ']'), function (i, e) {\n                if (alreadyAdded === \"false\") {\n                    if ($(e).attr(\"data-selected\") === \"false\") {\n                        $(e).trigger('click');\n                    }\n                }\n                else {\n                    if ($(e).attr(\"data-selected\") === \"true\") {\n                        $(e).trigger('click');\n                    }\n                }\n            });\n        });\n        $(\".js-global-modal\").on(\"click\", \".js-course-selection\", function (e) {\n            var alreadyAdded = $(this).attr(\"data-selected\");\n            var contentid = $(this).attr(\"data-content-id\");\n            var buttons = $(\".content-id-\" + contentid).find(\"button.js-course-selection\");\n            var numberOfAssginments = 0;\n            var contentitemname = $(this).attr('data-content-item-name');\n            if (alreadyAdded === \"false\") {\n                var contentname = $(this).attr('data-content-name');\n                //var contentitemname = $(this).attr('data-content-item-name');\n                var displayvalue = $(this).attr('data-display-value');\n                var contenttype = $(this).attr('data-content-type');\n                var contentidentifier = $(this).attr('data-content-identifier');\n                var timeZone = $(\"#time-zone\").val();\n                var rawStartDate = $(\".js-global-modal\").attr(\"data-team-start-date\");\n                var rawEndDate = $(\".js-global-modal\").attr(\"data-team-end-date\");\n                var formattedRawStartDate = \"\";\n                var formattedRawEndDate = \"\";\n                if (rawStartDate != \"\") {\n                    formattedRawStartDate = DisplayDateInTimeZoneFormat(rawStartDate, \"MM/DD/YYYY\", timeZone);\n                }\n                if (rawEndDate != \"\") {\n                    formattedRawEndDate = DisplayDateInTimeZoneFormat(rawEndDate, \"MM/DD/YYYY\", timeZone);\n                }\n                buttons.attr(\"data-selected\", \"true\");\n                //buttons.find(\"span.fa-solid\").removeClass(\"fa-plus\").addClass(\"fa-check\");\n                buttons.find(\"span.fas\").removeClass(\"fa-plus\").addClass(\"fa-check\");\n                $(\".js-global-modal .js-assignments-list\").removeClass('hidden');\n                $(\".js-global-modal .js-no-assignments\").addClass(\"hidden\");\n                if ($('.js-global-modal .js-assignments-list .js-course-selection[data-content-identifier=' + contentidentifier + ']').length === 0) {\n                    var params = {\n                        ContentName: contentname,\n                        ContentItemName: contentitemname,\n                        ContentIdentifier: contentidentifier,\n                        ContentId: contentid,\n                        DisplayValue: displayvalue,\n                        ContentType: contenttype,\n                        StartDate: formattedRawStartDate,\n                        EndDate: formattedRawEndDate\n                    };\n                    $.when(globalThis.gage.submitAjaxRequest(params, \"/Team/GetSingleTeamContentAssignment\", \"GET\")\n                        .done(function (data, textStatus, request) {\n                        $(\".js-global-modal .js-assignments-list tbody\").append(data);\n                        var startDateEl = $('#selected-course-start-datepicker-' + contentid).get(0);\n                        var endDateEl = $('#selected-course-end-datepicker-' + contentid).get(0);\n                        // @ts-ignore\n                        me.initializeDatePickerForAddContentAssignment(startDateEl, endDateEl, formattedRawStartDate, formattedRawEndDate, false);\n                        numberOfAssginments = $(\".js-selected-courses tbody tr\").length;\n                        $(\".js-assignments-counter\").text(numberOfAssginments);\n                        if (numberOfAssginments > 0) {\n                            $(\".js-items-added-summary\").removeClass(\"hidden\");\n                        }\n                        else {\n                            $(\".js-items-added-summary\").addClass(\"hidden\");\n                        }\n                    })\n                        .fail(function (response, textStatus, errorThrown) {\n                    }));\n                }\n                // Hide any curriculums that have no visible courses under them remaining \n                var parentCurriculumId = null;\n                $(\".content-id-\" + contentid + \" button.js-course-selection\").each(function (i, e) {\n                    if ($(e).attr('data-parent') != \"\") {\n                        parentCurriculumId = $(e).attr('data-parent');\n                    }\n                });\n                if ($(\"button.js-course-selection[data-parent=\" + parentCurriculumId + \"]:not(:disabled)\").length == 0) {\n                    var currButton = $(\"tr.curriculum-id-\" + parentCurriculumId).find(\"button.js-curriculum-selection\");\n                    currButton.attr(\"disabled\", \"disabled\");\n                    //currButton.find(\"span.fa-solid\").removeClass(\"fa-plus\").addClass(\"fa-check\");\n                    currButton.find(\"span.fas\").removeClass(\"fa-plus\").addClass(\"fa-check\");\n                }\n                var addMsg = $(\".js-add-message\").text();\n                addMsg = addMsg.replace(\"{assignmentName}\", contentitemname);\n                $(\".js-last-action-msg\").text(addMsg);\n            }\n            else {\n                buttons.attr(\"data-selected\", \"false\");\n                //buttons.find(\"span.fa-solid\").removeClass(\"fa-check\").addClass(\"fa-plus\");\n                buttons.find(\"span.fas\").removeClass(\"fa-check\").addClass(\"fa-plus\");\n                $(\"tr.js-assigned-course[data-content-id=\" + contentid + \"]\").remove();\n                if ($(\"tr.js-assigned-course\").length === 0) {\n                    $(\".js-global-modal .js-assignments-list\").addClass('hidden');\n                    $(\".js-global-modal .js-no-assignments\").removeClass(\"hidden\");\n                }\n                var removeMsg = $(\".js-remove-message\").text();\n                removeMsg = removeMsg.replace(\"{assignmentName}\", contentitemname);\n                $(\".js-last-action-msg\").text(removeMsg);\n                numberOfAssginments = $(\".js-selected-courses tbody tr\").length;\n                $(\".js-assignments-counter\").text(numberOfAssginments);\n                if (numberOfAssginments > 0) {\n                    $(\".js-items-added-summary\").removeClass(\"hidden\");\n                }\n                else {\n                    $(\".js-items-added-summary\").addClass(\"hidden\");\n                }\n            }\n        });\n        $(\".js-global-modal\").on(\"click\", \".js-save-course-assignment\", function (e) {\n            e.preventDefault();\n            me.saveTeamContent($(e.currentTarget));\n        });\n        /* Save Edit Course Assginment Dates */\n        $(\".js-global-modal\").on(\"click\", \".js-save-edit-assignments\", function (e) {\n            e.preventDefault();\n            me.saveEditAssignments($(e.currentTarget));\n        });\n        $(\".\" + me._widgetContainer).on(\"click\", \".js-edit-course-details\", function (e) {\n            e.preventDefault();\n            me.getCourseDetail($(e.currentTarget));\n        });\n        $(\".\" + me._widgetContainer).on(\"click\", \".js-remove-member\", function (e) {\n            e.preventDefault();\n            me.removeMember($(e.currentTarget));\n        });\n        $(\".\" + me._widgetContainer).on(\"click\", \".js-promote-member, .js-demote-member\", function (e) {\n            e.preventDefault();\n            me.changeRole($(e.currentTarget));\n        });\n        $(\".js-global-modal\").on(\"click\", \".js-save-course-detail\", function (e) {\n            e.preventDefault();\n            me.saveCourseDetail($(e.currentTarget));\n        });\n        $(\".\" + me._widgetContainer).on(\"click\", \".js-completions-for-course\", function (e) {\n            e.preventDefault();\n            me.getParticipantCompletionsForCourse($(e.currentTarget));\n        });\n        $(\".js-global-modal\").on(\"click\", \".js-toggle-courses\", function () {\n            var currentState = $(this).attr(\"data-state\");\n            var identifier = $(this).closest(\"tr\").attr(\"id\");\n            if (currentState == \"collapsed\") {\n                $(this).attr('data-state', 'expanded');\n                $(\".js-curriculum-list-table\").find(\"tr[data-parent=\" + identifier + \"]\").removeClass(\"hidden\");\n                //$(this).find(\"span.fa-solid\").removeClass(\"fa-caret-right\").addClass(\"fa-caret-down\");\n                $(this).find(\"span.fas\").removeClass(\"fa-caret-right\").addClass(\"fa-caret-down\");\n            }\n            else {\n                $(this).attr('data-state', 'collapsed');\n                $(\".js-curriculum-list-table\").find(\"tr[data-parent=\" + identifier + \"]\").addClass(\"hidden\");\n                //$(this).find(\"span.fa-solid\").removeClass(\"fa-caret-down\").addClass(\"fa-caret-right\");\n                $(this).find(\"span.fas\").removeClass(\"fa-caret-down\").addClass(\"fa-caret-right\");\n            }\n        });\n        $(\".js-global-modal\").on(\"click\", \".js-show-set-start-dates\", function () {\n            if ($(this).attr(\"aria-expanded\") == \"false\") {\n                $(this).attr(\"aria-expanded\", \"true\");\n                $(\".js-global-modal\").find(\".js-set-start-dates-container\").removeClass(\"hidden\");\n            }\n            else {\n                $(this).attr(\"aria-expanded\", \"false\");\n                $(\".js-global-modal\").find(\".js-set-start-dates-container\").addClass(\"hidden\");\n            }\n        });\n        $(\".js-global-modal\").on(\"click\", \".js-show-set-end-dates\", function () {\n            if ($(this).attr(\"aria-expanded\") == \"false\") {\n                $(this).attr(\"aria-expanded\", \"true\");\n                $(\".js-global-modal\").find(\".js-set-end-dates-container\").removeClass(\"hidden\");\n            }\n            else {\n                $(this).attr(\"aria-expanded\", \"false\");\n                $(\".js-global-modal\").find(\".js-set-end-dates-container\").addClass(\"hidden\");\n            }\n        });\n        $(\".js-global-modal\").on(\"click\", \".js-show-set-end-dates\", function () {\n        });\n        me.setAssignmentDataTable();\n        me.setMemberDataTable();\n        me.bindTeamDatePickers();\n    }\n    setDefaultDatesForDatePicker() {\n        return dayjs().format(\"MM/DD/YYYY hh:mm A\");\n    }\n    copyToClipBoard() {\n        var me = this;\n        var textarea = document.createElement('textarea');\n        textarea.textContent = $.trim($(\".\" + me._widgetContainer).find(\".js-copy-link-label\").text());\n        document.body.appendChild(textarea);\n        var selection = document.getSelection();\n        var range = document.createRange();\n        range.selectNode(textarea);\n        selection.removeAllRanges();\n        selection.addRange(range);\n        console.log('copy success', document.execCommand('copy'));\n        selection.removeAllRanges();\n        document.body.removeChild(textarea);\n    }\n    bindTeamDatePickers() {\n        var originalTimeZone = $(\"#time-zone\").attr(\"data-time-zone\");\n        if (originalTimeZone != \"\") {\n            $(\"#time-zone\").val(originalTimeZone);\n        }\n        var tz = $(\"#time-zone\").val();\n        if ($(\"#start-date\").attr(\"data-start-date\") != \"\") {\n            var formattedStartDate = DisplayDateInTimeZoneFormat($(\"#start-date\").attr(\"data-start-date\"), \"MM/DD/YYYY\", tz);\n            $('#start-date').val(formattedStartDate);\n        }\n        if ($(\"#end-date\").attr(\"data-end-date\") != \"\") {\n            var formattedEndDate = DisplayDateInTimeZoneFormat($(\"#end-date\").attr(\"data-end-date\"), \"MM/DD/YYYY\", tz);\n            $('#end-date').val(formattedEndDate);\n        }\n        var pickers = ConfigureDatePicker($('.trigger-date'));\n        var startPicker = pickers.filter(function (element) { return element[0] == \"startdatepicker\"; })[0][1];\n        var endDatePicker = pickers.filter(function (element) { return element[0] == \"enddatepicker\"; })[0][1];\n        BindDatePickerEvents(startPicker, endDatePicker, document.getElementById(\"startdatepicker\"), document.getElementById(\"enddatepicker\"));\n    }\n    setAssignmentDataTable() {\n        var me = this;\n        var table = $(\".\" + me._widgetContainer).find(\".table.assignment-dataTable\");\n        var sortable = $(\".\" + me._widgetContainer).find(\".js-add-sortable\").val();\n        if (sortable === \"\") {\n            $(table).DataTable({\n                \"pageLength\": 25,\n                \"searching\": true,\n                \"dom\": '<\"top\"<\"left jsLeftFilter\"><\"right\"f><\"clearfix\">>rt<\"bottom\"<\"left\"l><\"right\"p>><\"clearfix\">',\n                order: [],\n                \"columnDefs\": [\n                    { type: 'date', \"targets\": 1 },\n                    { type: 'date', \"targets\": 2 },\n                    { \"targets\": 3, \"searchable\": false, \"orderable\": false },\n                    { \"targets\": 4, \"searchable\": false, \"orderable\": false },\n                    { \"targets\": 5, \"searjs-curriculum-selectionchable\": false, \"orderable\": false },\n                    { \"targets\": 6, \"searchable\": false, \"orderable\": false }\n                ],\n                \"drawCallback\": function (settings) {\n                    if ($(\".jsLeftFilter\").find(\".js-filter-table\").length === 0) {\n                        var aFilters = $(\".js-filter-table\").clone();\n                        $(\".js-filter-table\").appendTo(\".jsLeftFilter\");\n                    }\n                }\n            });\n        }\n        else {\n            $(table).DataTable({\n                \"pageLength\": 25,\n                \"searching\": true,\n                \"dom\": '<\"top\"<\"left jsLeftFilter\"><\"right\"f><\"clearfix\">>rt<\"bottom\"<\"left\"l><\"right\"p>><\"clearfix\">',\n                order: [],\n                \"columnDefs\": [\n                    { \"targets\": 0, \"searchable\": false, \"orderable\": false },\n                    { type: 'date', \"targets\": 2 },\n                    { type: 'date', \"targets\": 3 },\n                    { \"targets\": 4, \"searchable\": false, \"orderable\": false },\n                    { \"targets\": 5, \"searchable\": false, \"orderable\": false },\n                    { \"targets\": 6, \"searjs-curriculum-selectionchable\": false, \"orderable\": false },\n                    { \"targets\": 7, \"searchable\": false, \"orderable\": false }\n                ],\n                \"drawCallback\": function (settings) {\n                    if ($(\".jsLeftFilter\").find(\".js-filter-table\").length === 0) {\n                        var aFilters = $(\".js-filter-table\").clone();\n                        $(\".js-filter-table\").appendTo(\".jsLeftFilter\");\n                    }\n                }\n            });\n        }\n    }\n    setAssignmentContentListDataTable() {\n        var me = this;\n        var table = $(\".js-global-modal\").find(\".table.content-list-dataTable\");\n        $(table).DataTable({\n            \"pageLength\": 25,\n            \"searching\": true,\n            \"dom\": '<\"top\"<\"left\"><\"left js-add-all-content\"><\"right\"f><\"clearfix\">>rt<\"bottom\"<\"left\"l><\"right\"p>><\"clearfix\">',\n            \"columnDefs\": [\n                { \"targets\": 1, \"searchable\": false, \"orderable\": false },\n                { \"targets\": 3, \"searchable\": true, \"orderable\": false, \"visible\": false },\n                { \"targets\": 4, \"searchable\": false, \"orderable\": false },\n                { \"targets\": 5, \"searchable\": false, \"orderable\": false }\n            ],\n            \"drawCallback\": function (settings) {\n                var ogtable = $(\".content-list-dataTable\").DataTable();\n                var availCoursesCount = 0;\n                ogtable.rows({ filter: 'applied' }).every(function (index, element) {\n                    var row = $(this.node());\n                    var addColumn = row.find('td').eq(4);\n                    var addButton = $(addColumn).find(\"button.js-course-selection\");\n                    if ($(addButton).length > 0) {\n                        availCoursesCount++;\n                    }\n                });\n                $(\".js-add-all-content\").find(\".js-add-all-button\").remove();\n                var btn = $(\".js-add-all-button\").clone();\n                $(\".js-add-all-content\").append(btn);\n                var addAllButton = $(\".js-add-all-content\").find(\".js-add-all-button\");\n                addAllButton.removeClass(\"hidden\");\n                addAllButton.text(addAllButton.text().replace(\"0\", availCoursesCount.toString()));\n                $(\".js-add-all-content .js-add-all-button\").on(\"click\", function () {\n                    var table = $(\".content-list-dataTable\").DataTable();\n                    table.rows({ filter: 'applied' }).every(function (index, element) {\n                        var row = $(this.node());\n                        var addColumn = row.find('td').eq(4);\n                        var addButton = $(addColumn).find(\"button.js-course-selection\");\n                        if ($(addButton).attr(\"data-selected\") === \"false\") {\n                            if ($(addButton).is(\":visible\")) {\n                                $(addButton).trigger(\"click\");\n                            }\n                            else {\n                                var clonedBtn = $(addButton).clone();\n                                $(\".js-add-btn-wrapper button\").replaceWith($(clonedBtn));\n                                $(\".js-add-btn-wrapper button\").trigger(\"click\");\n                                $(addButton).attr(\"data-selected\", \"true\");\n                                //$(addButton).find(\"span.fa-solid\").removeClass(\"fa-plus\").addClass(\"fa-check\");\n                                $(addButton).find(\"span.fas\").removeClass(\"fa-plus\").addClass(\"fa-check\");\n                            }\n                        }\n                    });\n                });\n                $(\".js-toggle-add-content-filter\").on(\"click\", function (e) {\n                    var tgtFilter = $(this).attr(\"aria-controls\");\n                    var tgtState = $(this).attr(\"aria-expanded\");\n                    if (tgtState === \"false\") {\n                        $(\"#\" + tgtFilter).removeClass(\"hidden\");\n                        $(this).attr(\"aria-expanded\", \"true\");\n                        $(this).find(\"span\").removeClass(\"fa-plus\");\n                        $(this).find(\"span\").addClass(\"fa-minus\");\n                    }\n                    else {\n                        $(\"#\" + tgtFilter).addClass(\"hidden\");\n                        $(this).attr(\"aria-expanded\", \"false\");\n                        $(this).find(\"span\").removeClass(\"fa-minus\");\n                        $(this).find(\"span\").addClass(\"fa-plus\");\n                    }\n                });\n            }\n        });\n        $(\".js-tag-filter\").on(\"click\", function () {\n            var tagIds = \"\";\n            $(\".js-tag-filter:checked\").each(function (i, e) {\n                if (tagIds != \"\") {\n                    tagIds += \"|\";\n                }\n                tagIds += $(e).val();\n            });\n            var table = $(\".js-global-modal\").find(\".table.content-list-dataTable\").DataTable();\n            table.columns(3).search(tagIds, true, false).draw();\n        });\n    }\n    setMemberDataTable() {\n        var me = this;\n        var table = $(\".\" + me._widgetContainer).find(\".table.member-dataTable\");\n        $(table).DataTable({\n            \"pageLength\": 25,\n            \"searching\": true,\n            \"dom\": '<\"top\"<\"left\"><\"right\"f><\"clearfix\">>rt<\"bottom\"<\"left\"l><\"right\"p>><\"clearfix\">',\n            \"columnDefs\": [\n                { type: 'date', \"targets\": 2 },\n                { \"targets\": 1, \"searchable\": false, \"orderable\": false },\n                { \"targets\": 4, \"searchable\": false, \"orderable\": false },\n            ]\n        });\n    }\n    removeContentAssignment(button) {\n        var me = this;\n        var widgetcontainer = $(button).closest(\".js-content-assignment-row\").attr(\"data-widget-container\");\n        var confirmationMessage = $(button).attr(\"data-confirmation-message\");\n        var cancelText = $(button).attr(\"data-cancel-text\");\n        var okText = $(button).attr(\"data-ok-text\");\n        var teamIdentifier = $(button).attr(\"data-team-identifier\");\n        var teamContentId = $(button).attr(\"data-team-content-id\");\n        var params = {\n            TeamIdentifier: teamIdentifier,\n            Id: teamContentId\n        };\n        var url = \"/Api/Manage/TeamContent/Delete/\";\n        bootbox.confirm({\n            message: confirmationMessage,\n            buttons: {\n                'cancel': { label: cancelText },\n                'confirm': { label: okText, className: 'btn-success' }\n            },\n            callback: function (confirmed) {\n                if (confirmed) {\n                    $.when(globalThis.gage.submitAjaxRequest(params, url, \"DELETE\")\n                        .done(function (data, textStatus, request) {\n                        url = \"/Team/RenderTeamLeaderTeamDetail/\" + me._widgetId;\n                        var params = {\n                            teamIdentifier: teamIdentifier,\n                        };\n                        $.when(globalThis.gage.submitAjaxRequest(params, url, \"POST\")\n                            .done(function (data, textStatus, request) {\n                            $(\".\" + widgetcontainer).html(data);\n                            //$(\".\" + widgetcontainer).find('.nav-tabs a[href=\"#assignments\"]').tab('show');\n                            // @ts-ignore\n                            bootstrap.Tab.getOrCreateInstance(document.querySelector('#assignments-tab')).show();\n                            GlobalPopulateTimeZones($(\"#time-zone\"));\n                            me.bindTeamDatePickers();\n                            // Localize Date/Times for Assignments\n                            $.each($(\".localized-time\"), function (i, e) {\n                                var localDate = $(e).text();\n                                $(e).html(DisplayDateInLocalFormat(localDate, \"MM/DD/YYYY\") + \" <small>\" + DisplayDateInLocalFormat(localDate, \"hh:mm a\") + \"</small>\");\n                            });\n                            // Localize Date/Times for Student List\n                            $.each($(\".localized-time-joined\"), function (i, e) {\n                                var localDate = $(e).text();\n                                $(e).html(dayjs.utc(localDate).local().format('MM/DD/YYYY'));\n                            });\n                        }));\n                    })\n                        .fail(function (response, textStatus, errorThrown) {\n                        //@ts-ignore\n                        waitingDialog.hide();\n                    }));\n                }\n            }\n        });\n    }\n    getContentSelector(button) {\n        var me = this;\n        //@ts-ignore\n        waitingDialog.show();\n        var globalWindow = this._globalModal;\n        var params = {\n            selectedPageTypes: $(button).attr(\"data-selected-page-types\"),\n            selectedCategories: $(button).attr(\"data-selected-categories\"),\n            selectedTags: $(button).attr(\"data-selected-tags\"),\n            showContent: $(button).closest('#assignments').find('.js-show-content').val(),\n            showCurriculum: $(button).closest('#assignments').find('.js-show-curriculum').val(),\n            defaultFilterType: $(button).closest('#assignments').find('.js-default-filter-type').val(),\n            teamIdentifier: $(button).attr(\"data-team-identifier\")\n        };\n        $.when(globalThis.gage.submitAjaxRequest(params, \"/Team/GetContentSelector\", \"POST\")\n            .done(function (data, textStatus, request) {\n            //@ts-ignore\n            waitingDialog.hide();\n            var content = data;\n            globalWindow.openGlobalModal(content, \"panel\", { classes: \"add-assignment-modal\" });\n            var saveButton = $(\".js-global-modal\").find(\".js-save-course-assignment\");\n            me.setAssignmentContentListDataTable();\n            var widgetId = $(button).attr(\"data-widget-id\");\n            var teamidentifier = $(button).attr(\"data-team-identifier\");\n            var widgetcontainer = $(button).attr(\"data-widget-container\");\n            var allowcontentnameselection = $(button).attr(\"data-allow-content-name-selection\");\n            var defaultassignmentsource = $(button).attr(\"data-default-assignment-source\");\n            $(saveButton).attr(\"data-widget-id\", widgetId);\n            $(saveButton).attr(\"data-team-identifier\", teamidentifier);\n            $(saveButton).attr(\"data-widget-container\", widgetcontainer);\n            var startDate = $(\".\" + me._widgetContainer).find(\".widget-teamleader-team-detail\").attr(\"data-team-start-date\");\n            var endDate = $(\".\" + me._widgetContainer).find(\".widget-teamleader-team-detail\").attr(\"data-team-end-date\");\n            var teamInfo = $(\".\" + me._widgetContainer).find(\".widget-teamleader-team-detail\").attr(\"data-team-info\");\n            var formattedRawStartDate = \"\";\n            var formattedRawEndDate = \"\";\n            if (startDate != \"\") {\n                formattedRawStartDate = DisplayDateInTimeZoneFormat(startDate, \"MM/DD/YYYY\", timeZone);\n            }\n            if (endDate != \"\") {\n                formattedRawEndDate = DisplayDateInTimeZoneFormat(endDate, \"MM/DD/YYYY\", timeZone);\n            }\n            $(\".js-global-modal\").attr(\"data-team-start-date\", startDate);\n            $(\".js-global-modal\").attr(\"data-team-end-date\", endDate);\n            $(\".js-global-modal\").find(\"#data-team-info\").html(teamInfo);\n            $(\".js-global-modal\").find(\".js-assignment-tz\").text($(\"#time-zone\").val());\n            // Localize Date/Times\n            $.each($(\".js-display-date\"), function (i, e) {\n                var rawDate = $(e).text();\n                $(e).html(DisplayDateInLocalFormat(rawDate, \"MM/DD/YYYY\") + \" <small>\" + DisplayDateInLocalFormat(rawDate, \"hh:mm a\") + \"</small>\");\n            });\n            if (allowcontentnameselection !== \"True\") {\n                $(\".js-global-modal\").find(\".showsystemnames-container\").remove();\n            }\n            $.each($(content).find(\".tab-pane\"), function (i, v) {\n                var id = $(v).attr('data-id');\n                $(\".js-global-modal\").find(\".tab-pane[data-id=\" + id + \"]\").attr('id', id);\n            });\n            if (defaultassignmentsource === \"Curriculum\") {\n                //$(\".js-global-modal\").find('.js-assignments-tabs a[href=\"#curriculumview\"]').tab('show');\n                // @ts-ignore\n                bootstrap.Tab.getOrCreateInstance(document.querySelector('#curriculumview-tab')).show();\n            }\n            else {\n                //$(\".js-global-modal\").find('.js-assignments-tabs a[href=\"#allview\"]').tab('show');\n                // @ts-ignore\n                bootstrap.Tab.getOrCreateInstance(document.querySelector('#allview-tab')).show();\n            }\n            $(\".js-add-assignment-content\").on(\"click\", \".js-reset-content-filters\", function (e) {\n                -$(\"#contentFilter\").trigger(\"reset\");\n                var table = $(\".js-global-modal\").find(\".table.content-list-dataTable\").DataTable();\n                table.columns(3).search(\"\", true, false).draw();\n            });\n            var timeZone = $(\"#time-zone\").val();\n            if (startDate != \"\") {\n                $(\".js-global-modal\").find('#setStartDates').val(DisplayDateInTimeZoneFormat(startDate, \"MM/DD/YYYY hh:mm A\", timeZone));\n            }\n            if (endDate != \"\") {\n                $(\".js-global-modal\").find('#endStartDates').val(DisplayDateInTimeZoneFormat(endDate, \"MM/DD/YYYY hh:mm A\", timeZone));\n            }\n            var startDateEl = $('#startDatesPicker').get(0);\n            var endDateEl = $('#endDatesPicker').get(0);\n            // @ts-ignore\n            me.initializeDatePickerForAddContentAssignment(startDateEl, endDateEl, formattedRawStartDate, formattedRawEndDate, true);\n            /* var showContent = $(\".js-show-content\").val();\n            var showCurriculum = $(\".js-show-curriculum\").val();\n            var defaultFilterType = $(\".js-default-filter-type\").val();\n    \r\n            if (showContent === \"false\") {\n                $(\".js-content-data\").addClass(\"hidden\").removeClass(\"active\");\n                if ($(\".js-curriculum.data\").val() === \"true\") {\n                    $(\".js-curriculum.data\").addClass(\"active\");\n                }\n            } else if (showContent === \"true\" && showCurriculum === \"false\") {\n                $(\".js-content-data\").addClass(\"active\");\n            }\n    \r\n            if (showCurriculum === \"false\") {\n                $(\".js-curriculum-data\").addClass(\"hidden\").removeClass(\"active\");\n                if ($(\".js-content-data\").val() === \"true\") {\n                    $(\".js-content-data\").addClass(\"active\");\n                }\n            } else if (showCurriculum === \"true\" && showContent === \"false\") {\n                $(\".js-curriculum-data\").addClass(\"active\");\n            } */\n        })\n            .fail(function (response, textStatus, errorThrown) {\n            //@ts-ignore\n            waitingDialog.hide();\n        }));\n    }\n    initializeDatePickerForAddContentAssignment(startEl, endDateEl, startDate, endDate, loop) {\n        var me = this;\n        // @ts-ignore\n        var datetimepicker1 = new tempusDominus.TempusDominus(startEl, {\n            useCurrent: false,\n            localization: {\n                locale: 'en-US',\n                format: 'MM/dd/yyyy',\n            },\n            display: {\n                viewMode: 'calendar',\n                keepOpen: false,\n                buttons: {\n                    close: false,\n                },\n                components: {\n                    calendar: true,\n                    date: true,\n                    month: true,\n                    year: true,\n                    decades: true,\n                    clock: true,\n                    hours: false,\n                    minutes: false,\n                    seconds: false,\n                }\n            },\n        });\n        // @ts-ignore\n        var datetimepicker2 = new tempusDominus.TempusDominus(endDateEl, {\n            useCurrent: false,\n            localization: {\n                locale: 'en-US',\n                format: 'MM/dd/yyyy',\n            },\n            display: {\n                viewMode: 'calendar',\n                keepOpen: false,\n                buttons: {\n                    close: false,\n                },\n                components: {\n                    calendar: true,\n                    date: true,\n                    month: true,\n                    year: true,\n                    decades: true,\n                    clock: true,\n                    hours: false,\n                    minutes: false,\n                    seconds: false,\n                }\n            },\n        });\n        const subscriptionStart = datetimepicker1.subscribe(\"change.td\", (e) => {\n            datetimepicker2.updateOptions({\n                restrictions: {\n                    minDate: e.date,\n                },\n            });\n        });\n        if (loop) {\n            const subscriptionLoopForStartDate = datetimepicker1.subscribe(\"change.td\", (e) => {\n                var teamSingleContentAssignmentDtos = [];\n                $(\".js-global-modal .js-course-start-date\").each(function (i, el) {\n                    var parent = $(el).closest(\".js-assigned-course\");\n                    var endDate = $(parent).find(\".js-course-end-date\").val();\n                    var isRequired = $(parent).find(\"#selected-course-is-required\").is(\":checked\");\n                    var teamSingleContentAssignmentDto = {\n                        contentname: $(parent).attr('data-content-name'),\n                        contentitemname: $(parent).attr('data-content-item-name'),\n                        displayvalue: $(parent).attr('data-display-value'),\n                        contenttype: $(parent).attr('data-content-type'),\n                        contentidentifier: $(parent).attr('data-content-identifier'),\n                        startDate: dayjs(e.date).format(\"MM/DD/YYYY\"),\n                        endDate: endDate,\n                        contentId: $(parent).attr(\"data-content-id\"),\n                        isRequired: isRequired\n                    };\n                    teamSingleContentAssignmentDtos.push(teamSingleContentAssignmentDto);\n                });\n                if (teamSingleContentAssignmentDtos.length > 0) {\n                    var params = {\n                        dto: teamSingleContentAssignmentDtos\n                    };\n                    var startDate = $(\".\" + me._widgetContainer).find(\".widget-teamleader-team-detail\").attr(\"data-team-start-date\");\n                    var endDate = $(\".\" + me._widgetContainer).find(\".widget-teamleader-team-detail\").attr(\"data-team-end-date\");\n                    var teamInfo = $(\".\" + me._widgetContainer).find(\".widget-teamleader-team-detail\").attr(\"data-team-info\");\n                    var timeZone = $(\"#time-zone\").val();\n                    var formattedRawStartDate = \"\";\n                    var formattedRawEndDate = \"\";\n                    if (startDate != \"\") {\n                        formattedRawStartDate = DisplayDateInTimeZoneFormat(startDate, \"MM/DD/YYYY\", timeZone);\n                    }\n                    if (endDate != \"\") {\n                        formattedRawEndDate = DisplayDateInTimeZoneFormat(endDate, \"MM/DD/YYYY\", timeZone);\n                    }\n                    $.when(globalThis.gage.submitAjaxRequest(teamSingleContentAssignmentDtos, \"/Team/ReloadTeamContentAssignment\", \"POST\")\n                        .done(function (data, textStatus, request) {\n                        $(\".js-global-modal .js-assignments-list tbody\").html(data);\n                        $(\".js-global-modal .js-course-start-date\").each(function (i, el) {\n                            var startDateEl = $(\"#selected-course-start-datepicker-\" + $(el).attr(\"data-id\")).get(0);\n                            var endDateEl = $(\"#selected-course-end-datepicker-\" + $(el).attr(\"data-id\")).get(0);\n                            me.initializeDatePickerForAddContentAssignment(startDateEl, endDateEl, formattedRawStartDate, formattedRawEndDate, false);\n                        });\n                    })\n                        .fail(function (response, textStatus, errorThrown) {\n                    }));\n                }\n            });\n            const subscriptionLoopForEndDate = datetimepicker2.subscribe(\"change.td\", (e) => {\n                var teamSingleContentAssignmentDtos = [];\n                $(\".js-global-modal .js-course-end-date\").each(function (i, el) {\n                    var parent = $(el).closest(\".js-assigned-course\");\n                    var startDate = $(parent).find(\".js-course-start-date\").val();\n                    var isRequired = $(parent).find(\"#selected-course-is-required\").is(\":checked\");\n                    var teamSingleContentAssignmentDto = {\n                        contentname: $(parent).attr('data-content-name'),\n                        contentitemname: $(parent).attr('data-content-item-name'),\n                        displayvalue: $(parent).attr('data-display-value'),\n                        contenttype: $(parent).attr('data-content-type'),\n                        contentidentifier: $(parent).attr('data-content-identifier'),\n                        startDate: startDate,\n                        endDate: dayjs(e.date).format(\"MM/DD/YYYY\"),\n                        contentId: $(parent).attr(\"data-content-id\"),\n                        isRequired: isRequired\n                    };\n                    teamSingleContentAssignmentDtos.push(teamSingleContentAssignmentDto);\n                });\n                if (teamSingleContentAssignmentDtos.length > 0) {\n                    var params = {\n                        dto: teamSingleContentAssignmentDtos\n                    };\n                    var startDate = $(\".\" + me._widgetContainer).find(\".widget-teamleader-team-detail\").attr(\"data-team-start-date\");\n                    var endDate = $(\".\" + me._widgetContainer).find(\".widget-teamleader-team-detail\").attr(\"data-team-end-date\");\n                    var teamInfo = $(\".\" + me._widgetContainer).find(\".widget-teamleader-team-detail\").attr(\"data-team-info\");\n                    var timeZone = $(\"#time-zone\").val();\n                    var formattedRawendDate = \"\";\n                    var formattedRawEndDate = \"\";\n                    if (startDate != \"\") {\n                        formattedRawendDate = DisplayDateInTimeZoneFormat(startDate, \"MM/DD/YYYY\", timeZone);\n                    }\n                    if (endDate != \"\") {\n                        formattedRawEndDate = DisplayDateInTimeZoneFormat(endDate, \"MM/DD/YYYY\", timeZone);\n                    }\n                    $.when(globalThis.gage.submitAjaxRequest(teamSingleContentAssignmentDtos, \"/Team/ReloadTeamContentAssignment\", \"POST\")\n                        .done(function (data, textStatus, request) {\n                        $(\".js-global-modal .js-assignments-list tbody\").html(data);\n                        $(\".js-global-modal .js-course-end-date\").each(function (i, el) {\n                            var startDateEl = $(\"#selected-course-start-datepicker-\" + $(el).attr(\"data-id\")).get(0);\n                            var endDateEl = $(\"#selected-course-end-datepicker-\" + $(el).attr(\"data-id\")).get(0);\n                            me.initializeDatePickerForAddContentAssignment(startDateEl, endDateEl, formattedRawendDate, formattedRawEndDate, false);\n                        });\n                    })\n                        .fail(function (response, textStatus, errorThrown) {\n                    }));\n                }\n            });\n        }\n        //using subscribe method\n        const subscription = datetimepicker2.subscribe(\"change.td\", (e) => {\n            datetimepicker1.updateOptions({\n                restrictions: {\n                    maxDate: e.date,\n                },\n            });\n        });\n        if (startDate) {\n            datetimepicker1.updateOptions({\n                restrictions: {\n                    minDate: dayjs(startDate).toDate()\n                }\n            });\n        }\n        if (endDate) {\n            datetimepicker1.updateOptions({\n                restrictions: {\n                    maxDate: dayjs(endDate).toDate()\n                }\n            });\n            datetimepicker2.updateOptions({\n                restrictions: {\n                    maxDate: dayjs(endDate).toDate(),\n                    minDate: dayjs().toDate()\n                }\n            });\n        }\n    }\n    initializeDatePickerForEditContentAssignment(startEl, endDateEl, startDate, endDate, loop) {\n        var me = this;\n        // @ts-ignore\n        var datetimepicker1 = new tempusDominus.TempusDominus(startEl, {\n            useCurrent: false,\n            localization: {\n                locale: 'en-US',\n                format: 'MM/dd/yyyy',\n            },\n            display: {\n                viewMode: 'calendar',\n                keepOpen: false,\n                buttons: {\n                    close: false,\n                },\n                components: {\n                    calendar: true,\n                    date: true,\n                    month: true,\n                    year: true,\n                    decades: true,\n                    clock: true,\n                    hours: false,\n                    minutes: false,\n                    seconds: false,\n                }\n            },\n        });\n        // @ts-ignore\n        var datetimepicker2 = new tempusDominus.TempusDominus(endDateEl, {\n            useCurrent: false,\n            localization: {\n                locale: 'en-US',\n                format: 'MM/dd/yyyy',\n            },\n            display: {\n                viewMode: 'calendar',\n                keepOpen: false,\n                buttons: {\n                    close: false,\n                },\n                components: {\n                    calendar: true,\n                    date: true,\n                    month: true,\n                    year: true,\n                    decades: true,\n                    clock: true,\n                    hours: false,\n                    minutes: false,\n                    seconds: false,\n                }\n            },\n        });\n        const subscriptionStart = datetimepicker1.subscribe(\"change.td\", (e) => {\n            datetimepicker2.updateOptions({\n                restrictions: {\n                    minDate: e.date,\n                },\n            });\n        });\n        if (loop) {\n            const subscriptionLoopForStartDate = datetimepicker1.subscribe(\"change.td\", (e) => {\n                var teamSingleContentAssignmentDtos = [];\n                $(\".js-global-modal .js-course-start-date\").each(function (i, el) {\n                    var parent = $(el).closest(\".js-assigned-course\");\n                    var endDate = $(parent).find(\".js-course-end-date\").val();\n                    var teamSingleContentAssignmentDto = {\n                        contentname: $(parent).attr('data-content-name'),\n                        contentitemname: $(parent).attr('data-content-item-name'),\n                        contentidentifier: $(parent).attr('data-content-identifier'),\n                        startDate: dayjs(e.date).format(\"MM/DD/YYYY\"),\n                        endDate: endDate,\n                        contentId: $(parent).attr(\"data-content-id\"),\n                        contentType: $(parent).attr(\"data-content-type\"),\n                        title: $(parent).attr('data-content-item-name')\n                    };\n                    teamSingleContentAssignmentDtos.push(teamSingleContentAssignmentDto);\n                });\n                if (teamSingleContentAssignmentDtos.length > 0) {\n                    var params = {\n                        dto: teamSingleContentAssignmentDtos\n                    };\n                    var startDate = $(\".\" + me._widgetContainer).find(\".widget-teamleader-team-detail\").attr(\"data-team-start-date\");\n                    var endDate = $(\".\" + me._widgetContainer).find(\".widget-teamleader-team-detail\").attr(\"data-team-end-date\");\n                    var teamInfo = $(\".\" + me._widgetContainer).find(\".widget-teamleader-team-detail\").attr(\"data-team-info\");\n                    var timeZone = $(\"#time-zone\").val();\n                    var formattedRawStartDate = \"\";\n                    var formattedRawEndDate = \"\";\n                    if (startDate != \"\") {\n                        formattedRawStartDate = DisplayDateInTimeZoneFormat(startDate, \"MM/DD/YYYY\", timeZone);\n                    }\n                    if (endDate != \"\") {\n                        formattedRawEndDate = DisplayDateInTimeZoneFormat(endDate, \"MM/DD/YYYY\", timeZone);\n                    }\n                    $.when(globalThis.gage.submitAjaxRequest(teamSingleContentAssignmentDtos, \"/Team/ReloadEditTeamContentAssignment\", \"POST\")\n                        .done(function (data, textStatus, request) {\n                        $(\".js-global-modal .js-edit-assignments-list tbody\").html(data);\n                        $(\".js-global-modal .js-course-start-date\").each(function (i, el) {\n                            var startDateEl = $(\"#edit-course-start-datepicker-\" + $(el).attr(\"data-id\")).get(0);\n                            var endDateEl = $(\"#edit-course-start-datepicker-\" + $(el).attr(\"data-id\")).get(0);\n                            me.initializeDatePickerForEditContentAssignment(startDateEl, endDateEl, formattedRawStartDate, formattedRawEndDate, false);\n                        });\n                    })\n                        .fail(function (response, textStatus, errorThrown) {\n                    }));\n                }\n            });\n            const subscriptionLoopForEndDate = datetimepicker2.subscribe(\"change.td\", (e) => {\n                var teamSingleContentAssignmentDtos = [];\n                $(\".js-global-modal .js-course-end-date\").each(function (i, el) {\n                    var parent = $(el).closest(\".js-assigned-course\");\n                    var startDate = $(parent).find(\".js-course-start-date\").val();\n                    var isRequired = $(parent).find(\"#selected-course-is-required\").is(\":checked\");\n                    var teamSingleContentAssignmentDto = {\n                        contentname: $(parent).attr('data-content-name'),\n                        contentitemname: $(parent).attr('data-content-item-name'),\n                        contentidentifier: $(parent).attr('data-content-identifier'),\n                        startDate: startDate,\n                        endDate: dayjs(e.date).format(\"MM/DD/YYYY\"),\n                        contentId: $(parent).attr(\"data-content-id\"),\n                        contentType: $(parent).attr(\"data-content-type\"),\n                        title: $(parent).attr('data-content-item-name')\n                    };\n                    teamSingleContentAssignmentDtos.push(teamSingleContentAssignmentDto);\n                });\n                if (teamSingleContentAssignmentDtos.length > 0) {\n                    var params = {\n                        dto: teamSingleContentAssignmentDtos\n                    };\n                    var startDate = $(\".\" + me._widgetContainer).find(\".widget-teamleader-team-detail\").attr(\"data-team-start-date\");\n                    var endDate = $(\".\" + me._widgetContainer).find(\".widget-teamleader-team-detail\").attr(\"data-team-end-date\");\n                    var teamInfo = $(\".\" + me._widgetContainer).find(\".widget-teamleader-team-detail\").attr(\"data-team-info\");\n                    var timeZone = $(\"#time-zone\").val();\n                    var formattedRawendDate = \"\";\n                    var formattedRawEndDate = \"\";\n                    if (startDate != \"\") {\n                        formattedRawendDate = DisplayDateInTimeZoneFormat(startDate, \"MM/DD/YYYY\", timeZone);\n                    }\n                    if (endDate != \"\") {\n                        formattedRawEndDate = DisplayDateInTimeZoneFormat(endDate, \"MM/DD/YYYY\", timeZone);\n                    }\n                    $.when(globalThis.gage.submitAjaxRequest(teamSingleContentAssignmentDtos, \"/Team/ReloadEditTeamContentAssignment\", \"POST\")\n                        .done(function (data, textStatus, request) {\n                        $(\".js-global-modal .js-edit-assignments-list tbody\").html(data);\n                        $(\".js-global-modal .js-course-end-date\").each(function (i, el) {\n                            var startDateEl = $(\"#edit-course-start-datepicker-\" + $(el).attr(\"data-id\")).get(0);\n                            var endDateEl = $(\"#edit-course-start-datepicker-\" + $(el).attr(\"data-id\")).get(0);\n                            me.initializeDatePickerForEditContentAssignment(startDateEl, endDateEl, formattedRawendDate, formattedRawEndDate, false);\n                        });\n                    })\n                        .fail(function (response, textStatus, errorThrown) {\n                    }));\n                }\n            });\n        }\n        //using subscribe method\n        const subscription = datetimepicker2.subscribe(\"change.td\", (e) => {\n            datetimepicker1.updateOptions({\n                restrictions: {\n                    maxDate: e.date,\n                },\n            });\n        });\n        if (startDate) {\n            datetimepicker1.updateOptions({\n                restrictions: {\n                    minDate: dayjs(startDate).toDate()\n                }\n            });\n        }\n        if (endDate) {\n            datetimepicker1.updateOptions({\n                restrictions: {\n                    maxDate: dayjs(endDate).toDate()\n                }\n            });\n            datetimepicker2.updateOptions({\n                restrictions: {\n                    maxDate: dayjs(endDate).toDate(),\n                    minDate: dayjs().toDate()\n                }\n            });\n        }\n    }\n    /* Bulk edit assignments start and end dates */\n    getEditAssignmentsSelector(button) {\n        var me = this;\n        // @ts-ignore\n        waitingDialog.show(\"\");\n        var globalWindow = this._globalModal;\n        var params = {\n            selectedPageTypes: $(button).attr(\"data-selected-page-types\"),\n            selectedCategories: $(button).attr(\"data-selected-categories\"),\n            selectedTags: $(button).attr(\"data-selected-tags\"),\n            showContent: $(button).closest('#assignments').find('.js-show-content').val(),\n            showCurriculum: $(button).closest('#assignments').find('.js-show-curriculum').val(),\n            defaultFilterType: $(button).closest('#assignments').find('.js-default-filter-type').val(),\n            teamIdentifier: $(button).attr(\"data-team-identifier\")\n        };\n        $.when(globalThis.gage.submitAjaxRequest(params, \"/Team/GetEditAssignmentsSelector\", \"POST\")\n            .done(function (data, textStatus, request) {\n            // @ts-ignore\n            waitingDialog.hide();\n            var content = data;\n            globalWindow.openGlobalModal(content, \"panel\", { classes: \"edit-assignment-modal\" });\n            var saveButton = $(\".js-global-modal\").find(\".js-save-edit-assignments\");\n            var widgetId = $(button).attr(\"data-widget-id\");\n            var teamidentifier = $(button).attr(\"data-team-identifier\");\n            var widgetcontainer = $(button).attr(\"data-widget-container\");\n            $(saveButton).attr(\"data-widget-id\", widgetId);\n            $(saveButton).attr(\"data-team-identifier\", teamidentifier);\n            $(saveButton).attr(\"data-widget-container\", widgetcontainer);\n            var startDate = $(\".\" + me._widgetContainer).find(\".widget-teamleader-team-detail\").attr(\"data-team-start-date\");\n            var endDate = $(\".\" + me._widgetContainer).find(\".widget-teamleader-team-detail\").attr(\"data-team-end-date\");\n            var teamInfo = $(\".\" + me._widgetContainer).find(\".widget-teamleader-team-detail\").attr(\"data-team-info\");\n            var timeZone = $(\"#time-zone\").val();\n            var formattedRawStartDate = \"\";\n            var formattedRawEndDate = \"\";\n            if (startDate != \"\") {\n                formattedRawStartDate = DisplayDateInTimeZoneFormat(startDate, \"MM/DD/YYYY\", timeZone);\n            }\n            if (endDate != \"\") {\n                formattedRawEndDate = DisplayDateInTimeZoneFormat(endDate, \"MM/DD/YYYY\", timeZone);\n            }\n            $(\".js-global-modal\").attr(\"data-team-start-date\", startDate);\n            $(\".js-global-modal\").attr(\"data-team-end-date\", endDate);\n            $(\".js-global-modal\").find(\"#data-team-info\").html(teamInfo);\n            $(\".js-global-modal\").find(\".js-assignment-tz\").text($(\"#time-zone\").val());\n            // Localize Date/Times\n            $.each($(\".js-display-date\"), function (i, e) {\n                var rawDate = $(e).text();\n                $(e).html(DisplayDateInLocalFormat(rawDate, \"MM/DD/YYYY\") + \" <small>\" + DisplayDateInLocalFormat(rawDate, \"hh:mm a\") + \"</small>\");\n            });\n            var startDateEl = $('#startDatesPicker').get(0);\n            var endDateEl = $('#endDatesPicker').get(0);\n            // @ts-ignore\n            me.initializeDatePickerForEditContentAssignment(startDateEl, endDateEl, formattedRawStartDate, formattedRawEndDate, true);\n            $(\".js-global-modal .js-course-start-date\").each(function (i, el) {\n                if ($(\"#edit-course-start-date-\" + $(el).attr(\"data-id\")).val() != \"\") {\n                    var formattedStartDate = DisplayDateInTimeZoneFormat($(\"#edit-course-start-date-\" + $(el).attr(\"data-id\")).val(), \"MM/DD/YYYY\", timeZone);\n                    $(\"#edit-course-start-date-\" + $(el).attr(\"data-id\")).val(formattedStartDate);\n                }\n                if ($(\"#edit-course-end-date-\" + $(el).attr(\"data-id\")).val() != \"\") {\n                    var formattedEndDate = DisplayDateInTimeZoneFormat($(\"#edit-course-end-date-\" + $(el).attr(\"data-id\")).val(), \"MM/DD/YYYY\", timeZone);\n                    $(\"#edit-course-end-date-\" + $(el).attr(\"data-id\")).val(formattedEndDate);\n                }\n                var startDateEl = $(\"#edit-course-start-datepicker-\" + $(el).attr(\"data-id\")).get(0);\n                var endDateEl = $(\"#edit-course-end-datepicker-\" + $(el).attr(\"data-id\")).get(0);\n                me.initializeDatePickerForEditContentAssignment(startDateEl, endDateEl, formattedRawStartDate, formattedRawEndDate, false);\n            });\n        })\n            .fail(function (response, textStatus, errorThrown) {\n            // @ts-ignore\n            waitingDialog.hide();\n        }));\n    }\n    changeRole(button) {\n        var me = this;\n        var widgetcontainer = $(button).closest(\".js-member-detail-row\").attr(\"data-widget-container\");\n        var widgetId = $(button).closest(\".js-member-detail-row\").attr(\"data-widget-Id\");\n        var teamIdentifier = $(button).closest(\".js-member-detail-row\").attr(\"data-team-identifier\");\n        var participantId = $(button).closest(\".js-member-detail-row\").attr(\"data-participant-id\");\n        var action = $(button).attr(\"data-action\");\n        var confirmationMessage = $(button).attr(\"data-confirmation-message\");\n        var cancelText = $(button).attr(\"data-cancel-text\");\n        var okText = $(button).attr(\"data-ok-text\");\n        var datagroups = $(button).attr(\"data-groups\");\n        var url = \"\";\n        if (action === \"promote\") {\n            /*url = \"/API/Manage/Team/Promote/\" + teamIdentifier + \"/\" + participantId + \"/\" + datagroups;*/\n            url = \"/API/Manage/Team/Promote\";\n        }\n        else {\n            url = \"/API/Manage/Team/Demote/\";\n        }\n        var dto = {\n            Identifier: teamIdentifier,\n            OwnerParticipantID: participantId,\n            GroupsCollection: datagroups\n        };\n        bootbox.confirm({\n            message: confirmationMessage,\n            buttons: {\n                'cancel': { label: cancelText },\n                'confirm': { label: okText, className: 'btn-success' }\n            },\n            callback: function (confirmed) {\n                if (confirmed) {\n                    $.when(globalThis.gage.submitAjaxRequest(dto, url, \"POST\")\n                        .done(function (data, textStatus, request) {\n                        var params = {\n                            teamIdentifier: teamIdentifier,\n                        };\n                        url = \"/Team/RenderTeamLeaderTeamDetail/\" + widgetId;\n                        $.when(globalThis.gage.submitAjaxRequest(params, url, \"POST\")\n                            .done(function (data, textStatus, request) {\n                            $(\".\" + widgetcontainer).html(data);\n                            //$(\".\" + widgetcontainer).find('.nav-tabs a[href=\"#members\"]').tab('show');\n                            // @ts-ignore\n                            bootstrap.Tab.getOrCreateInstance(document.querySelector('#members-tab')).show();\n                            me.bindTeamDatePickers();\n                            // Localize Date/Times for Assignments\n                            $.each($(\".localized-time\"), function (i, e) {\n                                var localDate = $(e).text();\n                                $(e).html(DisplayDateInLocalFormat(localDate, \"MM/DD/YYYY\") + \" <small>\" + DisplayDateInLocalFormat(localDate, \"hh:mm a\") + \"</small>\");\n                            });\n                            // Localize Date/Times for Students\n                            $.each($(\".localized-time-joined\"), function (i, e) {\n                                var localDate = $(e).text();\n                                $(e).html(dayjs.utc(localDate).local().format('MM/DD/YYYY'));\n                            });\n                        }));\n                    })\n                        .fail(function (response, textStatus, errorThrown) {\n                    }));\n                }\n            }\n        });\n    }\n    removeMember(button) {\n        var me = this;\n        var widgetcontainer = $(button).closest(\".js-member-detail-row\").attr(\"data-widget-container\");\n        var widgetId = $(button).closest(\".js-member-detail-row\").attr(\"data-widget-Id\");\n        var teamIdentifier = $(button).closest(\".js-member-detail-row\").attr(\"data-team-identifier\");\n        var participantId = $(button).closest(\".js-member-detail-row\").attr(\"data-participant-id\");\n        var params = {\n            Id: teamIdentifier,\n            ParticipantId: participantId\n        };\n        var url = \"/API/Manage/Team/RemoveMember/\";\n        var confirmationMessage = $(button).attr(\"data-confirmation-message\");\n        var cancelText = $(button).attr(\"data-cancel-text\");\n        var okText = $(button).attr(\"data-ok-text\");\n        bootbox.confirm({\n            message: confirmationMessage,\n            buttons: {\n                'cancel': { label: cancelText },\n                'confirm': { label: okText, className: 'btn-success' }\n            },\n            callback: function (confirmed) {\n                if (confirmed) {\n                    $.when(globalThis.gage.submitAjaxRequest(params, url, \"POST\")\n                        .done(function (data, textStatus, request) {\n                        var params = {\n                            teamIdentifier: teamIdentifier,\n                        };\n                        url = \"/Team/RenderTeamLeaderTeamDetail/\" + widgetId;\n                        $.when(globalThis.gage.submitAjaxRequest(params, url, \"POST\")\n                            .done(function (data, textStatus, request) {\n                            $(\".\" + widgetcontainer).html(data);\n                            //$(\".\" + widgetcontainer).find('.nav-tabs a[href=\"#members\"]').tab('show');\n                            // @ts-ignore\n                            bootstrap.Tab.getOrCreateInstance(document.querySelector('#members-tab')).show();\n                            me.bindTeamDatePickers();\n                            // Localize Date/Times for Assignments\n                            $.each($(\".localized-time\"), function (i, e) {\n                                var localDate = $(e).text();\n                                $(e).html(DisplayDateInLocalFormat(localDate, \"MM/DD/YYYY\") + \" <small>\" + DisplayDateInLocalFormat(localDate, \"hh:mm a\") + \"</small>\");\n                            });\n                            // Localize Date/Times for Students\n                            $.each($(\".localized-time-joined\"), function (i, e) {\n                                var localDate = $(e).text();\n                                $(e).html(dayjs.utc(localDate).local().format('MM/DD/YYYY'));\n                            });\n                        }));\n                    })\n                        .fail(function (response, textStatus, errorThrown) {\n                    }));\n                }\n            }\n        });\n    }\n    getCourseDetail(button) {\n        var me = this;\n        var saveButton = $(\".js-edit-course-detail-container\").find(\".js-save-course-detail\");\n        var availabledate = $(button).attr(\"data-teamcontent-availabledate\") === \"\"\n            ? \"\"\n            : $(button).attr(\"data-teamcontent-availabledate\");\n        var duedate = $(button).attr(\"data-teamcontent-duedate\") === \"\"\n            ? \"\"\n            : $(button).attr(\"data-teamcontent-duedate\");\n        $(\".js-unformatted-startdate\").text(availabledate + \" UTC\");\n        $(\".js-unformatted-duedate\").text(duedate + \" UTC\");\n        var isrequired = $(button).attr(\"data-teamcontent-isrequired\");\n        var contentname = $(button).attr(\"data-teamcontent-coursename\");\n        var tz = $(\"#time-zone\").val();\n        var dateHeader = me.makeDate($(button).attr(\"data-anytime-text\"));\n        $(\".js-edit-course-detail-container\").find(\".js-edit-course-name\").html(contentname);\n        $(\".js-edit-course-detail-container\").find(\".js-edit-team-dates\").html(dateHeader);\n        $(\".js-edit-course-detail-container\").find(\".js-edit-course-isrequired\").removeAttr(\"checked\");\n        if (isrequired === \"True\") {\n            $(\".js-edit-course-detail-container\").find(\".js-edit-course-isrequired\").attr(\"checked\", \"checked\");\n        }\n        var widgetId = $(button).closest(\".widget-teamleader-team-detail\").attr(\"data-contentwidgetid\");\n        var teamContentId = $(button).attr(\"data-teamcontent-id\");\n        var contentIdentifier = $(button).attr(\"data-content-identifier\");\n        var teamidentifier = $(button).attr(\"data-team-identifier\");\n        var widgetcontainer = $(button).attr(\"data-widget-container\");\n        $(saveButton).attr(\"team-content-id\", teamContentId);\n        $(saveButton).attr(\"data-widget-id\", widgetId);\n        $(saveButton).attr(\"data-content-identifier\", contentIdentifier);\n        $(saveButton).attr(\"data-team-identifier\", teamidentifier);\n        $(saveButton).attr(\"data-widget-container\", widgetcontainer);\n        var content = $(\".js-edit-course-detail-container\").html();\n        content = content.replace(new RegExp(\"copy-\", \"g\"), \"\");\n        var globalWindow = this._globalModal;\n        globalWindow.openGlobalModal(content, \"panel\", { classes: \"edit-course-modal\" });\n        var formattedStartDate = \"\";\n        if (availabledate != \"\") {\n            formattedStartDate = DisplayDateInTimeZoneFormat(availabledate, \"MM/DD/YYYY\", tz);\n            $(\".js-global-modal\").find(\".js-edit-course-availabledate\").val(formattedStartDate);\n        }\n        var formattedEndDate = \"\";\n        if ((duedate != \"\") && (duedate != \"\" && dayjs.utc(duedate).local() > dayjs())) {\n            formattedEndDate = DisplayDateInTimeZoneFormat(duedate, \"MM/DD/YYYY\", tz);\n            $(\".js-global-modal\").find(\".js-edit-course-duedate\").val(formattedEndDate);\n        }\n        $(\".js-global-modal\").find(\".js-editassignment-tz\").text($(\"#time-zone\").val());\n        var startDate = $(\".\" + me._widgetContainer).find(\".widget-teamleader-team-detail\").attr(\"data-team-start-date\");\n        var endDate = $(\".\" + me._widgetContainer).find(\".widget-teamleader-team-detail\").attr(\"data-team-end-date\");\n        var formattedTeamStartDate = \"\";\n        var formattedTeamEndDate = \"\";\n        if (startDate != \"\") {\n            formattedTeamStartDate = DisplayDateInTimeZoneFormat(startDate, \"MM/DD/YYYY\", tz);\n        }\n        if (endDate != \"\") {\n            formattedTeamEndDate = DisplayDateInTimeZoneFormat(endDate, \"MM/DD/YYYY\", tz);\n        }\n        var startEl = $(\"#coursestartdatepicker\").get(0);\n        var endDateEl = $(\"#duedatepicker\").get(0);\n        me.bindDatePickers(startEl, endDateEl, formattedTeamStartDate, formattedTeamEndDate);\n    }\n    makeDate(anyTime) {\n        var me = this;\n        var startDate = $(\".\" + me._widgetContainer).find(\".widget-teamleader-team-detail\").attr(\"data-team-start-date\");\n        var endDate = $(\".\" + me._widgetContainer).find(\".widget-teamleader-team-detail\").attr(\"data-team-end-date\");\n        var dateHeader = \"\";\n        if (startDate !== \"\") {\n            dateHeader = \"(\" + dayjs.utc(startDate).local().format('MM/DD/YYYY') + \" <small>\" + dayjs.utc(startDate).local().format('hh:mm a') + \"</small>\" + \"<span class=\\\"hidden\\\">\" + startDate + \" UTC</span>\";\n        }\n        else {\n            dateHeader = \"(\" + anyTime;\n        }\n        if (endDate) {\n            dateHeader += \" - \" + dayjs.utc(endDate).local().format('MM/DD/YYYY') + \" <small>\" + dayjs.utc(endDate).local().format('hh:mm a') + \"</small>\" + \"<span class=\\\"hidden\\\">\" + endDate + \" UTC</span>\";\n        }\n        else {\n            dateHeader += \" - \" + endDate;\n        }\n        dateHeader += \")\";\n        return dateHeader;\n    }\n    bindDatePickers(startEl, endDateEl, startDate, endDate) {\n        var me = this;\n        // @ts-ignore\n        var datetimepicker1 = new tempusDominus.TempusDominus(startEl, {\n            useCurrent: false,\n            localization: {\n                locale: 'en-US',\n                format: 'MM/dd/yyyy',\n            },\n            display: {\n                viewMode: 'calendar',\n                keepOpen: false,\n                buttons: {\n                    close: false,\n                },\n                components: {\n                    calendar: true,\n                    date: true,\n                    month: true,\n                    year: true,\n                    decades: true,\n                    clock: true,\n                    hours: false,\n                    minutes: false,\n                    seconds: false,\n                }\n            },\n        });\n        // @ts-ignore\n        var datetimepicker2 = new tempusDominus.TempusDominus(endDateEl, {\n            useCurrent: false,\n            localization: {\n                locale: 'en-US',\n                format: 'MM/dd/yyyy',\n            },\n            display: {\n                viewMode: 'calendar',\n                keepOpen: false,\n                buttons: {\n                    close: false,\n                },\n                components: {\n                    calendar: true,\n                    date: true,\n                    month: true,\n                    year: true,\n                    decades: true,\n                    clock: true,\n                    hours: false,\n                    minutes: false,\n                    seconds: false,\n                }\n            },\n        });\n        const subscriptionStart = datetimepicker1.subscribe(\"change.td\", (e) => {\n            datetimepicker2.updateOptions({\n                restrictions: {\n                    minDate: e.date,\n                },\n            });\n        });\n        //using subscribe method\n        const subscription = datetimepicker2.subscribe(\"change.td\", (e) => {\n            datetimepicker1.updateOptions({\n                restrictions: {\n                    maxDate: e.date,\n                },\n            });\n        });\n        if (startDate) {\n            datetimepicker1.updateOptions({\n                restrictions: {\n                    minDate: dayjs(startDate).toDate()\n                }\n            });\n        }\n        if (endDate) {\n            datetimepicker1.updateOptions({\n                restrictions: {\n                    maxDate: dayjs(endDate).toDate()\n                }\n            });\n            datetimepicker2.updateOptions({\n                restrictions: {\n                    maxDate: dayjs(endDate).toDate(),\n                    minDate: dayjs().toDate()\n                }\n            });\n        }\n    }\n    getParticipantCompletionsForCourse(button) {\n        var me = this;\n        var globalWindow = this._globalModal;\n        var identifier = $(button).attr(\"data-team-identifier\");\n        var contentidentifier = $(button).attr('data-content-identifier');\n        var url = \"/Team/GetParticipantCompletionsForContent/\" + identifier + \"/\" + contentidentifier;\n        $.when(globalThis.gage.submitAjaxRequest(null, url, \"GET\")\n            .done(function (data, textStatus, request) {\n            globalWindow.openGlobalModal(data, \"panel\", { classes: \"team-detail-panel\" });\n            var table = $(\".js-global-modal\").find(\".table.dataTable\");\n            $(table).DataTable({\n                \"searching\": true,\n                \"columnDefs\": [\n                    {\n                        \"targets\": 2,\n                        \"searchable\": false\n                    }\n                ],\n            });\n            var filterTable = $(\".js-global-modal\").find(\".datatableFilter\");\n            $(filterTable).on(\"change\", function () {\n                me.filterDataTable(me.FilterValues, this);\n            });\n        })\n            .fail(function (response, textStatus, errorThrown) {\n        }));\n    }\n    filterDataTable(FilterValues, e) {\n        try {\n            var table = $(\".js-global-modal\").find(\".table.dataTable\");\n            var filterType = $(e).data(\"filter-type\");\n            var filterColumn = $(e).data(\"filter-column\");\n            FilterValues[filterType] = \"\";\n            if ($(e).is(\":checked\") && $(e).data('filter-type') === filterType) {\n                var val = $(e).val();\n                if (val !== \"all\") {\n                    val = \"^\" + val + \"$\";\n                    FilterValues[filterType] = FilterValues[filterType] + val + \"|\";\n                    FilterValues[filterType] = FilterValues[filterType].slice(0, -1);\n                    $(table).DataTable().columns(filterColumn).search(FilterValues[filterType], true, false).draw();\n                }\n                else {\n                    $(table).DataTable().search('').columns().search('').draw();\n                }\n            }\n        }\n        catch (e) {\n            alert(e.message);\n        }\n    }\n    saveCourseDetail(button) {\n        var me = this;\n        var globalWindow = this._globalModal;\n        var widgetcontainer = $(button).attr(\"data-widget-container\");\n        var widgetId = $(button).attr(\"data-widget-Id\");\n        var identifier = $(button).attr(\"data-team-identifier\");\n        var contentidentifier = $(button).attr('data-content-identifier');\n        var url = \"/Api/Manage/TeamContent/\";\n        var availabledate = $(\"#availableDate\").val();\n        var tz = $(me._widget).find(\"#time-zone\").val();\n        if (availabledate != \"\") {\n            availabledate = SetTime(availabledate, '00', '00', '00');\n            availabledate = GetISODate(availabledate, tz, \"MM/DD/YYYY hh:mm:ss a\");\n        }\n        var duedate = $('#dueDate').val();\n        if (duedate != \"\") {\n            duedate = SetTime(duedate, '23', '59', '59');\n            duedate = GetISODate(duedate, tz, \"MM/DD/YYYY hh:mm:s a\");\n        }\n        var params = {};\n        params = {\n            teamIdentifier: identifier,\n            contentIdentifier: contentidentifier,\n            availableDate: availabledate,\n            dueDate: duedate,\n            isRequired: $(\".js-global-modal\").find(\".js-edit-course-isrequired\").is(\":checked\")\n        };\n        $.when(globalThis.gage.submitAjaxRequest(params, url, \"PUT\")\n            .done(function (data, textStatus, request) {\n            params = {\n                teamIdentifier: identifier,\n            };\n            url = \"/Team/RenderTeamLeaderTeamDetail/\" + widgetId;\n            $.when(globalThis.gage.submitAjaxRequest(params, url, \"POST\")\n                .done(function (data, textStatus, request) {\n                $(\".\" + widgetcontainer).html(data);\n                GlobalPopulateTimeZones($(\".\" + widgetcontainer).find(\"#time-zone\"));\n                me.bindTeamDatePickers();\n                // Localize Date/Times for Assignments\n                $.each($(\".localized-time\"), function (i, e) {\n                    var localDate = $(e).text();\n                    $(e).html(DisplayDateInLocalFormat(localDate, \"MM/DD/YYYY\") + \" <small>\" + DisplayDateInLocalFormat(localDate, \"hh:mm a\") + \"</small>\");\n                });\n                // Localize Date/Times for Students\n                $.each($(\".localized-time-joined\"), function (i, e) {\n                    var localDate = $(e).text();\n                    $(e).html(dayjs.utc(localDate).local().format('MM/DD/YYYY'));\n                });\n                //$(\".\" + widgetcontainer).find('.nav-tabs a[href=\"#assignments\"]').tab('show');\n                // @ts-ignore\n                bootstrap.Tab.getOrCreateInstance(document.querySelector('#assignments-tab')).show();\n                globalWindow.closeGlobalModal();\n                me.setAssignmentDataTable();\n            }));\n        })\n            .fail(function (response, textStatus, errorThrown) {\n            var errorContainer = me.getValidationDiv(\".js-validation-container\");\n            /*var errorContainer = $(\".js-global-modal\").find(\".js-validation-container\");*/\n            $(errorContainer).removeClass(\"col-lg-offset-2\");\n            globalThis.gage.getValidationErrorMessage(errorContainer, response);\n        }));\n    }\n    saveTeamContent(button) {\n        var me = this;\n        $(button).attr(\"disabled\", \"true\");\n        $(\".js-wait-add-assignment\").removeClass(\"hidden\");\n        var globalWindow = this._globalModal;\n        var widgetcontainer = $(button).attr(\"data-widget-container\");\n        var timeZone = $(\"#time-zone\").val();\n        var widgetId = $(button).attr(\"data-widget-Id\");\n        var contentId = $(\".js-global-modal .js-assignments-list\").find(\".js-course-selection\")\n            .map(function () {\n            return $(this).attr(\"data-content-identifier\");\n        }).get().join();\n        var identifier = $(button).attr(\"data-team-identifier\");\n        var result = [];\n        var selected = $(\".js-global-modal .js-assignments-list\").find(\".js-assigned-course\");\n        $.each(selected, function (index, item) {\n            var field = {\n                \"contentIdentifier\": null,\n                \"contentId\": null,\n                \"availableDate\": null,\n                \"dueDate\": null,\n                \"isRequired\": false\n            };\n            field.contentIdentifier = $(this).attr(\"data-content-identifier\");\n            field.contentId = $(this).attr(\"data-content-id\");\n            var sDate = $(\"#selected-course-start-date-\" + field.contentId).val();\n            var dDate = $(\"#selected-course-end-date-\" + field.contentId).val();\n            if (sDate != \"\") {\n                sDate = SetTime(sDate, '00', '00', '00');\n                sDate = GetISODate(sDate, timeZone, \"MM/DD/YYYY hh:mm:ss a\");\n            }\n            if (dDate != \"\") {\n                dDate = SetTime(dDate, '23', '59', '59');\n                dDate = GetISODate(dDate, timeZone, \"MM/DD/YYYY hh:mm:s a\");\n            }\n            field.availableDate = sDate == null ? null : sDate;\n            field.dueDate = dDate == null ? null : dDate;\n            field.isRequired = $(this).find(\"#selected-course-is-required\").is(\":checked\");\n            result.push(field);\n        });\n        var params = {};\n        params = {\n            teamIdentifier: identifier,\n            contentDetails: result,\n        };\n        var url = \"/Api/Manage/TeamContent\";\n        $.when(globalThis.gage.submitAjaxRequest(params, url, \"POST\")\n            .done(function (data, textStatus, request) {\n            params = {\n                teamIdentifier: identifier,\n            };\n            url = \"/Team/RenderTeamLeaderTeamDetail/\" + widgetId;\n            $.when(globalThis.gage.submitAjaxRequest(params, url, \"POST\")\n                .done(function (data, textStatus, request) {\n                $(\".\" + widgetcontainer).html(data);\n                //$(\".\" + widgetcontainer).find('.nav-tabs a[href=\"#assignments\"]').tab('show');\n                // @ts-ignore\n                bootstrap.Tab.getOrCreateInstance(document.querySelector('#assignments-tab')).show();\n                GlobalPopulateTimeZones($(\"#time-zone\"));\n                me.bindTeamDatePickers();\n                // Localize Date/Times for Assignments\n                $.each($(\".localized-time\"), function (i, e) {\n                    var localDate = $(e).text();\n                    $(e).html(DisplayDateInLocalFormat(localDate, \"MM/DD/YYYY\") + \" <small>\" + DisplayDateInLocalFormat(localDate, \"hh:mm a\") + \"</small>\");\n                });\n                // Localize Date/Times for Students\n                $.each($(\".localized-time-joined\"), function (i, e) {\n                    var localDate = $(e).text();\n                    $(e).html(dayjs.utc(localDate).local().format('MM/DD/YYYY'));\n                });\n                globalWindow.closeGlobalModal();\n                me.setAssignmentDataTable();\n                $(button).attr(\"disabled\", \"false\");\n                $(\".js-wait-add-assignment\").addClass(\"hidden\");\n            }));\n        })\n            .fail(function (response, textStatus, errorThrown) {\n            $(button).attr(\"disabled\", \"false\");\n            $(\".js-wait-add-assignment\").addClass(\"hidden\");\n            var errorContainer = me.getValidationDiv(\".js-validation-container\");\n            /*var errorContainer = $(\".js-global-modal\").find(\".js-validation-container\");*/\n            $(errorContainer).removeClass(\"col-lg-offset-2\");\n            globalThis.gage.getValidationErrorMessage(errorContainer, response);\n        }));\n    }\n    saveEditAssignments(button) {\n        var me = this;\n        $(button).attr(\"disabled\", \"true\");\n        $(\".js-wait-edit-assignment\").removeClass(\"hidden\");\n        var globalWindow = this._globalModal;\n        var widgetcontainer = $(button).attr(\"data-widget-container\");\n        var timeZone = $(\"#time-zone\").val();\n        var widgetId = $(button).attr(\"data-widget-Id\");\n        /* var contentId = $(\".js-global-modal .js-assignments-list\").find(\".js-course-selection\")\n            .map(function () {\n                return $(this).attr(\"data-content-identifier\");\n            }).get().join(); */\n        var identifier = $(button).attr(\"data-team-identifier\");\n        var result = [];\n        var selected = $(\".js-global-modal .js-edit-assignments-list\").find(\".js-assigned-course\");\n        $.each(selected, function (index, item) {\n            var field = {\n                \"contentIdentifier\": null,\n                \"contentId\": null,\n                \"availableDate\": null,\n                \"dueDate\": null,\n                \"isRequired\": false\n            };\n            field.contentIdentifier = $(this).attr(\"data-content-identifier\");\n            field.contentId = $(this).attr(\"data-content-id\");\n            var sDate = $(\"#edit-course-start-date-\" + field.contentId).val();\n            var dDate = $(\"#edit-course-end-date-\" + field.contentId).val();\n            if (sDate != \"\") {\n                sDate = SetTime(sDate, '00', '00', '00');\n                sDate = GetISODate(sDate, timeZone, \"MM/DD/YYYY hh:mm:ss a\");\n            }\n            if (dDate != \"\") {\n                dDate = SetTime(dDate, '23', '59', '59');\n                dDate = GetISODate(dDate, timeZone, \"MM/DD/YYYY hh:mm:s a\");\n            }\n            field.availableDate = sDate == null ? null : sDate;\n            field.dueDate = dDate == null ? null : dDate;\n            field.isRequired = $(this).find(\"#selected-course-is-required\").is(\":checked\");\n            result.push(field);\n        });\n        var params = {};\n        params = {\n            teamIdentifier: identifier,\n            contentDetails: result,\n        };\n        /* Need to hook-up to endpoint */\n        var url = \"/Api/Manage/TeamContent/UpdateTeamContentAssignments\";\n        $.when(globalThis.gage.submitAjaxRequest(params, url, \"POST\")\n            .done(function (data, textStatus, request) {\n            params = {\n                teamIdentifier: identifier,\n            };\n            url = \"/Team/RenderTeamLeaderTeamDetail/\" + widgetId;\n            $.when(globalThis.gage.submitAjaxRequest(params, url, \"POST\")\n                .done(function (data, textStatus, request) {\n                $(\".\" + widgetcontainer).html(data);\n                //$(\".\" + widgetcontainer).find('.nav-tabs a[href=\"#assignments\"]').tab('show');\n                // @ts-ignore\n                bootstrap.Tab.getOrCreateInstance(document.querySelector('#assignments-tab')).show();\n                GlobalPopulateTimeZones($(\"#time-zone\"));\n                me.bindTeamDatePickers();\n                // Localize Date/Times for Assignments\n                $.each($(\".localized-time\"), function (i, e) {\n                    var localDate = $(e).text();\n                    $(e).html(DisplayDateInLocalFormat(localDate, \"MM/DD/YYYY\") + \" <small>\" + DisplayDateInLocalFormat(localDate, \"hh:mm a\") + \"</small>\");\n                });\n                // Localize Date/Times for Students\n                $.each($(\".localized-time-joined\"), function (i, e) {\n                    var localDate = $(e).text();\n                    $(e).html(dayjs.utc(localDate).local().format('MM/DD/YYYY'));\n                });\n                globalWindow.closeGlobalModal();\n                me.setAssignmentDataTable();\n                $(button).attr(\"disabled\", \"false\");\n                $(\".js-wait-add-assignment\").addClass(\"hidden\");\n            }));\n        })\n            .fail(function (response, textStatus, errorThrown) {\n            $(button).attr(\"disabled\", \"false\");\n            $(\".js-wait-add-assignment\").addClass(\"hidden\");\n            /*var errorContainer = $(\".js-global-modal\").find(\".js-validation-container\");*/\n            var errorContainer = me.getValidationDiv(\".js-validation-container\");\n            $(errorContainer).removeClass(\"col-lg-offset-2\");\n            globalThis.gage.getValidationErrorMessage(errorContainer, response);\n        }));\n    }\n    getTeamContentCompletionForParticipant(button) {\n        var me = this;\n        var identifier = $(button).closest(\".widget-teamleader-team-detail\").attr(\"data-team-identifier\");\n        var participantId = $(button).attr(\"data-participant-id\");\n        var params = {\n            teamIdentifier: identifier,\n            participantId: participantId\n        };\n        $.when(globalThis.gage.submitAjaxRequest(params, \"/Team/GetTeamContentCompletionForParticipant\", \"GET\")\n            .done(function (data, textStatus, request) {\n            var options = {\n                classes: \"member-detail-panel\"\n            };\n            me._globalModal.openGlobalModal(data, \"panel\", options);\n            ApplyGagePopOverParticipant($('[data-bs-toggle=\"popover\"]'));\n            $.each($(\".localized-time2\"), function (i, e) {\n                var localDate = $(e).text();\n                $(e).text(dayjs.utc(localDate).local().format('MM/DD/YYYY'));\n            });\n        }));\n    }\n    compareDates(dateTimeA, dateTimeB) {\n        var momentA = new Date(dateTimeA);\n        var momentB = new Date(dateTimeB);\n        if (momentA > momentB)\n            return 1;\n        else if (momentA < momentB)\n            return -1;\n        else\n            return 0;\n    }\n    saveTeam(button) {\n        $(\".js-save-team-detail\").attr(\"disabled\", \"true\");\n        $(\".js-wait-team-properties\").removeClass(\"hidden\");\n        var currentPageUrl = $(button).attr(\"data-current-page-url\");\n        var widgetId = $(button).attr(\"data-widgetId\");\n        var widgetcontainer = $(button).attr(\"data-widget-container\");\n        var identifier = $(button).closest(\".widget-teamleader-team-detail\").attr(\"data-team-identifier\");\n        var url = \"/Api/Manage/Team/Update/\" + identifier;\n        var method = \"PUT\";\n        if (identifier == undefined || identifier.trim().length == 0) {\n            url = \"/Api/Manage/Team/Create\";\n            method = \"POST\";\n        }\n        var me = this;\n        var overwriteMessage = $(button).attr(\"data-overwrite-message\");\n        var startDate = $('#start-date').val();\n        var endDate = $('#end-date').val();\n        var tz = $(me._widget).find(\"#time-zone\").val();\n        var itemStatusId = parseInt($(me._widget).find(\"#item-status\").val());\n        var assignmentSortOrder = $(me._widget).find(\".js-assignment-sort-order\").val();\n        if (startDate != \"\") {\n            startDate = SetTime(startDate, '00', '00', '00');\n            startDate = GetISODate(startDate, tz, \"MM/DD/YYYY hh:mm:ss a\");\n        }\n        if (endDate != \"\") {\n            endDate = SetTime(endDate, '23', '59', '59');\n            endDate = GetISODate(endDate, tz, \"MM/DD/YYYY hh:mm:s a\");\n        }\n        if (startDate !== null || endDate !== null) {\n            if (tz == null || tz == undefined) {\n                alert(\"TimeZone must be selected\");\n                $(\".js-save-team-detail\").attr(\"disabled\", \"false\");\n                $(\".js-wait-team-properties\").addClass(\"hidden\");\n                $(\".js-save-team-detail\").removeattr(\"disabled\");\n                return false;\n            }\n        }\n        if (startDate !== null && endDate !== null) {\n            if (me.compareDates(endDate, startDate) < 0) {\n                alert(\"End Date must be greater then Start Date\");\n                $(\".js-save-team-detail\").attr(\"disabled\", \"false\");\n                $(\".js-wait-team-properties\").addClass(\"hidden\");\n                $(\".js-save-team-detail\").removeattr(\"disabled\");\n                return false;\n            }\n        }\n        var params = {};\n        params = {\n            teamName: $(me._widget).find(\"#team-name\").val(),\n            startDate: startDate ? startDate : null,\n            endDate: endDate ? endDate : null,\n            itemStatusId: itemStatusId,\n            teamAssignmentSortOrder: assignmentSortOrder,\n            timeZone: tz\n        };\n        $.when(globalThis.gage.submitAjaxRequest(params, url, method)\n            .done(function (data, textStatus, request) {\n            params = {\n                id: widgetId,\n                teamIdentifier: identifier,\n                teamSaved: true\n            };\n            url = '/Team/RenderTeamLeaderTeamDetail/' + widgetId;\n            $.when(globalThis.gage.submitAjaxRequest(params, url, \"POST\")\n                .done(function (data, textStatus, request) {\n                window.location.href = currentPageUrl;\n                $(\".js-save-team-detail\").removeAttr(\"disabled\");\n                $(\".\" + widgetcontainer).html(data);\n                $(\".js-wait-team-properties\").addClass(\"hidden\");\n                GlobalPopulateTimeZones($(\"#time-zone\"));\n                me.bindTeamDatePickers();\n                // Localize Date/Times for Assignments\n                $.each($(\".localized-time\"), function (i, e) {\n                    var localDate = $(e).text();\n                    $(e).html(DisplayDateInLocalFormat(localDate, \"MM/DD/YYYY\") + \" <small>\" + DisplayDateInLocalFormat(localDate, \"hh:mm a\") + \"</small>\");\n                });\n                // Localize Date/Times for Students\n                $.each($(\".localized-time-joined\"), function (i, e) {\n                    var localDate = $(e).text();\n                    $(e).html(dayjs.utc(localDate).local().format('MM/DD/YYYY'));\n                });\n                me.setAssignmentDataTable();\n            }));\n        })\n            .fail(function (response, textStatus, errorThrown) {\n            $(\".js-save-team-detail\").removeAttr(\"disabled\");\n            $(\".js-wait-team-properties\").addClass(\"hidden\");\n            if (response.responseJSON !== undefined && response.responseJSON.data != undefined && response.responseJSON.data == \"duplicate\") {\n                if (confirm(overwriteMessage)) {\n                    //params = {\n                    //\tteamName: $(me._widget).find(\"#team-name\").val(),\n                    //\tstartDate: $(me._widget).find(\"#start-date\").val() !== \"\" ? $(me._widget).find(\"#start-date\").val() : null,\n                    //\tendDate: $(me._widget).find(\"#end-date\").val() !== \"\" ? $(me._widget).find(\"#end-date\").val() : null,\n                    //\tTimeZone: $(\"#time-zone\").val(),\n                    //\titemStatusId: itemStatusId,\n                    //\tteamAssignmentSortOrder: $(me._widget).find(\".js-assignment-sort-order\").val(),\n                    //\toverRide: true\n                    //};\n                    params = {\n                        teamName: $(me._widget).find(\"#team-name\").val(),\n                        startDate: startDate ? startDate : null,\n                        endDate: endDate ? endDate : null,\n                        itemStatusId: itemStatusId,\n                        teamAssignmentSortOrder: assignmentSortOrder,\n                        timeZone: tz,\n                        overRide: true\n                    };\n                    $.when(globalThis.gage.submitAjaxRequest(params, url, \"PUT\")\n                        .done(function (data, textStatus, request) {\n                        params = {\n                            id: widgetId,\n                            teamIdentifier: identifier,\n                            teamSaved: true\n                        };\n                        url = '/Team/RenderTeamLeaderTeamDetail/' + widgetId;\n                        $.when(globalThis.gage.submitAjaxRequest(params, url, \"POST\")\n                            .done(function (data, textStatus, request) {\n                            location.reload();\n                            //$(\".\" + widgetcontainer).html(data);\n                        }));\n                    })\n                        .fail(function (response, textStatus, errorThrown) {\n                        var errorContainer = $(\".\" + widgetcontainer).find(\".js-validation-container\");\n                        errorContainer.removeClass(\"col-lg-offset-2\");\n                        getValidationErrorMessage(errorContainer, response);\n                    }));\n                }\n            }\n            else {\n                var errorContainer = $(\".\" + widgetcontainer).find(\".js-validation-container\");\n                errorContainer.removeClass(\"col-lg-offset-2\");\n                getValidationErrorMessage(errorContainer, response);\n            }\n        }));\n    }\n    getUrlVars() {\n        var vars = {};\n        var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function (m, key, value) {\n            vars[key] = value;\n            return \"\";\n        });\n        return vars;\n    }\n}\n;\n$(document).ready(function () {\n    ApplyGagePopOverParticipant($('[data-bs-toggle=\"popover\"]'));\n    $(\".widget-teamleader-team-detail\").each(function (index, item) {\n        $(item).data(\"manager\", new TeamLeaderTeamDetail(item));\n    });\n});\n/// <reference path=\"../lib/jquery.d.ts\" />\n/// <reference path=\"../lib/gage.d.ts\" />\n/*import timezone = require(\"../../wwwroot/lib/dayjs1.11.10/plugin/timezone\");*/\n//import dayjs, { Dayjs } from '../../node_modules/dayjs/index';\n//import utc from \"../../node_modules/dayjs/plugin/utc\";\n//import timezone from \"../../node_modules/dayjs/plugin/timezone\";\n//import localizedFormat from \"../../node_modules/dayjs/plugin/localizedFormat\";\n//import localeData from \"../../node_modules/dayjs/plugin/localeData\";\n//import timezones from \"../../node_modules/timezones-list/dist/index\";\n//dayjs.extend(utc);\n//dayjs.extend(timezone);\n//dayjs.extend(localizedFormat);\n//dayjs.extend(localeData);\n/* ///// <reference path=\"../lib/moment.d.ts\" /> */\n/// <reference path=\"../lib/helper.admin.d.ts\" />\n/// <reference path=\"../lib/helper.timezones.d.ts\" />\n/// <reference path=\"../lib/helper.thirdParty.d.ts\" />\nclass TeamLeaderTeamList {\n    constructor(widget) {\n        this._widget = widget;\n        this.initialize();\n    }\n    initialize() {\n        this._widgetId = parseInt($(this._widget).attr(\"data-contentwidgetid\"));\n        this._globalModal = new GlobalModal(this._widgetId);\n        this._widgetContainer = \"widget-teamleader-team-list-container-\" + this._widgetId;\n        this.bindControls();\n        var x = 1;\n    }\n    bindControls() {\n        var me = this;\n        // Localize Date/Times\n        $.each($(\".localized-time-team-list\"), function (i, e) {\n            var localDate = $(e).text();\n            $(e).html(DisplayDateInLocalFormat(localDate, \"MM/DD/YYYY\") + \" <small>\" + DisplayDateInLocalFormat(localDate, \"hh:mm a\") + \"</small>\");\n        });\n        $(\".\" + me._widgetContainer).on(\"click\", \".js-create-new-team\", function (e) {\n            e.preventDefault();\n            var content = $(\".js-new-team-content\").html();\n            var options = {\n                classes: \"new-team-panel\"\n            };\n            content = content.replace(new RegExp(\"new-startdatepicker\", \"g\"), \"startdatepicker\");\n            content = content.replace(new RegExp(\"new-start-date\", \"g\"), \"start-date\");\n            content = content.replace(new RegExp(\"new-enddatepicker\", \"g\"), \"enddatepicker\");\n            content = content.replace(new RegExp(\"new-end-date\", \"g\"), \"end-date\");\n            content = content.replace(new RegExp(\"new-time-zone\", \"g\"), \"time-zone\");\n            me._globalModal.openGlobalModal(content, \"panel\", options);\n            $(\".js-global-modal\").find(\"#end-date\").attr(\"min\", dayjs(new Date()).format(\"YYYY-MM-DD\"));\n            var pickers = ConfigureDatePicker($(\".js-global-modal\").find('.trigger-date'));\n            var startPicker = pickers.filter(function (element) { return element[0] == \"startdatepicker\"; })[0][1];\n            var endDatePicker = pickers.filter(function (element) { return element[0] == \"enddatepicker\"; })[0][1];\n            BindDatePickerEvents(startPicker, endDatePicker, document.getElementById(\"startdatepicker\"), document.getElementById(\"enddatepicker\"));\n            GlobalPopulateTimeZones($(\"#time-zone\"));\n        });\n        $(\".\" + me._widgetContainer).on(\"click\", \"#includeDeletedTeam\", function (e) {\n            me.applyFilter($(e.currentTarget));\n        });\n        $(\".\" + me._widgetContainer).on(\"click\", \"#includeExpiredTeam\", function (e) {\n            me.applyFilter($(e.currentTarget));\n        });\n        $(\".js-global-modal\").on(\"click\", \".js-save-team\", function (e) {\n            e.preventDefault();\n            me.saveTeam($(e.currentTarget));\n        });\n        me.setUpDataTable();\n        $(\".\" + me._widgetContainer).on(\"click\", \".js-copy-team\", function (e) {\n            e.preventDefault();\n            me.getTeamOptionsForExistingTeam($(e.currentTarget));\n        });\n        $(\".\" + me._widgetContainer).on(\"click\", \".js-copy-team-from-other-team\", function (e) {\n            e.preventDefault();\n            $(e.currentTarget).attr(\"is-new\", \"true\");\n            me.getTeamOptionsFromOTherTeam($(e.currentTarget));\n            GlobalPopulateTimeZones($(\"#time-zone\"));\n        });\n        $(\".\" + me._widgetContainer).on(\"click\", \".js-remove-team\", function (e) {\n            e.preventDefault();\n            if (confirm($(e.currentTarget).attr(\"data-confirmation-message\"))) {\n                me.removeTeam($(e.currentTarget));\n            }\n        });\n        $(\".\" + me._widgetContainer).on(\"click\", \".js-reinstate-team\", function (e) {\n            e.preventDefault();\n            if (confirm($(e.currentTarget).attr(\"data-confirmation-message\"))) {\n                me.reinstateTeam($(e.currentTarget));\n            }\n        });\n        if ($(\".\" + me._widgetContainer).find(\".js-querystring-copy-code\").val() !== \"\") {\n            var copyCode = $(\".\" + me._widgetContainer).find(\".js-querystring-copy-code\").val();\n            var button = $(\".\" + me._widgetContainer).find(\".js-copy-team-from-other-team\");\n            $(button).attr(\"data-querystring-copy-code\", copyCode);\n            $(button).attr(\"is-new\", \"false\");\n            me.getTeamOptionsFromOTherTeam(button);\n            GlobalPopulateTimeZones($(\"#time-zone\"));\n        }\n    }\n    populateTimeZones(el) {\n        var timeZones = Intl.supportedValuesOf(\"timeZone\");\n        $(el).append(\"<option value='UTC'>UTC</option>\");\n        $.each(timeZones, function (i, v) {\n            $(el).append(\"<option value='\" + v + \"'>\" + v + \"</option>\");\n        });\n        // Set default time zone based on their location\n        $(el).find(\"option[value='\" + dayjs.tz.guess() + \"']\").attr('selected', \"true\");\n    }\n    setUpDataTable() {\n        var me = this;\n        var table = $(\".\" + me._widgetContainer).find(\".table.dataTable\");\n        $(table).DataTable({\n            \"pageLength\": 10,\n            \"searching\": true,\n            \"dom\": '<\"top\"<\"left jsLeftFilter\"><\"right\"f><\"clearfix\">>rt<\"bottom\"<\"left\"l><\"right\"p>><\"clearfix\">',\n            order: [],\n            \"columnDefs\": [\n                { type: 'date', \"targets\": 1 },\n                { type: 'date', \"targets\": 2 },\n                { \"targets\": 4, \"searchable\": false },\n                { \"targets\": 5, \"searchable\": false, \"orderable\": false }\n            ],\n            \"drawCallback\": function (settings) {\n                if ($(\".jsLeftFilter\").find(\".js-filter-table\").length === 0) {\n                    var aFilters = $(\".js-filter-table\").clone();\n                    $(\".js-filter-table\").appendTo(\".jsLeftFilter\");\n                }\n            }\n        });\n    }\n    removeTeam(button) {\n        var me = this;\n        var teamidentifier = $(button).closest(\".js-team-row\").attr(\"data-team-identifier\");\n        /*var url = \"/API/Manage/Team/Delete/\" + teamidentifier;*/\n        var url = \"/API/Manage/Team/Delete\";\n        var params = {\n            Identifier: teamidentifier\n        };\n        $.when(globalThis.gage.submitAjaxRequest(params, url, \"DELETE\")\n            .done(function (data, textStatus, request) {\n            url = \"/Team/RenderTeamLeaderTeamList/\" + me._widgetId;\n            $.when(globalThis.gage.submitAjaxRequest(null, url, \"POST\")\n                .done(function (data, textStatus, request) {\n                $(\".\" + me._widgetContainer).html(data);\n                // Localize Date/Times\n                $.each($(\".localized-time-team-list\"), function (i, e) {\n                    var localDate = $(e).text();\n                    $(e).html(DisplayDateInLocalFormat(localDate, \"MM/DD/YYYY\") + \" <small>\" + DisplayDateInLocalFormat(localDate, \"hh:mm a\") + \"</small>\");\n                });\n            }));\n        })\n            .fail(function (response, textStatus, errorThrown) {\n        }));\n    }\n    reinstateTeam(button) {\n        var me = this;\n        var teamidentifier = $(button).closest(\".js-team-row\").attr(\"data-team-identifier\");\n        /*var url = \"/API/Manage/Team/Reinstate/\" + teamidentifier;*/\n        var url = \"/API/Manage/Team/Reinstate\";\n        var params = {\n            Identifier: teamidentifier\n        };\n        $.when(globalThis.gage.submitAjaxRequest(params, url, \"POST\")\n            .done(function (data, textStatus, request) {\n            url = \"/Team/RenderTeamLeaderTeamList/\" + me._widgetId;\n            $.when(globalThis.gage.submitAjaxRequest(null, url, \"POST\")\n                .done(function (data, textStatus, request) {\n                $(\".\" + me._widgetContainer).html(data);\n            }));\n        })\n            .fail(function (response, textStatus, errorThrown) {\n        }));\n    }\n    applyFilter(button) {\n        var me = this;\n        waitingDialog.show(\"\");\n        var includeDeleted = $(button).closest(\".widget-teamleader-team-list\").find(\"#includeDeletedTeam\").length > 0 ? $(button).closest(\".widget-teamleader-team-list\").find(\"#includeDeletedTeam\").is(\":checked\") : false;\n        var includeExpired = $(button).closest(\".widget-teamleader-team-list\").find(\"#includeExpiredTeam\").length > 0 ? $(button).closest(\".widget-teamleader-team-list\").find(\"#includeExpiredTeam\").is(\":checked\") : false;\n        var params = {\n            IncludeDeleted: includeDeleted,\n            IncludeExpired: includeExpired\n        };\n        var url = \"/Team/RenderTeamLeaderTeamList/\" + me._widgetId;\n        $.when(globalThis.gage.submitAjaxRequest(params, url, \"POST\")\n            .done(function (data, textStatus, request) {\n            waitingDialog.hide();\n            $(\".\" + me._widgetContainer).html(data);\n            me.setUpDataTable();\n            me.setLocalTimes();\n        })\n            .fail(function (response, textStatus, errorThrown) {\n            waitingDialog.hide();\n            me.setLocalTimes();\n        }));\n    }\n    setLocalTimes() {\n        $.each($(\".localized-time-team-list\"), function (i, e) {\n            var localDate = $(e).text();\n            $(e).html(DisplayDateInLocalFormat(localDate, \"MM/DD/YYYY\") + \" <small>\" + DisplayDateInLocalFormat(localDate, \"hh:mm a\") + \"</small>\");\n            //DisplayDateInLocalFormat(localDate, \"hh:mm a\")\n        });\n    }\n    getTeamOptionsForExistingTeam(button) {\n        var me = this;\n        var widgetId = $(button).closest(\".widget-teamleader-team-list\").attr(\"data-contentwidgetid\");\n        var widgetcontainer = me._widgetContainer;\n        var teamidentifier = $(button).closest(\".js-team-row\").attr(\"data-team-identifier\");\n        var teamName = $(button).closest(\".js-team-row\").attr(\"data-team-name\");\n        var originalTimeZone = $(button).closest(\".js-team-row\").attr(\"data-team-tz\");\n        var startDate = $(button).attr(\"data-start-date\") === \"\"\n            ? \"\"\n            : $(button).attr(\"data-start-date\");\n        var endDate = $(button).attr(\"data-end-date\") === \"\"\n            ? \"\"\n            : $(button).attr(\"data-end-date\");\n        var showFuture = $(button).attr(\"data-show-future\");\n        var contentClone = $(button).closest(\".widget-teamleader-team-list\").find(\".js-copy-team-container\").clone();\n        $(contentClone).find(\".js-copy-team-promocode-row\").remove();\n        var globalWindow = this._globalModal;\n        var contentHtml = $(contentClone).html();\n        contentHtml = contentHtml.replace(RegExp(\"copy-startdatepicker\", \"g\"), \"startdatepicker\");\n        contentHtml = contentHtml.replace(new RegExp(\"copy-start-date\", \"g\"), \"start-date\");\n        contentHtml = contentHtml.replace(new RegExp(\"copy-team-name\", \"g\"), \"team-name\");\n        contentHtml = contentHtml.replace(\"copy-enddatepicker\", \"enddatepicker\");\n        contentHtml = contentHtml.replace(new RegExp(\"copy-end-date\", \"g\"), \"end-date\");\n        contentHtml = contentHtml.replace(new RegExp(\"copy-time-zone\", \"g\"), \"time-zone\");\n        contentHtml = contentHtml.replace(new RegExp(\"copy-original-time-zone\", \"g\"), \"original-time-zone\");\n        globalWindow.openGlobalModal(contentHtml, \"panel\", { classes: \"copy-team-modal\" });\n        GlobalPopulateTimeZones($(\"#time-zone\"));\n        $(\"#original-time-zone\").val(originalTimeZone);\n        var globalContainer = $(\".js-global-modal\");\n        $(globalContainer).find(\"#team-name\").val(teamName);\n        if (startDate != \"\") {\n            $(\".js-unformatted-sdate\").text(startDate + \" UTC\");\n            var formattedStartDate = DisplayDateInTimeZoneFormat(startDate, \"MM/DD/YYYY\", originalTimeZone);\n            //var formattedStartDate = DisplayDateInTimeZoneFormat(startDate, \"MM/DD/YYYY 12:00:01 AM\", originalTimeZone);\n            $('#start-date').val(formattedStartDate);\n        }\n        if ((startDate != \"\") && (endDate != \"\" && dayjs.utc(endDate).local() > dayjs())) {\n            $(\".js-unformatted-edate\").text(endDate + \" UTC\");\n            var formattedEndDate = DisplayDateInTimeZoneFormat(endDate, \"MM/DD/YYYY\", originalTimeZone);\n            //var formattedEndDate = DisplayDateInTimeZoneFormat(endDate, \"MM/DD/YYYY 12:00:00 AM\", originalTimeZone);\n            $('#end-date').val(formattedEndDate);\n        }\n        var pickers = ConfigureDatePicker($(globalContainer).find('.trigger-date'));\n        var startPicker = pickers.filter(function (element) { return element[0] == \"startdatepicker\"; })[0][1];\n        var endDatePicker = pickers.filter(function (element) { return element[0] == \"enddatepicker\"; })[0][1];\n        BindDatePickerEvents(startPicker, endDatePicker, document.getElementById(\"startdatepicker\"), document.getElementById(\"enddatepicker\"));\n        /*\n        var currentStartDatePicker = pickers.filter(function (element) { return element[0] == \"startdatepicker\"; });\n        var startPicker = currentStartDatePicker[0][1];\n        var currentEndDatePicker = pickers.filter(function (element) { return element[0] == \"enddatepicker\"; });\n        var endDatePicker = currentEndDatePicker[0][1];\n\r\n        const startPickerElement = document.getElementById(\"startdatepicker\");\n        startPickerElement.addEventListener(\"change.td\", (e) => {\n            // @ts-ignore\n            endDatePicker.updateOptions({ restrictions: { minDate: e.detail.date } });\n        });\n\r\n        //using subscribe method\n        const endDatePickerElement = document.getElementById(\"enddatepicker\");\n\r\n        endDatePickerElement.addEventListener(\"change.td\", (e) => {\n            // @ts-ignore\n            startPicker.updateOptions({ restrictions: { maxD: e.detail.date } });\n        });\n\r\n\r\n        */\n        if (originalTimeZone != \"\") {\n            $(\"#time-zone\").find(\"option[value='\" + originalTimeZone + \"']\").attr('selected', \"true\");\n        }\n        $(globalContainer).find(\"#team-name\").val(teamName);\n        $(globalContainer).find(\".js-copy-team-options\").attr(\"data-show-future\", showFuture);\n        $(globalContainer).find(\".js-copy-team-button\").attr(\"data-team-identifier\", teamidentifier);\n        $(globalContainer).find(\".js-copy-team-button\").attr(\"data-widgetId\", widgetId);\n        $(globalContainer).find(\".js-copy-team-button\").attr(\"data-widget-container\", widgetcontainer);\n        var dueDateRow = $(globalContainer).find(\".js-copy-team-due-date-row\");\n        var keeprequiredAssignmentRow = $(globalContainer).find(\".js-copy-team-keep-required-assignment-row\");\n        me.resetSettings(globalContainer);\n        $(globalContainer).find(\".js-copy-team-options\").on(\"change\", function (e) {\n            $(keeprequiredAssignmentRow).addClass(\"hide\");\n            if ($(e.currentTarget).val() === \"AssignmentsOnly\" || $(e.currentTarget).val() === \"MembersAndAssignments\") {\n                $(keeprequiredAssignmentRow).removeClass(\"hide\");\n                if ($(e.currentTarget).attr(\"data-show-future\") === \"True\") {\n                    $(dueDateRow).removeClass(\"hide\");\n                }\n            }\n        });\n        $(globalContainer).find(\".js-copy-team-button\").on(\"click\", function (e) {\n            widgetcontainer = $(e.currentTarget).attr(\"data-widget-container\");\n            widgetId = $(e.currentTarget).attr(\"data-widgetId\");\n            teamidentifier = $(e.currentTarget).attr(\"data-team-identifier\");\n            var overwriteMessage = $(e.currentTarget).attr(\"data-overwrite-message\");\n            var copyOptions = $(globalContainer).find(\".js-copy-team-options\");\n            var timezonerequired = $(e.currentTarget).attr(\"data-timezone-required\");\n            var teamnamerequired = $(e.currentTarget).attr(\"data-teamname-required\");\n            var teamcopyoptionrequired = $(e.currentTarget).attr(\"data-teamcopyoption-required\");\n            var timeZone = $(\".js-global-modal \").find(\"#time-zone\").val();\n            var originalTimeZone = $(\".js-global-modal \").find(\"#original-time-zone\").val();\n            if (!timeZone) {\n                alert(timezonerequired);\n                return false;\n            }\n            if ($(globalContainer).find(\"#team-name\").val() === \"\") {\n                alert(teamnamerequired);\n                return false;\n            }\n            if ($(copyOptions).val() === \"\") {\n                alert(teamcopyoptionrequired);\n                return false;\n            }\n            var params = {};\n            var startDate = $('#start-date').val();\n            var endDate = $('#end-date').val();\n            if (startDate != \"\") {\n                startDate = SetTime(startDate, '00', '00', '00');\n                startDate = GetISODate(startDate, timeZone, \"MM/DD/YYYY hh:mm:ss a\");\n            }\n            if (endDate != \"\") {\n                endDate = SetTime(endDate, '23', '59', '59');\n                endDate = GetISODate(endDate, timeZone, \"MM/DD/YYYY hh:mm:s a\");\n            }\n            if (startDate != null && endDate != null) {\n                if (me.compareDates(endDate, startDate) < 0) {\n                    alert(\"End Date must be greater than Start Date\");\n                    return false;\n                }\n            }\n            me.copyTeamCommon(globalWindow, globalContainer, widgetId, widgetcontainer, overwriteMessage, copyOptions, startDate, endDate, timeZone, originalTimeZone, $(e.currentTarget).attr(\"data-team-identifier\"), null);\n        });\n    }\n    copyTeamCommon(globalWindow, globalContainer, widgetId, widgetcontainer, overwriteMessage, copyOptions, startDate, endDate, timeZone, originalTimeZone, teamIdentifier, joinCode) {\n        var me = this;\n        $(globalContainer).find(\".js-copy-team-button\").attr(\"disabled\", \"true\");\n        $(\".js-wait-copy-team\").removeClass(\"hidden\");\n        var now = dayjs().tz(originalTimeZone);\n        var localOffset = now.utcOffset();\n        now.tz(timeZone);\n        var centralOffset = now.utcOffset();\n        var diffInMinutes = localOffset - centralOffset;\n        var teamName = $(globalContainer).find(\"#team-name\").val();\n        if (teamName === undefined) {\n            teamName = $(globalContainer).find(\"#copy-team-name\").val();\n        }\n        if (teamName === undefined) {\n            teamName = \"\";\n        }\n        var params = {};\n        params =\n            {\n                \"TeamJoinCode\": joinCode,\n                \"TeamName\": teamName,\n                \"StartDate\": startDate,\n                \"EndDate\": endDate,\n                \"TimeZone\": timeZone,\n                \"TimeZoneDiffMinutes\": diffInMinutes,\n                \"CopyOption\": $(copyOptions).val(),\n                \"TeamIdentifier\": teamIdentifier,\n                \"CopyDates\": $(globalContainer).find(\".js-copy-team-duedate\").is(\":checked\"),\n                \"KeepRequiredAssigmentSetting\": $(globalContainer).find(\".js-copy-team-keep-required-assignment\").is(\":checked\")\n            };\n        var url = \"/Api/Manage/Team/Copy\";\n        // this may be incorrect widgetcontainer needs to be the actual container object and not a selector!!!\n        $.when(globalThis.gage.submitAjaxRequest(params, url, \"POST\")\n            .done(function (data, textStatus, request) {\n            var url = \"/Team/RenderTeamLeaderTeamList/\" + widgetId;\n            $.when(globalThis.gage.submitAjaxRequest(null, url, \"POST\")\n                .done(function (data, textStatus, request) {\n                $(\".\" + widgetcontainer).html(data);\n                globalWindow.closeGlobalModal();\n                // Localize Date/Times\n                $.each($(\".localized-time-team-list\"), function (i, e) {\n                    var localDate = $(e).text();\n                    $(e).html(DisplayDateInLocalFormat(localDate, \"MM/DD/YYYY\") + \" <small>\" + DisplayDateInLocalFormat(localDate, \"hh:mm a\") + \"</small>\");\n                });\n                $(globalContainer).find(\".js-copy-team-button\").removeAttr(\"disabled\");\n                $(\".js-wait-copy-team\").addClass(\"hidden\");\n                var uri = window.location.toString();\n                if (uri.indexOf(\"?\") > 0) {\n                    var clean_uri = uri.substring(0, uri.indexOf(\"?\"));\n                    window.history.replaceState({}, document.title, clean_uri);\n                }\n            }));\n        })\n            .fail(function (response, textStatus, errorThrown) {\n            $(globalContainer).find(\".js-copy-team-button\").removeAttr(\"disabled\");\n            $(\".js-wait-copy-team\").addClass(\"hidden\");\n            if (response.responseJSON.data == \"duplicate\") {\n                if (confirm(overwriteMessage)) {\n                    params = {\n                        \"TeamJoinCode\": joinCode,\n                        \"TeamName\": $(globalContainer).find(\"#team-name\").val(),\n                        \"StartDate\": startDate,\n                        \"EndDate\": endDate,\n                        \"TimeZone\": timeZone,\n                        \"TimeZoneDiffMinutes\": diffInMinutes,\n                        \"CopyOption\": $(copyOptions).val(),\n                        \"TeamIdentifier\": teamIdentifier,\n                        \"CopyDates\": $(globalContainer).find(\".js-copy-team-duedate\").is(\":checked\"),\n                        \"KeepRequiredAssigmentSetting\": $(globalContainer).find(\".js-copy-team-keep-required-assignment\").is(\":checked\"),\n                        \"Override\": true\n                    };\n                    url = \"/Api/Manage/Team/Copy\";\n                    $.when(globalThis.gage.submitAjaxRequest(params, url, \"POST\")\n                        .done(function (data, textStatus, request) {\n                        var url = \"/Team/RenderTeamLeaderTeamList/\" + widgetId;\n                        $.when(globalThis.gage.submitAjaxRequest(null, url, \"POST\")\n                            .done(function (data, textStatus, request) {\n                            $(\".\" + widgetcontainer).html(data);\n                            globalWindow.closeGlobalModal();\n                            // Localize Date/Times\n                            $.each($(\".localized-time-team-list\"), function (i, e) {\n                                var localDate = $(e).text();\n                                $(e).html(DisplayDateInLocalFormat(localDate, \"MM/DD/YYYY\") + \" <small>\" + DisplayDateInLocalFormat(localDate, \"hh:mm a\") + \"</small>\");\n                            });\n                        }));\n                        var uri = window.location.toString();\n                        if (uri.indexOf(\"?\") > 0) {\n                            var clean_uri = uri.substring(0, uri.indexOf(\"?\"));\n                            window.history.replaceState({}, document.title, clean_uri);\n                        }\n                    })\n                        .fail(function (response, textStatus, errorThrown) {\n                        alert(response.responseJSON.errorMessage);\n                    }));\n                }\n                else {\n                    return false;\n                }\n            }\n            else {\n                alert(response.responseJSON.errorMessage);\n            }\n        }));\n    }\n    getTeamOptionsFromOTherTeam(button) {\n        var me = this;\n        var widgetId = $(button).closest(\".widget-teamleader-team-list\").attr(\"data-contentwidgetid\");\n        var content = $(button).closest(\".widget-teamleader-team-list\").find(\".js-copy-team-container\").html();\n        var copyCode = $(button).attr(\"data-querystring-copy-code\");\n        var isnew = $(button).attr(\"is-new\");\n        var widgetcontainer = me._widgetContainer;\n        var globalWindow = this._globalModal;\n        content = content.replace(new RegExp(\"copy-team-name\", \"g\"), \"team-name\");\n        content = content.replace(new RegExp(\"copy-teamjoincode\", \"g\"), \"teamjoincode\");\n        content = content.replace(\"copy-startdatepicker\", \"startdatepicker\");\n        content = content.replace(new RegExp(\"copy-start-date\", \"g\"), \"start-date\");\n        content = content.replace(\"copy-enddatepicker\", \"enddatepicker\");\n        content = content.replace(new RegExp(\"copy-end-date\", \"g\"), \"end-date\");\n        content = content.replace(new RegExp(\"copy-time-zone\", \"g\"), \"time-zone\");\n        content = content.replace(new RegExp(\"copy-original-time-zone\", \"g\"), \"original-time-zone\");\n        globalWindow.openGlobalModal(content, \"panel\", { classes: \"copy-team-modal\" });\n        var showFuture = $(button).attr(\"data-show-future\");\n        var globalContainer = $(\".js-global-modal\");\n        $(globalContainer).find(\".js-copy-team-button\").attr(\"data-widgetId\", widgetId);\n        $(globalContainer).find(\".js-copy-team-button\").attr(\"data-widget-container\", widgetcontainer);\n        var dueDateRow = $(globalContainer).find(\".js-copy-team-due-date-row\");\n        var keeprequiredAssignmentRow = $(globalContainer).find(\".js-copy-team-keep-required-assignment-row\");\n        me.resetSettings(globalContainer);\n        $(globalContainer).find(\".js-copy-team-joincode\").val(copyCode);\n        if (isnew === \"false\") {\n            $(globalContainer).find(\".js-copy-code-validation\").val(\"True\");\n        }\n        else {\n            (globalContainer).find(\".js-copy-team-joincode\").val(\"\");\n        }\n        $(globalContainer).find(\".js-copy-team-options\").on(\"change\", function (e) {\n            $(keeprequiredAssignmentRow).addClass(\"hide\");\n            if ($(e.currentTarget).val() === \"AssignmentsOnly\" || $(e.currentTarget).val() === \"MembersAndAssignments\") {\n                $(keeprequiredAssignmentRow).removeClass(\"hide\");\n                if ($(e.currentTarget).attr(\"data-show-future\") == \"True\") {\n                    $(dueDateRow).removeClass(\"hide\");\n                }\n            }\n        });\n        $(globalContainer).find(\".js-validate-code\").on(\"click\", function (e) {\n            e.preventDefault();\n            me.validateCode(globalContainer);\n        });\n        $(globalContainer).find(\".js-copy-team-button\").on(\"click\", function (e) {\n            widgetcontainer = $(e.currentTarget).attr(\"data-widget-container\");\n            widgetId = $(e.currentTarget).attr(\"data-widgetId\");\n            var overwriteMessage = $(e.currentTarget).attr(\"data-overwrite-message\");\n            var timeZone = $(\".js-global-modal \").find(\"#time-zone\").val();\n            var originalTimeZone = $(\".js-global-modal \").find(\"#original-time-zone\").val();\n            var timezonerequired = $(e.currentTarget).attr(\"data-timezone-required\");\n            var teamnamerequired = $(e.currentTarget).attr(\"data-teamname-required\");\n            var teamcoderequired = $(e.currentTarget).attr(\"data-teamcode-required\");\n            var teamcopyoptionrequired = $(e.currentTarget).attr(\"data-teamcopyoption-required\");\n            if (!timeZone) {\n                alert(timezonerequired);\n                return false;\n            }\n            var copyOptions = $(globalContainer).find(\".js-copy-team-options\");\n            if ($(globalContainer).find(\".js-copy-team-joincode\").val() == \"\") {\n                alert(teamnamerequired);\n                return false;\n            }\n            if ($(globalContainer).find(\"#team-name\").val() === \"\") {\n                alert(teamcoderequired);\n                return false;\n            }\n            if ($(copyOptions).val() === \"\") {\n                alert(teamcopyoptionrequired);\n                return false;\n            }\n            var params = {};\n            var startDate = $('#start-date').val();\n            var endDate = $('#end-date').val();\n            if (startDate != \"\") {\n                startDate = SetTime(startDate, '00', '00', '00');\n                startDate = GetISODate(startDate, timeZone, \"MM/DD/YYYY hh:mm:ss a\");\n            }\n            if (endDate != \"\") {\n                endDate = SetTime(endDate, '23', '59', '59');\n                endDate = GetISODate(endDate, timeZone, \"MM/DD/YYYY hh:mm:s a\");\n            }\n            if (startDate !== null && endDate !== null) {\n                if (me.compareDates(endDate, startDate) < 0) {\n                    alert(\"End Date must be greater than Start Date\");\n                    return false;\n                }\n            }\n            me.copyTeamCommon(globalWindow, globalContainer, widgetId, widgetcontainer, overwriteMessage, copyOptions, startDate, endDate, timeZone, originalTimeZone, null, $(globalContainer).find(\".js-copy-team-joincode\").val());\n        });\n        if (isnew === \"false\") {\n            $(globalContainer).find(\".js-validate-code\").click();\n        }\n    }\n    validateCode(globalContainer) {\n        var me = this;\n        me.resetSettings(globalContainer);\n        var code = $(globalContainer).find(\".js-copy-team-joincode\").val();\n        if (code === \"\") {\n            alert(\"Please enter code to validate\");\n            return false;\n        }\n        var params = {};\n        var url = \"/Api/Manage/Team/ValidateTeamCode/\" + code;\n        $.when(globalThis.gage.submitAjaxRequest(null, url, \"GET\")\n            .done(function (data, textStatus, request) {\n            if (data.endDate === undefined) {\n                $(globalContainer).find(\".js-copy-team-options\").attr(\"data-show-future\", \"True\");\n                $(globalContainer).find(\"#start-date\").val(\"\");\n                $(globalContainer).find(\"#end-date\").val(\"\");\n                $(globalContainer).find(\"#team-name\").val(data.teamName);\n                $(globalContainer).find(\"#original-time-zone\").val(data.timeZone);\n            }\n            else {\n                var dateToCheck = data.endDate;\n                var currentDate = new Date();\n                dateToCheck = new Date(dateToCheck);\n                if (dateToCheck > currentDate) {\n                    $(globalContainer).find(\".js-copy-team-options\").attr(\"data-show-future\", \"True\");\n                    var startDate;\n                    var endDate;\n                    if (data.startDate !== undefined) {\n                        $(\".js-unformatted-sdate\").text(data.startDate + \" UTC\");\n                        var formattedStartDate = DisplayDateInTimeZoneFormat(data.startDate, \"MM/DD/YYYY\", data.timeZone);\n                        $('#start-date').val(formattedStartDate);\n                    }\n                    if (data.endDate !== undefined) {\n                        $(\".js-unformatted-edate\").text(data.endDate + \" UTC\");\n                        endDate = dayjs.utc(data.endDate).tz(data.timeZone);\n                        if (endDate > dayjs()) {\n                            var formattedStartDate = DisplayDateInTimeZoneFormat(data.startDate, \"MM/DD/YYYY\", data.timeZone);\n                            var formattedEndDate = DisplayDateInTimeZoneFormat(data.endDate, \"MM/DD/YYYY\", data.timeZone);\n                            $('#end-date').val(formattedEndDate);\n                            $('#start-date').val(formattedStartDate);\n                        }\n                    }\n                    var pickers = ConfigureDatePicker($(globalContainer).find('.trigger-date'));\n                    var startPicker = pickers.filter(function (element) { return element[0] == \"startdatepicker\"; })[0][1];\n                    var endDatePicker = pickers.filter(function (element) { return element[0] == \"enddatepicker\"; })[0][1];\n                    BindDatePickerEvents(startPicker, endDatePicker, document.getElementById(\"startdatepicker\"), document.getElementById(\"enddatepicker\"));\n                    var teamName = data.teamName;\n                    $(globalContainer).find(\"#team-name\").val(teamName);\n                    $(globalContainer).find(\"#original-time-zone\").val(data.timeZone);\n                    $(globalContainer).find(\"#time-zone\").val(data.timeZone);\n                }\n                else {\n                    $(globalContainer).find(\".js-copy-team-options\").attr(\"data-show-future\", \"False\");\n                }\n            }\n        })\n            .fail(function (response, textStatus, errorThrown) {\n            $(globalContainer).find(\".js-validate-error-container\").html(response.responseJSON.errorMessage);\n        }));\n    }\n    compareDates(dateTimeA, dateTimeB) {\n        var momentA = new Date(dateTimeA);\n        var momentB = new Date(dateTimeB);\n        if (momentA > momentB)\n            return 1;\n        else if (momentA < momentB)\n            return -1;\n        else\n            return 0;\n    }\n    resetSettings(globalContainer) {\n        var dueDateRow = $(globalContainer).find(\".js-copy-team-due-date-row\");\n        var keeprequiredAssignmentRow = $(globalContainer).find(\".js-copy-team-keep-required-assignment-row\");\n        $(dueDateRow).addClass(\"hide\");\n        $(dueDateRow).find(\".js-copy-team-duedate\").attr(\"checked\", \"false\");\n        $(keeprequiredAssignmentRow).addClass(\"hide\");\n        $(keeprequiredAssignmentRow).find(\".js-copy-team-keep-required-assignment\").attr(\"checked\", \"false\");\n    }\n    saveTeam(button) {\n        var me = this;\n        $(button).attr(\"disabled\", \"true\");\n        $(\".js-please-wait\").removeClass(\"hidden\");\n        var helpText = $(\".js-please-wait\").text();\n        $(\".js-please-wait-a11y\").text(helpText);\n        var url = \"/Api/Manage/Team/Create\";\n        var widgetId = $(button).attr(\"data-widgetId\");\n        var widgetcontainer = $(button).attr(\"data-widget-container\");\n        var globalWindow = this._globalModal;\n        var timeZone = $(\".js-global-modal \").find(\"#time-zone\").val();\n        if (!timeZone) {\n            alert(\"Time Zone must be selected\");\n            return false;\n        }\n        var overwriteMessage = $(button).attr(\"data-overwrite-message\");\n        var detailUrl = $(button).attr(\"data-detail-page-url\");\n        var startDate = $('#start-date').val();\n        if (startDate != \"\") {\n            startDate = SetTime(startDate, '00', '00', '00');\n            startDate = GetISODate(startDate, timeZone, \"MM/DD/YYYY hh:mm:ss a\");\n        }\n        var endDate = $(\"#end-date\").val();\n        if (endDate != \"\") {\n            endDate = SetTime(endDate, '23', '59', '59');\n            endDate = GetISODate(endDate, timeZone, \"MM/DD/YYYY hh:mm:s a\");\n        }\n        if (startDate !== \"\" && endDate !== \"\") {\n            if (me.compareDates(endDate, startDate) < 0) {\n                alert(\"End Date must be greater then Start Date\");\n                return false;\n            }\n        }\n        var params = {};\n        params = {\n            teamName: $(\".js-global-modal\").find(\"#team-name\").val(),\n            startDate: startDate ? startDate : null,\n            endDate: endDate ? endDate : null,\n            teamAssignmentSortOrder: $(\".js-global-modal\").find(\"#new-assignment-sort-order\").val(),\n            timeZone: timeZone,\n        };\n        $.when(globalThis.gage.submitAjaxRequest(params, url, \"POST\")\n            .done(function (data, textStatus, request) {\n            $(\".js-please-wait-a11y\").text(\"\");\n            window.location.href = detailUrl + \"?identifier=\" + data.identifier + \"&activeTab=assignments\";\n        })\n            .fail(function (response, textStatus, errorThrown) {\n            $(\".js-please-wait-a11y\").text(\"\");\n            $(button).attr(\"disabled\", \"false\");\n            $(\".js-please-wait\").addClass(\"hidden\");\n            var errorContainer = $(\".js-global-modal \").find(\".js-validation-container\");\n            if (response.responseJSON.data == \"duplicate\") {\n                if (confirm(overwriteMessage)) {\n                    params = {\n                        teamName: $(\".js-global-modal \").find(\"#team-name\").val(),\n                        startDate: startDate ? startDate : null,\n                        endDate: endDate ? endDate : null,\n                        timeZone: timeZone,\n                        overRide: true\n                    };\n                    $.when(globalThis.gage.submitAjaxRequest(params, url, \"POST\")\n                        .done(function (data, textStatus, request) {\n                        var url = \"/Team/RenderTeamLeaderTeamList/\" + widgetId;\n                        $.when(globalThis.gage.submitAjaxRequest(null, url, \"POST\")\n                            .done(function (data, textStatus, request) {\n                            $(\".\" + widgetcontainer).html(data);\n                            globalWindow.closeGlobalModal();\n                            me.setUpDataTable();\n                        }));\n                    })\n                        .fail(function (response, textStatus, errorThrown) {\n                        $(errorContainer).removeClass(\"col-lg-offset-2\");\n                        globalThis.gage.getValidationErrorMessage(errorContainer, response);\n                    }));\n                }\n            }\n            else {\n                $(errorContainer).removeClass(\"col-lg-offset-2\");\n                globalThis.gage.getValidationErrorMessage(errorContainer, response);\n            }\n        }));\n    }\n}\n;\n$(document).ready(function () {\n    ApplyGagePopOverParticipant($('[data-toggle=\"popover\"]'));\n    $(\".widget-teamleader-team-list\").each(function (index, item) {\n        $(item).data(\"manager\", new TeamLeaderTeamList(item));\n    });\n});\n/// <reference path=\"../lib/jquery.d.ts\" />\n/// <reference path=\"../lib/gage.d.ts\" />\n/// <reference path=\"../lib/helper.timezones.d.ts\" />\n/// <reference path=\"../lib/helper.orders.d.ts\" />\nclass TeamMemberContentAssignmentDueList {\n    constructor(widget) {\n        this._widget = widget;\n        this.initialize();\n    }\n    initialize() {\n        this._widgetId = parseInt($(this._widget).attr(\"data-contentwidgetid\"));\n        this._globalModal = new GlobalModal(this._widgetId);\n        this._widgetContainer = \"widget-teammember-content-assignment-due-list-container-\" + this._widgetId;\n        this.bindControls();\n    }\n    bindControls() {\n        var me = this;\n        // Localize Date/Times\n        $.each($(\".js-localized-date\"), function (i, e) {\n            var localDate = $(e).text();\n            $(e).html(DisplayDateInLocalFormat(localDate, \"MM/DD/YYYY\") + \" <small>\" + DisplayDateInLocalFormat(localDate, \"hh:mm a\") + \"</small>\");\n        });\n        $(\".\" + me._widgetContainer).on(\"click\", \".js-show-past\", function (e) {\n            e.preventDefault();\n            if (confirm($(e.currentTarget).attr(\"data-confirmation-message\"))) {\n                me.showPast($(e.currentTarget));\n            }\n        });\n        $(\".\" + me._widgetContainer).on(\"click\", \".js-assignments-expand\", function (e) {\n            if ($(this).attr(\"aria-expanded\") === \"false\") {\n                $(this).attr(\"aria-expanded\", \"true\");\n                $(\".\" + me._widgetContainer).find(\".js-my-assignments\").removeClass(\"hidden\");\n                $(this).find(\".js-assignments-icon\").text(\"-\");\n            }\n            else {\n                $(this).attr(\"aria-expanded\", \"false\");\n                $(\".\" + me._widgetContainer).find(\".js-my-assignments\").addClass(\"hidden\");\n                $(this).find(\".js-assignments-icon\").text(\"+\");\n            }\n        });\n    }\n    showPast(button) {\n        var me = this;\n        var url = \"/Api/Manage/Team/LeaveTeam/\" + $(button).attr(\"data-team-identifier\");\n    }\n}\n;\n$(document).ready(function () {\n    $(\".widget-teammember-content-assignment-due-list\").each(function (index, item) {\n        $(item).data(\"manager\", new TeamMemberContentAssignmentDueList(item));\n    });\n});\n/// <reference path=\"../lib/jquery.d.ts\" />\n/// <reference path=\"../lib/gage.d.ts\" />\n/// <reference path=\"../lib/helper.admin.d.ts\" />\n/// <reference path=\"../lib/helper.timezones.d.ts\" />\n/// <reference path=\"../lib/helper.orders.d.ts\" />\nclass TeamMemberContentAssigmentList {\n    constructor(widget) {\n        this._widget = widget;\n        this.initialize();\n    }\n    initialize() {\n        this._widgetId = parseInt($(this._widget).attr(\"data-contentwidgetid\"));\n        this._globalModal = new GlobalModal(this._widgetId);\n        this._widgetContainer = \"widget-teammember-content-assignment-list-container-\" + this._widgetId;\n        this.bindControls();\n    }\n    bindControls() {\n        var me = this;\n        // Localize Date/Times\n        $.each($(\".localized-time\"), function (i, e) {\n            var localDate = $(e).text();\n            $(e).html(DisplayDateInLocalFormat(localDate, \"MM/DD/YYYY\") + \" <small>\" + DisplayDateInLocalFormat(localDate, \"hh:mm a\") + \"</small>\");\n        });\n        var table = $(\".\" + me._widgetContainer).find(\".table.dataTable\");\n        $(table).DataTable({\n            order: [],\n            \"pageLength\": 25,\n            \"searching\": true,\n            \"dom\": '<\"top\"<\"left\"><\"right\"f><\"clearfix\">>rt<\"bottom\"<\"left\"l><\"right\"p>><\"clearfix\">',\n            \"columnDefs\": [\n                { type: 'date', \"targets\": 1, \"searchable\": false },\n                { type: 'date', \"targets\": 2, \"searchable\": false },\n                { \"targets\": 3, \"orderable\": false },\n                { \"targets\": 4, \"orderable\": false },\n                { \"targets\": 5, \"searchable\": false }\n            ]\n        });\n        $(\".\" + me._widgetContainer).on(\"click\", \".js-leave-team\", function (e) {\n            e.preventDefault();\n            if (confirm($(e.currentTarget).attr(\"data-confirmation-message\"))) {\n                me.leaveTeam($(e.currentTarget));\n            }\n        });\n    }\n    leaveTeam(button) {\n        var me = this;\n        /*var url = \"/Api/Manage/Team/LeaveTeam/\" + $(button).attr(\"data-team-identifier\");*/\n        var url = \"/Api/Manage/Team/LeaveTeam\";\n        var redirectUrl = $(button).attr(\"data-team-member-list-page-url\");\n        var widgetId = me._widgetId;\n        var widgetcontainer = me._widgetContainer;\n        var dto = {\n            Identifier: $(button).attr(\"data-team-identifier\")\n        };\n        $.when(globalThis.gage.submitAjaxRequest(dto, url, \"POST\")\n            .done(function (data, textStatus, request) {\n            var url = \"/Team/RenderTeamMemberList/\" + widgetId;\n            var params = {\n                teamIdentifier: $(button).attr(\"data-team-identifier\")\n            };\n            $.when(globalThis.gage.submitAjaxRequest(params, url, \"POST\")\n                .done(function (data, textStatus, request) {\n                window.location.href = redirectUrl;\n            }));\n        })\n            .fail(function (response, textStatus, errorThrown) {\n        }));\n    }\n}\n;\n$(document).ready(function () {\n    $(\".widget-teammember-content-assignment-list\").each(function (index, item) {\n        $(item).data(\"manager\", new TeamMemberContentAssigmentList(item));\n    });\n});\n/// <reference path=\"../lib/jquery.d.ts\" />\n/// <reference path=\"../lib/gage.d.ts\" />\n/// <reference path=\"../lib/gage.d.ts\" />\n/// <reference path=\"../lib/helper.admin.d.ts\" />\n/// <reference path=\"../lib/helper.timezones.d.ts\" />\n/// <reference path=\"../lib/helper.orders.d.ts\" />\nclass TeamMemberTeamList {\n    constructor(widget) {\n        this._widget = widget;\n        this.initialize();\n    }\n    initialize() {\n        this._widgetId = parseInt($(this._widget).attr(\"data-contentwidgetid\"));\n        this._globalModal = new GlobalModal(this._widgetId);\n        this._widgetContainer = \"widget-teammember-team-list-container-\" + this._widgetId;\n        this.bindControls();\n    }\n    bindControls() {\n        var me = this;\n        // Localize Date/Times\n        $.each($(\".local-time\"), function (i, e) {\n            var localDate = $(e).text();\n            $(e).html(DisplayDateInLocalFormat(localDate, \"MM/DD/YYYY\") + \" <small>\" + DisplayDateInLocalFormat(localDate, \"hh:mm a\") + \"</small>\");\n        });\n        $(\".\" + me._widgetContainer).on(\"click\", \"#join-team\", function (e) {\n            e.preventDefault();\n            me.joinTeam($(e.currentTarget));\n        });\n        $(\".\" + me._widgetContainer).on(\"click\", \".js-select-team-to-join\", function (e) {\n            e.preventDefault();\n            me.selectTeamsTojoin($(e.currentTarget));\n        });\n        $(\".\" + me._widgetContainer).on(\"click\", \"#includeExpired\", function (e) {\n            me.applyFilter($(e.currentTarget));\n        });\n        if ($(\".\" + me._widgetContainer).find(\"#showteamjoinmodal\").val() === \"True\") {\n            var promobox = $(\".\" + me._widgetContainer).find(\"#join-code\");\n            var joinbutton = $(\".\" + me._widgetContainer).find(\"#join-team\");\n            var cancelText = $(\".\" + me._widgetContainer).find(\"#canceltext\").val();\n            var okText = $(\".\" + me._widgetContainer).find(\"#ok\").val();\n            ;\n            var joinconfirmationtext = $(\".\" + me._widgetContainer).find(\"#joinconfirmationtext\").val();\n            bootbox.confirm({\n                message: \"<p>\" + joinconfirmationtext + \"</p>\",\n                buttons: {\n                    confirm: {\n                        label: okText,\n                        className: 'btn-success'\n                    },\n                    cancel: {\n                        label: cancelText,\n                        className: 'btn-danger'\n                    }\n                },\n                callback: function (result) {\n                    if (result) {\n                        $(\".\" + me._widgetContainer).find(\"#join-team\").click();\n                        return true;\n                    }\n                    else {\n                        $(promobox).val(\"\");\n                    }\n                }\n            });\n        }\n    }\n    applyFilter(button) {\n        var me = this;\n        waitingDialog.show(\"\");\n        var includeExpired = $(button).closest(\".widget-teammember-team-list\").find(\"#includeExpired\").length > 0 ? $(button).closest(\".widget-teammember-team-list\").find(\"#includeExpired\").is(\":checked\") : false;\n        var params = {\n            Id: me._widgetId,\n            PostBackData: \"{ 'IncludeExpired': '\" + includeExpired + \"'}\"\n            /*IncludeExpired: includeExpired*/\n        };\n        var url = \"/Team/RenderTeamMemberTeamList/\"; /* + me._widgetId;*/\n        $.when(globalThis.gage.submitAjaxRequest(params, url, \"POST\")\n            .done(function (data, textStatus, request) {\n            waitingDialog.hide();\n            $(\".\" + me._widgetContainer).html(data);\n            me.setLocalTimes();\n            me.setUpClassTable();\n        })\n            .fail(function (response, textStatus, errorThrown) {\n            waitingDialog.hide();\n        }));\n    }\n    setLocalTimes() {\n        $.each($(\".local-time\"), function (i, e) {\n            var localDate = $(e).text();\n            $(e).html(DisplayDateInLocalFormat(localDate, \"MM/DD/YYYY\") + \" <small>\" + DisplayDateInLocalFormat(localDate, \"hh:mm a\") + \"</small>\");\n            $(e).text(dayjs.utc(localDate).local().format('MM/DD/YYYY'));\n        });\n    }\n    joinTeam(button) {\n        var me = this;\n        var memberListUrl = $(button).attr(\"data-team-member-team-list-pageurl\");\n        var joinCode = $(\".\" + me._widgetContainer).find(\"#join-code\").val();\n        if (joinCode === \"\") {\n            alert($(button).attr(\"data-required-message\"));\n            return false;\n        }\n        var notFoundMessage = $(button).attr(\"data-not-found-message\");\n        /*var url = \"/API/Manage/Team/AddMember/\" + joinCode;*/\n        var params = {\n            Identifier: joinCode\n        };\n        var url = \"/API/Manage/Team/AddMember\";\n        $.when(globalThis.gage.submitAjaxRequest(params, url, \"POST\")\n            .done(function (data, textStatus, request) {\n            window.location.href = memberListUrl;\n        })\n            .fail(function (response, textStatus, errorThrown) {\n            if (response.status == \"404\") {\n                alert(notFoundMessage);\n            }\n            else if (response.responseJSON !== undefined) {\n                alert(response.responseJSON.errorMessage);\n            }\n            else {\n                alert(response.responseText);\n            }\n        }));\n    }\n    setUpClassTable() {\n        var me = this;\n        var table = $(\".\" + me._widgetContainer).find(\".dataTable\");\n        $(table).DataTable({\n            \"searching\": true,\n            \"columnDefs\": [\n                { type: 'date', \"targets\": 1 },\n                { type: 'date', \"targets\": 2 },\n                { \"targets\": 3, \"searchable\": false, \"orderable\": false }\n            ]\n        });\n    }\n    selectTeamsTojoin(button) {\n        var me = this;\n        var url = \"/Team/TeamsToJoin/\";\n        $.when(globalThis.gage.submitAjaxRequest(null, url, \"GET\")\n            .done(function (data, textStatus, request) {\n            me._globalModal.openGlobalModal(data, \"panel\", { classes: \"team-join-modal panel-lg\" });\n            var globalContainer = $(\".js-global-modal\");\n            var table = $(globalContainer).find(\".dataTable\");\n            $(table).DataTable({\n                \"searching\": true,\n                \"columnDefs\": [\n                    { type: 'date', \"targets\": 1 },\n                    { type: 'date', \"targets\": 2 },\n                    { \"targets\": 3, \"searchable\": false, \"orderable\": false }\n                ]\n            });\n            $(globalContainer).find(\".js-team-popup-header\").html($(button).attr(\"data-join-popup-header\"));\n            $(globalContainer).find(\".js-join-selected-team\").html($(button).attr(\"data-join-button-text\"));\n            $(globalContainer).on(\"click\", \".js-join-selected-team\", function (e) {\n                $(e.currentTarget).attr(\"disabled\", \"true\");\n                var identity = $(e.currentTarget).attr(\"data-team-identifier\");\n                $(\".js-wait-join-team[data-wait-for='\" + identity + \"']\").removeClass(\"hidden\");\n                var participantId = $(\"#participant-id\").val();\n                var teamIdentifier = $(e.currentTarget).attr(\"data-team-identifier\");\n                /*var url = \"/API/Manage/Team/JoinTeam/\" + teamIdentifier;*/\n                var params = {\n                    Identifier: teamIdentifier\n                };\n                var url = \"/API/Manage/Team/JoinTeam/\";\n                $.when(globalThis.gage.submitAjaxRequest(params, url, \"POST\")\n                    .done(function (data, textStatus, request) {\n                    url = \"/Team/RenderTeamMemberTeamList/\"; /* + me._widgetId;*/\n                    var params = {\n                        Id: me._widgetId,\n                        PostBackData: null\n                        /*IncludeExpired: includeExpired*/\n                    };\n                    $.when(globalThis.gage.submitAjaxRequest(params, url, \"POST\")\n                        .done(function (data, textStatus, request) {\n                        $(\".\" + me._widgetContainer).html(data);\n                        $(\".js-wait-join-team[data-wait-for='\" + identity + \"']\").addClass(\"hidden\");\n                    }));\n                })\n                    .fail(function (response, textStatus, errorThrown) {\n                    $(e.currentTarget).attr(\"disabled\", \"false\");\n                    $(\".js-wait-join-team[data-wait-for='\" + identity + \"']\").addClass(\"hidden\");\n                    alert(response.responseJSON.errorMessage);\n                }));\n            });\n        })\n            .fail(function (response, textStatus, errorThrown) {\n            alert(response.responseJSON.errorMessage);\n        }));\n    }\n}\n;\n$(document).ready(function () {\n    $(\".widget-teammember-team-list\").each(function (index, item) {\n        $(item).data(\"manager\", new TeamMemberTeamList(item));\n    });\n});\nclass UserStatusFielo {\n    constructor(widget) {\n        this._widget = widget;\n        this.initialize();\n    }\n    initialize() {\n        var me = this;\n        //this.bindControls();\n        if ($(me._widget).attr(\"data-is-edit-mode\") !== \"true\") {\n            if ($(me._widget).attr(\"data-fielo-member-id\") != \"\") {\n                me.GetFieloSessionStatus(0, false);\n            }\n        }\n    }\n    GetFieloSessionStatus(attempt, renew) {\n        var me = this;\n        if (attempt < 5) {\n            $.ajax({\n                method: \"GET\",\n                url: \"/Fielo/GetFieloSessionStatus\" + \"/\" + renew,\n            }).done(function (data, textStatus, request) {\n                if (data != null && data.result != null) {\n                    data.result.attempt = attempt + 1;\n                    me.updateSessionCheck(data.result);\n                }\n            });\n        }\n        else {\n            alert(\"too many attempts\");\n            return;\n        }\n    }\n    updateSessionCheck(data) {\n        var me = this;\n        if (data != null) {\n            if (!data.success) {\n                me.GetFieloSessionStatus(data.attempt, true);\n            }\n            else if (data.errorCode != undefined) {\n                if (data.errorCode == \"INVALID_SESSION_ID\") {\n                    me.GetFieloSessionStatus(data.attempt, true);\n                }\n                else if (data.errorCode != \"\") {\n                    alert(data.errorMessage);\n                    return;\n                }\n                else {\n                    if (data.success) {\n                        if ($(me._widget).attr(\"data-fielo-member-id\") != \"\") {\n                            me.bindControls();\n                        }\n                    }\n                }\n            }\n        }\n    }\n    bindControls() {\n        var me = this;\n        var membersRequests = [];\n        var memberRequest = {\n            \"dataType\": null,\n            \"callType\": null,\n            \"pointValue\": null,\n            \"fieldName\": \"\",\n            \"renew\": false,\n            \"placeHolderToUpdate\": \"\"\n        };\n        if ($(me._widget).find(\"#js-current-point-balance\").length > 0) {\n            var placeHolderToUpdate = $(me._widget).find(\"#js-current-point-balance\").attr(\"Id\");\n            var fieloField = $(me._widget).find(\"#js-current-point-balance\").attr(\"data-fielo-field\");\n            var dataType = $(me._widget).find(\"#js-current-point-balance\").attr(\"data-type\");\n            memberRequest = {\n                \"dataType\": dataType,\n                \"callType\": \"GetPointBalance\",\n                \"pointValue\": 1,\n                \"fieldName\": fieloField,\n                \"renew\": false,\n                \"placeHolderToUpdate\": placeHolderToUpdate\n            };\n            membersRequests.push(memberRequest);\n        }\n        if ($(me._widget).find(\"#js-custom-field\").length > 0) {\n            var placeHolderToUpdate = $(me._widget).find(\"#js-custom-field\").attr(\"Id\");\n            var fieloField = $(me._widget).find(\"#js-custom-field\").attr(\"data-fielo-field\");\n            var dataType = $(me._widget).find(\"#js-custom-field\").attr(\"data-type\");\n            memberRequest = {\n                \"dataType\": dataType,\n                \"callType\": \"GetCustomFieloField\",\n                \"pointValue\": 1,\n                \"fieldName\": fieloField,\n                \"renew\": false,\n                \"placeHolderToUpdate\": placeHolderToUpdate\n            };\n            membersRequests.push(memberRequest);\n        }\n        if ($(me._widget).find(\"#js-point-value\").length > 0) {\n            var placeHolderToUpdate = $(me._widget).find(\"#js-point-value\").attr(\"Id\");\n            var fieloField = $(me._widget).find(\"#js-point-value\").attr(\"data-fielo-field\");\n            var dataType = $(me._widget).find(\"#js-point-value\").attr(\"data-type\");\n            var pointValue = $(me._widget).find(\"#js-point-value\").attr(\"data-point-value\") !== \"\"\n                ? parseFloat($(me._widget).find(\"#js-point-value\").attr(\"data-point-value\"))\n                : 1;\n            memberRequest = {\n                \"dataType\": dataType,\n                \"callType\": \"GetPointValue\",\n                \"pointValue\": pointValue,\n                \"fieldName\": fieloField,\n                \"renew\": false,\n                \"placeHolderToUpdate\": placeHolderToUpdate\n            };\n            membersRequests.push(memberRequest);\n        }\n        if ($(me._widget).find(\"#js-current-level\").length > 0) {\n            var placeHolderToUpdate = $(me._widget).find(\"#js-current-level\").attr(\"Id\");\n            var fieloField = $(me._widget).find(\"#js-current-level\").attr(\"data-fielo-field\");\n            var dataType = $(me._widget).find(\"#js-current-level\").attr(\"data-type\");\n            memberRequest = {\n                \"dataType\": dataType,\n                \"callType\": \"GetMemberLevel\",\n                \"pointValue\": 1,\n                \"fieldName\": fieloField,\n                \"renew\": false,\n                \"placeHolderToUpdate\": placeHolderToUpdate\n            };\n            membersRequests.push(memberRequest);\n        }\n        me.GetCommmonMember(0, membersRequests);\n    }\n    GetCommmonMember(attempt, membersRequests) {\n        var me = this;\n        if (attempt < 5) {\n            $.when(submitAjaxRequest(membersRequests, \"/Fielo/GetCommonMember\", \"POST\").done(function (data, textStatus, request) {\n                if (data != null && data.result != null) {\n                    data.result.attempt = attempt + 1;\n                    data.result.memberRequests = membersRequests;\n                    me.updateCommmonMemberUI(data.result);\n                }\n            }));\n        }\n        else {\n            alert(\"too many attempts\");\n            return;\n        }\n    }\n    updateCommmonMemberUI(data) {\n        var me = this;\n        if (data != null && data.errorCode != undefined) {\n            if (data.errorCode == \"INVALID_SESSION_ID\") {\n                me.GetCommmonMember(data.attempt, data.membersRequests);\n            }\n            else if (data.errorCode != \"\") {\n                data.attempt = data.attempt + 1;\n                me.GetCommmonMember(data.attempt, data.membersRequests);\n                return;\n            }\n            else {\n                if (data.responseData != null && data.responseData != undefined && data.responseData.memberResponseObject != null && data.responseData.memberResponseObject !== undefined) {\n                    $.each(data.responseData.memberResponseObject, function (index, value) {\n                        $(\"#\" + value.placeHolderToUpdate).html(value.formattedData);\n                    });\n                }\n            }\n        }\n    }\n}\n;\n$(document).ready(function () {\n    $(\".widget-userstatusfielo\").each(function (index, item) {\n        $(item).data(\"manager\", new UserStatusFielo(item));\n    });\n});\n/// <reference path=\"../standaloneComponents/FileUpload.ts\" />\n$(document).ready(function () {\n    //function UploadImage(fileField, $hiddenField) {\n    //    if (fileField.files[0] != null) {\n    //        var formData = new FormData();\n    //        formData.append('file', fileField.files[0]);\n    //        $.ajax({\n    //            url: (\"/API/Content/UploadFile\"),\n    //            type: \"POST\",\n    //            data: formData,\n    //            processData: false,\n    //            cache: false,\n    //            contentType: false\n    //        }).done(function (data) {\n    //            gage.log(data.data.fileName);\n    //            $hiddenField.attr(\"data-url\", data.data.url);\n    //            $hiddenField.text(data.data.fileName);\n    //            $hiddenField.removeClass(\"hide\");\n    //        });\n    //    }\n    //}\n    //$('input[type=\"file\"]').change(function () {\n    //    UploadImage(this, $(this).parent().find(\"div.filename\"));\n    //});\n    var showRecaptcha = $('#showRecaptcha').val();\n    if (showRecaptcha) {\n        var element = document.getElementById(\"submit-contact-button\");\n        if (element != undefined) {\n            element.disabled = true;\n        }\n    }\n    $(document).on(\"change\", \".widget-contact-form input[type='file']\", function (e) {\n        var container = $(this).parent();\n        var fileProgress = $(container).find(\".file-progress\");\n        var fileInput = $(container).find(\"input[type='file']\");\n        var file = e.target.files[0];\n        var originalFilename = file.name;\n        var fileUpload = new FileUpload(file, null);\n        $(fileInput).hide();\n        $(container).find(\".js-change-image-button\").hide();\n        $(fileProgress).find(\".progress-wrapper\").show();\n        fileUpload.onProgressChangeCallback = function (value) {\n            var percentText = value.toString() + '%';\n            $(fileProgress).find(\".progress-wrapper .progress-indicator\").text(percentText);\n            $(fileProgress).find(\".progress-wrapper .progress-indicator\").width(percentText);\n        };\n        fileUpload.onCompleteCallback = function () {\n            var queryStart = fileUpload.url.indexOf(\"?\");\n            var cdnUrl = fileUpload.url.substr(0, queryStart);\n            $(container).find(\".filename\").text(originalFilename);\n            $(container).find(\".CdnUrl\").val(cdnUrl);\n            $(container).find(\".js-change-image-button\").show();\n            $(fileProgress).find(\".progress-wrapper .progress-indicator\").text(\"0\");\n            $(fileProgress).find(\".progress-wrapper .progress-indicator\").width(\"0%\");\n            $(fileProgress).find(\".progress-wrapper\").hide();\n        };\n        fileUpload.usePortalUploadPath = true;\n        fileUpload.enforceFileTypes = true;\n        fileUpload.uploadFile();\n    });\n    $(\"body\").on(\"click\", \"#submit-contact-button\", function (e) {\n        e.preventDefault();\n        var id = \"#\" + $(this).data(\"id\");\n        var emailErrorMessage = $('#submit-contact-button').attr(\"data-invalid-email\");\n        if (emailErrorMessage == undefined) {\n            emailErrorMessage = \"Please enter a valid email address.\";\n        }\n        $.validator.addMethod(\"contact-form-email\", function (value, element) {\n            return this.optional(element) || /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/.test(value);\n        }, emailErrorMessage);\n        var validator = $(id).validate();\n        if (validator.form()) {\n            if ($(\"#ContactFormOperationComplete\").val() == 'False') {\n                bootbox.dialog({\n                    title: '<span class=\"fa-solid fa-floppy-disk\"></span> ' + $('#savingContactTitle').val(),\n                    message: $('#savingContactMessage').val(),\n                    closeButton: false\n                });\n                $(id).trigger(\"submit\");\n                setTimeout(function () {\n                    validator.resetForm();\n                }, 100);\n            }\n        }\n    });\n});\n/// <reference path=\"../lib/jquery.d.ts\" />\nclass CurriculumTeamContentListWidget {\n    constructor(widget) {\n        this._widget = widget;\n        this.initialize();\n    }\n    initialize() {\n        this._widgetId = parseInt($(this._widget).attr(\"data-contentwidgetid\"));\n        this.bindControls();\n    }\n    bindControls() {\n        var self = this;\n        try {\n            var html = $(\".js-course-content\").html();\n            var globalModal = new GlobalModal(\"content-assignment-list\");\n            if ($(self._widget).find(\"#FlyoutInitialDisplayBehavior\").val() == \"Open\") {\n                if ($(\"body.client-theme\").length) {\n                    globalModal.openGlobalModal(html, \"panel\", { classes: \"content-assignment-list\", panelAlignment: \"left\", animate: true });\n                }\n            }\n            if ($(self._widget).find(\"#FlyoutInitialDisplayBehavior\").val() == \"OpenCloseAfter\") {\n                if ($(\"body.client-theme\").length) {\n                    globalModal.openGlobalModal(html, \"panel\", { classes: \"content-assignment-list\", panelAlignment: \"left\", animate: true });\n                }\n                setTimeout(function () {\n                    globalModal.closeGlobalModal();\n                }, 2000);\n            }\n            $(self._widget).find(\".js-open-class-list\").on(\"click\", function (e) {\n                globalModal.openGlobalModal(html, \"panel\", { classes: \"content-assignment-list\", panelAlignment: \"left\", animate: true });\n                $(\"#globalmodal-content-assignment-list\").find(\".localized-time\").each(function (i, e) {\n                    var localDate = $(e).text();\n                    $(e).html(DisplayDateInLocalFormat(localDate, \"MM/DD/YYYY\") + \" <small>\" + DisplayDateInLocalFormat(localDate, \"hh:mm a\") + \"</small>\");\n                });\n            });\n        }\n        catch (error) {\n            console.error(error);\n        }\n        $(document).on('OnContentCompetionWidgetCompletionCheck', function () {\n            var trackableWidgets = $(\"[data-trackable='true']\");\n            var dataCompletedWidgetCount = 0;\n            $(\"[data-trackable='true']\").each(function (index, elem) {\n                if ($(elem).attr(\"data-participant-completed\") == \"true\") {\n                    dataCompletedWidgetCount += 1;\n                }\n            });\n            if (dataCompletedWidgetCount == trackableWidgets.length) {\n                var urlParameters = window.location.href.slice(window.location.href.indexOf('?') + 1);\n                var params = {\n                    \"id\": self._widgetId.toString(),\n                    \"source\": urlParameters\n                };\n                $.ajax({\n                    data: params,\n                    method: \"GET\",\n                    url: '/Content/RenderCurriculumTeamContentList',\n                    success: function (data) {\n                        $(self._widget).find(\".user-curriculumteamcontentlist-inner\").html(data);\n                        if ($(self._widget).find(\"#IsWidgetVisible\").val() === \"True\") {\n                            $(self._widget).find(\".js-open-class-list\").on(\"click\", function (e) {\n                                globalModal.openGlobalModal(html, \"panel\", { classes: \"content-assignment-list\", panelAlignment: \"left\", animate: true });\n                            });\n                            if ($(self._widget).find(\"#FlyoutCompletionDisplayBehavior\").val() == \"Open\") {\n                                if ($(\"body.client-theme\").length) {\n                                    globalModal.openGlobalModal(html, \"panel\", { classes: \"content-assignment-list\", panelAlignment: \"left\", animate: true });\n                                }\n                            }\n                        }\n                    }\n                });\n            }\n        });\n    }\n}\n$(function () {\n    // locate all product list widgets on page\n    $(\".user-curriculumteamcontentlist\").each(function (index, item) {\n        $(item).data(\"manager\", new CurriculumTeamContentListWidget(item));\n    });\n});\nwindow[\"CurriculumTeamContentListWidget\"] = CurriculumTeamContentListWidget;\n/// <reference path=\"../lib/jquery.d.ts\" />\nclass DSODashboard {\n    constructor(widget) {\n        this._widget = widget;\n        this.initialize();\n    }\n    initialize() {\n        this._widgetId = parseInt($(this._widget).attr(\"data-contentwidgetid\"));\n        this.bindControls();\n    }\n    bindControls() {\n        var me = this;\n        $(me._widget).find(\".js-children-transactions\").on('click', function () {\n            var expand = this;\n            me.showTransactions(expand, this);\n        });\n        $(me._widget).find(\".js-children-locations\").on('click', function () {\n            var expand = this;\n            me.showLocations(expand, this);\n        });\n    }\n    showTransactions(expand, origin) {\n        var me = this;\n        var parentContainer = $(me._widget).find(\"#list-items\").find('.js-row-transactions-' + $(expand).data(\"participantid\"));\n        var detailContainer = $(parentContainer).find(\".js-transactions-\" + $(expand).data(\"participantid\"));\n        $(detailContainer).find('.js-chidren-transactions').attr('disabled', 'true');\n        var identifier = $(expand).data(\"participantid\");\n        $.when(me.Children(identifier).done(function (data, textStatus, response) {\n            var modalHeading = $(\".js-transactions-heading\").text();\n            var htmlSource = $(\"<div><h1 class='h2'>\" + modalHeading + \"</h1>\" + $(parentContainer).html() + \"</div>\");\n            if (data.trim() === \"\") {\n                $(htmlSource).find(\"table\").remove();\n                var noTransactionsMsg = $(\".js-no-transactions\").text();\n                $(htmlSource).append(\"<i>\" + noTransactionsMsg + \"</i>\");\n            }\n            else {\n                $(htmlSource).find(\"tbody\").append(data);\n            }\n            $(htmlSource).find(\".accounttransactionListHeading\").removeClass(\"sorting\").removeClass(\"sorting_desc\");\n            $(htmlSource).find(\".dataTable\").removeClass(\"table-striped\");\n            var globalModal = new GlobalModal(\"dso-locations\");\n            globalModal.openGlobalModal($(htmlSource).html(), \"panel\", { origin: $(origin), classes: \"dso-modal\" });\n            $(\".dso-modal\").find(\".js-vieworderdetail\").on('click', function () {\n                var expand = this;\n                me.showTransactionDetail(expand);\n            });\n        }));\n    }\n    showTransactionDetail(expand) {\n        var me = this;\n        var widgetContainer = $('.widget-accounttransaction-list');\n        var parentContainer = $(expand).parent().closest('tr').next('tr');\n        var detailContainer = $(parentContainer).find(\".detail-\" + $(expand).data(\"identifier\"));\n        var icon = $(expand).find('span');\n        if ($(icon).hasClass('fa-chevron-down')) {\n            if ($(detailContainer).hasClass(\"js-data-loaded\")) {\n                $(parentContainer).removeClass('hide');\n                $(icon).toggleClass('fa-chevron-down fa-chevron-up');\n            }\n            else {\n                $(widgetContainer).find('.js-vieworderdetail').attr('disabled', 'true');\n                var identifier = $(expand).data(\"identifier\");\n                var actionid = $(expand).data(\"actionid\");\n                var source = $(expand).data(\"source\");\n                var transactiontype = $(expand).data(\"transactiontype\");\n                var participantactivityid = $(expand).data(\"participantactivityid\");\n                var showaccount = $(expand).data(\"showaccount\");\n                var showdepositsource = $(expand).data(\"showdepositsource\");\n                var activityname = $(expand).data(\"activityname\");\n                var isadmin = $(expand).data(\"isadmin\");\n                $.when(me.GetOrderDetail(identifier, actionid, source, transactiontype, participantactivityid, activityname, showaccount, showdepositsource, isadmin).done(function (data, textStatus, response) {\n                    $(parentContainer).removeClass('hide');\n                    $(parentContainer).slideDown(1000);\n                    detailContainer.html($(this).data(\"identifier\"));\n                    detailContainer.addClass(\"js-data-loaded\");\n                    $(icon).toggleClass('fa-chevron-down fa-chevron-up');\n                    detailContainer.html(data);\n                    $(detailContainer).find(\".dataTable\").removeClass(\"table-striped\");\n                }));\n            }\n        }\n        else {\n            $(parentContainer).addClass('hide');\n            $(icon).toggleClass('fa-chevron-down fa-chevron-up');\n        }\n    }\n    GetOrderDetail(identifier, actionid, source, transactiontype, participantactivityid, activityname, showaccount, showdepositsource, isadmin) {\n        var params = {\n            \"source\": source,\n            \"transactionType\": transactiontype,\n            \"identifier\": identifier,\n            \"actionId\": actionid,\n            \"participantActivityId\": participantactivityid,\n            \"activityName\": activityname,\n            \"showAccount\": showaccount,\n            \"showDepositSource\": showdepositsource,\n            \"isaAmin\": isadmin\n        };\n        return $.ajax({\n            data: params,\n            method: \"GET\",\n            url: '/Api/AccountTransaction/GetTransactionDetail'\n        });\n    }\n    Children(participantId) {\n        var me = this;\n        var params = {\n            \"participantId\": null\n        };\n        params.participantId = participantId;\n        return $.ajax({\n            data: params,\n            method: \"GET\",\n            url: '/Distributor/GetTransactions',\n            cache: false,\n            traditional: true\n        });\n    }\n    showLocations(expand, origin) {\n        var me = this;\n        var identifier = $(expand).data(\"participantid\");\n        $.when(me.Locations(identifier).done(function (data, textStatus, response) {\n            var modalHeading = $(\".js-locations-heading\").text();\n            data = \"<h1 class='h2'>\" + modalHeading + \"</h2>\" + data;\n            var globalModal = new GlobalModal(\"dso-locations\");\n            globalModal.openGlobalModal(data, \"panel\", { origin: $(origin), classes: \"dso-modal\" });\n        }));\n    }\n    Locations(participantId) {\n        var me = this;\n        var params = {\n            \"participantId\": null\n        };\n        params.participantId = participantId;\n        return $.ajax({\n            data: params,\n            method: \"GET\",\n            url: '/Distributor/GetLocations',\n            cache: false,\n            traditional: true\n        });\n    }\n}\n$(document).ready(function () {\n    $(\".widget_dsodashboard\").each(function (index, item) {\n        $(item).data(\"manager\", new DSODashboard(item));\n    });\n});\nwindow[\"DSODashboard\"] = DSODashboard;\n/// <reference path=\"../lib/jquery.d.ts\" />\n/// <reference path=\"../lib/helper.admin.d.ts\" />\nexport class DSOSetup {\n    constructor(widget) {\n        this._widget = widget;\n        this.initialize();\n    }\n    initialize() {\n        this._widgetId = parseInt($(this._widget).attr(\"data-contentwidgetid\"));\n        this.bindControls();\n    }\n    bindControls() {\n        var me = this;\n        $(me._widget).find(\".js-reset-dso-button\").click(function (e) {\n            var table = $(me._widget).find(\".js-participants\");\n            $(this).closest(\".panel-body\").find(\".js-dsosearchtext\").val(\"\");\n            $(table).addClass('hidden');\n        });\n        $(me._widget).find(\".js-find-dso-button\").click(function (e) {\n            e.preventDefault();\n            if ($(me._widget).find(\".js-dsosearchtext\").val() === \"\") {\n                alert($(this).data(\"required-text\"));\n                return false;\n            }\n            me.findDSO();\n        });\n        $(me._widget).on('click', '.js-distributors', function () {\n            var expand = this;\n            me.showDistributors(expand, this);\n        });\n        $(me._widget).find(\".js-dsosearchtext\").on(\"keypress\", function (e) {\n            if (e.keyCode == 13)\n                $(me._widget).find(\".js-find-dso-button\").click();\n        });\n        $(me._widget).find(\".js-shownewhierarchypanel\").click(function (e) {\n            e.preventDefault();\n            $(me._widget).find(\".js-panel-search\").addClass(\"hidden\");\n            $(me._widget).find(\".js-participants\").addClass(\"hidden\");\n            $(me._widget).find(\".js-panel-create\").removeClass(\"hidden\");\n        });\n        $(me._widget).find(\".js-button-save-practice\").on('click', function (e) {\n            e.preventDefault();\n            var topHierarchyLevelParticipantId = $(this).data(\"parent-identifier\");\n            if (me.validateInput()) {\n                me.saveAddPractice(topHierarchyLevelParticipantId);\n            }\n        });\n        $(me._widget).find(\".js-addnew-hierarchy\").click(function (e) {\n            e.preventDefault();\n            var errorpanel = $(me._widget).find(\".js-panel-error\");\n            var successpanel = $(me._widget).find(\".js-panel-success\");\n            var successmessage = $(successpanel).data(\"fileupload-success-message\");\n            $(errorpanel).addClass(\"hidden\");\n            $(successpanel).addClass(\"hidden\");\n            var errorcontainer = $(errorpanel).find(\".js-panel-errorcontainer\");\n            var successcontainer = $(successpanel).find(\".js-panel-successcontainer\");\n            var bodycontainer = $(me._widget).find(\".js-participants #list-items\");\n            var fileObject = $(me._widget).find(\"#file\");\n            var file = document.getElementById($(fileObject).attr(\"id\"));\n            var form = $(file).closest(\"form\")[0];\n            var formData = new FormData(form);\n            formData.append('tophierarchylevel', $(me._widget).find(\".js-tophierarchyleveltext\").val());\n            formData.append('midhierarchylevel', $(me._widget).find(\".js-midhierarchyleveltext\").val());\n            formData.append('pointssplit', $(me._widget).find(\".js-pointssplit\").val());\n            var url = (\"/Distributor/ImportHierarchy\");\n            $.when(submitAjaxRequest(undefined, url, \"post\", undefined, undefined, undefined, formData)\n                .done(function (data, textStatus, request) {\n                if (data != null) {\n                    if (data.success == false && data.response.data != null && data.response.data.length > 0) {\n                        var html = '<ul class=\"list-group\">';\n                        $(data.response.data).each(function (index, value) {\n                            html += '<li class=\"list-group-item\">' + value + '</li>';\n                        });\n                        $(errorcontainer).html(html);\n                        $(errorpanel).removeClass(\"hidden\");\n                    }\n                    else if (data.success == true && data.response.data != null) {\n                        if (data.response.data.length > 0) {\n                            var html = '<ul class=\"list-group\">';\n                            $(data.response.data).each(function (index, value) {\n                                html += '<li class=\"list-group-item\">' + value + '</li>';\n                            });\n                            $(successcontainer).html(html);\n                            $(successpanel).find(\".panel-heading\").html(successmessage);\n                            $(me._widget).find(\".js-invite-tophierarchy-member\").on('click', function (e) {\n                                e.preventDefault();\n                                var errorMessage = $(this).data(\"errormessage\");\n                                var successMessage = $(this).data(\"successmessage\");\n                                me.SendIndividualEmail(0, $(this).attr(\"data-identifier\"), successMessage, errorMessage);\n                            });\n                        }\n                        $(successpanel).removeClass(\"hidden\");\n                        if (data.response.output !== \"\") {\n                            $(bodycontainer).html(data.response.output);\n                            $(bodycontainer).find(\".js-group-row\").addClass(\"success\");\n                            var table = $(me._widget).find(\".js-participants\");\n                            $(me._widget).find(\".js-panel-search\").removeClass(\"hidden\");\n                            $(me._widget).find(\".js-panel-create\").addClass(\"hidden\");\n                            $(me._widget).find(\".js-children\").on('click', function () {\n                                var expand = this;\n                                me.showChildren(expand);\n                            });\n                            $(table).removeClass(\"hidden\");\n                        }\n                    }\n                }\n            }));\n        });\n        $(me._widget).find(\"#file\").on(\"change\", function (e) {\n            me.selectFileToImport(this);\n        });\n        me.removePracticeLocation();\n        $(me._widget).find(\".js-button-add-location\").on('click', function (e) {\n            e.preventDefault();\n        });\n        $(me._widget).find(\".js-close-createnew\").on(\"click\", function (e) {\n            e.preventDefault();\n            $(me._widget).find(\".js-panel-search\").removeClass(\"hidden\");\n            $(me._widget).find(\".js-panel-create\").addClass(\"hidden\");\n            $(me._widget).find(\".js-panel-search\").removeClass(\"hidden\");\n            $(me._widget).find(\".js-file-upload-summary\").addClass(\"hidden\").text(\"\");\n            $(me._widget).find(\".js-panel-successcontainer\").html(\"\");\n            $(me._widget).find(\".js-panel-errorcontainer\").html(\"\");\n            $(me._widget).find(\".js-panel-error\").addClass(\"hidden\");\n            $(me._widget).find(\".js-panel-success\").addClass(\"hidden\");\n            $(me._widget).find(\"#file\").val(\"\");\n            $(me._widget).find(\".js-file-upload-summary\").text(\"\");\n        });\n    }\n    removePracticeLocation() {\n        var me = this;\n        $(me._widget).find(\".btn-remove-practice-location-type\").on(\"click\", function (e) {\n            e.preventDefault();\n            $(this).closest(\".js-location-type-parent\").remove();\n            if ($(me._widget).find(\".js-location-type-container .js-practice-location-type\").length == 1) {\n                $(me._widget).find(\".js-location-type-container .btn-remove-practice-location-type\").addClass(\"hidden\");\n            }\n            else {\n                $(me._widget).find(\".js-location-type-container .btn-remove-practice-location-type\").removeClass(\"hidden\");\n            }\n        });\n    }\n    SendIndividualEmail(participantId, template, successMessage, errorMessage) {\n        var me = this;\n        var params = {\n            ParticipantId: participantId,\n            Template: template\n        };\n        /*var url = \"/Distributor/SendIndividualEmail?participantId=\" + participantId + \"&template=\" + template;*/\n        var url = \"/Distributor/SendIndividualEmail\";\n        $.when(submitAjaxRequest(params, url, \"post\", function () { $(\"#ajax-loading\").modal(); })\n            .done(function (data, textStatus, request) {\n            $(\"#ajax-loading\").modal(\"hide\");\n            if (data != null) {\n                if (data.success === true) {\n                    alert(successMessage);\n                }\n                else {\n                    alert(errorMessage);\n                }\n            }\n        }));\n    }\n    SendGroupEmail(participantId, successMessage, errorMessage) {\n        var me = this;\n        var model = {\n            participantId: participantId,\n            midHierarchyLevelGroupId: $(me._widget).find(\".js-midhierarchyleveltext\").val()\n        };\n        var url = \"/Distributor/SendInvitationEmailByParent\";\n        $.when(submitAjaxRequest(model, url, \"post\", function () { $(\"#ajax-loading\").modal(); })\n            .done((data, textStatus, request) => {\n            $(\"#ajax-loading\").modal(\"hide\");\n            if (data != null) {\n                if (data.success === true) {\n                    alert(successMessage);\n                }\n                else {\n                    alert(errorMessage);\n                }\n            }\n        }));\n    }\n    saveAddPractice(topHierarchyLevelParticipantId) {\n        var me = this;\n        var errorpanel = $(me._widget).find(\".js-panel-location-error\");\n        var successpanel = $(me._widget).find(\".js-panel-success\");\n        $(errorpanel).addClass(\"hidden\");\n        $(successpanel).addClass(\"hidden\");\n        var successmessage = $(successpanel).data(\"record-success-message\");\n        var errorcontainer = $(errorpanel).find(\".js-panel-location-error-container\");\n        var successcontainer = $(successpanel).find(\".js-panel-successcontainer\");\n        var bodycontainer = $(me._widget).find(\".js-participants #list-items\");\n        var model = {\n            CompanyName: null,\n            FirstName: null,\n            LastName: null,\n            Email: null,\n            PhoneNumber: null,\n            Country: null,\n            Language: null,\n            JobTitle: null,\n            KerrPreferredNumberOfOperatories: null,\n            NPINumber: null,\n            PreferredLocationTypeId: 2,\n            Locations: null,\n            Tophierarchylevel: $(me._widget).find(\".js-tophierarchyleveltext\").val(),\n            Midhierarchylevel: $(me._widget).find(\".js-midhierarchyleveltext\").val(),\n            TopHierarchyLevelParticipantId: topHierarchyLevelParticipantId,\n            PreferredLocationType: $(me._widget).find(\".js-preferredlocationtype\").val()\n        };\n        var locations = null;\n        model.CompanyName = $(\".js-practice-companyname\").val() == \"\" ? null : $(\".js-practice-companyname\").val();\n        model.FirstName = $(\".js-practice-firstname\").val() == \"\" ? null : $(\".js-practice-firstname\").val();\n        model.LastName = $(\".js-practice-lastname\").val() == \"\" ? null : $(\".js-practice-lastname\").val();\n        model.Email = $(\".js-practice-email\").val() == \"\" ? null : $(\".js-practice-email\").val();\n        model.PhoneNumber = $(\".js-practice-phonenumber\").val() == \"\" ? null : $(\".js-practice-phonenumber\").val();\n        model.Country = $(\".js-practice-country\").val();\n        model.Language = $(\".js-practice-language\").val();\n        model.JobTitle = $(\".js-practice-jobtitle\").val() == \"\" ? null : $(\".js-practice-jobtitle\").val();\n        model.NPINumber = $(\".js-practice-npinumber\").val() == \"\" ? null : $(\".js-practice-npinumber\").val();\n        model.KerrPreferredNumberOfOperatories = $(\".js-practice-operatories\").val() == \"\" ? null : $(\".js-practice-operatories\").val();\n        locations = $(me._widget).find(\".js-location-container .js-practice-location\").map(function () {\n            if (this.value != \"\") {\n                return this.value;\n            }\n        }).get().join(',');\n        model.Locations = locations;\n        var url = \"/Distributor/AddHierarchy\";\n        $.when(submitAjaxRequest(model, url, \"post\")\n            .done(function (data, textStatus, request) {\n            if (data != null) {\n                if (data.success == false && data.response.data != null && data.response.data.length > 0) {\n                    var html = '<ul class=\"list-group\">';\n                    $(data.response.data).each(function (index, value) {\n                        ;\n                        html += '<li class=\"list-group-item\">' + value + '</li>';\n                    });\n                    $(errorcontainer).html(html);\n                    $(errorpanel).removeClass(\"hidden\");\n                    $(\"#practiceModalError\").modal();\n                }\n                else if (data.success == true && data.response.data != null) {\n                    if (data.response.data.length > 0) {\n                        var html = '<ul class=\"list-group\">';\n                        $(data.response.data).each(function (index, value) {\n                            html += '<li class=\"list-group-item\">' + value + '</li>';\n                        });\n                        $(successcontainer).html(html);\n                        $(successpanel).find(\".panel-heading\").html(successmessage);\n                    }\n                    $(successpanel).removeClass(\"hidden\");\n                    if (data.response.output !== \"\") {\n                        $(bodycontainer).html(data.response.output);\n                        $(bodycontainer).find(\".js-group-row\").addClass(\"success\");\n                        var table = $(me._widget).find(\".js-participants\");\n                        $(me._widget).find(\".js-panel-search\").removeClass(\"hidden\");\n                        $(me._widget).find(\".js-panel-create\").addClass(\"hidden\");\n                        $(me._widget).find(\".js-children\").on('click', function () {\n                            var expand = this;\n                            me.showChildren(expand);\n                        });\n                        $(table).removeClass(\"hidden\");\n                        $(me._widget).find(\"#practiceModal\").modal(\"hide\");\n                        $(me._widget).find(\"#practiceModal\").find(\"input\").val(\"\");\n                        $(me._widget).find(\"#practiceModal\").find('select option:first-child').attr(\"selected\", \"selected\");\n                    }\n                }\n            }\n        }));\n    }\n    validateInput() {\n        var me = this;\n        var errormessage = \"\";\n        if ($(me._widget).find(\".js-practice-firstname\").val() == \"\") {\n            errormessage = \"First Name is required\\n\";\n        }\n        if ($(me._widget).find(\".js-practice-lastname\").val() == \"\") {\n            errormessage += \"Last Name is required\\n\";\n        }\n        if ($(me._widget).find(\".js-practice-email\").val() == \"\") {\n            errormessage += \"Email is required\\n\";\n        }\n        if ($(me._widget).find(\".js-practice-email\").val() != \"\") {\n            var email_regex = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$/i;\n            if (!email_regex.test($(me._widget).find(\".js-practice-email\").val())) {\n                errormessage += \"Email is invalid\\n\";\n            }\n        }\n        if ($(me._widget).find(\".js-practice-phonenumber\").val() == \"\") {\n            errormessage += \"Phone number is required\\n\";\n        }\n        if ($(me._widget).find(\".js-practice-operatories\").val() == \"\") {\n            errormessage += \"Operatories Name is required\\n\";\n        }\n        if (errormessage == \"\") {\n            return true;\n        }\n        alert(errormessage);\n        return false;\n    }\n    selectFileToImport(input) {\n        if (input.files.length) {\n            $(\".js-file-upload-summary\").removeClass(\"hidden\").text(input.files[0].name);\n        }\n        else {\n            $(\".js-file-upload-summary\").addClass(\"hidden\").text(\"\");\n        }\n    }\n    findDSO() {\n        var me = this;\n        var table = $(me._widget).find(\".js-participants\");\n        var bodycontainer = $(me._widget).find(\".js-participants #list-items\");\n        var norecordscontainer = $(me._widget).find(\".js-norecordsfound\");\n        $(me._widget).find(\".js-panel-success\").addClass(\"hidden\");\n        $(me._widget).find(\".js-dso-loader\").removeClass(\"hidden\");\n        $(bodycontainer).html(\"\");\n        $.when(me.Search($(me._widget).find(\".js-dsosearchtext\").val()).done((data, textStatus, response) => {\n            $(me._widget).find(\".js-dso-loader\").addClass(\"hidden\");\n            $(table).addClass(\"hidden\");\n            $(norecordscontainer).addClass(\"hidden\");\n            if ($.trim(data) === \"\") {\n                $(norecordscontainer).removeClass(\"hidden\");\n            }\n            else {\n                $(bodycontainer).html(data);\n                $(bodycontainer).find(\".js-group-row\").addClass(\"success\");\n                $(this._widget).find(\".js-children\").on('click', function () {\n                    var expand = this;\n                    me.showChildren(expand);\n                });\n                $(table).removeClass(\"hidden\");\n                $(this._widget).find(\".js-invite-tophierarchy-member\").on('click', function (e) {\n                    e.preventDefault();\n                    var errorMessage = $(this).data(\"errormessage\");\n                    var successMessage = $(this).data(\"successmessage\");\n                    me.SendIndividualEmail($(this).attr(\"data-identifier\"), \"parent\", successMessage, errorMessage);\n                });\n                $(me._widget).find(\".js-invite-all-primary-members\").on('click', function (e) {\n                    e.preventDefault();\n                    var errorMessage = $(this).data(\"errormessage\");\n                    var successMessage = $(this).data(\"successmessage\");\n                    me.SendGroupEmail($(this).attr(\"data-identifier\"), successMessage, errorMessage);\n                });\n            }\n        }));\n    }\n    SetDistributorCompanyAddressesForParticipant(participantId, addressId, clientId) {\n        var me = this;\n        var dto = {\n            ParticipantId: participantId,\n            DistributorCompanyDto: {\n                Addresses: [{\n                        ParticipantID: participantId,\n                        ID: addressId,\n                        //DistributorCompanyClientID: clientId\n                        PointMatchingField: clientId\n                    }]\n            }\n        };\n        //var params = { id: null, addressQueue: null };\n        //params.id = participantId;\n        //params.addressQueue = JSON.stringify(dto);\n        //console.log(params.addressQueue);\n        var processingModalTitle = $(\"#adding-practice-modal-processing-title\").val();\n        var processingModalBody = $(\"#adding-practice-modal-processing-message\").val();\n        var box = bootbox.dialog({\n            show: false,\n            title: '<span class=\"fa-solid fa-floppy-disk\"></span>&nbsp;&nbsp;' + processingModalTitle,\n            message: \"<i class=\\\"fa fa-refresh fa-spin\\\"></i> \" + processingModalBody,\n            closeButton: false\n        });\n        var url = \"/Manage/User/SetDistributorCompanyAddressesForDSOParticipant\";\n        $.when(submitAjaxRequest(dto, url, \"post\", function () {\n            box.modal('hide');\n        }).done(function (data) {\n            box.modal(\"hide\");\n            $(me._widget).find(\"#distributor-company-search-modal\").modal(\"hide\");\n            var td = $(me._widget).find(\".js-participants #list-items\").find(\"[data-parent-identifier='\" + $(\"#globalmodal-dso-detail\").find(\".js-parentparticipantid\").val() + \"']\");\n            $(td).removeClass(\"js-data-loaded\");\n            $(td).closest(\".js-row-\" + $(\"#globalmodal-dso-detail\").find(\".js-parentparticipantid\").val()).addClass(\"hide\");\n            var parentrow = $(td).closest(\".dataTable\").find(\".js-parentrow-\" + $(\"#globalmodal-dso-detail\").find(\".js-parentparticipantid\").val());\n            var icon = $(parentrow).find(\".js-children span\");\n            $(icon).removeClass('fa-chevron-up');\n            $(icon).addClass(\"fa-chevron-down\");\n            $.when(me.Distributors(participantId).done((data, textStatus, response) => {\n                $(\"#globalmodal-dso-detail\").find(\".global-modal-inner-container\").html(data);\n                $(\"#globalmodal-dso-detail\").find(\".distributor-company-search-trigger\").click(function (e) {\n                    e.preventDefault();\n                    var participantId = $(this).attr(\"data-participantid\");\n                    var dataTable = $(me._widget).find(\"#distributor-company-search-data-table\");\n                    me.GetDistributorCompanies(participantId, dataTable);\n                });\n            }));\n        }));\n    }\n    GetDistributorCompanies(participantId, dataTable) {\n        var me = this;\n        if (!$.fn.DataTable.isDataTable(dataTable)) {\n            $(dataTable).DataTable({\n                \"pageLength\": 10,\n                \"processing\": true,\n                \"language\": {\n                    'loadingRecords': 'Loading',\n                    'processing': '<strong>Processing</strong>'\n                },\n                \"serverSide\": true,\n                //\"deferLoading\": 0,\n                \"paging\": true,\n                \"ordering\": false,\n                \"searching\": true,\n                \"info\": true,\n                \"lengthChange\": false,\n                \"dom\": '<\"top\"fl>rt<\"bottom\"ip><\"clear\">',\n                \"scrollY\": '600px',\n                \"ajax\": {\n                    \"url\": \"/Manage/User/GetDistributorCompanies\",\n                    \"type\": \"GET\",\n                    \"data\": function (data) {\n                        data.id = participantId;\n                    },\n                    \"dataSrc\": function (json) {\n                        return json.data;\n                    }\n                },\n                \"drawCallback\": function () {\n                    var api = this.api();\n                    var rows = api.rows({ page: \"current\" }).nodes();\n                    var last = null;\n                    api.column(3, { page: \"current\" }).data().each(function (group, i) {\n                        if (last !== group) {\n                            $(rows).eq(i).before('<tr><td colspan=\"4\" style=\\\"background-color:#fafafa;border-top:1px solid #A9A9A9;\\\" class=\\\"text-left\\\"><h4>' + group + '</h4></td></tr>');\n                            last = group;\n                        }\n                    });\n                },\n                \"columnDefs\": [\n                    {\n                        \"targets\": 0,\n                        \"searchable\": false,\n                        \"orderable\": false,\n                        \"className\": \"text-center\",\n                        \"render\": function (data, type, full, meta) {\n                            var addButtonText = $(me._widget).find(\"#distributor-company-search-modal-add-practice-button\").val();\n                            var ownerLabel = $(me._widget).find(\"#distributor-company-search-modal-address-owner-label\").val();\n                            var claimedLabel = $(me._widget).find(\"#distributor-company-search-modal-address-claimed-label\").val();\n                            var htm = \"\";\n                            if (full.IsParticipantAddressOwner === true) {\n                                htm = \"<span class=\\\"label label-success\\\">\" + ownerLabel + \"</span>\";\n                            }\n                            else if (full.Claimed === true) {\n                                htm = \"<span class=\\\"label label-danger\\\">\" + claimedLabel + \"</span>\";\n                            }\n                            else {\n                                htm = \"<button class=\\\"btn btn-primary add-address\\\" \" + \"data-id=\\\"\" + full.ID + \"\\\"\" + \"data-distributorcompanyclientid=\\\"\" + full.DistributorCompanyClientID + \"\\\" \" + \"data-pointmatchingfield=\\\"\" + full.PointMatchingField + \"\\\"><i class=\\\"fa fa-plus\\\"></i> \" + addButtonText + \"</button>\";\n                            }\n                            return htm;\n                        }\n                    },\n                    {\n                        \"targets\": 1,\n                        \"searchable\": false,\n                        \"orderable\": false,\n                        \"render\": function (data, type, full) {\n                            var htm = \"<strong>\" + full.DistributorCompanyName + \"</strong>\";\n                            return htm;\n                        }\n                    },\n                    { \"targets\": 2, \"searchable\": false, \"orderable\": false, \"data\": \"Address\" },\n                    //{ \"targets\": 3, \"searchable\": false, \"orderable\": false, \"data\": \"DistributorCompanyClientID\", \"visible\": false }\n                    { \"targets\": 3, \"searchable\": false, \"orderable\": false, \"data\": \"SelectionGroup\", \"visible\": false }\n                ],\n                \"pagingType\": \"full\",\n                \"initComplete\": function () {\n                    var input = $(\"#distributor-company-search-modal .dataTables_filter input\").off();\n                    var self = this.api();\n                    var $searchButton = $(\"<button class=\\\"btn btn-primary\\\">\").text(\"Search\").click(function () {\n                        self.search(input.val()).draw();\n                    });\n                    $(\".dataTables_filter\").append($searchButton);\n                }\n            });\n        }\n        else {\n            $(dataTable).DataTable().search(\"\").columns().search(\"\").draw();\n        }\n        // bring processing message to the front\n        $(me._widget).find('#distributor-company-search-data-table_processing').css('z-index', '99999');\n        $(me._widget).find(\"#distributor-company-search-modal\").attr(\"data-participantid\", participantId);\n        $(me._widget).find(\"#distributor-company-search-modal\").modal(\"show\");\n    }\n    showDistributors(expand, origin) {\n        var me = this;\n        var identifier = $(expand).data(\"identifier\");\n        $(\"#ajax-loading\").modal();\n        $.when(me.Distributors(identifier).done((data, textStatus, response) => {\n            $(\"#ajax-loading\").modal(\"hide\");\n            var globalModal = new GlobalModal(\"dso-detail\");\n            globalModal.openGlobalModal(data, \"panel\", { origin: $(origin), classes: \"dso-modal\" });\n            $(\"#globalmodal-dso-detail\").find(\".distributor-company-search-trigger\").click(function (e) {\n                e.preventDefault();\n                var participantId = $(this).attr(\"data-participantid\");\n                var dataTable = $(me._widget).find(\"#distributor-company-search-data-table\");\n                me.GetDistributorCompanies(participantId, dataTable);\n            });\n        }));\n    }\n    showChildren(expand) {\n        var me = this;\n        var bodycontainer = $(me._widget).find(\".js-participants #list-items\");\n        var parentContainer = $(expand).parent().closest(\"tr\").next(\"tr\");\n        var detailContainer = $(parentContainer).find(\".detail-\" + $(expand).data(\"identifier\"));\n        var icon = $(expand).find(\"span\");\n        if ($(icon).hasClass('fa-chevron-down')) {\n            $(\".js-children\").not(expand).find(\".fa-chevron-up\").removeClass('fa-chevron-up').addClass('fa-chevron-down');\n            $(\".js-children\").not(expand).parent().closest('tr').next('tr').addClass('hide');\n            $(icon).toggleClass('fa-chevron-down fa-chevron-up');\n            if ($(detailContainer).hasClass(\"js-data-loaded\")) {\n                $(parentContainer).removeClass('hide');\n                // $(icon).switchClass('fa-chevron-down fa-chevron-up', '1000', \"easeInOutQuad\");\n            }\n            else {\n                $(bodycontainer).find('.js-chidren').attr('disabled', 'true');\n                var identifier = $(expand).data(\"identifier\");\n                $.when(me.children(identifier).done(function (data, textStatus, response) {\n                    $(parentContainer).removeClass('hide');\n                    $(parentContainer).slideDown(1000);\n                    detailContainer.html($(this).data(\"identifier\"));\n                    detailContainer.addClass(\"js-data-loaded\");\n                    detailContainer.html(data);\n                    detailContainer.find(\".js-group-row\").addClass(\"info\");\n                    $(bodycontainer).find(\".js-vieworderdetail\").removeAttr(\"disabled\");\n                    $(me._widget).find(\".js-add-new-pratice\").on('click', function (e) {\n                        $(me._widget).find(\"#practiceModal\").find(\".js-button-save-practice\").attr(\"data-parent-identifier\", $(this).closest(\".dso-mid-level-wrapper\").data(\"parent-identifier\"));\n                        $(me._widget).find(\"#practiceModal\").modal();\n                    });\n                    $(me._widget).find(\".js-invite-primary-members\").on('click', function (e) {\n                        e.preventDefault();\n                        var errorMessage = $(this).data(\"errormessage\");\n                        var successMessage = $(this).data(\"successmessage\");\n                        me.SendIndividualEmail($(this).attr(\"data-identifier\"), \"child\", successMessage, errorMessage);\n                    });\n                }));\n            }\n        }\n        else {\n            $(parentContainer).addClass('hide');\n            $(icon).toggleClass('fa-chevron-down fa-chevron-up');\n        }\n    }\n    children(parentId) {\n        var me = this;\n        var params = {\n            \"searchCriteria\": \"\",\n            \"topHierarchyLevelGroupId\": parseInt($(this._widget).attr(\"data-tophierarchylevelgroup\")),\n            \"midHierarchyLevelGroupId\": parseInt($(this._widget).attr(\"data-midhierarchylevelgroup\")),\n            \"parentId\": null\n        };\n        params.searchCriteria = $(me._widget).find(\".js-dsosearchtext\").val();\n        params.topHierarchyLevelGroupId = parseInt($(this._widget).attr(\"data-tophierarchylevelgroup\"));\n        params.midHierarchyLevelGroupId = parseInt($(this._widget).attr(\"data-midhierarchylevelgroup\"));\n        params.parentId = parentId;\n        return $.ajax({\n            data: params,\n            method: \"GET\",\n            url: \"/Distributor/GetParticipantByHierarchy\",\n            cache: false,\n            traditional: true\n        });\n    }\n    Distributors(parentId) {\n        var me = this;\n        var params = {\n            \"parentId\": null\n        };\n        params.parentId = parentId;\n        return $.ajax({\n            data: params,\n            method: \"GET\",\n            url: '/Distributor/GetDistributorAddressByParent',\n            cache: false,\n            traditional: true\n        });\n    }\n    Search(searchCriteria) {\n        var me = this;\n        var params = {\n            \"searchCriteria\": \"\",\n            \"topHierarchyLevelGroupId\": parseInt($(this._widget).attr(\"data-tophierarchylevelgroup\")),\n            \"midHierarchyLevelGroupId\": parseInt($(this._widget).attr(\"data-midhierarchylevelgroup\")),\n            \"parentId\": null\n        };\n        params.searchCriteria = searchCriteria;\n        params.topHierarchyLevelGroupId = parseInt($(this._widget).attr(\"data-tophierarchylevelgroup\"));\n        params.midHierarchyLevelGroupId = parseInt($(this._widget).attr(\"data-midhierarchylevelgroup\"));\n        return $.ajax({\n            data: params,\n            method: \"GET\",\n            url: '/Distributor/GetParticipantByHierarchy',\n            cache: false,\n            traditional: true\n        });\n    }\n}\n$(document).ready(() => {\n    $(\".widget_dsosetup\").each((index, item) => {\n        var dsoSetup = new DSOSetup(item);\n        $(item).data(\"manager\", dsoSetup);\n        $(\"body\").on(\"click\", \".add-address\", function (e) {\n            e.preventDefault();\n            var addressId = $(this).data(\"id\");\n            var participantId = $(this).closest(\"#distributor-company-search-modal\").attr(\"data-participantid\");\n            var clientId = $(this).data(\"pointmatchingfield\");\n            dsoSetup.SetDistributorCompanyAddressesForParticipant(participantId, addressId, clientId);\n        });\n    });\n});\nwindow[\"DSOSetup\"] = DSOSetup;\n/// <reference path=\"../lib/jquery.d.ts\" />\nclass FileWidget {\n    constructor(widget) {\n        this._widget = widget;\n        this.initialize();\n    }\n    initialize() {\n        this._widgetId = parseInt($(this._widget).attr(\"data-contentwidgetid\"));\n        this.bindControls();\n    }\n    bindControls() {\n        var self = this;\n        $(this._widget).find(\".download-link\").click(function () {\n            self.MarkAsCompleted();\n        });\n    }\n    MarkAsCompleted() {\n        var self = this;\n        if ($(self._widget).data(\"tracking-complete\") == \"true\") {\n            $(self._widget).data(\"tracking-complete\", \"true\");\n            return;\n        }\n        globalThis.gage.TrackWidget($(this._widget), function () {\n            $(self._widget).data(\"tracking-complete\", \"true\");\n            $(self._widget).data(\"data-participant-completed\", \"true\");\n        });\n    }\n}\n$(function () {\n    // locate all product list widgets on page\n    $(\".widget-file\").each(function (index, item) {\n        $(item).data(\"manager\", new FileWidget(item));\n    });\n});\nwindow[\"FileWidget\"] = FileWidget;\nfunction getHeroImageSize(imageSource) {\n    var img = new Image();\n    img.src = imageSource;\n    globalThis.gage.log(img.width + 'x' + img.height);\n}\nvar heroWidgets = {\n    getHeroImageSize: {\n        init: function (imageSource) {\n            $(document).ready(function () {\n                var img = new Image();\n                img.src = imageSource;\n                globalThis.gage.log(img.width + 'x' + img.height);\n            });\n        }\n    }\n};\n$(window).on(\"load\", function () {\n    var overlayHeight, imageHeight = 0;\n    $.each($('.widget-with-overlay').find('.widget-overlay'), function () {\n        overlayHeight = $(this).height();\n        imageHeight = $(this).parent().find('img').height();\n        if (imageHeight > overlayHeight) {\n            $(this).closest('.widget-with-overlay').height(imageHeight);\n        }\n        else {\n            $(this).closest('.widget-with-overlay').height(overlayHeight);\n        }\n    });\n});\n$(document).ready(function () {\n    $('#login-form').on(\"keydown\", function (e) {\n        var key = e.which;\n        if (key === 13) {\n            $(\"#login-form\").trigger(\"submit\");\n        }\n    });\n});\n/// <reference path=\"../lib/jquery.d.ts\" />\n/// <reference path=\"../lib/helper.admin.d.ts\" />\nclass PromotionCodeWidget {\n    constructor(widget) {\n        this._widget = widget;\n        this.initialize();\n    }\n    initialize() {\n        this._widgetId = parseInt($(this._widget).attr(\"data-contentwidgetid\"));\n        $(this._widget).find(\".promotion-code-success-message,.promotion-code-failed-message\").hide();\n        this.bindControls();\n    }\n    bindControls() {\n        var self = this;\n        $(this._widget).find(\".promotion-code-submit\").on(\"click\", function () {\n            var code = $(self._widget).find(\".promotion-code-input\").val();\n            if (code.length > 0) {\n                self.submitPromotionCode(code);\n            }\n        });\n    }\n    submitPromotionCode(code) {\n        var self = this;\n        $(self._widget).find(\".promotion-code-success-message\").hide();\n        $(self._widget).find(\".promotion-code-failed-message\").hide();\n        $(self._widget).find(\".promotion-code-button\").prop(\"disabled\", true);\n        var contentWidgetId = $(self._widget).attr(\"data-contentwidgetid\");\n        var dto = {\n            Code: code,\n            ContentWidgetId: contentWidgetId\n        };\n        var url = '/API/Content/SubmitPromotionCode';\n        $.when(submitAjaxRequest(dto, url, \"POST\").done(function (data) {\n            $(self._widget).find(\".promotion-code-button\").removeProp(\"disabled\");\n            if (data.success) {\n                $(self._widget).find(\".promotion-code-success-message\").show();\n            }\n            else {\n                $(self._widget).find(\".promotion-code-failed-message\").show();\n            }\n        }));\n    }\n}\n$(function () {\n    // locate all widgets on page\n    $(\".widget-promotion-code\").each(function (index, item) {\n        $(item).data(\"manager\", new PromotionCodeWidget(item));\n    });\n});\nwindow[\"PromotionCodeWidget\"] = PromotionCodeWidget;\n/// <reference path=\"../lib/bootbox.d.ts\" />\n/// <reference path=\"../lib/jquery.d.ts\" />\nclass QuestionaireForm {\n    constructor(widget) {\n        this._widget = widget;\n        this.initialize();\n    }\n    initialize() {\n        this._widgetId = parseInt($(this._widget).attr(\"data-contentwidgetid\"));\n        this.bindControls();\n    }\n    bindControls() {\n        var me = this;\n        $(me._widget).find(\".submit-questionaireform-button\").click(function (e) {\n            e.preventDefault();\n            var id = \"#\" + $(this).data(\"id\");\n            var validator = $(id).validate();\n            if (validator.form()) {\n                if ($(me._widget).find(\"#QuestionaireFormOperationComplete\").val() == 'False') {\n                    bootbox.dialog({\n                        title: '<span class=\"fa-solid fa-floppy-disk\"></span> ' + $('#savingContactTitle').val(),\n                        message: $('#savingContactMessage').val(),\n                        closeButton: false\n                    });\n                    $(me._widget).find(\"#QuestionaireIdentifier\").val(me._widgetId);\n                    $(id).trigger(\"submit\");\n                    setTimeout(function () {\n                        validator.resetForm();\n                    }, 100);\n                }\n            }\n        });\n        $(me._widget).find(\"input[type='file']\").on(\"change\", function (e) {\n            var file = e.target.files[0];\n            var fileUpload = new FileUpload(file, null, true);\n            $(me._widget).find(\".file-progress .progress-wrapper\").show();\n            fileUpload.onProgressChangeCallback = function (value) {\n                var percentText = value.toString() + '%';\n                $(me._widget).find(\".file-progress .progress-wrapper .progress-indicator\").text(percentText);\n                $(me._widget).find(\".file-progress .progress-wrapper .progress-indicator\").width(percentText);\n            };\n            fileUpload.onCompleteCallback = function () {\n                $(me._widget).find(\"#FileUploadUrl\").attr(\"value\", fileUpload.url);\n            };\n            fileUpload.uploadFile();\n            fileUpload.onUploadFailCallback = function (message, uploader) {\n                alert(message);\n            };\n        });\n    }\n}\n$(document).ready(function () {\n    $(\".widget_questionaire-form\").each(function (index, item) {\n        $(item).data(\"manager\", new QuestionaireForm(item));\n    });\n});\nwindow[\"QuestionaireForm\"] = QuestionaireForm;\n/// <reference path=\"../lib/jquery.d.ts\" />\nclass ResourceListViewWidget {\n    constructor(widget) {\n        this._widget = widget;\n        this.initialize();\n    }\n    initialize() {\n        this._widgetId = parseInt($(this._widget).attr(\"data-contentwidgetid\"));\n        this.bindControls();\n    }\n    bindControls() {\n        var self = this;\n        $(this._widget).find(\".download-link\").click(function () {\n            $(this).attr(\"data-tracking-complete\", \"true\");\n            if (self.AllLinksHaveBeenTracked()) {\n                self.MarkAsCompleted();\n            }\n        });\n    }\n    AllLinksHaveBeenTracked() {\n        return $(this._widget).find(\".download-link[data-tracking-complete='false']\").length == 0;\n    }\n    MarkAsCompleted() {\n        var self = this;\n        if ($(self._widget).attr(\"data-tracking-complete\") == \"true\") {\n            $(self._widget).data(\"tracking-complete\", \"true\");\n            return;\n        }\n        globalThis.gage.TrackWidget($(this._widget), function () {\n            $(self._widget).data(\"data-participant-completed\", \"true\");\n            $(self._widget).data(\"tracking-complete\", \"true\");\n        });\n    }\n}\n$(function () {\n    // locate all product list widgets on page\n    $(\".widget-resource-list\").each(function (index, item) {\n        $(item).data(\"manager\", new ResourceListViewWidget(item));\n    });\n});\nwindow[\"ResourceListViewWidget\"] = ResourceListViewWidget;\n/// <reference path=\"../lib/jquery.d.ts\" />\nclass UserCurriculumProgressWidget {\n    constructor(widget) {\n        this._widget = widget;\n        this.initialize();\n    }\n    initialize() {\n        this._widgetId = parseInt($(this._widget).attr(\"data-contentwidgetid\"));\n        this.bindControls();\n    }\n    bindControls() {\n        var self = this;\n        $(\"div .w-ucp-container\").each(function () {\n            var fullId = $(this).attr(\"id\");\n            var defaultDisplay = $(this).data(\"default-display\");\n            var n = fullId.lastIndexOf(\"-\");\n            var id = fullId.substring(n + 1);\n            var hideDetailsText = $(self._widget).find(\"#hide-details-\" + id).val();\n            var showDetailsText = $(self._widget).find(\"#show-details-\" + id).val();\n            var showAdditionalElectivesText = $(self._widget).find(\"#show-additional-electives-\" + id).val();\n            var hideAdditionalElectivesText = $(self._widget).find(\"#hide-additional-electives-\" + id).val();\n            if (defaultDisplay === \"Detail\") {\n                // $(\"#body-\" + id).addClass(\"show\");\n                $(\"#detail-toggle-\" + id).text(hideDetailsText);\n            }\n            else {\n                // $(\"#body-\" + id).removeClass(\"show\");\n                $(\"#header-\" + id).removeClass(\"fang\");\n                $(\"#detail-toggle-\" + id).text(showDetailsText);\n            }\n            $(self._widget).find(\"#detail-toggle-\" + id).on(\"click\", function () {\n                $(this).text(function (i, txt) {\n                    return txt === showDetailsText ? hideDetailsText : showDetailsText;\n                });\n            });\n            $(self._widget).find(\"#additional-courses-toggle-\" + id).on(\"click\", function () {\n                $(self._widget).find(\"#additional-courses-toggle-\" + id + \" span\").text(function (i, txt) {\n                    return txt === showAdditionalElectivesText ? hideAdditionalElectivesText : showAdditionalElectivesText;\n                });\n            });\n        });\n        $(document).on('OnContentCompetionWidgetCompletionCheck', function () {\n            var trackableWidgets = $(\"[data-trackable='true']\");\n            var dataCompletedWidgetCount = 0;\n            $(\"[data-trackable='true']\").each(function (index, elem) {\n                if ($(elem).attr(\"data-participant-completed\") == \"true\") {\n                    dataCompletedWidgetCount += 1;\n                }\n            });\n            if (dataCompletedWidgetCount == trackableWidgets.length) {\n                var params = {\n                    \"id\": self._widgetId.toString(),\n                };\n                $.ajax({\n                    data: params,\n                    method: \"GET\",\n                    url: '/Content/RenderUserCurriculumProgressList',\n                    success: function (data) {\n                        $(self._widget).find(\".user-curriculum-inner\").html(data);\n                        var container = $(self._widget).find(\".user-curriculum-inner\").closest(\".user-curriculum \");\n                        bindEvents(container);\n                    }\n                });\n            }\n        });\n        function bindEvents(container) {\n            var fullId = $(container).attr(\"id\");\n            var defaultDisplay = $(container).data(\"default-display\");\n            var n = fullId.lastIndexOf(\"-\");\n            var id = fullId.substring(n + 1);\n            var hideDetailsText = $(self._widget).find(\"#hide-details-\" + id).val();\n            var showDetailsText = $(self._widget).find(\"#show-details-\" + id).val();\n            var showAdditionalElectivesText = $(self._widget).find(\"#show-additional-electives-\" + id).val();\n            var hideAdditionalElectivesText = $(self._widget).find(\"#hide-additional-electives-\" + id).val();\n            if (defaultDisplay === \"Detail\") {\n                // $(\"#body-\" + id).addClass(\"show\");\n                $(\"#detail-toggle-\" + id).text(hideDetailsText);\n            }\n            else {\n                // $(\"#body-\" + id).removeClass(\"show\");\n                $(\"#header-\" + id).removeClass(\"fang\");\n                $(\"#detail-toggle-\" + id).text(showDetailsText);\n            }\n            $(self._widget).find(\"#detail-toggle-\" + id).on(\"click\", function () {\n                $(this).text(function (i, txt) {\n                    return txt === showDetailsText ? hideDetailsText : showDetailsText;\n                });\n            });\n            $(self._widget).find(\"#additional-courses-toggle-\" + id).on(\"click\", function () {\n                $(self._widget).find(\"#additional-courses-toggle-\" + id + \" span\").text(function (i, txt) {\n                    return txt === showAdditionalElectivesText ? hideAdditionalElectivesText : showAdditionalElectivesText;\n                });\n            });\n        }\n    }\n}\n$(function () {\n    // locate all product list widgets on page\n    $(\".user-curriculum\").each(function (index, item) {\n        $(item).data(\"manager\", new UserCurriculumProgressWidget(item));\n    });\n});\nwindow[\"UserCurriculumProgressWidget\"] = UserCurriculumProgressWidget;\nfunction BindUserLevelProgress() {\n    $(\"div .widget-user-level-progress-container\").each(function () {\n        var container = this;\n        var fullId = $(this).attr(\"id\");\n        var n = fullId.lastIndexOf(\"-\");\n        var id = fullId.substring(n + 1);\n        var defaultDisplay = $(\"#default-display-\" + id).val();\n        var hideDetailsText = $(\"#hide-details-\" + id).val();\n        var showDetailsText = $(\"#show-details-\" + id).val();\n        var $toggleButton = $(\"#toggle-level-criteria-button-\" + id);\n        var $toggleText = $(\"#toggle-level-criteria-text-\" + id);\n        if (defaultDisplay === \"Detail\") {\n            $(container).find(\".ca\").addClass(\"collapse\").addClass(\"show\");\n            $toggleButton.removeClass(\"fa-solid fa-chevron-down\").addClass(\"fa-solid fa-chevron-up\");\n            $toggleText.text(hideDetailsText);\n        }\n        else {\n            $toggleButton.removeClass(\"fa-solid fa-chevron-up\").addClass(\"fa-solid fa-chevron-down\");\n            $toggleText.text(showDetailsText);\n        }\n        $(\"#toggle-level-criteria-container-\" + id).on(\"click\", function (e) {\n            $toggleButton.toggleClass(\"fa-solid fa-chevron-down\").toggleClass(\"fa-solid fa-chevron-up\");\n            if ($toggleText.text() === showDetailsText) {\n                $toggleText.text(hideDetailsText);\n            }\n            else {\n                $toggleText.text(showDetailsText);\n            }\n        });\n    });\n}\n$(document).ready(function () {\n    BindUserLevelProgress();\n});\nvar processScrubbingControls = function () {\n    var videoIDs = $(\".video-ids\");\n    videoIDs.each(function (index) {\n        var videoID = $(this).val();\n        var video = document.querySelector(\"#video-element_\" + videoID);\n        if (video == null || video == undefined) {\n            return;\n        }\n        var hideVideoScrubbingBar = video.getAttribute(\"hide-video-scrubbing-bar\") == \"True\";\n        var disableForwardScrubbing = video.getAttribute(\"disable-forward-scrubbing\") == \"True\";\n        if (!hideVideoScrubbingBar && disableForwardScrubbing) {\n            var previousTime = 0;\n            video.ontimeupdate = function () {\n                setTimeout(function () {\n                    previousTime = video.currentTime;\n                }, 1000);\n            };\n            video.onseeking = function () {\n                if (video.currentTime > previousTime) {\n                    video.currentTime = previousTime;\n                }\n            };\n        }\n        if (hideVideoScrubbingBar) {\n            $(\"#video-element_\" + videoID).addClass(\"widget-video-hide_scrubber\");\n        }\n        else {\n            $(\"#video-element_\" + videoID).removeClass(\"widget-video-hide_scrubber\");\n        }\n    });\n};\n$(function () {\n    $(\".widget-video-player\").each(function (i, e) {\n        var trackingType = parseInt($(e).data(\"tt\"));\n        switch (trackingType) {\n            case 2:\n                e.addEventListener(\"playing\", function () { globalThis.gage.TrackWidget($(e)); }, true);\n                break;\n            case 3:\n                e.addEventListener(\"ended\", function () { globalThis.gage.TrackWidget($(e)); }, true);\n                break;\n        }\n    });\n    var videoMethods = {\n        renderVideoPlayButton: function () {\n            var self = this;\n            var videoWrapper = $(\".video-wrapper\");\n            $.each(videoWrapper, function (i, vw) {\n                var video = $(vw).find(\"video\");\n                if (video.length) {\n                    self.formatVideoPlayButton(vw);\n                    $(video).addClass(\"has-media-controls-hidden\");\n                    var videoPlayButton = $(vw).find('.video-overlay-play-button');\n                    $(videoPlayButton).on(\"click\", function () {\n                        self.hideVideoPlayButton(video.get(0), this);\n                    });\n                }\n            });\n        },\n        formatVideoPlayButton: function (videoWrapper) {\n            $(videoWrapper).append('\\\r\n                <svg class=\"video-overlay-play-button\" viewBox=\"0 0 200 200\" alt=\"Play video\">\\\r\n                    <circle cx=\"100\" cy=\"100\" r=\"90\" fill=\"none\" stroke-width=\"15\" stroke=\"#fff\"/>\\\r\n                    <polygon points=\"70, 55 70, 145 145, 100\" fill=\"#fff\"/>\\\r\n                </svg>\\\r\n            ');\n        },\n        hideVideoPlayButton: function (video, videoPlayButton) {\n            video.play();\n            videoPlayButton.classList.add('is-hidden');\n            video.classList.remove('has-media-controls-hidden');\n            video.setAttribute('controls', 'controls');\n        }\n    };\n    videoMethods.renderVideoPlayButton();\n});\n$(document).ready(function () {\n    processScrubbingControls();\n});\n"]}