{"version":3,"sources":["universal.min.js"],"names":["SetScrollTableShadowStyle","obj","wrapper","scrollLeft","$","attr","offsetWidth","scrollWidth","parentElement","classList","add","remove","addClass","removeClass","checkOverflow","elem","getBoundingClientRect","width","InitializeScrollTable","selectQuery","each","index","contains","wrap","scroll","e","this","that","trigger","mousedown","mouseMoveHandler","me","delta","prev","x","clientX","scLeft","mouseUpHandler","document","off","style","userSelect","y","clientY","mousemove","mouseup","on","touchMoveHandler","mytouch","originalEvent","touches","changedTouches","pageX","touchUpHandler","touch","pageY","r","n","t","o","i","f","c","require","u","a","Error","code","p","exports","call","length","1","module","_classCallCheck","instance","Constructor","TypeError","_defineProperties","target","props","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_createClass","protoProps","staticProps","prototype","value","APIHelper","isFetchingToken","tokenPromiseQueue","myThis","Promise","resolve","token","localStorage","getItem","body","split","jsonStr","atob","json","JSON","parse","Date","exp","removeItem","QueueTokenRequest","error","console","push","RetrieveTokenAsync","then","res","setItem","shift","ajax","url","type","ajaxRequest","reject","GetAccessTokenAsync","headers","Authorization","_default","2","Access","cookie","Cookie","scriptToRemove","getElementById","log","script","createElement","id","src","window","CAPTCHA_KEY","getElementsByTagName","appendChild","tab","LoadRecaptcha","prop","undefined","Tabs","SwitchSignUpTabs","modal","data","purpose","message","task","namespace","html","show","hide","_this","postData","Email","val","Password","RememberMe","is","DeviceId","goToUrl","GoToUrl","grecaptcha","ready","execute","captchaKey","action","CaptchaKey","loginUrl","cache","success","result","isError","lockedout","portalmasq","location","href","pageView","deviceAuth","userId","setTimeout","cook","GetCookie","cookieValues","GetValue","logged","letter","roleA","roles","replace","SetCookie","stringify","callback","clientId","verified","userIsOnline","reload","SocialProfile","CacheBuster","Refresh","alert","UserId","toastr","_this2","Code","DeleteCookie","submit","LogoutSubmit","__RequestVerificationToken","forgottenPasswordUrl","DEFAULT_LANG","CURRENT_LANG","_this3","PublicName","DisplayName","PromoCode","Newsletter","ContestNotification","bypassReCaptcha","SignUpSubmitWorker","_this4","affiliate","aidCookie","IsNumeric","AffiliateId","cidCookie","AffiliateCampaignId","bidCookie","BannerId","taskname","taskdata","TaskData","TaskName","signUpUrl","provider","destination","windowName","now","Math","floor","random","toString","form","setAttribute","hiddenField","openedWindow","open","realOpener","addEventListener","event","origin","close","familyLoginReturnUrl","warning","pathArray","ClientProfileId","SocialProfileId","Fullname","Timezone","DefaultCultureId","CompanyPosition","CountryOfResidenceCode","Bio","clientSettingsUrl","dataType","async","Website","TiktokUsername","LinkedIn","FacebookProfileUrl","InstagramUsername","Twitter","clientMediaSettingsUrl","ConfirmPassword","CurrentPassword","clientSecuritySettingsUrl","updates","clientEmailSettingsUrl","clientCancelPendingEmailUrl","clientResendEmailUrl","CheckForMessage","3","Ads","PopUpDesktopDiv","PopUpMobileDiv","WallerpaperDiv","LeaderBoardDiv","windowWidth","clientWidth","screen","availWidth","promoOffset","ActivePage","PageFormat","Large","MenuShow","Medium","rendered","menuHeight","popped","SlotMessage","SlotSponsor","SlotLeaderboard","SlotMobileLeaderboard","SlotWallpaper","SlotMobileFooter","SplashGap","InitGoogleTag","arguments","totalVisibleHeight","$element","elementTop","offset","top","elementBottom","outerHeight","windowHeight","height","scrollTop","visibleHeight","min","max","pageYOffset","newY","css","format","w","h","SetMenuHeight","googletag","pubads","enableSingleRequest","enableServices","slot","getSlotElementId","SetCookieToExpireInHours","not","WallPaper","Leader","PopUp","Mobile","WallerpaperSlot","slotName","includes","hasClass","offsetHeight","cmd","defineSlot","addService","display","Promotion","WallpaperPosition","LeaderBoardSlot","PopUpDesktopSlot","_this5","FooterMobileSlot","LeaderBoardMobileSlot","popSlotName","PopUpMobileSlot","SquareMobileSlot","hasSquareMobileSlot","FooterMobileDiv","SlotMobileSquare","SquareMobileDiv","LeaderBoardMobileDiv","el","jQuery","rect","left","bottom","innerHeight","documentElement","clientHeight","right","innerWidth","4","messageType","displayAs","messageString","titleString","menuPad","fixed","parseInt","stat","marginTop","displayedToast","ga4EventName","ga4Element","BrokerId","UsernameRequired","ClientIdRequired","EmailRequired","TimezoneRequired","CountryRequired","ArticleId","entityDictionary","entityType","entityId","EntityTracking","formattedData","param","cacheBust","banned","needReload","setCook","deviceId","client_profile_id","socialProfileId","client_verified","us_flag","targetDate","setDate","getDate","expireDate","_targetDate","innerHTML","onlineLetterBox","InitializeHeaderDropdown","ArticleEditHtml","displayName","$zopim","livechat","setName","userEmail","setEmail","timezone","country","onlineMenu","onlineLoginAction","offlineLetterBox","offlineMenu","offlineLoginAction","masq","masqAs","brokerSpecifics","BrokerSpecifics","specs","fxvLink","al","decodeURIComponent","AdminLinks","adminLinks","editLinkHtml","concat","EditLink","deleteLinkHtml","DeleteLink","adminLinksHtml","br","brEnflated","specsObject","replaceStrings","str","list","replaceStringList","Array","isArray","Item1","join","Item2","forexBrokerList","BrokerList","brokerList","cryptoBrokerList","CryptoBrokerList","guideList","GuideList","cryptoGuideList","CryptoGuideList","DynamicScripts","DynamicLinks","refer_link","fxvdomain","links","_links","show_review_popup","updateRoleBasedElements","input","map","role","ele","element","forRole","s","scriptTemplate","Id","head","link","linkBox","5","CookieName","CookieValue","ExpiresInDays","d","setTime","getTime","expires","toUTCString","cookieToSet","encodeURIComponent","ExpiresInHours","cname","cvalue","name","ca","charAt","substring","indexOf","requestedValue","nameEQ","splits","6","DatePicker","assumeNearbyYear","pickadate","start","toDate","end","round","hourlyExists","monthlyExists","span","GetDateSpan","date","moment","parsedDate","isNaN","ValidateDate","selector","from","inputText","dateformat","match","lopera1","lopera2","pdate","opera1","opera2","dd","mm","yy","ListofDays","lyear","7","FauxSelect","DeleteMultiChoiceOption","$selector","parent","menu","find","slideUp","container","ignoreMenuId","slideDown","has","$option","$optionVal","$selectorDiv","closest","$dropdown","options","change","selectedOptionsOutputDiv","selectedOptionsCountDiv","labelText","text","append","count","children","slideToggle","buttonText","valueText","8","Language","locale","SetSessionCookie","dq","9","RebateAccounts","SubmitAccountPostLogin","clientIdUrl","canvas","progress","animate","accountRegistrationType","transferRegistrationType","customMessageTransferAccountNumber","customMessageNewAccountNumber","onload","CompleteSubmission","RebateOption","rebateOptionRadios","errorContainer","errorMessage","AccountTypeId","RegistrationType","AccountNum","BrokerName","BrokerUrlSlug","Authorisation","TradingPlatform","ClearError","submitAccount","BreakForError","chooseRegistrationTypeError","rebateOptionError","provideAuthorisation","registrationNew","chooseAccountTypeError","provideAccountNumberError","registrationTransfer","Captcha","inputFields","item","Name","Value","_RegistrationType","mode","submitAccountUrl","accAddedString","regSuccessString","requiresNfa","submitNfaUrl","requiresExternalAction","clientPanelUrl","accountData","AccountRegistrationType","AccountNumber","AuthorisationGiven","LoginWithPurpose","TASK_SUBMIT_ACCOUNT_NOTIFY","LoginHideModal","SubmitAccount","accountId","cashbackRateUrl","accountTypeId","lang","rebateOptionUrl","SetUpDynamicPopUps","popover","content","10","Site","closeSideNav","AjaxLoading","LoadingOverlay","AjaxComplete","Profile","sideNav","querySelector","click","state","checked","toggle","headings","targetId","placement","dateStr","toLocaleString","CURRENT_CULTURE","day","month","year","11","Support","datepicker","today","_short","toLocaleDateString","full","timeZoneName","shortIndex","send","FoundAnErrorDetail","foundAnErrorUrl","dob","IsDate","Intl","DateTimeFormat","resolvedOptions","timeZone","Phone","Message","ClientId","LogType","requestCallbackUrl","IsError","CountryOfResidenceId","CountryOfResidenceName","emailUsUrl","kayako","visibility","maximize","minimize","SignupFromAffiliateDialog","affiliateAuthenticatedLink","affiliateLink","affiliateNeedEmailVerify","navigator","clipboard","writeText","page","LoginForDestination","cookieStateValues","PageUrl","bugsAndFeedbackUrl","12","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","minLen","_arrayLikeToArray","slice","constructor","test","len","arr2","_i","Symbol","iterator","_s","_e","_arr","_n","_d","next","done","err","_taggedTemplateLiteral","strings","raw","freeze","defineProperties","_typeof","_templateObject","_templateObject2","hash","SwitchTab","activeTab","substr","shortCuts","localShortCuts","vars","GetParameters","BreakException","forEach","storedTabsId","vle","frame","config","localStoreName","locallyStoredCurrentTab","currentTab","currentTabId","manipulateUrl","ignoreHash","preventDefault","LoadTab","compactOnResize","mythis","setTabLink","basePath","pathname","hasOwnProperty","tabId","defaultTab","shortcutIds","haltInitLoad","SetTabToLoadedState","tabFrame","menuFrame","tabFrameId","tabConfig","progressBar","progressBarExists","ManipulateUrl","triggerId","Post","preLoadCallback","postProcessorCallback","postRenderCallback","linkElement","isLink","isSelect","dynamicData","tabInstancePreCallback","genericPostRenderCallback","fullPost","assign","resultProcessed","renderResult","tabInstancePostCallback","postLoadCallback","dom","tabInstancePostRenderCallback","out","history","pushState","subTabId","whitecard","first","className","qd","search","_ref","_ref2","k","v","13","Tracker","trackerCode","lochash","activities","Activities","14","_interopRequireDefault","__esModule","default","_Cookie","_CacheBuster","_Access","_Language","_Tabs","_RebateAccounts","_Support","_Site","_DatePicker","_Tracker","_FauxSelect","_Ads","_APIHelper","cookieInstance","Initialise","UpdateLastUpdatedDate","InitAuthorPopovers","../../includes/APIHelper.js","../../includes/Access.js","../../includes/Ads.js","../../includes/CacheBuster.js","../../includes/Cookie.js","../../includes/DatePicker.js","../../includes/FauxSelect.js","../../includes/Language.js","../../includes/RebateAccounts.js","../../includes/Site.js","../../includes/Support.js","../../includes/Tabs.js","../../includes/Tracker.js","A","B","C","g","E","I","class","background-color","color","position","flex-direction","align-items","justify-content","zIndex","image","background-image","background-position","imagePosition","background-repeat","fontawesome","appendTo","custom","Q","resizeInterval","setInterval","fade","LoadingOverlayFadeOutDuration","fadeIn","clearInterval","fadeOut","removeData","size","parseFloat","maxSize","minSize","LoadingOverlaySetup","extend","toLowerCase","fn","global","throwError","parameterChecker","args","dataSource","totalNumberLocator","totalNumber","isNumeric","Helpers","isObject","locator","formatResult","onError","uninstallPlugin","events","eventPrefix","getObjectType","object","tmp","isFinite","pagination","attributes","defaults","initialize","self","callHook","initialized","disabled","model","pageRange","pageSize","parseDataSource","isAsync","isString","isDynamicTotalNumber","render","observer","isBoot","isForced","currentPage","pageNumber","totalPage","getTotalPage","rangeStart","rangeEnd","generateHTML","hideOnlyOnePage","getPageLinkTag","pageLink","generatePageNumbersHTML","ellipsisText","classPrefix","pageClassName","activeClassName","disableClassName","hideFirstOnEllipsisShow","hideLastOnEllipsisShow","formattedString","getTotalNumber","showPrevious","showNext","showPageNumbers","showNavigator","showSizeChanger","sizeChangerOptions","showGoInput","showGoButton","prevText","nextText","goButtonText","ulClassName","prevClassName","nextClassName","sizeSelect","goInput","goButton","formatSizeChanger","formatNavigator","formatGoInput","formatGoButton","autoHidePrevious","autoHideNext","header","footer","replaceVariables","unshift","sort","b","ii","total","button","findTotalNumberFromRemoteResponse","response","go","number","direction","enable","cloneData","currentPageData","doCallback","getPagingData","alias","pageSizeName","pageNumberName","ajaxParams","pageNumberStartWithZero","formatAjaxParams","contentType","originalResponse","filterDataWithLocator","jqXHR","textStatus","errorThrown","formatAjaxError","disable","ajaxFunction","customCallback","destroy","previous","source","refresh","template","variables","regexp","RegExp","ceil","getLocator","filteredData","ajaxDataType","hook","paginationData","apply","hooks","trim","current","currentTarget","which","focus","validTotalPage","defaultPageNumber","resetPageNumberOnInit","triggerPagingOnInit","define","amd","title","optionsOverride","notify","toastType","iconClass","getOptions","iconClasses","getContainer","create","$container","containerId","createContainer","info","subscribe","listener","clear","$toastElement","clearOptions","clearToast","clearContainer","removeToast","toastsToClear","force","hideMethod","duration","hideDuration","easing","hideEasing","complete","positionClass","getDefaults","tapToDismiss","toastClass","debug","showMethod","showDuration","showEasing","onShown","onHidden","extendedTimeOut","timeOut","titleClass","messageClass","closeHtml","newestOnTop","preventDuplicates","publish","setIcon","setSequence","prepend","setTitle","$titleElement","setMessage","$messageElement","setCloseButton","closeButton","$closeElement","setProgressBar","$progressElement","hideToast","override","clearTimeout","intervalId","endTime","delayedHideToast","maxHideTime","hideEta","stickAround","stop","updateProgress","percentage","previousToast","toastId","startTime","hover","onclick","stopPropagation","cancelBubble","version","deps","factory"],"mappings":"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","file":"../universal.min.js","sourcesContent":["(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i 0) {\n var nextResolve = myThis.tokenPromiseQueue.shift();\n nextResolve(res.token);\n }\n })[\"catch\"](function (error) {\n myThis.isFetchingToken = false;\n console.error('Error retrieving token:', error);\n });\n }\n }\n }, {\n key: \"RetrieveTokenAsync\",\n value: function RetrieveTokenAsync() {\n return $.ajax({\n url: '/api/account/generate-token',\n type: \"POST\"\n });\n }\n }, {\n key: \"SafeServiceAPICall\",\n value: function SafeServiceAPICall(ajaxRequest) {\n var myThis = this;\n return new Promise(function (resolve, reject) {\n myThis.GetAccessTokenAsync().then(function (token) {\n if (!ajaxRequest.headers) {\n ajaxRequest.headers = {};\n }\n ajaxRequest.headers.Authorization = 'Bearer ' + token;\n $.ajax(ajaxRequest).then(function (res) {\n resolve(res);\n })[\"catch\"](function (error) {\n reject(error);\n });\n })[\"catch\"](function (error) {\n reject(error);\n });\n });\n }\n }]);\n return APIHelper;\n}();\nvar _default = APIHelper;\nexports[\"default\"] = _default;\n\n},{}],2:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nvar Access = /*#__PURE__*/function () {\n function Access(cookie) {\n _classCallCheck(this, Access);\n this.Cookie = cookie;\n }\n _createClass(Access, [{\n key: \"LoadRecaptcha\",\n value: function LoadRecaptcha() {\n return new Promise(function (resolve, reject) {\n if ($('#recptcha-script').length) {\n var scriptToRemove = document.getElementById(\"recptcha-script\");\n console.log(scriptToRemove);\n if (scriptToRemove) {\n console.log(\"removed script\");\n $(scriptToRemove).remove();\n }\n }\n var script = document.createElement('script');\n script.id = \"recptcha-script\";\n script.src = \"https://www.recaptcha.net/recaptcha/api.js?render=\" + window.CAPTCHA_KEY;\n console.log(\"Appending Recaptcha Script\");\n document.getElementsByTagName('head')[0].appendChild(script);\n resolve(true);\n });\n }\n }, {\n key: \"Login\",\n value: function Login(tab) {\n this.LoadRecaptcha().then(function () {\n if ($('#recptcha-script').length) {\n console.log(\"Recaptcha SRC: \", $('#recptcha-script').prop('src'));\n } else {}\n });\n if (tab == undefined) {\n tab = \"login\";\n }\n window.Tabs.SwitchSignUpTabs(tab);\n $('#loginModal').modal('show');\n $('#login-screen-progress').addClass('hide');\n $('#login-error-summary').remove();\n }\n }, {\n key: \"LoginForDestination\",\n value: function LoginForDestination(url) {\n this.LoadRecaptcha().then(function () {\n if ($('#recptcha-script').length) {} else {}\n });\n window.Tabs.SwitchSignUpTabs('login');\n $('#login-screen-progress').addClass('hide');\n $('#loginModal').data('GoToUrl', url);\n $('#loginModal').modal('show');\n }\n }, {\n key: \"LoginWithPurpose\",\n value: function LoginWithPurpose(purpose, message, tab, task, data, namespace) {\n this.LoadRecaptcha().then(function () {\n if ($('#recptcha-script').length) {} else {}\n window.Tabs.SwitchSignUpTabs(tab);\n $('#login-screen-progress').addClass('hide');\n if (purpose != undefined) {\n $('#loginModal').data('callback', purpose);\n }\n if (namespace != undefined) {\n $('#loginModal').data('namespace', namespace);\n }\n if (task != undefined) {\n $('#loginModal').data('task-name', task);\n $('#loginModal').data('task-data', data);\n } else {\n $('#loginModal').data('task-name', undefined);\n $('#loginModal').data('task-data', undefined);\n }\n if (message != undefined) {\n $('#login-error-summary').html(message);\n $('#login-error-summary').show();\n } else {\n $('#login-error-summary').remove();\n }\n $('#loginModal').modal('show');\n });\n }\n }, {\n key: \"LoginHideModal\",\n value: function LoginHideModal() {\n $('#loginModal').data('callback', undefined);\n $('#loginModal').modal('hide');\n $('#login-error-summary').hide();\n $('#login-screen-progress').addClass('hide');\n }\n }, {\n key: \"LoginSubmit\",\n value: function LoginSubmit() {\n var _this = this;\n $('#login-screen-progress').removeClass('hide');\n $('#login-error-summary').hide();\n var postData = {};\n postData.Email = $('#Email-Address').val();\n postData.Password = $('#Password-login').val();\n postData.RememberMe = $('#RememberMe-login').is(':checked');\n postData.DeviceId = localStorage.getItem('cbf-device-id');\n var goToUrl = $('#loginModal').data('GoToUrl');\n $('#loginModal').data('GoToUrl', undefined);\n if (goToUrl !== undefined) {\n postData.GoToUrl = goToUrl;\n }\n if ($('#GoToUrl').length) {\n postData.GoToUrl = $('#GoToUrl').val();\n }\n if (grecaptcha === undefined) {}\n grecaptcha.ready(function () {\n grecaptcha.execute(window.captchaKey, {\n action: 'LoginSubmit'\n }).then(function (token) {\n // Set `token` in a hidden form input.\n postData.CaptchaKey = token;\n $.ajax({\n url: window.loginUrl,\n type: 'POST',\n data: postData,\n cache: false,\n success: function success(result) {\n $('#login-screen-progress').addClass('hide');\n localStorage.removeItem('cbf-access-token');\n if (result.isError) {\n if (result.lockedout) {\n $('#loginModal').modal(\"hide\");\n $('#login-screen-progress').addClass('hide');\n $(\"#account-lockedout-message-dialog\").modal('show');\n } else if (result.portalmasq) {\n $('#loginModal').modal(\"hide\");\n $('#login-screen-progress').addClass('hide');\n document.location.href = \"/\";\n } else {\n $('#login-payload').html(result.pageView);\n }\n } else if (result.lockedout) {\n $('#loginModal').modal(\"hide\");\n $('#login-screen-progress').addClass('hide');\n $(\"#account-lockedout-message-dialog\").modal('show');\n } else if (result.deviceAuth) {\n $('#User-Id').val(result.userId);\n $('#login-input-box-area').hide();\n $('#device-code-require-section').show();\n setTimeout(function () {\n $(\"#resend-device-auth-code-button\").removeClass(\"hide\");\n }, 150000);\n } else {\n var cook = _this.Cookie.GetCookie(\"FrnHOST\");\n var cookieValues = {};\n if (cook !== \"\") {\n cookieValues = JSON.parse(_this.Cookie.GetValue(\"state\", cook));\n }\n cookieValues.logged = \"1\";\n cookieValues.letter = result.letter;\n var roleA = \"\";\n if (result.roles != undefined) {\n roleA = result.roles.replace(/[\\x00-\\x1F\\x7F-\\x9F]/g, \"\");\n }\n cookieValues.roles = roleA;\n _this.Cookie.SetCookie(\"FrnHOST\", \"state=\" + JSON.stringify(cookieValues), 1);\n var callback = $('#loginModal').data('callback');\n $('#loginModal').data('callback', undefined);\n $('#client-profile-id').val(result.clientId);\n localStorage.setItem(\"client-profile-id\", result.clientId);\n $(\"#client-verified\").val(result.verified ? \"1\" : \"0\");\n window.userIsOnline = true;\n $('#loginModal').modal(\"hide\");\n $('#login-screen-progress').addClass('hide');\n if (callback == undefined) {\n if (result.GoToUrl === \"\" || result.GoToUrl == undefined) {\n location.reload();\n } else {\n document.location.href = result.GoToUrl;\n }\n } else {\n var namespace = $('#loginModal').data('namespace');\n $('#loginModal').data('namespace', undefined);\n if (namespace == undefined) {\n window[callback]();\n } else {\n if (namespace == \"window.SocialProfile\") {\n window.SocialProfile[callback]();\n }\n }\n window.userIsOnline = true;\n window.CacheBuster.Refresh();\n }\n }\n },\n error: function error(result) {\n $('#login-screen-progress').addClass('hide');\n alert(\"there was an error\");\n }\n });\n });\n });\n }\n }, {\n key: \"ResendDeviceAuthCode\",\n value: function ResendDeviceAuthCode() {\n var postData = {};\n postData.UserId = $('#User-Id').val();\n postData.DeviceId = localStorage.getItem('cbf-device-id');\n $.ajax({\n url: \"/api/client/resend-auth-device\",\n type: 'POST',\n data: postData,\n cache: false,\n success: function success() {\n toastr.success(\"Code is sent successfully!\");\n $(\"#resend-device-auth-code-button\").addClass(\"hide\");\n setTimeout(function () {\n $(\"#resend-device-auth-code-button\").removeClass(\"hide\");\n }, 150000);\n },\n error: function error(result) {\n toastr.error(\"Failed to send code!\");\n }\n });\n }\n }, {\n key: \"DeviceAuthSubmit\",\n value: function DeviceAuthSubmit() {\n var _this2 = this;\n $('#login-screen-progress').removeClass('hide');\n $('#login-error-summary').hide();\n var postData = {};\n postData.UserId = $('#User-Id').val();\n postData.Code = $('#Device-Authorization-Code').val();\n postData.RememberMe = $('#RememberMe-login').is(':checked');\n postData.DeviceId = localStorage.getItem('cbf-device-id');\n var goToUrl = $('#loginModal').data('GoToUrl');\n $('#loginModal').data('GoToUrl', undefined);\n if (goToUrl !== undefined) {\n postData.GoToUrl = goToUrl;\n }\n if ($('#GoToUrl').length) {\n postData.GoToUrl = $('#GoToUrl').val();\n }\n grecaptcha.ready(function () {\n grecaptcha.execute(window.captchaKey, {\n action: 'LoginSubmit'\n }).then(function (token) {\n // Set `token` in a hidden form input.\n postData.CaptchaKey = token;\n $.ajax({\n url: \"/api/client/auth-device\",\n type: 'POST',\n data: postData,\n cache: false,\n success: function success(result) {\n localStorage.removeItem('cbf-access-token');\n if (result.isError) {\n if (result.lockedout) {\n $('#loginModal').modal(\"hide\");\n $('#login-screen-progress').addClass('hide');\n $(\"#account-lockedout-message-dialog\").modal('show');\n } else {\n alert(\"there was an error\");\n }\n } else {\n var cook = _this2.Cookie.GetCookie(\"FrnHOST\");\n var cookieValues = {};\n if (cook !== \"\") {\n cookieValues = JSON.parse(_this2.Cookie.GetValue(\"state\", cook));\n }\n cookieValues.logged = \"1\";\n cookieValues.letter = result.letter;\n var roleA = \"\";\n if (result.roles != undefined) {\n roleA = result.roles.replace(/[\\x00-\\x1F\\x7F-\\x9F]/g, \"\");\n }\n cookieValues.roles = roleA;\n _this2.Cookie.SetCookie(\"FrnHOST\", \"state=\" + JSON.stringify(cookieValues), 1);\n var callback = $('#loginModal').data('callback');\n $('#loginModal').data('callback', undefined);\n $('#client-profile-id').val(result.clientId);\n localStorage.setItem(\"client-profile-id\", result.clientId);\n $(\"#client-verified\").val(result.verified ? \"1\" : \"0\");\n window.userIsOnline = true;\n $('#loginModal').modal(\"hide\");\n $('#login-screen-progress').addClass('hide');\n if (callback == undefined) {\n if (result.GoToUrl === \"\" || result.GoToUrl == undefined) {\n location.reload();\n } else {\n document.location.href = result.GoToUrl;\n }\n } else {\n window[callback]();\n window.userIsOnline = true;\n window.CacheBuster.Refresh();\n }\n }\n },\n error: function error(result) {\n $('#login-screen-progress').addClass('hide');\n $('#Device-Authorization-Code').val('');\n alert(\"there was an error\");\n }\n });\n });\n });\n }\n }, {\n key: \"LogoutSubmit\",\n value: function LogoutSubmit() {\n var cook = this.Cookie.GetCookie(\"FrnHOST\");\n var cookieValues = {};\n if (cook !== \"\") {\n cookieValues = JSON.parse(this.Cookie.GetValue(\"state\", cook));\n }\n cookieValues.logged = \"0\";\n cookieValues.roles = \"[\\\"Guest\\\"]\";\n this.Cookie.SetCookie(\"FrnHOST\", \"state=\" + JSON.stringify(cookieValues), 1);\n if ($('#promoheader').length) {\n $('#promoheader').hide();\n var promoCookie = this.Cookie.GetCookie(\"cbfxv\");\n if (promoCookie !== undefined) {\n this.Cookie.DeleteCookie(\"cbfxv\");\n }\n }\n if ($('#signup-header').length) {\n $('#signup-header').show();\n }\n localStorage.removeItem('cbf-access-token');\n document.getElementById('logoutForm').submit();\n }\n }, {\n key: \"LogoutFromAllDevice\",\n value: function LogoutFromAllDevice() {\n $('#settings-progress').removeClass('hide');\n var myThis = this;\n $.ajax({\n url: \"/api/client/logout-from-all-devices\",\n type: 'POST',\n cache: false,\n success: function success() {\n myThis.LogoutSubmit();\n },\n error: function error(result) {\n $('#settings-progress').addClass('hide');\n toastr.error(\"Failed to logout from all devices!\");\n }\n });\n }\n }, {\n key: \"ForgottenPasswordSubmit\",\n value: function ForgottenPasswordSubmit() {\n $('#login-screen-progress').removeClass('hide');\n var postData = {};\n $('#login-error-summary').hide();\n postData.__RequestVerificationToken = $('#Registration-Form :hidden:first').val();\n postData.Email = $('#Email-Address-Forgot').val();\n grecaptcha.ready(function () {\n grecaptcha.execute(window.captchaKey, {\n action: 'ForgottenPasswordSubmit'\n }).then(function (token) {\n // Set `token` in a hidden form input.\n postData.CaptchaKey = token;\n $.ajax({\n url: window.forgottenPasswordUrl,\n type: 'POST',\n data: postData,\n cache: false,\n success: function success(result) {\n if (result.isError) {\n $('#forgotten-payload').html(result.pageView);\n $('#login-screen-progress').addClass('hide');\n } else {\n if (window.DEFAULT_LANG === window.CURRENT_LANG) window.location.href = \"/\";else window.location.href = \"/\" + window.CURRENT_LANG;\n }\n },\n error: function error(result) {\n $('#login-screen-progress').addClass('hide');\n alert(\"there was an error\");\n }\n });\n });\n });\n }\n }, {\n key: \"SignUpSubmit\",\n value: function SignUpSubmit() {\n var _this3 = this;\n $('#login-error-summary').hide();\n $('#login-screen-progress').removeClass('hide');\n var postData = {};\n postData.__RequestVerificationToken = $('#Registration-Form :hidden:first').val();\n postData.PublicName = $('#PublicName-Sign-Up').val();\n postData.DisplayName = $('#FullName-Sign-Up').val();\n postData.Email = $('#Email-Address-Sign-Up').val();\n postData.PromoCode = $('#PromoCode').val();\n postData.Password = $('#Password-Sign-Up').val();\n postData.Newsletter = $('#Newsletter-Sign-Up').is(':checked');\n postData.ContestNotification = $(\"#ContestNotification-Sign-Up\").is(\":checked\");\n postData.DeviceId = localStorage.getItem('cbf-device-id');\n\n //postData.Timezone = window.moment.tz.guess();\n\n if (window.bypassReCaptcha) {\n this.SignUpSubmitWorker(postData);\n } else {\n grecaptcha.ready(function () {\n grecaptcha.execute(window.captchaKey, {\n action: 'SignupSubmit'\n }).then(function (token) {\n // Set `token` in a hidden form input.\n postData.CaptchaKey = token;\n _this3.SignUpSubmitWorker(postData);\n });\n });\n }\n }\n }, {\n key: \"SignUpSubmitWorker\",\n value: function SignUpSubmitWorker(postData) {\n var _this4 = this;\n if (window.affiliate != undefined) {\n // Check for Affiliate / Banner / Campaign ID cookies\n var aidCookie = this.Cookie.GetCookie(\"affiliateID\");\n // if yes, assign aid value\n if (window.affiliate.IsNumeric(aidCookie)) {\n postData.AffiliateId = aidCookie;\n }\n var cidCookie = this.Cookie.GetCookie(\"affiliateCampaignId\");\n // if yes, assign cid value\n if (window.affiliate.IsNumeric(cidCookie)) {\n postData.AffiliateCampaignId = cidCookie;\n }\n var bidCookie = this.Cookie.GetCookie(\"bannerId\");\n // if yes, assign cid value\n if (window.affiliate.IsNumeric(bidCookie)) {\n postData.BannerId = bidCookie;\n }\n }\n var taskname = $('#loginModal').data('task-name');\n if (taskname !== undefined) {\n var taskdata = $('#loginModal').data('task-data');\n postData.TaskData = taskdata;\n postData.TaskName = taskname;\n $('#loginModal').data('task-data', undefined);\n $('#loginModal').data('task-name', undefined);\n }\n $.ajax({\n url: window.signUpUrl,\n type: 'POST',\n data: postData,\n cache: false,\n success: function success(result) {\n if (result.isError) {\n $('#signup-payload').html(result.pageView);\n $('#login-screen-progress').addClass('hide');\n } else {\n $('#loginModal').data('task-data', undefined);\n $('#loginModal').data('task-name', undefined);\n var cook = _this4.Cookie.GetCookie(\"FrnHOST\");\n var cookieValues = {};\n if (cook !== \"\") {\n cookieValues = JSON.parse(_this4.Cookie.GetValue(\"state\", cook));\n }\n cookieValues.logged = \"1\";\n cookieValues.letter = result.letter;\n var roleA = \"\";\n if (result.roles != undefined) {\n roleA = result.roles.replace(/[\\x00-\\x1F\\x7F-\\x9F]/g, \"\");\n }\n cookieValues.roles = roleA;\n _this4.Cookie.SetCookie(\"FrnHOST\", \"state=\" + JSON.stringify(cookieValues), 1);\n var callback = $('#loginModal').data('callback');\n $('#loginModal').data('callback', undefined);\n $('#client-profile-id').val(result.clientId);\n localStorage.setItem(\"client-profile-id\", result.clientId);\n $(\"#client-verified\").val(result.verified ? \"1\" : \"0\");\n if (callback == undefined) {\n if (result.GoToUrl === \"\" || result.GoToUrl == undefined) {\n if (window.DEFAULT_LANG === window.CURRENT_LANG) window.location.href = \"/dashboard/settings\";else window.location.href = \"/\" + window.CURRENT_LANG + \"/dashboard/settings\";\n } else {\n document.location.href = result.GoToUrl;\n }\n } else {\n window[callback]();\n window.userIsOnline = true;\n window.CacheBuster.Refresh();\n }\n }\n },\n error: function error(result) {\n $('#login-screen-progress').addClass('hide');\n alert(\"there was an error\");\n }\n });\n }\n }, {\n key: \"SubmitLogin\",\n value: function SubmitLogin(provider) {\n $('#login-screen-progress').removeClass('hide');\n\n // Disable Remote Login - to enable remote login, please comment out.\n //if (provider === \"CBF\" || provider === \"RKFX\") {\n // var postData = {};\n // postData.provider = provider;\n // $.ajax({\n // url: window.familyLoginUrl,\n // type: 'POST',\n // data: postData,\n // cache: false,\n // success: (result) => {\n\n // if (result.isError) {\n // warning(result.message);\n // $('#login-screen-progress').addClass('hide');\n // } else {\n\n // this.CreateFamilyLoginResult(result.destination, result.token);\n // }\n // }\n // });\n\n //} else {\n\n // $('#provider_id').val(provider);\n // $('#ExternalLogin').submit();\n //}\n $('#provider_id').val(provider);\n $('#ExternalLogin').submit();\n }\n }, {\n key: \"CreateFamilyLoginResult\",\n value: function CreateFamilyLoginResult(destination, token) {\n var windowName = 'w_' + Date.now() + Math.floor(Math.random() * 100000).toString();\n var form = document.createElement(\"form\");\n form.setAttribute(\"method\", \"post\");\n form.setAttribute(\"action\", destination + '/' + window.CURRENT_LANG + \"/authorisation\");\n form.setAttribute(\"target\", windowName);\n var hiddenField = document.createElement(\"input\");\n hiddenField.setAttribute(\"type\", \"hidden\");\n hiddenField.setAttribute(\"name\", \"token\");\n hiddenField.setAttribute(\"value\", token);\n form.appendChild(hiddenField);\n document.body.appendChild(form);\n var openedWindow = window.open('', windowName, 'width=500,height=490');\n openedWindow.realOpener = window;\n window.addEventListener(\"message\", function (event) {\n console.log(event);\n console.log(event.data);\n\n // Do we trust the sender of this message? (might be\n // different from what we originally opened, for example).\n if (event.origin !== destination) return;\n openedWindow.close();\n $.ajax({\n url: window.familyLoginReturnUrl,\n type: 'POST',\n data: {\n data: event.data\n },\n cache: false,\n success: function success(result) {\n console.log(\"Result:\", result);\n if (result.isError) {\n toastr.warning(result.message);\n $('#login-screen-progress').addClass('hide');\n } else {\n var callback = $('#loginModal').data('callback');\n console.log(\"CallBack:\", callback);\n $('#loginModal').data('callback', undefined);\n if (callback == undefined) {\n if (result.GoToUrl === \"\" || result.GoToUrl == undefined) {\n document.location.reload();\n } else {\n document.location.href = result.GoToUrl;\n }\n } else {\n $('#loginModal').modal('hide');\n var pathArray = callback.split(\".\");\n console.log(\"PATHARRAY:\", pathArray);\n var index = 0;\n var c = window;\n while (index < pathArray.length) {\n if (index + 1 == pathArray.length) {\n c[pathArray[index]]();\n } else {\n c = c[pathArray[index]];\n }\n index++;\n }\n console.log(\"C:\", c);\n window.CacheBuster.Refresh();\n }\n }\n }\n });\n\n // event.source is popup\n // event.data is \"hi there yourself! the secret response is: rheeeeet!\"\n }, false);\n form.submit();\n }\n }, {\n key: \"ChangePasswordSubmit\",\n value: function ChangePasswordSubmit() {\n if (window.bypassReCaptcha) {\n $('#ResetPassword-progress').removeClass('hide');\n $('#ResetPasswordForm').submit();\n } else {\n if ($('#ResetPasswordForm').length) {\n grecaptcha.ready(function () {\n grecaptcha.execute(window.captchaKey, {\n action: 'ChangePasswordSubmit'\n }).then(function (token) {\n // Set `token` in a hidden form input.\n $('#CaptchaKey').val(token);\n $('#ResetPassword-progress').removeClass('hide');\n $('#ResetPasswordForm').submit();\n });\n });\n }\n }\n }\n }, {\n key: \"SubmitSettingsForm\",\n value: function SubmitSettingsForm() {\n $('#settings-progress').removeClass('hide');\n var postData = {};\n postData.__RequestVerificationToken = $('#SettingsForm :hidden:first').val();\n postData.ClientProfileId = $('#ClientProfileId').val();\n postData.SocialProfileId = $('#SocialProfileId').val();\n postData.Fullname = $(\"#Fullname\").val();\n postData.Timezone = $('#Timezone :selected').val();\n postData.PublicName = $('#PublicName').val();\n postData.DefaultCultureId = $('#DefaultCultureId :selected').val();\n postData.CompanyPosition = $('#CompanyPosition').val();\n postData.CountryOfResidenceCode = $('#CountryOfResidenceCode').val();\n postData.Bio = $('#Bio').val();\n $.ajax({\n type: \"POST\",\n cache: false,\n url: window.clientSettingsUrl,\n dataType: \"json\",\n data: postData,\n async: true,\n success: function success(result) {\n if (result.isError) {\n $('#settings-progress').addClass('hide');\n $('#settings-form-inputs').html(result.pageView);\n } else {\n $('#settings-progress').addClass('hide');\n toastr.success(\"Settings updated successfully!\");\n }\n },\n error: function error(result) {\n $('#settings-progress').addClass('hide');\n }\n });\n }\n }, {\n key: \"SubmitSocialMediaSettingsForm\",\n value: function SubmitSocialMediaSettingsForm() {\n $('#social-media-settings-progress').removeClass('hide');\n var postData = {};\n postData.Website = $('#Website').val();\n postData.SocialProfileId = $('#SocialProfileId').val();\n postData.TiktokUsername = $('#TiktokUsername').val();\n postData.LinkedIn = $('#LinkedIn').val();\n postData.PublicName = $(\"#FullName\").val();\n postData.FacebookProfileUrl = $('#FacebookProfileUrl').val();\n postData.InstagramUsername = $('#InstagramUsername').val();\n postData.Twitter = $('#Twitter').val();\n $.ajax({\n type: \"POST\",\n cache: false,\n url: window.clientMediaSettingsUrl,\n dataType: \"json\",\n data: postData,\n async: true,\n success: function success(result) {\n if (result.isError) {\n $('#social-media-settings-progress').addClass('hide');\n $('#settings-social-media-form-inputs').html(result.pageView);\n } else {\n $('#social-media-settings-progress').addClass('hide');\n toastr.success(\"Settings updated successfully!\");\n }\n },\n error: function error(result) {\n $('#social-media-settings-progress').addClass('hide');\n }\n });\n }\n }, {\n key: \"SubmitPasswordSettingsForm\",\n value: function SubmitPasswordSettingsForm() {\n $('#password-settings-progress').removeClass('hide');\n var postData = {};\n postData.Password = $('#Password').val();\n postData.ConfirmPassword = $('#ConfirmPassword').val();\n postData.CurrentPassword = $('#CurrentPassword').val();\n postData.SocialProfileId = $('#SocialProfileId').val();\n $.ajax({\n type: \"POST\",\n cache: false,\n url: window.clientSecuritySettingsUrl,\n dataType: \"json\",\n data: postData,\n async: true,\n success: function success(result) {\n if (result.isError) {\n $('#password-settings-progress').addClass('hide');\n $('#settings-password-form-inputs').html(result.pageView);\n } else {\n if (result.updates) {\n toastr.success(\"Update complete\");\n $('#settings-password-form-inputs').html(result.pageView);\n }\n $('#password-settings-progress').addClass('hide');\n }\n },\n error: function error(result) {\n $('#password-settings-progress').addClass('hide');\n }\n });\n }\n }, {\n key: \"SubmitEmailSettingsForm\",\n value: function SubmitEmailSettingsForm() {\n $('#email-settings-progress').removeClass('hide');\n var postData = {};\n postData.Email = $('#Email').val();\n postData.SocialProfileId = $('#SocialProfileId').val();\n $.ajax({\n type: \"POST\",\n cache: false,\n url: window.clientEmailSettingsUrl,\n dataType: \"json\",\n data: postData,\n async: true,\n success: function success(result) {\n if (result.isError) {\n $('#email-settings-progress').addClass('hide');\n $('#settings-email-form-inputs').html(result.pageView);\n } else {\n if (result.updates) {\n toastr.success(\"Email updated has been initiated\");\n $('#settings-email-form-inputs').html(result.pageView);\n }\n $('#email-settings-progress').addClass('hide');\n }\n },\n error: function error(result) {\n $('#email-settings-progress').addClass('hide');\n }\n });\n }\n }, {\n key: \"CancelPendingEmail\",\n value: function CancelPendingEmail() {\n $('#email-settings-progress').removeClass('hide');\n var postData = {};\n postData.ClientProfileId = $('#ClientProfileId').val();\n $.ajax({\n type: \"POST\",\n cache: false,\n url: window.clientCancelPendingEmailUrl,\n dataType: \"json\",\n data: postData,\n async: true,\n success: function success(result) {\n $('#email-settings-progress').addClass('hide');\n if (result.isError) {\n toastr.error(result.message);\n } else {\n if (result.updates) {\n toastr.success(result.message);\n $('#settings-email-form-inputs').html(result.pageView);\n }\n $('#email-settings-progress').addClass('hide');\n }\n },\n error: function error(result) {\n $('#settings-progress').addClass('hide');\n }\n });\n }\n }, {\n key: \"ResendEmailForm\",\n value: function ResendEmailForm() {\n $('#resend-progress').removeClass('hide');\n var postData = {};\n postData.__RequestVerificationToken = $('#Resend-Email-Form :hidden:first').val();\n $.ajax({\n type: \"POST\",\n cache: false,\n url: window.clientResendEmailUrl,\n dataType: \"json\",\n data: postData,\n async: true,\n success: function success(result) {\n $('#resend-progress').addClass('hide');\n if (result.isError) {} else {\n window.CacheBuster.CheckForMessage();\n }\n },\n error: function error(result) {\n $('#resend-progress').addClass('hide');\n }\n });\n }\n }]);\n return Access;\n}();\nvar _default = Access;\nexports[\"default\"] = _default;\n\n},{}],3:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nvar Ads = /*#__PURE__*/function () {\n function Ads(cookie) {\n _classCallCheck(this, Ads);\n this.PopUpDesktopDiv = window.PopUpDesktopDiv;\n this.PopUpMobileDiv = window.PopUpMobileDiv;\n this.WallerpaperDiv = window.WallerpaperDiv;\n this.LeaderBoardDiv = window.LeaderBoardDiv;\n this.Cookie = cookie;\n this.windowWidth = document.body && document.body !== null ? document.body.clientWidth : window.screen.availWidth;\n this.promoOffset = 0;\n this.ActivePage = window.ActivePage;\n this.PageFormat = '';\n this.Large = 1449;\n this.MenuShow = 1199;\n this.Medium = 979;\n this.rendered = [];\n this.menuHeight = 63;\n this.popped = false;\n this.SlotMessage = \"\";\n this.SlotSponsor = \"\";\n this.SlotLeaderboard = \"\";\n this.SlotMobileLeaderboard = \"\";\n this.SlotWallpaper = \"\";\n this.SlotMobileFooter = \"\";\n this.SplashGap = 4;\n }\n _createClass(Ads, [{\n key: \"DismissPopAd\",\n value: function DismissPopAd() {\n $('#popup-overlay').hide();\n window.InitGoogleTag('pop');\n }\n }, {\n key: \"WallpaperPosition\",\n value: function WallpaperPosition() {\n var src = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'scroll';\n if ($('#page-wrap').is(\":visible\")) {\n var totalVisibleHeight = 0;\n $('.top-tier').each(function () {\n var $element = $(this);\n var elementTop = $element.offset().top;\n var elementBottom = elementTop + $element.outerHeight();\n var windowHeight = $(window).height();\n var scrollTop = $(window).scrollTop();\n\n // Check if the element is partially or fully visible within the viewport\n if (elementTop >= scrollTop && elementTop < scrollTop + windowHeight || elementBottom > scrollTop && elementBottom <= scrollTop + windowHeight || elementTop <= scrollTop && elementBottom >= scrollTop + windowHeight) {\n // Calculate the visible height of the element\n var visibleHeight = Math.min(elementBottom, scrollTop + windowHeight) - Math.max(elementTop, scrollTop);\n totalVisibleHeight += visibleHeight;\n }\n });\n var offset = window.pageYOffset; // + 'px';\n\n if (offset < totalVisibleHeight) {\n var newY = totalVisibleHeight - offset;\n $('#page-wrap').css('margin-top', newY + 'px');\n } else {\n $('#page-wrap').css('margin-top', +totalVisibleHeight + 'px');\n }\n }\n }\n }, {\n key: \"SetPageFormat\",\n value: function SetPageFormat(format) {\n this.PageFormat = format;\n }\n }, {\n key: \"SetPromoOffset\",\n value: function SetPromoOffset(o) {\n this.promoOffset = o;\n }\n }, {\n key: \"SetWindowWidth\",\n value: function SetWindowWidth(w) {\n this.windowWidth = w;\n }\n }, {\n key: \"AugmentMenuHeight\",\n value: function AugmentMenuHeight(h) {\n var height = h + this.menuHeight;\n this.SetMenuHeight(height);\n }\n }, {\n key: \"SetMenuHeight\",\n value: function SetMenuHeight(h) {\n this.menuHeight = h;\n }\n }, {\n key: \"HideBurgerOnLarge\",\n value: function HideBurgerOnLarge() {\n return this.windowWidth > this.MenuShow;\n }\n }, {\n key: \"PlaceAds\",\n value: function PlaceAds() {\n var _this = this;\n window.googletag.pubads().enableSingleRequest();\n window.googletag.enableServices();\n window.googletag.pubads().addEventListener('slotOnload', function (event) {\n var slot = event.slot;\n if (slot.getSlotElementId() === _this.PopUpDesktopDiv) {\n var cook = _this.Cookie.GetCookie(\"splash\");\n if (cook === \"\") {\n _this.Cookie.SetCookieToExpireInHours(\"splash\", 1, _this.SplashGap);\n }\n if ($('#popup-overlay').not(\":visible\") && !_this.popped) {\n $('#popup-overlay').show();\n _this.popped = true;\n }\n }\n });\n if (this.windowWidth > this.Large) {\n this.WallPaper();\n this.Leader();\n this.PopUp();\n this.PageFormat = \"Large\";\n } else if (this.windowWidth > this.Medium) {\n this.Leader();\n this.PopUp();\n this.PageFormat = \"Medium\";\n } else {\n this.Mobile();\n this.PageFormat = \"Mobile\";\n }\n }\n }, {\n key: \"WallPaper\",\n value: function WallPaper() {\n var _this2 = this;\n if (window.WallerpaperSlot != undefined && window.WallerpaperSlot != null && window.WallerpaperSlot != \"\") {\n var slotName = window.WallerpaperSlot;\n if (!this.rendered.includes(slotName) && !$('body').hasClass('full-width')) {\n this.rendered.push(slotName);\n if ($('#promoheader').is(\":visible\")) {\n this.promoOffset = document.getElementById(\"promoheader\").offsetHeight;\n }\n $('.page-wrap').show();\n window.googletag.cmd.push(function () {\n _this2.SlotWallpaper = googletag.defineSlot(slotName, [2310, 1190], window.WallerpaperDiv).addService(window.googletag.pubads());\n });\n window.googletag.cmd.push(function () {\n window.googletag.display(window.WallerpaperDiv);\n });\n window.addEventListener('scroll', window.Promotion.WallpaperPosition);\n this.WallpaperPosition('internal');\n }\n }\n }\n }, {\n key: \"Leader\",\n value: function Leader() {\n var _this3 = this;\n var slotName = window.LeaderBoardSlot;\n if (!this.rendered.includes(slotName)) {\n this.rendered.push(slotName);\n window.googletag.cmd.push(function () {\n _this3.SlotLeaderboard = window.googletag.defineSlot(slotName, [970, 90], _this3.LeaderBoardDiv).addService(window.googletag.pubads());\n });\n window.googletag.cmd.push(function () {\n window.googletag.display(this.LeaderBoardDiv);\n });\n }\n }\n }, {\n key: \"GetSplashCookie\",\n value: function GetSplashCookie() {\n if (this.Cookie.GetCookie(\"splash\") == 1) {\n return 1;\n }\n ;\n return 0;\n }\n }, {\n key: \"PopUp\",\n value: function PopUp() {\n var _this4 = this;\n var cook = this.Cookie.GetCookie(\"splash\");\n var slotName = window.PopUpDesktopSlot;\n if (cook !== \"\") {\n // cookie is set so an ad has been served, but we need to check if the ad is showing, in this case we may just need to resize\n if (!this.rendered.includes(slotName)) {\n if ($('#popup-overlay').is(\":visible\")) {\n this.rendered.push(slotName);\n window.googletag.cmd.push(function () {\n window.googletag.defineSlot(slotName, [1024, 425], _this4.PopUpDesktopDiv).addService(window.googletag.pubads());\n });\n window.googletag.cmd.push(function () {\n window.googletag.display(_this4.PopUpDesktopDiv);\n });\n }\n }\n } else {\n this.Cookie.SetCookieToExpireInHours(\"splash\", 1, this.SplashGap);\n if (!this.rendered.includes(slotName)) {\n this.rendered.push(slotName);\n window.googletag.cmd.push(function () {\n window.googletag.defineSlot(slotName, [1024, 425], _this4.PopUpDesktopDiv).addService(window.googletag.pubads());\n });\n window.googletag.cmd.push(function () {\n window.googletag.display(_this4.PopUpDesktopDiv);\n });\n }\n }\n }\n }, {\n key: \"Mobile\",\n value: function Mobile() {\n var _this5 = this;\n var FooterMobileSlot = window.FooterMobileSlot;\n var LeaderBoardMobileSlot = window.LeaderBoardMobileSlot;\n var popSlotName = window.PopUpMobileSlot;\n var SquareMobileSlot = window.SquareMobileSlot;\n var hasSquareMobileSlot = $('#mobile-mid-table').length;\n var FooterMobileDiv = window.FooterMobileDiv;\n if (!this.rendered.includes(FooterMobileSlot)) {\n if (document.getElementById(FooterMobileDiv)) {\n this.rendered.push(FooterMobileSlot);\n window.googletag.cmd.push(function () {\n _this5.SlotMobileFooter = window.googletag.defineSlot(FooterMobileSlot, [320, 100], FooterMobileDiv).addService(window.googletag.pubads());\n });\n window.googletag.cmd.push(function () {\n window.googletag.display(FooterMobileDiv);\n });\n } else {\n console.error(\"FooterMobileDiv element not found in DOM\");\n }\n }\n if (!this.rendered.includes(window.SquareMobileSlot) && hasSquareMobileSlot) {\n if (!$('#mobile-mid-table').hasClass('show')) {\n $('#mobile-mid-table').addClass('show');\n }\n this.rendered.push(window.SquareMobileSlot);\n window.googletag.cmd.push(function () {\n _this5.SlotMobileSquare = window.googletag.defineSlot(SquareMobileSlot, [300, 250], window.SquareMobileDiv).addService(window.googletag.pubads());\n });\n window.googletag.cmd.push(function () {\n window.googletag.display(window.SquareMobileDiv);\n });\n }\n if (!this.rendered.includes(LeaderBoardMobileSlot)) {\n if (document.getElementById(window.LeaderBoardMobileDiv)) {\n this.rendered.push(LeaderBoardMobileSlot);\n window.googletag.cmd.push(function () {\n _this5.SlotMobileLeaderboard = window.googletag.defineSlot(LeaderBoardMobileSlot, [320, 100], window.LeaderBoardMobileDiv).addService(window.googletag.pubads());\n });\n window.googletag.cmd.push(function () {\n window.googletag.display(window.LeaderBoardMobileDiv);\n });\n } else {\n console.error(\"LeaderBoardMobileDiv element not found in DOM\");\n }\n }\n var cook = this.Cookie.GetCookie(\"splash\");\n if (cook !== \"\") {\n // cookie is set so an ad has been served, but we need to check if the ad is showing, in this case we may just need to resize\n if (!this.rendered.includes(popSlotName)) {\n if ($('#popup-overlay').is(\":visible\")) {\n this.rendered.push(popSlotName);\n window.googletag.cmd.push(function () {\n window.googletag.defineSlot(popSlotName, [320, 480], _this5.PopUpMobileDiv).addService(window.googletag.pubads());\n });\n window.googletag.cmd.push(function () {\n window.googletag.display(_this5.PopUpMobileDiv);\n });\n }\n }\n } else {\n // no cookie set, ok to serve ad\n this.Cookie.SetCookieToExpireInHours(\"splash\", 1, this.SplashGap);\n if (!this.rendered.includes(popSlotName)) {\n if ($('#popup-overlay').not(\":visible\") && !this.popped) {\n $('#popup-overlay').show();\n this.popped = true;\n }\n this.rendered.push(popSlotName);\n window.googletag.cmd.push(function () {\n window.googletag.defineSlot(popSlotName, [320, 480], _this5.PopUpMobileDiv).addService(window.googletag.pubads());\n });\n window.googletag.cmd.push(function () {\n window.googletag.display(_this5.PopUpMobileDiv);\n });\n }\n }\n }\n }, {\n key: \"IsElementInViewport\",\n value: function IsElementInViewport(el) {\n // Special bonus for those using jQuery\n if (typeof jQuery === \"function\" && el instanceof jQuery) {\n el = el[0];\n }\n var rect = el.getBoundingClientRect();\n return rect.top >= 0 && rect.left >= 0 && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && /* or $(window).height() */\n rect.right <= (window.innerWidth || document.documentElement.clientWidth) /* or $(window).width() */;\n }\n }]);\n return Ads;\n}();\nvar _default = Ads;\nexports[\"default\"] = _default;\n\n},{}],4:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nvar CacheBuster = /*#__PURE__*/function () {\n function CacheBuster(cookie) {\n _classCallCheck(this, CacheBuster);\n this.Cookie = cookie;\n }\n _createClass(CacheBuster, [{\n key: \"CheckForMessage\",\n value: function CheckForMessage() {\n var message = this.Cookie.GetCookie(\"SiteMessage\");\n if (message !== \"\") {\n var messageType = this.Cookie.GetValue(\"messageType\", message);\n var displayAs = this.Cookie.GetValue(\"displayAs\", message);\n var messageString = this.Cookie.GetValue(\"message\", message);\n if (displayAs === \"modal\") {\n var titleString = this.Cookie.GetValue(\"title\", message);\n if (titleString) $('#site-message-modal .message-title').html(titleString);\n $('#site-message-modal .message-body').html(messageString);\n $('#site-message-modal').modal(\"show\");\n } else if (displayAs === \"header\") {\n $('#messageheader-message').html(messageString);\n $('#messageheader').show();\n var menuPad = 0;\n var fixed = document.getElementById('fix-wrap');\n if (fixed != null) {\n menuPad = parseInt(fixed.offsetHeight, 10);\n }\n window.Promotion.WallpaperPosition('CacheBuster Maintenance message');\n var stat = document.getElementById('tier-three');\n if (stat) {\n stat.style.marginTop = menuPad + 'px';\n }\n } else {\n var displayedToast = null;\n if (messageType === \"success\") {\n displayedToast = window.toastr.success(messageString);\n }\n if (messageType === \"error\") {\n displayedToast = window.toastr.error(messageString);\n }\n if (messageType === \"warning\") {\n displayedToast = window.toastr.warning(messageString);\n }\n if (displayedToast) {\n var ga4EventName = this.Cookie.GetValue(\"ga4EventName\", message);\n var ga4Element = this.Cookie.GetValue(\"ga4Element\", message);\n if (ga4Element && ga4EventName) {\n displayedToast.attr('data-ga4event-clk-name', ga4EventName);\n displayedToast.attr('data-ga4event-element', ga4Element);\n }\n }\n }\n this.Cookie.DeleteCookie(\"SiteMessage\");\n }\n }\n }, {\n key: \"Refresh\",\n value: function Refresh() {\n var _this = this;\n this.CheckForMessage();\n var data = {};\n if ($('#brokerCacheId').length) {\n data.BrokerId = $('#brokerCacheId').val();\n }\n if ($('.user-name-required').length) {\n data.UsernameRequired = true;\n }\n if ($('.user-clientId-required').length) {\n data.ClientIdRequired = true;\n }\n if ($('.user-email-required').length) {\n data.EmailRequired = true;\n }\n if ($('.select-timezone-required').length) {\n data.TimezoneRequired = true;\n }\n if ($('.user-country-required').length) {\n data.CountryRequired = true;\n }\n if ($('#article-id').length) {\n data.ArticleId = $('#article-id').val();\n }\n if (localStorage.getItem('cbf-device-id')) {\n data.DeviceId = localStorage.getItem('cbf-device-id');\n }\n if ($('.count-tracker').length) {\n var entityDictionary = {};\n $('.count-tracker').each(function (i, e) {\n var entityType = $(e).data('entitytype');\n var entityId = $(e).data('entityid');\n entityDictionary[entityType] = parseInt(entityId);\n });\n data.EntityTracking = entityDictionary;\n }\n var formattedData = $.param(data);\n $.ajax({\n url: window.cacheBust,\n type: 'POST',\n cache: false,\n data: formattedData,\n async: true,\n success: function success(result) {\n if (result.banned) {\n window.Access.LogoutSubmit();\n }\n if (result.needReload) {\n window.location.reload();\n }\n\n // Set values for state cookie\n var setCook = {};\n var cookieValues = {};\n var cook = _this.Cookie.GetCookie(\"FrnHOST\");\n if (result.deviceId != null && result.deviceId != undefined) {\n localStorage.setItem('cbf-device-id', result.deviceId);\n }\n if (result.client_profile_id != null && result.client_profile_id != undefined) {\n localStorage.setItem(\"client-profile-id\", result.client_profile_id);\n $('#client-profile-id').val(result.client_profile_id);\n } else {\n $('#client-profile-id').val(\"0\");\n localStorage.removeItem(\"client-profile-id\");\n }\n if (result.socialProfileId !== undefined && result.socialProfileId !== null && parseInt(result.socialProfileId, 10) > 0) {\n $('#social-profile-id').val(result.socialProfileId);\n } else {\n $('#social-profile-id').val(\"0\");\n }\n if (result.client_verified == \"1\") {\n $('#client-verified').val(\"1\");\n } else {\n $('#client-verified').val(\"0\");\n }\n // Un-comment this to enable USA redirect prompt\n if (cook === \"\" || cook == undefined || cook == null) {\n if (result.us_flag === \"1\") {\n var targetDate = new Date();\n targetDate.setDate(targetDate.getDate() + 7);\n setCook.us_flag = Date.parse(targetDate);\n $('#dialog-redirect-check').modal(\"show\");\n }\n } else {\n cookieValues = JSON.parse(_this.Cookie.GetValue(\"state\", cook));\n\n //cookie exists\n // check USA redirect prompt\n\n if ((cookieValues.us_flag === undefined || cookieValues.us_flag === \"\") && result.us_flag === \"1\") {\n // set expiry for this cookie\n var _targetDate = new Date();\n _targetDate.setDate(_targetDate.getDate() + 7);\n setCook.us_flag = Date.parse(_targetDate);\n $('#dialog-redirect-check').modal(\"show\");\n } else if (cookieValues.us_flag > 0) {\n var now = new Date();\n var expireDate = new Date(cookieValues.us_flag);\n if (now > expireDate) {\n now.setDate(now.getDate() + 7);\n setCook.us_flag = Date.parse(now);\n $('#dialog-redirect-check').modal(\"show\");\n } else {\n setCook.us_flag = cookieValues.us_flag;\n }\n }\n }\n var letter = result.letter;\n if (letter !== undefined && letter !== \"\") {\n setCook.letter = letter;\n if (document.getElementById('letter-box')) {\n document.getElementById('letter-box').innerHTML = window.onlineLetterBox;\n }\n if (document.getElementById('initial-slot')) {\n document.getElementById('initial-slot').innerHTML = letter;\n }\n InitializeHeaderDropdown();\n }\n if (result.ArticleEditHtml != null && result.ArticleEditHtml !== \"\") {\n $(\"#edit-article-link\").css(\"display\", \"block\");\n $(\"#edit-article-link\").html(result.ArticleEditHtml);\n }\n if (result.displayName !== undefined && result.displayName !== \"\") {\n if (window.$zopim != undefined && window.$zopim.livechat != undefined) {\n window.$zopim.livechat.setName(result.displayName);\n }\n $('.user-name-required').val(result.displayName);\n $('.user-name-required').prop(\"readonly\", true);\n }\n if (result.userEmail !== undefined && result.userEmail !== \"\") {\n if (window.$zopim != undefined && window.$zopim.livechat != undefined) {\n window.$zopim.livechat.setEmail(result.userEmail);\n }\n $('.user-email-required').val(result.userEmail);\n $('.user-email-required').prop(\"readonly\", true);\n }\n if (result.clientId !== undefined && result.clientId !== \"\") {\n $('.user-clientId-required').val(result.clientId);\n }\n if (result.timezone !== undefined && result.timezone !== \"\") {\n $('.select-timezone-required').val(result.timezone);\n }\n if (result.country !== undefined && result.country !== \"\") {\n $('.user-country-required').val(result.country);\n }\n var logged = result.logged;\n if (logged !== undefined && logged !== \"\") {\n if (logged == \"1\") {\n if (document.getElementById('header-links')) document.getElementById('header-links').innerHTML = window.onlineMenu;\n if (document.getElementById('login-action')) document.getElementById('login-action').innerHTML = window.onlineLoginAction;\n } else {\n if (document.getElementById('letter-box')) {\n $('#letter-box').html(window.offlineLetterBox);\n }\n if (document.getElementById('header-links')) document.getElementById('header-links').innerHTML = window.offlineMenu;\n if (document.getElementById('login-action')) document.getElementById('login-action').innerHTML = window.offlineLoginAction;\n }\n setCook.logged = logged;\n }\n window.InitializeHeaderDropdown();\n var masq = result.masqAs;\n if (masq !== undefined && masq !== \"\") {\n $('#masquerading-as').html(masq);\n $('#masquerading-as').show();\n }\n var brokerSpecifics = result.BrokerSpecifics;\n if (brokerSpecifics !== undefined && brokerSpecifics !== \"\" && brokerSpecifics !== null) {\n var specs = JSON.parse(brokerSpecifics);\n $('a.FXVERIFY_REVIEW_LINK_PLACEHOLDER').attr(\"href\", specs.fxvLink); // load the review link\n var al = decodeURIComponent(specs.AdminLinks);\n if (al !== undefined && al !== null && al !== \"\" && al !== \"undefined\") {\n console.log(al);\n var adminLinks = JSON.parse(al); // Parse the AdminLinks JSON string\n console.log(adminLinks);\n // Create HTML content with Edit and Delete links\n var editLinkHtml = \"Edit\");\n var deleteLinkHtml = \"Delete Cache (this portal only)\");\n\n // Combine the links into a single HTML string\n var adminLinksHtml = editLinkHtml + deleteLinkHtml;\n if (adminLinksHtml !== undefined && adminLinksHtml !== \"\") {\n $('.ADMIN_LINK_PLACEHOLDER').html(adminLinksHtml); //admin links\n }\n }\n\n var br = brokerSpecifics.replace(/[\\x00-\\x1F\\x7F-\\x9F]/g, \"\"); // remove control characters\n var brEnflated = JSON.parse(br);\n var specsObject = {};\n if (cookieValues.brokerSpecifics !== undefined && cookieValues.brokerSpecifics !== \"\" && cookieValues.brokerSpecifics !== null) {\n specsObject = JSON.parse(decodeURIComponent(cookieValues.brokerSpecifics));\n specsObject[data.BrokerId] = JSON.stringify(brEnflated);\n } else {\n specsObject[data.BrokerId] = JSON.stringify(brEnflated);\n }\n setCook.brokerSpecifics = JSON.stringify(specsObject); // set the cookie\n } else if (cookieValues.brokerSpecifics !== undefined && cookieValues.brokerSpecifics !== \"\" && cookieValues.brokerSpecifics !== null) {\n setCook.brokerSpecifics = cookieValues.brokerSpecifics;\n }\n var replaceStrings = function replaceStrings(str, list) {\n if (window.replaceStringList === undefined || !Array.isArray(window.replaceStringList)) return str;\n for (var i = 0; i < window.replaceStringList.length; i++) {\n str = str.split(window.replaceStringList[i].Item1).join(window.replaceStringList[i].Item2);\n }\n return str;\n };\n var forexBrokerList = result.BrokerList;\n if (forexBrokerList != null && forexBrokerList !== \"\") {\n $('.dropdown-broker-menu-list').html(replaceStrings(forexBrokerList));\n localStorage.setItem(\"FrnHOSTBrokerMenu\", forexBrokerList);\n } else if (cookieValues.brokerList !== undefined && cookieValues.brokerList !== \"\" && cookieValues.brokerList !== null) {\n localStorage.setItem(\"FrnHOSTBrokerMenu\", cookieValues.brokerList);\n $('.dropdown-broker-menu-list').html(replaceStrings(cookieValues.brokerList));\n }\n var cryptoBrokerList = result.CryptoBrokerList;\n if (cryptoBrokerList != null && cryptoBrokerList !== \"\") {\n $('.dropdown-broker-menu-list').html(replaceStrings(cryptoBrokerList));\n localStorage.setItem(\"FrnHOSTCryptoBrokerMenu\", cryptoBrokerList);\n } else if (cookieValues.cryptoBrokerList !== undefined && cookieValues.cryptoBrokerList !== \"\" && cookieValues.cryptoBrokerList !== null) {\n localStorage.setItem(\"FrnHOSTCryptoBrokerMenu\", cookieValues.cryptoBrokerList);\n $('.dropdown-crypto-menu-list').html(replaceStrings(cookieValues.cryptoBrokerList));\n }\n var guideList = result.GuideList;\n if (guideList != null && guideList !== \"\") {\n $('.dropdown-guide-menu-list').html(replaceStrings(guideList));\n localStorage.setItem(\"FrnHOSTGuideMenu\", guideList);\n } else if (cookieValues.guideList !== undefined && cookieValues.guideList !== \"\" && cookieValues.guideList !== null) {\n localStorage.setItem(\"FrnHOSTGuideMenu\", cookieValues.guideList);\n $('.dropdown-guide-menu-list').html(replaceStrings(cookieValues.guideList));\n }\n var cryptoGuideList = result.CryptoGuideList;\n if (cryptoGuideList != null && guideList !== \"\") {\n $('.dropdown-crypto-guide-menu-list').html(replaceStrings(cryptoGuideList));\n localStorage.setItem(\"FrnHOSTCryptoGuideMenu\", cryptoGuideList);\n } else if (cookieValues.cryptoGuideList !== undefined && cookieValues.cryptoGuideList !== \"\" && cookieValues.cryptoGuideList !== null) {\n localStorage.setItem(\"FrnHOSTCryptoGuideMenu\", cookieValues.cryptoGuideList);\n $('.dropdown-crypto-guide-menu-list').html(replaceStrings(cookieValues.cryptoGuideList));\n }\n if (result.roles !== undefined && result.roles !== \"\" && result.roles !== null) {\n var roleA = result.roles.replace(/[\\x00-\\x1F\\x7F-\\x9F]/g, \"\");\n setCook.roles = roleA;\n if (cookieValues.roles !== undefined && cookieValues.roles !== \"\" && cookieValues.roles !== result.roles) {\n _this.DynamicScripts(JSON.parse(roleA));\n _this.DynamicLinks(JSON.parse(roleA));\n } else if (cookieValues.roles === undefined || cookieValues.roles === \"\") {\n _this.DynamicScripts(JSON.parse(roleA));\n _this.DynamicLinks(JSON.parse(roleA));\n }\n }\n if (result.refer_link !== undefined && result.refer_link !== \"\" && result.refer_link !== null && $('#referral-link-holder').length) {\n $('#referral-link-holder').html(result.refer_link);\n }\n if (!!result.client_profile_id) {\n $('[data-id=\"trading-performace-link\"]').each(function (index, el) {\n if (window.CURRENT_LANG == 'en') $(el).attr(\"href\", \"/trading-accounts?scid=\" + result.client_profile_id);else $(el).attr(\"href\", \"/\" + window.CURRENT_LANG + \"/trading-accounts?scid=\" + result.client_profile_id);\n });\n }\n _this.Cookie.SetCookie(\"FrnHOST\", \"state=\" + JSON.stringify(setCook), 1);\n if (result.fxvdomain) {\n localStorage.setItem(\"fxvdomain\", result.fxvdomain);\n var links = $(\"a[data-id=social-profile-link]\");\n for (var i = 0; i < links.length; i++) {\n $(links[i]).attr('href', result.fxvdomain + $(links[i]).attr('href'));\n }\n } else {\n localStorage.removeItem(\"fxvdomain\");\n var _links = $(\"a[data-id=social-profile-link]\");\n for (var i = 0; i < _links.length; i++) {\n $(_links[i]).remove();\n }\n }\n if (result.show_review_popup === \"dash\") {\n $(\"#dashboard-leave-review\").show();\n } else if (result.show_review_popup == \"popup\") {\n $(\"#dashboard-leave-review\").show();\n $(\"#encourage-review-popup\").show();\n }\n if (window.updateRoleBasedElements) {\n window.updateRoleBasedElements();\n }\n }\n });\n }\n }, {\n key: \"HtmlDecode\",\n value: function HtmlDecode(input) {\n var e = document.createElement('textarea');\n e.innerHTML = input;\n return e.value;\n }\n }, {\n key: \"CloseReviewPopup\",\n value: function CloseReviewPopup() {\n this.Cookie.SetCookie(\"hide-review-popup\", \"1\", 365);\n $(\"#encourage-review-popup\").remove();\n }\n }, {\n key: \"ShowForRoles\",\n value: function ShowForRoles(roles) {\n $('.show-by-role').each(function (i, e) {\n $(e).hide();\n });\n roles.map(function (role) {\n $('.show-by-role').each(function (i, ele) {\n var element = $(ele);\n var data = element.data('show-by-role');\n if (data !== undefined && data !== null) {\n var isArray = data instanceof Array;\n if (isArray) {\n data.map(function (forRole) {\n if (forRole === role) {\n element.show();\n }\n });\n } else {\n if (data === role) {\n element.show();\n }\n }\n }\n });\n });\n }\n }, {\n key: \"DynamicScripts\",\n value: function DynamicScripts(roles) {\n $('.dynamic-script').each(function (i, e) {\n $(e).prop(\"src\", \"\");\n });\n roles.map(function (role) {\n $('i[data-role=\"' + role + '\"]').each(function (i, s) {\n var scriptTemplate = $(s);\n var src = scriptTemplate.data('src');\n var id = \"script-for-\" + role;\n if ($('#' + id).length) {\n $('#' + id).prop('src', src);\n } else {\n var script = document.createElement('script');\n script.src = src;\n script.Id = id;\n $(script).addClass('dynamic-script');\n document.head.appendChild(script);\n }\n });\n });\n }\n }, {\n key: \"DynamicLinks\",\n value: function DynamicLinks(roles) {\n $('.dynamic-link').each(function (i, e) {\n $(e).prop(\"href\", \"\");\n });\n roles.map(function (role) {\n if (role === \"Guest\") {\n $('a[data-guest-link]').each(function (i, link) {\n var linkBox = $(link);\n var url = linkBox.data('guest-link');\n $(link).prop('href', url);\n });\n }\n if (role === \"Support\" || role === \"Client\" || role === \"FH\") {\n $('a[data-user-link]').each(function (i, link) {\n var linkBox = $(link);\n var url = linkBox.data('user-link');\n $(link).prop('href', url);\n });\n if (role === \"Support\") {\n $('a[data-support-link]').each(function (i, link) {\n var linkBox = $(link);\n var url = linkBox.data('support-link');\n $(link).prop('href', url);\n });\n }\n if (role === \"Client\") {\n $('a[data-client-link]').each(function (i, link) {\n var linkBox = $(link);\n var url = linkBox.data('client-link');\n $(link).prop('href', url);\n });\n }\n if (role === \"FH\") {\n $('a[data-fh-link]').each(function (i, link) {\n var linkBox = $(link);\n var url = linkBox.data('fh-link');\n $(link).prop('href', url);\n });\n }\n }\n });\n }\n }, {\n key: \"SendtoUsa\",\n value: function SendtoUsa() {\n var location = $('#current-location').val();\n document.location.href = \"https://www.cashbackforexusa.com\" + location;\n }\n }]);\n return CacheBuster;\n}();\nvar _default = CacheBuster;\nexports[\"default\"] = _default;\n\n},{}],5:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nvar Cookie = /*#__PURE__*/function () {\n function Cookie() {\n _classCallCheck(this, Cookie);\n }\n _createClass(Cookie, [{\n key: \"SetCookie\",\n value: function SetCookie(CookieName, CookieValue, ExpiresInDays) {\n var d = new Date();\n d.setTime(d.getTime() + ExpiresInDays * 24 * 60 * 60 * 1000);\n var expires = \"expires=\" + d.toUTCString();\n var cookieToSet = CookieName + \"=\" + encodeURIComponent(CookieValue) + \";\" + expires + \";Secure;SameSite=Lax;path=/\";\n document.cookie = cookieToSet;\n }\n }, {\n key: \"SetCookieToExpireInHours\",\n value: function SetCookieToExpireInHours(CookieName, CookieValue, ExpiresInHours) {\n var d = new Date();\n d.setTime(d.getTime() + ExpiresInHours * 60 * 60 * 1000);\n var expires = \"expires=\" + d.toUTCString();\n var cookieToSet = CookieName + \"=\" + encodeURIComponent(CookieValue) + \";\" + expires + \";Secure;SameSite=Lax;path=/\";\n document.cookie = cookieToSet;\n }\n }, {\n key: \"SetCookieSameSiteNone\",\n value: function SetCookieSameSiteNone(CookieName, CookieValue, ExpiresInDays) {\n var d = new Date();\n d.setTime(d.getTime() + ExpiresInDays * 24 * 60 * 60 * 1000);\n var expires = \"expires=\" + d.toUTCString();\n var cookieToSet = CookieName + \"=\" + encodeURIComponent(CookieValue) + \";\" + expires + \";Secure;SameSite=None;path=/\";\n document.cookie = cookieToSet;\n }\n }, {\n key: \"SetSessionCookie\",\n value: function SetSessionCookie(cname, cvalue) {\n document.cookie = cname + \"=\" + cvalue + \";Secure;SameSite=Lax;expires=0;path=/\";\n }\n }, {\n key: \"GetCookie\",\n value: function GetCookie(cname) {\n var name = cname + \"=\";\n var cookie = document.cookie;\n var ca = cookie.split(';');\n for (var i = 0; i < ca.length; i++) {\n var c = decodeURIComponent(ca[i]);\n while (c.charAt(0) === ' ') {\n c = c.substring(1);\n }\n if (c.indexOf(name) === 0) {\n return c.substring(name.length, c.length);\n }\n }\n return \"\";\n }\n }, {\n key: \"DeleteCookie\",\n value: function DeleteCookie(name) {\n document.cookie = name + '=;expires=Thu, 01 Jan 1970 00:00:01 GMT;path=/';\n }\n }, {\n key: \"GetValue\",\n value: function GetValue(requestedValue, data) {\n var nameEQ = requestedValue + \"=\";\n var splits = data.split(\"&\");\n for (var i = 0; i < splits.length; i++) {\n var c = splits[i];\n while (c.charAt(0) == ' ') {\n c = c.substring(1, c.length);\n }\n if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);\n }\n }\n }]);\n return Cookie;\n}();\nvar _default = Cookie;\nexports[\"default\"] = _default;\n\n},{}],6:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nvar DatePicker = /*#__PURE__*/function () {\n function DatePicker() {\n _classCallCheck(this, DatePicker);\n }\n _createClass(DatePicker, [{\n key: \"InitDatePickers\",\n value: function InitDatePickers() {\n $('.datepicker').each(function (a, e) {\n var input = $(e);\n var format = $('#date-format').val();\n var c = input.data('datepicker-config');\n if (c == undefined) {\n c = {\n assumeNearbyYear: true,\n format: format\n };\n }\n input.pickadate(c);\n });\n }\n }, {\n key: \"GetDateSpan\",\n value: function GetDateSpan() {\n if ($(\"#date-start\").length && $(\"#date-end\").length) {\n var start = toDate('#date-start');\n var end = toDate('#date-end');\n var span = Math.round((end.getTime() - start.getTime()) / (1000 * 60 * 60));\n return span;\n }\n return null;\n }\n }, {\n key: \"CheckDateSpan\",\n value: function CheckDateSpan() {\n var hourlyExists = $('#hourly-button').length > 0;\n var monthlyExists = $('#monthly-button').length > 0;\n var span = GetDateSpan();\n if (span < 48) {\n $('#daily-button').addClass('disabled');\n } else {\n $('#daily-button').removeClass('disabled');\n }\n if (span > 72) {\n if (hourlyExists) {\n $('#hourly-button').addClass('disabled');\n }\n if (span > 504) {\n $('#weekly-button').removeClass('disabled');\n } else {\n $('#weekly-button').addClass('disabled');\n }\n if (span > 1500) {\n $('#daily-button').addClass('disabled');\n if (monthlyExists) {\n $('#monthly-button').removeClass('disabled');\n }\n } else {\n if (monthlyExists) {\n $('#monthly-button').addClass('disabled');\n }\n }\n } else {\n if (hourlyExists) {\n $('#hourly-button').removeClass('disabled');\n }\n $('#weekly-button').addClass('disabled');\n }\n return span;\n }\n }, {\n key: \"IsDate\",\n value: function IsDate(date, format) {\n if (format == undefined) {\n format = 'DD-MM-YYYY';\n }\n if (window.moment != undefined) {\n var parsedDate = window.moment(date, format, true);\n if (isNaN(date) && !isNaN(parsedDate)) {\n return false;\n }\n } else {\n if (this.ValidateDate(date)) {\n return false;\n }\n }\n return true;\n }\n }, {\n key: \"ToDate\",\n value: function ToDate(selector) {\n if (selector != undefined && $(selector).length) {\n var from = $(selector).val().split(\"-\");\n return new Date(from[2], from[1] - 1, from[0]);\n }\n return null;\n }\n }, {\n key: \"ValidateDate\",\n value: function ValidateDate(inputText) {\n var dateformat = /^(0?[1-9]|[12][0-9]|3[01])[\\/\\-](0?[1-9]|1[012])[\\/\\-]\\d{4}$/;\n // Match the date format through regular expression\n if (inputText.match(dateformat)) {\n var lopera1 = 0;\n var lopera2 = 0;\n var pdate = [];\n //Test which seperator is used '/' or '-'\n var opera1 = inputText.split('/');\n var opera2 = inputText.split('-');\n lopera1 = opera1.length;\n lopera2 = opera2.length;\n // Extract the string into month, date and year\n if (lopera1 > 1) {\n pdate = inputText.split('/');\n } else if (lopera2 > 1) {\n pdate = inputText.split('-');\n }\n var dd = parseInt(pdate[0]);\n var mm = parseInt(pdate[1]);\n var yy = parseInt(pdate[2]);\n // Create list of days of a month [assume there is no leap year by default]\n var ListofDays = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n if (mm == 1 || mm > 2) {\n if (dd > ListofDays[mm - 1]) {\n console.log('Invalid date format!');\n return false;\n }\n }\n if (mm == 2) {\n var lyear = false;\n if (!(yy % 4) && yy % 100 || !(yy % 400)) {\n lyear = true;\n }\n if (lyear == false && dd >= 29) {\n console.log('Invalid date format!');\n return false;\n }\n if (lyear == true && dd > 29) {\n console.log('Invalid date format!');\n return false;\n }\n }\n } else {\n console.log(\"Invalid date format!\");\n return false;\n }\n }\n }]);\n return DatePicker;\n}();\nvar _default = DatePicker;\nexports[\"default\"] = _default;\n\n},{}],7:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nvar FauxSelect = /*#__PURE__*/function () {\n function FauxSelect() {\n _classCallCheck(this, FauxSelect);\n }\n _createClass(FauxSelect, [{\n key: \"Initialise\",\n value: function Initialise() {\n $(document.body).on('click', 'div.selected-options button.close', this.DeleteMultiChoiceOption);\n $(document.body).on('click', '.dropdown', function (event) {\n var $selector = $($(event.target).parent());\n var menu = $selector.parent().find('div.frn-dropdown-menu');\n if ($(menu).is(\":visible\")) {\n // multiselect is open, close it now\n $(menu).slideUp();\n $selector.removeClass('selecting');\n } else {\n //close any open multi selects\n var container = $(\".frn-dropdown-menu\");\n var ignoreMenuId = $(menu).attr('aria-labelledby');\n if (container.prop('aria-labelledby') !== ignoreMenuId) {\n container.hide();\n }\n container.parent().removeClass('selecting');\n\n // open this multi select\n $selector.addClass('selecting');\n $(menu).slideDown();\n }\n });\n $('body.body').mouseup(function (e) {\n var container = $(\".frn-dropdown-menu\");\n if ($(e.target).hasClass('multi-selected-value') !== true) {\n // if the target of the click isn't the container nor a descendant of the container\n if (!container.is(e.target) && container.has(e.target).length === 0) {\n container.parent().find('.selecting').removeClass('selecting');\n container.hide();\n }\n }\n });\n $(document.body).on('hide.bs.dropdown', '.dropdown', function (event) {\n var hide = $(this).data('closable');\n $(this).data('closable', true);\n return hide;\n });\n $(document.body).on('click', 'ul.multi-choice-select > li', function () {\n var $option = $(this);\n var $optionVal = $($option.find('input:checkbox'));\n $optionVal.is(':checked') ? $optionVal.prop('checked', false) : $optionVal.prop('checked', true);\n $option.hasClass('active') ? $option.removeClass('active') : $option.addClass('active');\n var $selectorDiv = $(this).closest(\"div.faux-multi-select-wrap\").find(\"div.faux-multi-select.frn-override\");\n if ($selectorDiv.data(\"select-type\") == \"single\") {\n var $dropdown = $(this).closest(\"div.faux-multi-select-wrap\").find(\"div.frn-dropdown-menu\");\n var options = $dropdown.find(\"ul li input:checkbox\");\n for (var i = 0; i < options.length; i++) {\n if ($(options[i]).val() != $optionVal.val()) {\n $(options[i]).prop('checked', false);\n $(options[i]).parent().removeClass('active');\n }\n }\n }\n $optionVal.change();\n var selectedOptionsOutputDiv = $(this).closest(\"div.faux-multi-select-wrap\").find(\"div.selected-options\");\n var selectedOptionsCountDiv = $(this).closest(\"div.faux-multi-select-wrap\").find(\"span.multi-num\");\n var labelText = $optionVal.parent().find('label').text();\n if ($optionVal.is(':checked')) {\n if ($selectorDiv.data(\"select-type\") == \"single\") {\n selectedOptionsOutputDiv.html(\"
\" + labelText + \"
\");\n } else {\n selectedOptionsOutputDiv.append(\"
\" + labelText + \"
\");\n }\n } else {\n selectedOptionsOutputDiv.find('div:contains(\"' + labelText + '\")').remove();\n }\n ;\n var count = selectedOptionsOutputDiv.children().length;\n if (count > 0) {\n $selectorDiv.addClass(\"active\");\n if (selectedOptionsCountDiv.attr('no-bracket') !== undefined) selectedOptionsCountDiv.html(count);else selectedOptionsCountDiv.html(\"(\" + count + \")\");\n } else {\n $selectorDiv.removeClass(\"active\");\n selectedOptionsCountDiv.html(\"\");\n }\n if ($option.data('callback') !== undefined) {\n var callback = $option.data('callback');\n $(\"#panel\").slideToggle();\n if (typeof callback == \"string\") {\n window[callback]();\n }\n }\n $optionVal.removeClass('trigger-click');\n });\n $('div.faux-multi-select-wrap').append(\"
\");\n $(\"li.trigger-click\").each(function (i, e) {\n $(e).trigger('click');\n });\n }\n }, {\n key: \"DeleteMultiChoiceOption\",\n value: function DeleteMultiChoiceOption() {\n var labelText = $(this).parent().text();\n var buttonText = $(this).parent().find('button').text();\n var valueText = labelText.replace(buttonText, '');\n $(this).parent().parent().parent().find('ul.multi-choice-select > li.active > label:contains(\"' + valueText + '\")').trigger('click');\n $(this).parent().remove();\n }\n }]);\n return FauxSelect;\n}();\nvar _default = FauxSelect;\nexports[\"default\"] = _default;\n\n},{}],8:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nvar Language = /*#__PURE__*/function () {\n function Language(cookie) {\n _classCallCheck(this, Language);\n this.Cookie = cookie;\n }\n _createClass(Language, [{\n key: \"Select\",\n value: function Select(url, locale) {\n var currently = this.Cookie.GetCookie(\"locale\");\n if (currently !== locale) {\n this.Cookie.SetSessionCookie(\"switch-locale\", locale);\n }\n if ($('#dynamic-query').length) {\n var dq = $('#dynamic-query').val();\n if (dq !== \"\") {\n var page = url.split(\"?\")[0];\n url = page + dq;\n }\n }\n this.Cookie.SetCookie(\"locale\", locale, 365);\n document.location.href = url;\n return false;\n }\n }]);\n return Language;\n}();\nvar _default = Language;\nexports[\"default\"] = _default;\n\n},{}],9:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nvar RebateAccounts = /*#__PURE__*/function () {\n function RebateAccounts() {\n _classCallCheck(this, RebateAccounts);\n $(function () {\n $('.close-error').on('click', function () {\n $(this).closest(\".error-container\").addClass('hide');\n });\n });\n // register functions for window global access\n window.SubmitAccountPostLogin = this.SubmitAccountPostLogin;\n if ($('#ClientProfileId').length) {\n $.ajax({\n type: \"POST\",\n cache: false,\n url: window.clientIdUrl,\n async: true,\n success: function success(result) {\n if (result.id !== undefined && result.id > 0) {\n $('#ClientProfileId').val(result.id);\n }\n ;\n }\n });\n }\n }\n _createClass(RebateAccounts, [{\n key: \"ClearError\",\n value: function ClearError(container, canvas, progress) {\n canvas.html('');\n container.addClass('hide');\n }\n }, {\n key: \"BreakForError\",\n value: function BreakForError(error, container, canvas, progress) {\n progress.addClass('hide');\n canvas.html(error);\n container.removeClass('hide');\n $('html, body').animate({\n scrollTop: container.offset().top\n }, 250);\n }\n // ------------------------------//\n }, {\n key: \"ChangeRegistrationType\",\n value: function ChangeRegistrationType(accountRegistrationType) {\n if (accountRegistrationType === window.transferRegistrationType) {\n $('#step-one').addClass('hide');\n $('.' + window.customMessageTransferAccountNumber).show();\n $('.' + window.customMessageNewAccountNumber).hide();\n if ($('#hdnAllowsAccountTransfers').val() === \"True\") {\n $('#steptwowithnum').addClass('hide');\n $('#steptwoasstepone').removeClass('hide');\n $('#stepthreewithnum').addClass('hide');\n $('#stepthreeassteptwo').removeClass('hide');\n $('#stepthreewithtradingplatform').addClass('hide');\n $('#stepthreeassteptwotradingplatform').removeClass('hide');\n } else {\n $('#step-three').addClass('hide');\n $('#step-two').addClass('hide');\n $('#step-unsupported').removeClass('hide');\n }\n $('.form-type-NewAccount').hide();\n $('.form-type-Transfer').show();\n $('.first-instance-only').hide();\n $('#account-number-messages-transfer.first-instance-only').show();\n } else {\n $('.' + window.customMessageTransferAccountNumber).hide();\n $('.' + window.customMessageNewAccountNumber).show();\n $('#step-one').removeClass('hide');\n $('#step-two').removeClass('hide');\n $('#step-three').removeClass('hide');\n $('#step-unsupported').addClass('hide');\n $('#steptwowithnum').removeClass('hide');\n $('#steptwoasstepone').addClass('hide');\n $('#stepthreewithnum').removeClass('hide');\n $('#stepthreeassteptwo').addClass('hide');\n $('#stepthreewithtradingplatform').removeClass('hide');\n $('#stepthreeassteptwotradingplatform').addClass('hide');\n $('.form-type-NewAccount').show();\n $('.form-type-Transfer').hide();\n $('.first-instance-only').hide();\n $('#account-number-messages-new-account.first-instance-only').show();\n }\n }\n }, {\n key: \"LoadRecaptcha\",\n value: function LoadRecaptcha(callback) {\n var _this2 = this;\n if (!$('#recptcha-script').length) {\n var script = document.createElement('script');\n script.id = \"recptcha-script\";\n script.onload = function () {\n if (callback != undefined) {\n callback(_this2);\n }\n };\n script.src = \"https://www.recaptcha.net/recaptcha/api.js?render=\" + window.CAPTCHA_KEY;\n document.getElementsByTagName('head')[0].appendChild(script);\n } else {\n if (callback != undefined) {\n callback(this);\n }\n }\n }\n }, {\n key: \"SubmitAccount\",\n value: function SubmitAccount() {\n this.LoadRecaptcha(this.CompleteSubmission);\n }\n }, {\n key: \"CompleteSubmission\",\n value: function CompleteSubmission(_this) {\n if (_this == undefined) {\n _this = this;\n }\n var rebateOptionRadios = false;\n // ReSharper disable InconsistentNaming\n var RebateOption;\n if ($('#rebate-radio-buttons').length) {\n rebateOptionRadios = true;\n RebateOption = $(\"input[name='RebateOption']:checked\");\n } else {\n RebateOption = $('#hdnRebateOption');\n }\n var errorContainer = $('#broker-account-add-error-message');\n var errorMessage = $('#broker-account-error-content');\n var progress = $(\"#broker-account-add-progress\");\n var AccountTypeId = $('#AccountTypeId');\n var RegistrationType = $(\"input[name='AccountRegistrationType']:checked\");\n var AccountNum = $('#account-input');\n var BrokerId = $('#hdnBrokerId');\n var BrokerName = $('#hdnBrokerName');\n var BrokerUrlSlug = $('#hdnBrokerUrlSlug');\n var Authorisation = $('#cbxAuthorise').prop('checked');\n var TradingPlatform = $('#TradingPlatform');\n _this.ClearError(errorContainer, errorMessage, progress);\n progress.removeClass('hide');\n var submitAccount = true;\n if (RegistrationType.val() == undefined) {\n _this.BreakForError(window.chooseRegistrationTypeError, errorContainer, errorMessage, progress);\n submitAccount = false;\n } else if (rebateOptionRadios && RebateOption.val() === undefined) {\n _this.BreakForError(window.rebateOptionError, errorContainer, errorMessage, progress);\n submitAccount = false;\n } else if (Authorisation === false) {\n _this.BreakForError(window.provideAuthorisation, errorContainer, errorMessage, progress);\n submitAccount = false;\n }\n if (RegistrationType.val() === window.registrationNew) {\n if (AccountTypeId.val() === \"\") {\n _this.BreakForError(window.chooseAccountTypeError, errorContainer, errorMessage, progress);\n submitAccount = false;\n } else if (AccountNum.val() === \"\") {\n _this.BreakForError(window.provideAccountNumberError, errorContainer, errorMessage, progress);\n submitAccount = false;\n }\n } else if (RegistrationType.val() === window.registrationTransfer) {\n if (AccountTypeId.val() === \"\") {\n _this.BreakForError(window.chooseAccountTypeError, errorContainer, errorMessage, progress);\n submitAccount = false;\n } else if (AccountNum.val() === \"\") {\n _this.BreakForError(window.provideAccountNumberError, errorContainer, errorMessage, progress);\n submitAccount = false;\n }\n }\n $('.input-field-value-required').each(function (index, element) {\n if ($(element).closest(\"div\").is(\":visible\")) {\n if ($(element).val() === \"\") {\n $(element).addClass('input-validation-error');\n _this.BreakForError(\"Please fill out all required fields\", errorContainer, errorMessage, progress);\n submitAccount = false;\n }\n ;\n }\n });\n if (submitAccount) {\n grecaptcha.ready(function () {\n grecaptcha.execute(window.captchaKey, {\n action: 'SubmitAccount'\n }).then(function (token) {\n var postData = {};\n // Set `token` in a hidden form input.\n postData.Captcha = token;\n var inputFields = [];\n $('.input-field-value').each(function (index, element) {\n if ($(element).closest(\"div\").is(\":visible\")) {\n var item = {};\n item.Name = $(element).attr('name');\n item.Value = $(element).val();\n inputFields.push(item);\n }\n });\n postData[\"ExternalSignUpRequired\"] = false;\n if ($('#external-form-url').length) {\n var _RegistrationType = $(\"input[name='AccountRegistrationType']:checked\");\n var mode = $('#external-form-mode').val();\n if (mode == '0' || mode == \"2\" && _RegistrationType.val() == 'New' || mode == \"1\" && _RegistrationType.val() == 'Transfer') {\n postData[\"ExternalSignUpRequired\"] = true;\n }\n }\n postData[\"InputFields\"] = inputFields;\n postData[\"BrokerId\"] = BrokerId.val();\n postData[\"BrokerName\"] = BrokerName.val();\n postData[\"AccountNumber\"] = AccountNum.val();\n postData[\"AccountTypeId\"] = AccountTypeId.val();\n postData[\"AccountRegistrationType\"] = RegistrationType.val();\n postData[\"AuthorisationGiven\"] = Authorisation;\n postData[\"RebateOptionId\"] = RebateOption.val();\n postData[\"TradingPlatform\"] = TradingPlatform.val();\n var clientId = $('#client-profile-id').val();\n if (clientId > 0) {\n $.ajax({\n type: \"POST\",\n cache: false,\n url: window.submitAccountUrl,\n data: postData,\n async: true,\n success: function success(result) {\n if (result.isError) {\n _this.BreakForError(result.errorMessage, errorContainer, errorMessage, progress);\n } else {\n var modal = $('#messageModal');\n modal.find('#message-title').text(window.accAddedString);\n modal.find('#message-body').text(window.regSuccessString);\n modal.modal('show');\n progress.addClass('hide');\n if (result.requiresNfa) {\n setTimeout(function () {\n document.location.href = window.submitNfaUrl;\n }, 2000);\n } else if (!result.requiresExternalAction) {\n setTimeout(function () {\n document.location.href = window.clientPanelUrl + '#' + encodeURIComponent('rebate_acc_added:' + AccountNum.val() + \":\" + BrokerId.val() + \":\" + TradingPlatform.val() + \":\" + BrokerName.val());\n }, 2000);\n } else {\n setTimeout(function () {\n document.location.href = window.clientPanelUrl;\n }, 1000);\n }\n }\n },\n error: function error(result) {\n this.BreakForError(\"Unknown error has occurred\", errorContainer, errorMessage, progress);\n }\n });\n } else {\n progress.addClass('hide');\n if (window.Access === undefined) {\n alert('You must be logged in with a valid client profile to register a trading account');\n } else {\n var accountData = {};\n if ($('#rebate-radio-buttons').length) {\n accountData.RebateOption = $(\"input[name='RebateOption']:checked\").val();\n } else {\n accountData.RebateOption = $('#hdnRebateOption').val();\n }\n accountData.AccountRegistrationType = $(\"input[name='AccountRegistrationType']:checked\").val();\n accountData.AccountTypeId = $('#AccountTypeId').val();\n accountData.AccountNumber = $('#account-input').val();\n accountData.AuthorisationGiven = $('#cbxAuthorise').prop('checked');\n accountData.BrokerId = BrokerId.val();\n accountData.BrokerName = BrokerName.val();\n accountData.BrokerUrlSlug = BrokerUrlSlug.val();\n var data = JSON.stringify(accountData);\n window.Access.LoginWithPurpose('SubmitAccountPostLogin', 'You must be logged in to perform this action', 'signup', window.TASK_SUBMIT_ACCOUNT_NOTIFY, data);\n }\n }\n });\n });\n }\n }\n }, {\n key: \"SubmitAccountPostLogin\",\n value: function SubmitAccountPostLogin() {\n if (!($('#ClientProfileId').val() > 0) || $('#ClientProfileId').val() === \"0\") {\n alert(\"You must be logged in with a valid client profile to register a trading account\");\n location.reload();\n } else {\n window.Access.LoginHideModal();\n window.RebateAccounts.SubmitAccount();\n }\n }\n }, {\n key: \"GetCashbackRates\",\n value: function GetCashbackRates(accountId) {\n var postData = {};\n postData[\"AccountId\"] = accountId;\n $('#dialog-show-rebate-rate').modal('show');\n $.ajax({\n type: \"POST\",\n cache: false,\n url: window.cashbackRateUrl,\n data: postData,\n async: true,\n success: function success(result) {\n $('#show-rebate-rate-content').html(result.pageView);\n $('#show-rebate-rate-progress').hide();\n }\n });\n }\n }, {\n key: \"GetRebateOptions\",\n value: function GetRebateOptions(accountTypeId) {\n var _this3 = this;\n var postData = {};\n postData.lang = window.CURRENT_LANG;\n postData[\"AccountTypeId\"] = accountTypeId;\n $.ajax({\n type: \"POST\",\n cache: false,\n url: window.rebateOptionUrl,\n data: postData,\n async: true,\n success: function success(result) {\n $('#RebateOptions').removeClass(\"hide\");\n $('#rebate-options-form-elements').html(result.pageView);\n if ($('#hdnRebateOptionPreset').val() !== undefined) {\n $('#RebateOption_' + $('#hdnRebateOptionPreset').val()).prop('checked', true);\n }\n _this3.SetUpDynamicPopUps();\n }\n });\n }\n }, {\n key: \"SetUpDynamicPopUps\",\n value: function SetUpDynamicPopUps() {\n $('[data-toggle=\"pop-rebate-description\"]').popover('dispose');\n $('[data-toggle=\"pop-rebate-description\"]').popover({\n content: function content() {\n var id = $(this).data('target-id');\n var out = \"
\" + $('#hidden-description-' + id).html() + \"
\";\n return out;\n }\n });\n }\n }]);\n return RebateAccounts;\n}();\nvar _default = RebateAccounts;\nexports[\"default\"] = _default;\n\n},{}],10:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nvar Site = /*#__PURE__*/function () {\n function Site() {\n _classCallCheck(this, Site);\n //Close the side Nav if resized to large screen\n $(window).on('resize', function () {\n if (window.innerWidth > 949 && $('#sidenav-overlay').length) {\n window.Site.closeSideNav();\n }\n });\n window.AjaxLoading = function () {\n $.LoadingOverlay(\"show\");\n };\n window.AjaxComplete = function () {\n $.LoadingOverlay(\"hide\");\n };\n window.Profile = function () {\n $('#profile-dropdown').show();\n };\n $(function () {\n // SideNav Button Initialization\n $(\".button-collapse\").sideNav({});\n // SideNav Scrollbar Initialization\n var sideNavScrollbar = document.querySelector('.custom-scrollbar');\n // Ps.initialize(sideNavScrollbar);\n\n //$('.liveChatNow').on(\"click\", function (e) {\n // var random = Math.floor(Math.random() * 1001);\n // var random2 = Math.floor(Math.random() * 1001);\n // window.open(\"http://supportfx.kayako.com/visitor/index.php?/LiveChat/Chat/Request/_sessionID=\" + random + \"/_proactive=0/_filterDepartmentID=15%2C9%2C86%2C21%2C122%2C87%2C57%2C123%2C85%2C118/_randomNumber=\" + random2 + \"/_fullName=/_email=/_promptType=chat\", \"yyyyy\", \"width=480,height=580,resizable=yes,toolbar=no,menubar=no,location=no,status=no\");\n // return false;\n //});\n\n $(\"#scroll-top\").click(function () {\n $(\"html, body\").animate({\n scrollTop: 0\n }, \"medium\");\n return false;\n });\n $(\".nav-top\").click(function () {\n $(\"html, body\").animate({\n scrollTop: 0\n }, \"medium\");\n return false;\n });\n $(document).on('click', '.enableToggle', function () {\n var _this2 = this;\n var url;\n var callback;\n if ($(this).data('targeturl') != undefined) {\n url = $(this).data('targeturl');\n } else {\n url = $('#enableUrl').val();\n }\n if ($(this).data('callback') != undefined) {\n callback = $(this).data('callback');\n }\n $.ajax({\n type: \"POST\",\n url: url,\n data: {\n id: $(this).data('id'),\n state: this.checked,\n name: this.name\n },\n success: function success(result) {\n if (callback !== undefined) {\n window[callback](_this2);\n }\n }\n });\n });\n $(document).on('click', '.tableHide', function () {\n if ($(\".hideTableRow\").is(\":hidden\")) {\n $(\".hideTableRow\").slideDown(\"slow\");\n } else {\n $(\".hideTableRow\").hide();\n }\n });\n $(document).on('click', '.toggle-child-ul', function () {\n $(this).children('ul').toggle();\n });\n });\n\n //$('.mdb-select').material_select('destroy');\n\n //$('.mdb-select').material_select();\n\n // set all heading's id\n var headings = $(\":header:not([id])\");\n for (var i = 0; i < headings.length; i++) {\n headings[i].id = \"runtime-added-id-\" + i;\n }\n }\n _createClass(Site, [{\n key: \"closeSideNav\",\n value: function closeSideNav() {\n $(\"#sidenav-overlay\").trigger(\"click\");\n }\n }, {\n key: \"InitAuthorPopovers\",\n value: function InitAuthorPopovers() {\n var selector = '[data-toggle=\"popover-author\"]';\n /*\r\n if (window.matchMedia(\"(max-width: 767px)\").matches) {\r\n selector = 'a[data-toggle=\"popover-author\"]';\r\n }\r\n */\n\n $(selector).popover({\n content: function content() {\n var targetId = $(this).data('target-id');\n return $(targetId).html();\n },\n html: true,\n trigger: \"manual\",\n placement: 'auto',\n container: 'body'\n }).on(\"mouseenter\", function () {\n var _this = this;\n $(this).popover(\"show\");\n $(\".popover\").on(\"mouseleave\", function () {\n $(_this).popover('hide');\n });\n }).on(\"mouseleave\", function () {\n var _this = this;\n setTimeout(function () {\n if (!$(\".popover:hover\").length) {\n $(_this).popover(\"hide\");\n }\n }, 100);\n });\n }\n }, {\n key: \"UpdateLastUpdatedDate\",\n value: function UpdateLastUpdatedDate() {\n $('span[data-everydayupdate=\"True\"]').each(function (i, element) {\n var date = new Date();\n var dateStr = '';\n if ($(element).data('display') == 'short') {\n dateStr = date.toLocaleString(window.CURRENT_CULTURE, {\n day: undefined,\n month: 'long',\n year: 'numeric'\n });\n } else {\n dateStr = date.toLocaleString(window.CURRENT_CULTURE, {\n day: 'numeric',\n month: 'short',\n year: 'numeric'\n });\n }\n $(element).text(dateStr);\n });\n }\n }]);\n return Site;\n}();\nvar _default = Site;\nexports[\"default\"] = _default;\n\n},{}],11:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nvar Support = /*#__PURE__*/function () {\n function Support(datepicker) {\n _classCallCheck(this, Support);\n this.datepicker = datepicker;\n $('.form-control').on('focus', function () {\n $(this).removeClass(\"form-control-danger\").closest(\".form-group\").removeClass(\"has-danger\");\n $(this).parent().find('.form-control-feedback').hide();\n });\n }\n _createClass(Support, [{\n key: \"LoadRecaptcha\",\n value: function LoadRecaptcha(callback) {\n var _this = this;\n if (!$('#recptcha-script').length) {\n var script = document.createElement('script');\n script.id = \"recptcha-script\";\n script.onload = function () {\n if (callback != undefined) {\n callback(_this);\n }\n };\n script.src = \"https://www.recaptcha.net/recaptcha/api.js?render=\" + window.CAPTCHA_KEY;\n document.getElementsByTagName('head')[0].appendChild(script);\n } else {\n if (callback != undefined) {\n callback(this);\n }\n }\n }\n }, {\n key: \"LoadTimezone\",\n value: function LoadTimezone() {\n var today = new Date();\n var _short = today.toLocaleDateString(undefined);\n var full = today.toLocaleDateString(undefined, {\n timeZoneName: 'long'\n });\n\n // Trying to remove date from the string in a locale-agnostic way\n var shortIndex = full.indexOf(_short);\n if (shortIndex >= 0) {\n var trimmed = full.substring(0, shortIndex) + full.substring(shortIndex + _short.length);\n\n // by this time `trimmed` should be the timezone's name with some punctuation -\n // trim it from both sides\n return trimmed.replace(/^[\\s,.\\-:;]+|[\\s,.\\-:;]+$/g, '');\n } else {\n // in some magic case when short representation of date is not present in the long one, just return the long one as a fallback, since it should contain the timezone's name\n return full;\n }\n }\n }, {\n key: \"SendContactRequest\",\n value: function SendContactRequest() {\n var send = true;\n if ($('#ContactEmail').val() === \"\") {\n $('#ContactEmail').addClass(\"form-control-danger\").closest(\".form-group\").addClass(\"has-danger\");\n send = false;\n }\n if ($('#ContactName').val() === \"\") {\n $('#ContactName').addClass(\"form-control-danger\").closest(\".form-group\").addClass(\"has-danger\");\n send = false;\n }\n if ($('#ContactSubject').val() === \"\") {\n $('#ContactSubject').addClass(\"form-control-danger\").closest(\".form-group\").addClass(\"has-danger\");\n send = false;\n }\n if ($('#ContactMessage').val() === \"\") {\n $('#ContactMessage').addClass(\"form-control-danger\").closest(\".form-group\").addClass(\"has-danger\");\n send = false;\n }\n if (send) {\n grecaptcha.ready(function () {\n grecaptcha.execute(window.captchaKey, {\n action: 'SubmitContact'\n }).then(function (token) {\n // Set `token` in a hidden form input.\n $(\"#captcha\").val(token);\n\n //And finally submit the form by firing\n //off the HTTP POST over the wire at this\n //exact moment in time here.\n $('#contact-progress').removeClass('hide');\n $('#ContactEmail').closest(\"form\").submit();\n });\n });\n }\n return false;\n }\n }, {\n key: \"SubmitFoundAnError\",\n value: function SubmitFoundAnError() {\n $('#FoundAnErrorDetail').parent().removeClass('has-danger');\n if ($('#FoundAnErrorDetail').val() === \"\") {\n $('#FoundAnErrorDetail').parent().addClass('has-danger');\n } else {\n $('#submit-error-progress').show();\n var postData = {};\n postData.FoundAnErrorDetail = $('#FoundAnErrorDetail').val();\n grecaptcha.ready(function () {\n grecaptcha.execute(window.captchaKey, {\n action: 'SubmitFoundAnError'\n }).then(function (token) {\n // Set `token` in a hidden form input.\n postData.Captcha = token;\n $.ajax({\n url: window.foundAnErrorUrl,\n type: 'POST',\n data: postData,\n cache: false,\n success: function success(result) {\n if (result.isError !== true) {\n $('#submit-error-success-message').show();\n $('#submit-error-progress').hide();\n $('#FoundAnErrorInputDiv').hide();\n setTimeout(function () {\n $('#dialog-submit-error').modal('hide');\n }, 2000);\n } else {\n alert(result.message);\n }\n },\n error: function error(result) {\n alert(\"error\");\n $('#submit-error-progress').hide();\n alert(\"there was an error\");\n }\n });\n });\n });\n }\n }\n }, {\n key: \"CancelFoundAnError\",\n value: function CancelFoundAnError() {\n $('#dialog-submit-error').modal('hide');\n $('#FoundAnErrorDetail').val('');\n }\n }, {\n key: \"OpenFoundAnError\",\n value: function OpenFoundAnError() {\n this.LoadRecaptcha();\n $('#submit-error-progress').hide();\n $('#submit-error-success-message').hide();\n $('#FoundAnErrorDetail').parent().removeClass('has-danger');\n $('#FoundAnErrorDetail').val('');\n $('#submit-error-progress').hide();\n $('#FoundAnErrorInputDiv').show();\n $('#dialog-submit-error').modal('show');\n }\n }, {\n key: \"SendNfaRequest\",\n value: function SendNfaRequest() {\n var send = true;\n var dob = $('#nfa-date-of-birth').val();\n if (dob === \"\") {\n $('#nfa-date-of-birth').addClass(\"form-control-danger\").closest(\".form-group\").addClass(\"has-danger\");\n send = false;\n } else {\n if (!this.datepicker.IsDate(dob)) {\n $('#nfa-date-of-birth').addClass(\"form-control-danger\").closest(\".form-group\").addClass(\"has-danger\");\n send = false;\n }\n }\n if ($('#nfa-annual-income').val() === \"\") {\n $('#nfa-annual-income').addClass(\"form-control-danger\").closest(\".form-group\").addClass(\"has-danger\");\n send = false;\n }\n if ($('#nfa-employment-status').val() === \"\") {\n $('#nfa-employment-status').addClass(\"form-control-danger\").closest(\".form-group\").addClass(\"has-danger\");\n send = false;\n }\n if ($('#nfa-net-worth').val() === \"\") {\n $('#nfa-net-worth').addClass(\"form-control-danger\").closest(\".form-group\").addClass(\"has-danger\");\n send = false;\n }\n if ($('#nfa-occupation').val() === \"\") {\n $('#nfa-occupation').addClass(\"form-control-danger\").closest(\".form-group\").addClass(\"has-danger\");\n send = false;\n }\n if ($('#nfa-trading-experience').val() === \"\") {\n $('#nfa-trading-experience').addClass(\"form-control-danger\").closest(\".form-group\").addClass(\"has-danger\");\n send = false;\n }\n if ($('#Nfa_Address').val() === \"\") {\n $('#Nfa_Address').addClass(\"form-control-danger\").closest(\".form-group\").addClass(\"has-danger\");\n send = false;\n }\n if (send) {\n grecaptcha.ready(function () {\n grecaptcha.execute(window.captchaKey, {\n action: 'SubmitNfaRequest'\n }).then(function (token) {\n // Set `token` in a hidden form input.\n $(\"#nfa-captcha\").val(token);\n\n //And finally submit the form by firing\n //off the HTTP POST over the wire at this\n //exact moment in time here.\n $('#nfa-progress').removeClass('hide');\n $('#nfa-date-of-birth').closest(\"form\").submit();\n });\n });\n }\n return false;\n }\n }, {\n key: \"SendBetterRatesRequest\",\n value: function SendBetterRatesRequest() {\n var send = true;\n if ($('#BetterRatesEmail').val() === \"\") {\n $('#BetterRatesEmail').addClass(\"form-control-danger\").closest(\".form-group\").addClass(\"has-danger\");\n send = false;\n }\n if ($('#BetterRatesName').val() === \"\") {\n $('#BetterRatesName').addClass(\"form-control-danger\").closest(\".form-group\").addClass(\"has-danger\");\n send = false;\n }\n if (send) {\n grecaptcha.ready(function () {\n grecaptcha.execute(window.captchaKey, {\n action: 'SubmitBetterRate'\n }).then(function (token) {\n // Set `token` in a hidden form input.\n $(\"#captcha\").val(token);\n\n //And finally submit the form by firing\n //off the HTTP POST over the wire at this\n //exact moment in time here.\n $('#contact-progress').removeClass('hide');\n $('#BetterRatesEmail').closest(\"form\").submit();\n });\n });\n }\n return false;\n }\n }, {\n key: \"PopCallBack\",\n value: function PopCallBack() {\n $('#model-callback-request').modal('show');\n this.LoadRecaptcha();\n $('#Timezone-Callback option[value=\"' + Intl.DateTimeFormat().resolvedOptions().timeZone + '\"]').prop('selected', true);\n }\n }, {\n key: \"RequestCallback\",\n value: function RequestCallback() {\n //$('#FullName-Callback').removeClass('frn-override-danger');\n //$('#Phone-Callback').removeClass('frn-override-danger');\n\n //if ($('#FullName-Callback').val() === \"\" || $('#Phone-Callback').val() === \"\") {\n\n // if ($('#FullName-Callback').val() === \"\") {\n // $('#FullName-Callback').addClass('frn-override-danger');\n // }\n\n // if ($('#Phone-Callback').val() === \"\") {\n // $('#Phone-Callback').addClass('frn-override-danger');\n // }\n\n //} else {\n $('#callback-request-progress').removeClass('hide');\n var postData = {};\n postData.DisplayName = $('#FullName-Callback').val();\n postData.Email = $('#Email-Address-Callback').val();\n postData.Phone = $('#Phone-Callback').val();\n postData.Timezone = $('#Timezone-Callback').val();\n postData.Message = $('#Message-Callback').val();\n postData.ClientId = $('#CallbackUserId').val();\n postData.LogType = $('#LogType-Callback').val();\n grecaptcha.ready(function () {\n grecaptcha.execute(window.captchaKey, {\n action: 'SubmitCallbackRequest'\n }).then(function (token) {\n // Set `token` in a hidden form input.\n postData.Captcha = token;\n $.ajax({\n url: window.requestCallbackUrl,\n type: 'POST',\n data: postData,\n cache: false,\n success: function success(result) {\n if (result.IsError) {\n $('#CallbackPayload').html(result.pageView);\n $('#callback-request-progress').addClass('hide');\n } else {\n window.location.reload();\n }\n },\n error: function error(result) {\n $('#callback-request-progress').addClass('hide');\n alert(\"there was an error\");\n }\n });\n ////And finally submit the form by firing\n ////off the HTTP POST over the wire at this\n ////exact moment in time here.\n //$('#contact-progress').removeClass('hide');\n //$('#ContactEmail').closest(\"form\").submit();\n });\n });\n //}\n }\n }, {\n key: \"PopEmailRequest\",\n value: function PopEmailRequest() {\n $('#model-email-us').modal('show');\n }\n }, {\n key: \"SendEmail\",\n value: function SendEmail() {\n $('#email-us-progress').removeClass('hide');\n var postData = {};\n postData.DisplayName = $('#FullName-Email').val();\n postData.Email = $('#Email-Address-Email').val();\n postData.CountryOfResidenceId = $('#CountryOfResidenceId-Email').val();\n postData.CountryOfResidenceName = $('#CountryOfResidenceId-Email').find(\":selected\").text();\n postData.Message = $('#Message-Email').val();\n postData.ClientId = $('#EmailUserId').val();\n postData.LogType = $('#LogType-Email').val();\n grecaptcha.ready(function () {\n grecaptcha.execute(window.captchaKey, {\n action: 'SubmitEmail'\n }).then(function (token) {\n // Set `token` in a hidden form input.\n postData.Captcha = token;\n $.ajax({\n url: window.emailUsUrl,\n type: 'POST',\n data: postData,\n cache: false,\n success: function success(result) {\n if (result.IsError) {\n $('#EmailUsPayload').html(result.pageView);\n $('#email-us-progress').addClass('hide');\n } else {\n window.location.reload();\n }\n },\n error: function error(result) {\n $('#email-us-progress').addClass('hide');\n alert(\"there was an error\");\n }\n });\n });\n });\n }\n }, {\n key: \"PopLiveChat\",\n value: function PopLiveChat() {\n if (window.kayako.visibility() === 'minimized') {\n window.kayako.maximize();\n } else {\n window.kayako.minimize();\n }\n }\n }, {\n key: \"OpenAffiliateDialog\",\n value: function OpenAffiliateDialog() {\n var clientId = $(\"#client-profile-id\").val();\n var verified = $(\"#client-verified\").val();\n if (clientId == 0) {\n this.SignupFromAffiliateDialog();\n } else {\n $(\"#affiliate-content\").html(window.affiliateAuthenticatedLink);\n var affiliateLink = window.location.href.split('#')[0] + \"#aid_\" + clientId;\n $(\"#affiliate-link\").html(affiliateLink);\n if (verified == 0) {\n $(\"#affiliate-content\").append(window.affiliateNeedEmailVerify);\n }\n $(\"#dialog-affiliate\").modal(\"show\");\n }\n }\n }, {\n key: \"SignupFromAffiliateDialog\",\n value: function SignupFromAffiliateDialog() {\n $(\"#dialog-affiliate\").modal(\"hide\");\n window.Access.LoginWithPurpose('OpenAffiliateDialogAfterSignup', '', 'signup', '', '');\n }\n }, {\n key: \"CopyAffiliateLink\",\n value: function CopyAffiliateLink() {\n navigator.clipboard.writeText($(\"#affiliate-link\").text()).then(function () {\n window.toastr.success(\"Copied!\");\n });\n }\n }, {\n key: \"CopyShareLink\",\n value: function CopyShareLink() {\n navigator.clipboard.writeText(window.location.href).then(function () {\n window.toastr.success(\"Copied! \" + window.location.href);\n });\n }\n }, {\n key: \"AuthenticatedPage\",\n value: function AuthenticatedPage(page) {\n var clientId = $(\"#client-profile-id\").val();\n if (clientId == 0) {\n window.Access.LoginForDestination(page);\n } else {\n document.location.href = page;\n }\n }\n }, {\n key: \"OpenFeedbackDialog\",\n value: function OpenFeedbackDialog() {\n this.LoadRecaptcha();\n if (!window.cookieStateValues || window.cookieStateValues.logged != '1') $(\"#feedback-submit-dialog [name=feedbackEmail]\").attr('placeholder', 'Email');else $(\"#feedback-submit-dialog [name=feedbackEmail]\").attr('placeholder', 'Email (optional)');\n $(\"#feedback-submit-dialog [name=feedbackEmail]\").val('');\n $(\"#feedback-submit-dialog [name=feedbackText]\").val('');\n $(\"#feedback-submit-progress\").hide();\n $(\"#feedback-submit-dialog\").modal('show');\n }\n }, {\n key: \"SubmitBugsAndFeedback\",\n value: function SubmitBugsAndFeedback() {\n $(\"#feedback-submit-dialog [name=feedbackText]\").parent().removeClass('has-danger');\n $(\"#feedback-submit-dialog [name=feedbackEmail]\").parent().removeClass('has-danger');\n if ((!window.cookieStateValues || window.cookieStateValues.logged != '1') && $(\"#feedback-submit-dialog [name=feedbackEmail]\").val() == '') {\n $(\"#feedback-submit-dialog [name=feedbackEmail]\").parent().addClass('has-danger');\n } else if ($(\"#feedback-submit-dialog [name=feedbackText]\").val() == '') {\n $(\"#feedback-submit-dialog [name=feedbackText]\").parent().addClass('has-danger');\n } else {\n var postData = {};\n postData.Message = $(\"#feedback-submit-dialog [name=feedbackText]\").val();\n postData.Email = $(\"#feedback-submit-dialog [name=feedbackEmail]\").val();\n postData.PageUrl = window.location.href;\n $(\"#feedback-submit-progress\").show();\n if (window.bypassReCaptcha) {\n $.ajax({\n url: window.bugsAndFeedbackUrl,\n type: 'POST',\n data: postData,\n cache: false,\n success: function success(result) {\n if (result.isError !== true) {\n toastr.success(\"Thanks for your feedback\");\n $('#feedback-submit-dialog').modal('hide');\n } else {\n toastr.error(result.message);\n }\n },\n error: function error(result) {\n toastr.error(result.message);\n }\n });\n } else {\n grecaptcha.ready(function () {\n grecaptcha.execute(window.captchaKey, {\n action: 'SubmitFeedback'\n }).then(function (token) {\n // Set `token` in a hidden form input.\n postData.Captcha = token;\n $.ajax({\n url: window.bugsAndFeedbackUrl,\n type: 'POST',\n data: postData,\n cache: false,\n success: function success(result) {\n if (result.isError !== true) {\n toastr.success(\"Thanks for your feedback\");\n $('#feedback-submit-dialog').modal('hide');\n } else {\n toastr.error(result.message);\n }\n },\n error: function error(result) {\n toastr.error(result.message);\n }\n });\n });\n });\n }\n }\n }\n }]);\n return Support;\n}();\nvar _default = Support;\nexports[\"default\"] = _default;\n\n},{}],12:[function(require,module,exports){\n'use strict';\n\n/*\r\n * Config Options:\r\n * localStoreName - specify local storage name to preserve state when user navigates from page\r\n * postRenderCallback - Callback to call when content of ajax tab has been rendered to page\r\n * compactOnResize - specify if tabs are to collapse to select list drop down on small screen\r\n * preLoadCallback - callback executed before Ajax page is loaded, or after tab is clicked on non Ajax loading tabs\r\n * haltInitLoad - prevent Ajax load on first initialisation of tabs\r\n */\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar _templateObject, _templateObject2;\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nvar Tabs = /*#__PURE__*/function () {\n function Tabs() {\n var _this = this;\n _classCallCheck(this, Tabs);\n var shortCuts;\n this.hash = document.location.hash;\n if (this.hash && this.hash.includes(\"tab-\") && $(this.hash).length) {\n this.SwitchTab(this.hash.replace(\"#\", \"\"));\n } else if ($('#active-tab').length) {\n var activeTab = $('#active-tab').val();\n activeTab = \"tab-\" + activeTab.substr(0, 3);\n this.SwitchTab(activeTab);\n } else {\n this.shortCuts = localStorage.getItem('_tabShortCuts');\n if (!(this.shortCuts == undefined || this.shortCuts === \"\")) {\n // inflate string to data object\n this.shortCuts = JSON.parse(this.shortCuts);\n var localShortCuts = this.shortCuts;\n if (_typeof(this.shortCuts) == 'object') {\n // valid shortcuts object found in local storage, \n // check for URL parameters looking to select tabs on page\n var vars = this.GetParameters();\n var BreakException = {};\n if (vars.tab != undefined) {\n vars.tab.forEach(function (value) {\n for (var storedTabsId in localShortCuts) {\n if (Array.isArray(_this.shortCuts[storedTabsId])) {\n try {\n localShortCuts[storedTabsId].forEach(function (vle) {\n if (vle === \"tab-\" + value) {\n // set the local storage for this tab\n localStorage.setItem(storedTabsId + \"-current-tab\", \"tab-\" + value);\n // exclude this storedTabs Id from any subsequent search of query vars\n localShortCuts[storedTabsId] = undefined;\n // throw exception to break the loop\n throw BreakException;\n }\n });\n } catch (e) {\n if (e !== BreakException) throw e;\n }\n } else {\n if (_this.shortCuts[storedTabsId] === undefined) {}\n }\n }\n });\n }\n ;\n }\n }\n }\n }\n _createClass(Tabs, [{\n key: \"WhatHash\",\n value: function WhatHash() {\n alert(\"from what hash \" + this.hash);\n }\n }, {\n key: \"InitTabs\",\n value: function InitTabs(frame, config) {\n if ($(frame).hasClass('tab-frame')) {\n return;\n }\n var localStoreName = null;\n var locallyStoredCurrentTab = null;\n var currentTab = null;\n var currentTabId = null;\n var manipulateUrl = true;\n if (config != undefined) {\n if (config.manipulateUrl == undefined) {\n config.manipulateUrl = manipulateUrl;\n }\n localStoreName = config.localStoreName;\n $(frame).data('tab-config', config);\n }\n if (config && config.ignoreHash === true) {\n this.hash = '';\n }\n $(frame).addClass('tab-frame');\n $(frame + \" .frn-tab:not(.no-tab) > a\").each(function () {\n if (!$(this).data('click-bound')) {\n $(this).data('click-bound', true).on('click', function (e) {\n e.preventDefault();\n window.Tabs.LoadTab(this);\n });\n }\n });\n if (config && config.compactOnResize !== undefined && config.compactOnResize !== null && config.compactOnResize === true) {\n $(frame + \"-compact\").on('change', function (e) {\n window.Tabs.LoadTab(this);\n });\n }\n var mythis = this;\n if (config && config.setTabLink === true) {\n $(frame + \" .frn-tab:not(.no-tab) > a\").each(function (i, e) {\n var basePath = window.location.pathname;\n var vars = mythis.GetParameters();\n for (var key in vars) {\n if (vars.hasOwnProperty(key)) {\n if (key !== 'tab') {\n if (!basePath.includes('?')) {\n basePath += \"?\" + key + \"=\" + vars[key];\n } else {\n basePath += \"&\" + key + \"=\" + vars[key];\n }\n }\n }\n }\n var tabId = $(e).closest(\"div.frn-tab\").prop('id');\n if (basePath.includes('?')) basePath += '&tab=' + tabId.substr(4);else basePath += '?tab=' + tabId.substr(4);\n $(e).attr('href', basePath);\n });\n }\n if (localStoreName !== null) {\n $(frame).data('tab-cache', localStoreName);\n locallyStoredCurrentTab = localStorage.getItem(localStoreName + \"-current-tab\");\n }\n $(frame + ' .tab-box').hide();\n\n // consider defaultTag from config\n var defaultTab = config.defaultTab;\n\n // if defaultTag is not configured, read from tab cache\n if (!defaultTab) defaultTab = locallyStoredCurrentTab;\n if (defaultTab && $('#' + defaultTab).length > 0 && $('#' + defaultTab).is(':visible')) {\n currentTabId = defaultTab;\n currentTab = $('#' + currentTabId);\n } else {\n // Get First tab\n currentTab = $(frame + \" .frn-tab:first\");\n currentTabId = currentTab.prop('id');\n }\n if (localStoreName !== null) {\n // local storage should have an object of all tab shortcuts(tab ids)\n // this is used for creating direct links to pages with tabs and having specific tabs opened\n\n if (this.shortCuts == null || this.shortCuts == undefined || !(_typeof(this.shortCuts) == 'object')) {\n // if the shortcut string could not be converted to object\n // start again with new object\n this.shortCuts = new Object();\n }\n\n // if we have not already recorded the Ids for current tabs in the \n // localstorage shortcut object, we do so now\n if (this.shortCuts[localStoreName] === undefined) {\n var shortcutIds = [];\n $(frame + \" .frn-tab\").each(function (key, value) {\n // add the ID of each tab to an array\n shortcutIds.push($(value).prop('id'));\n });\n // save tabIds in for this tab in the shortcut object\n this.shortCuts[localStoreName] = shortcutIds;\n // commit to local storage\n localStorage.setItem('_tabShortCuts', JSON.stringify(this.shortCuts));\n }\n\n // record this tab as the current Tab for localStorage\n // (when page is refreshed it will default to this tab rather than first tab on page)\n localStorage.setItem(localStoreName + \"-current-tab\", currentTabId);\n }\n if (config.haltInitLoad === true) {\n this.SetTabToLoadedState(currentTab.find(\"a\"));\n } else {\n this.LoadTab(currentTab.find(\"a\"));\n }\n }\n\n /*\r\n * Set the state of a tab to loaded, without actually loading any data\r\n */\n }, {\n key: \"SetTabToLoadedState\",\n value: function SetTabToLoadedState(e) {\n var tabFrame = $(e).closest(\"div.tab-frame\"); // The outer most surrounding box.\n var menuFrame = $(e).closest(\"div.frn-tabs\"); // Frame that holds the menus\n var tabFrameId = $(tabFrame).prop('id'); // Id of the frame menu\n var tab = $(e).closest(\"div\"); // The tab that was clicked\n var tabConfig = $(tabFrame).data('tab-config'); // Tab config data attached to this instance of tabs\n var id = $(tab).prop('id');\n var cache = tabFrame.data('tabCache');\n var progressBar = $('#' + tabFrameId + '-progress');\n var progressBarExists = progressBar.length > 0;\n if (cache != undefined) {\n localStorage.setItem(cache + \"-current-tab\", id);\n }\n menuFrame.children().removeClass('frn-tab-active');\n $(e).closest(\"div.frn-tab\").addClass('frn-tab-active');\n if (progressBarExists) {\n progressBar.hide();\n }\n if (tabConfig && tabConfig.manipulateUrl === true) {\n this.ManipulateUrl();\n }\n }\n }, {\n key: \"LoadTab\",\n value: function LoadTab(e) {\n var _this2 = this;\n var tabFrame = $(e).closest(\"div.tab-frame\"); // The outer most surrounding box.\n var tabConfig = $(tabFrame).data('tab-config'); // Tab config data attached to this instance of tabs\n if (tabConfig === undefined) {\n tabConfig = {};\n }\n var menuFrame = $(e).closest(\"div.frn-tabs\"); // Frame that holds the menus\n var tabFrameId = $(tabFrame).prop('id');\n // Id of the frame menu\n var triggerId;\n var url; // the url for ajax call\n var Post; // any data that needs to be sent to ajax call\n var preLoadCallback; // check to see is there a pre-process callback required for this tab ( to be run before page load ) \n var postProcessorCallback; // check to see is there a post-process callback required for this tab ( to be run after page load )\n var postRenderCallback; // check to see is there a post-render callback required for this tab ( to be run after page load )\n\n // determine if input was from tab link or select list drop down\n var isLink = true;\n var isSelect = false;\n var linkElement; // the link that contains config into\n\n if (tabConfig && tabConfig.compactOnResize !== undefined && tabConfig.compactOnResize !== null && tabConfig.compactOnResize && $(e).is(\"select\")) {\n isSelect = true;\n isLink = false;\n }\n if (isLink) {\n var trigger = $(e).closest(\"div\"); // The tab that was clicked\n triggerId = $(trigger).prop('id');\n linkElement = e;\n }\n if (isSelect) {\n triggerId = $('#' + tabFrameId + \"-compact option:selected\").val();\n linkElement = $('#' + triggerId + \" > a\");\n }\n url = $(linkElement).data('url');\n Post = $(linkElement).data('post');\n preLoadCallback = $(linkElement).data('preload-callback');\n postProcessorCallback = $(linkElement).data('postprocessor-callback');\n postRenderCallback = $(linkElement).data('post-render-callback');\n var cache = tabFrame.data('tabCache');\n var dynamicData = {};\n var progressBar = $('#' + tabFrameId + '-progress');\n var progressBarExists = progressBar.length > 0;\n\n // Tab Specific pre load callback. \n // checks to see if the callback returns a data object, and if so stores it \n // to send with PostData \n if (preLoadCallback !== undefined) {\n var data;\n var tabInstancePreCallback = preLoadCallback;\n if (typeof tabInstancePreCallback == \"string\") {\n data = window[tabInstancePreCallback](linkElement);\n } else {\n data = tabInstancePreCallback(linkElement);\n }\n if (_typeof(data) == \"object\") {\n dynamicData = data;\n }\n }\n\n // Generic pre load callback (applies to all tabs)\n if (tabConfig && tabConfig.preLoadCallback !== undefined) {\n var callback = tabConfig.preLoadCallback;\n if (typeof callback == \"string\") {\n dynamicData = window[callback](linkElement);\n } else {\n dynamicData = callback(linkElement);\n }\n }\n if (cache != undefined) {\n localStorage.setItem(cache + \"-current-tab\", triggerId);\n }\n menuFrame.children().removeClass('frn-tab-active');\n $(e).closest(\"div.frn-tab\").addClass('frn-tab-active');\n if (tabConfig && tabConfig.compactOnResize !== undefined && tabConfig.compactOnResize !== null && tabConfig.compactOnResize) {\n // This tabs instance uses selectlist when small instead of tabs, we need to make sure it matches the current tab\n $('#' + tabFrameId + \"-compact\").val(triggerId);\n }\n if ($('#' + triggerId + \"-box\").length) {\n $('#' + tabFrameId + ' .tab-box').hide();\n $('#' + triggerId + \"-box\").show();\n if (progressBarExists) {\n progressBar.hide();\n }\n if (postRenderCallback !== undefined) {\n window[postRenderCallback]();\n } else {\n // Generic post render callback (applies to all tabs)\n if (tabConfig && tabConfig.postRenderCallback !== undefined) {\n var genericPostRenderCallback = tabConfig.postRenderCallback;\n if (typeof genericPostRenderCallback == \"string\") {\n window[genericPostRenderCallback]();\n } else {\n genericPostRenderCallback();\n }\n }\n }\n if (tabConfig && tabConfig.manipulateUrl === true) {\n this.ManipulateUrl();\n }\n } else {\n if (progressBarExists) {\n progressBar.show();\n }\n var fullPost = Object.assign({}, Post, dynamicData);\n $.ajax({\n url: url,\n type: 'POST',\n data: fullPost,\n success: function success(result) {\n var renderResult = true;\n var resultProcessed;\n\n // Call any post-data callbacks specified in tab config\n // Tab Specific post load callback, pass the result object as argument\n if (postProcessorCallback !== undefined) {\n var tabInstancePostCallback = postProcessorCallback;\n if (typeof tabInstancePostCallback == \"string\") {\n resultProcessed = window[tabInstancePostCallback](result);\n } else {\n resultProcessed = tabInstancePostCallback(result);\n }\n }\n // Generic post load callback (applies to all tabs)\n if (tabConfig && tabConfig.postLoadCallback !== undefined) {\n var callback = tabConfig.postLoadCallback;\n if (typeof callback == \"string\") {\n resultProcessed = window[callback](result);\n } else {\n resultProcessed = callback(result);\n }\n }\n\n // postProcessorCallback can halt the render process by return object\n // with bool field haltRendering = true\n if (_typeof(resultProcessed) == \"object\") {\n if (resultProcessed.hasOwnProperty(\"HaltRender\")) {\n renderResult = false;\n }\n }\n\n // Render the tab if any data-post-processor-callback has not specified that \n // rendering should be cancelled\n if (renderResult === true) {\n $('#tab-live-' + tabFrameId).remove();\n var dom = '
' + result + '
';\n $(tabFrame).append(dom);\n }\n if (progressBarExists) {\n progressBar.hide();\n }\n\n // Call any post-render callbacks specified in tab config\n\n // Tab Specific post render callback, pass the result object as argument\n if (postRenderCallback !== undefined) {\n var tabInstancePostRenderCallback = postRenderCallback;\n if (typeof tabInstancePostRenderCallback == \"string\") {\n window[tabInstancePostRenderCallback](result);\n } else {\n tabInstancePostRenderCallback(result);\n }\n }\n // Generic post render callback (applies to all tabs)\n if (tabConfig && tabConfig.postRenderCallback !== undefined) {\n var genericPostRenderCallback = tabConfig.postRenderCallback;\n if (typeof genericPostRenderCallback == \"string\") {\n window[genericPostRenderCallback]();\n } else {\n genericPostRenderCallback();\n }\n }\n if (tabConfig && tabConfig.manipulateUrl === true) {\n _this2.ManipulateUrl();\n }\n }\n });\n }\n }\n\n /*\r\n * Set the Browser bar URL to reflect current state of tabs on page\r\n */\n }, {\n key: \"ManipulateUrl\",\n value: function ManipulateUrl() {\n var vars = this.GetParameters();\n var out = \"\";\n for (var key in vars) {\n if (vars.hasOwnProperty(key)) {\n if (key !== 'tab') {\n if (out === \"\") {\n out += \"?\" + key + \"=\" + vars[key];\n } else {\n out += \"&\" + key + \"=\" + vars[key];\n }\n }\n }\n }\n\n // look for every active tab on the page (there is one per tabset)\n $('.frn-tab.frn-tab-active').each(function (index, element) {\n // get the parent frame and tabconfig data object for current active tab that we are checking\n var config = $(element).closest('.tab-frame').data('tab-config');\n // if a tab config oject is found\n if (config != undefined) {\n // if tab config for currently checking tabs has manipulateURL set to true \n // (i.e. we want to incude this tab set in URL manipulation)\n if (config.manipulateUrl) {\n // Get the current URL parameters\n if (out === \"\") {\n out += \"?tab=\" + element.id.replace(\"tab-\", \"\");\n } else {\n out += \"&tab=\" + element.id.replace(\"tab-\", \"\");\n }\n }\n }\n });\n if (out !== \"\") {\n if (this.hash !== \"\" && this.hash != undefined) {\n out = out + this.hash;\n }\n window.history.pushState(\"\", \"\", out);\n }\n }\n\n /*\r\n * Get the Id for the current Tab in a tabframe\r\n * IF stored locally, get that value, if not then return first tab\r\n */\n }, {\n key: \"GetCurrentTab\",\n value: function GetCurrentTab(frame) {\n var config = $(frame).data('tab-config');\n var localStoreName = config.localStoreName;\n var locallyStoredCurrentTab;\n var currentTab;\n var currentTabId;\n if (localStoreName !== null) {\n locallyStoredCurrentTab = localStorage.getItem(localStoreName + \"-current-tab\");\n }\n if (locallyStoredCurrentTab == null) {\n // Get First tab\n currentTab = $(frame + \" .frn-tab:first\");\n currentTabId = currentTab.prop('id');\n } else {\n currentTabId = locallyStoredCurrentTab;\n }\n return currentTabId;\n }\n }, {\n key: \"SwitchSubTab\",\n value: function SwitchSubTab(id, subTabId, callback) {\n var whitecard = $('.white-card.tab-' + subTabId + '-box').first();\n whitecard.removeClass(function (index, className) {\n return (className.match(/(^|\\s)switch-class-\\S+/g) || []).join(' ');\n });\n whitecard.addClass('switch-class-' + id);\n $('.frn-tab-' + subTabId).removeClass('frn-tab-active');\n $('#tab-' + id).parent().addClass('frn-tab-active');\n $('.sub-tab-' + subTabId).addClass('hide');\n $('.' + id).removeClass('hide');\n if (callback) {\n if (typeof callback == \"string\") {\n window[callback]();\n } else {\n callback();\n }\n }\n }\n }, {\n key: \"SwitchTabSel\",\n value: function SwitchTabSel() {\n var id = $('#tabSelect').val();\n $('.frn-tab').removeClass('frn-tab-active');\n $('#' + id).closest('div').addClass('frn-tab-active');\n $('.white-card').css('display', 'none');\n $('#' + id + '-box').css('display', 'block');\n $('.white-card.' + id + '-box').css('display', 'block');\n if (id === \"tab-ref\") {\n $('#referrals-filter').css('display', 'flex');\n $('#btnholder').css('display', 'block');\n } else {\n $('#referrals-filter').css('display', 'none');\n $('#btnholder').css('display', 'none');\n }\n }\n }, {\n key: \"SwitchTab\",\n value: function SwitchTab(id) {\n $('.frn-tab').removeClass('frn-tab-active');\n $('#' + id).parent().addClass('frn-tab-active');\n $('.tab-box').css('display', 'none');\n $('.' + id + '-box').css('display', 'block');\n if (id === \"tab-ref\") {\n $('#referrals-filter').css('display', 'flex');\n $('#btnholder').css('display', 'block');\n } else {\n $('#referrals-filter').css('display', 'none');\n $('#btnholder').css('display', 'none');\n }\n $('#tabSelect').val(id);\n }\n }, {\n key: \"SwitchSignUpTabs\",\n value: function SwitchSignUpTabs(tab) {\n $('#loginModal .frn-tab').removeClass('frn-tab-active');\n if (tab === \"forgotten\") {\n $('#login-tab').addClass('frn-tab-active');\n $('#forgot').hide();\n } else {\n $('#forgot').show();\n $('#' + tab + \"-tab\").addClass('frn-tab-active');\n }\n $('.signup-content').addClass('hide');\n $('#' + tab + \"-payload\").removeClass('hide');\n }\n }, {\n key: \"GetParameters\",\n value: function GetParameters() {\n var qd = {};\n if (location.search) location.search.substr(1).split(_templateObject || (_templateObject = _taggedTemplateLiteral([\"&\"]))).forEach(function (item) {\n var _ref = item.split(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral([\"=\"]))),\n _ref2 = _slicedToArray(_ref, 2),\n k = _ref2[0],\n v = _ref2[1];\n v = v && decodeURIComponent(v);\n (qd[k] = qd[k] || []).push(v);\n });\n return qd;\n }\n }]);\n return Tabs;\n}();\nvar _default = Tabs;\nexports[\"default\"] = _default;\n\n},{}],13:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nvar Tracker = /*#__PURE__*/function () {\n function Tracker(cookie) {\n _classCallCheck(this, Tracker);\n this.Cookie = cookie;\n this.trackerCode = null;\n\n // Check for the presence of hash paramater\n var lochash = location.hash.substr(1);\n if (lochash !== \"\" && lochash != undefined) {\n // Check to see if hash is an tid (Tracking ID) value\n var t = lochash.split(\"tid_\");\n if (t[1] !== undefined) {\n this.trackerCode = t[1].split(\"#\")[0];\n }\n this.send = false;\n }\n if (lochash === \"loginforum_rkfx\") {\n if (!$('#recptcha-script').length) {\n var script = document.createElement('script');\n script.id = \"recptcha-script\";\n script.src = \"https://www.recaptcha.net/recaptcha/api.js?render=\" + window.CAPTCHA_KEY;\n document.getElementsByTagName('head')[0].appendChild(script);\n }\n $('#loginModal').data('GoToUrl', 'https://rkfx.talktrading.io/login');\n $('#loginModal').find('#signup-payload').hide();\n $('#loginModal').find('#forgotten-payload').hide();\n $('#loginModal').find('#forgot').hide();\n $('#loginModal').find('#signup-tab').hide();\n $('#loginModal').modal('show');\n $('#login-screen-progress').addClass('hide');\n $('#login-error-summary').remove();\n }\n var postData = {};\n if (this.trackerCode != undefined && this.trackerCode !== \"\") {\n // Valid promo code\n // check to see if the hidden TID field is on page (found in the registration form)\n if ($('#PromoCode').length) {\n // if yes, assign aid value\n $('#PromoCode').val(this.trackerCode);\n }\n this.Cookie.SetCookie(\"promoCode\", this.trackerCode, 90);\n }\n }\n _createClass(Tracker, [{\n key: \"RecordSocialActivity\",\n value: function RecordSocialActivity(activities) {\n var data = {};\n data.Activities = activities;\n var formattedData = $.param(data);\n $.ajax({\n url: '/api/social-profile/activity',\n type: 'POST',\n cache: false,\n data: formattedData,\n async: true,\n success: function success() {}\n });\n }\n }]);\n return Tracker;\n}();\nvar _default = Tracker;\nexports[\"default\"] = _default;\n\n},{}],14:[function(require,module,exports){\n\"use strict\";\n\nvar _Cookie = _interopRequireDefault(require(\"../../includes/Cookie.js\"));\nvar _CacheBuster = _interopRequireDefault(require(\"../../includes/CacheBuster.js\"));\nvar _Access = _interopRequireDefault(require(\"../../includes/Access.js\"));\nvar _Language = _interopRequireDefault(require(\"../../includes/Language.js\"));\nvar _Tabs = _interopRequireDefault(require(\"../../includes/Tabs.js\"));\nvar _RebateAccounts = _interopRequireDefault(require(\"../../includes/RebateAccounts.js\"));\nvar _Support = _interopRequireDefault(require(\"../../includes/Support.js\"));\nvar _Site = _interopRequireDefault(require(\"../../includes/Site.js\"));\nvar _DatePicker = _interopRequireDefault(require(\"../../includes/DatePicker.js\"));\nvar _Tracker = _interopRequireDefault(require(\"../../includes/Tracker.js\"));\nvar _FauxSelect = _interopRequireDefault(require(\"../../includes/FauxSelect.js\"));\nvar _Ads = _interopRequireDefault(require(\"../../includes/Ads.js\"));\nvar _APIHelper = _interopRequireDefault(require(\"../../includes/APIHelper.js\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n$(function () {\n var cookieInstance = new _Cookie[\"default\"]();\n window.Tracker = new _Tracker[\"default\"](cookieInstance);\n window.Tabs = new _Tabs[\"default\"]();\n window.Access = new _Access[\"default\"](cookieInstance);\n window.Promotion = new _Ads[\"default\"](cookieInstance);\n window.Language = new _Language[\"default\"](cookieInstance);\n window.RebateAccounts = new _RebateAccounts[\"default\"]();\n window.Support = new _Support[\"default\"](new _DatePicker[\"default\"]());\n window.Site = new _Site[\"default\"]();\n window.FauxSelect = new _FauxSelect[\"default\"]();\n window.FauxSelect.Initialise();\n window.CacheBuster = new _CacheBuster[\"default\"](cookieInstance);\n window.APIHelper = new _APIHelper[\"default\"]();\n setTimeout(function () {\n window.CacheBuster.Refresh();\n }, 500);\n window.Site.UpdateLastUpdatedDate();\n window.Site.InitAuthorPopovers();\n});\n\n},{\"../../includes/APIHelper.js\":1,\"../../includes/Access.js\":2,\"../../includes/Ads.js\":3,\"../../includes/CacheBuster.js\":4,\"../../includes/Cookie.js\":5,\"../../includes/DatePicker.js\":6,\"../../includes/FauxSelect.js\":7,\"../../includes/Language.js\":8,\"../../includes/RebateAccounts.js\":9,\"../../includes/Site.js\":10,\"../../includes/Support.js\":11,\"../../includes/Tabs.js\":12,\"../../includes/Tracker.js\":13}]},{},[14]);\n\n/***************************************************************************************************\r\nLoadingOverlay - A flexible loading overlay jQuery plugin\r\n Author : Gaspare Sganga\r\n Version : 1.5.3\r\n License : MIT\r\n Documentation : http://gasparesganga.com/labs/jquery-loading-overlay/\r\n****************************************************************************************************/\r\n!function(A,B){function C(C,g){C=A(C);var E=C.is(\"body\"),I=C.data(\"LoadingOverlayCount\");if(I===B&&(I=0),0==I){var o=A(\"
\",{class:\"loadingoverlay\",css:{\"background-color\":g.color,position:\"relative\",display:\"flex\",\"flex-direction\":\"column\",\"align-items\":\"center\",\"justify-content\":\"center\"}});if(g.zIndex!==B&&o.css(\"z-index\",g.zIndex),g.image&&o.css({\"background-image\":\"url(\"+g.image+\")\",\"background-position\":g.imagePosition,\"background-repeat\":\"no-repeat\"}),g.fontawesome&&A(\"
\",{class:\"loadingoverlay_fontawesome \"+g.fontawesome}).appendTo(o),g.custom&&A(g.custom).appendTo(o),E?o.css({position:\"fixed\",top:0,left:0,width:\"100%\",height:\"100%\"}):o.css(\"position\",\"fixed\"==C.css(\"position\")?\"fixed\":\"absolute\"),Q(C,o,g,E),g.resizeInterval>0){var w=setInterval(function(){Q(C,o,g,E)},g.resizeInterval);C.data(\"LoadingOverlayResizeIntervalId\",w)}g.fade?g.fade===!0?g.fade=[400,200]:\"string\"!=typeof g.fade&&\"number\"!=typeof g.fade||(g.fade=[g.fade,g.fade]):g.fade=[0,0],C.data({LoadingOverlay:o,LoadingOverlayFadeOutDuration:g.fade[1]}),o.hide().appendTo(\"body\").fadeIn(g.fade[0])}I++,C.data(\"LoadingOverlayCount\",I)}function g(C,g){C=A(C);var Q=C.data(\"LoadingOverlayCount\");if(Q!==B)if(Q--,g||Q<=0){var E=C.data(\"LoadingOverlayResizeIntervalId\");E&&clearInterval(E),C.data(\"LoadingOverlay\").fadeOut(C.data(\"LoadingOverlayFadeOutDuration\"),function(){A(this).remove()}),C.removeData([\"LoadingOverlay\",\"LoadingOverlayCount\",\"LoadingOverlayFadeOutDuration\",\"LoadingOverlayResizeIntervalId\"])}else C.data(\"LoadingOverlayCount\",Q)}function Q(B,C,g,Q){if(!Q){var E=\"fixed\"==B.css(\"position\")?B.position():B.offset();C.css({top:E.top+parseInt(B.css(\"border-top-width\"),10),left:E.left+parseInt(B.css(\"border-left-width\"),10),width:B.innerWidth(),height:B.innerHeight()})}var I=Q?A(window):B,o=\"auto\";g.size&&\"auto\"!=g.size&&(o=Math.min(I.innerWidth(),I.innerHeight())*parseFloat(g.size)/100,g.maxSize&&o>parseInt(g.maxSize,10)&&(o=parseInt(g.maxSize,10)+\"px\"),g.minSize&&o
');\r\n var isForced = isBoot !== true;\r\n\r\n self.callHook('beforeRender', isForced);\r\n\r\n var currentPage = model.pageNumber || attributes.pageNumber;\r\n var pageRange = attributes.pageRange || 0;\r\n var totalPage = self.getTotalPage();\r\n\r\n var rangeStart = currentPage - pageRange;\r\n var rangeEnd = currentPage + pageRange;\r\n\r\n if (rangeEnd > totalPage) {\r\n rangeEnd = totalPage;\r\n rangeStart = totalPage - pageRange * 2;\r\n rangeStart = rangeStart < 1 ? 1 : rangeStart;\r\n }\r\n\r\n if (rangeStart <= 1) {\r\n rangeStart = 1;\r\n rangeEnd = Math.min(pageRange * 2 + 1, totalPage);\r\n }\r\n\r\n el.html(self.generateHTML({\r\n currentPage: currentPage,\r\n pageRange: pageRange,\r\n rangeStart: rangeStart,\r\n rangeEnd: rangeEnd\r\n }));\r\n\r\n // Whether to hide pagination when there is only one page\r\n if (attributes.hideOnlyOnePage) {\r\n el[totalPage <= 1 ? 'hide' : 'show']();\r\n }\r\n\r\n self.callHook('afterRender', isForced);\r\n\r\n return el;\r\n },\r\n\r\n getPageLinkTag: function (index) {\r\n var pageLink = attributes.pageLink;\r\n return pageLink ? '' + index + '' : '' + index + '';\r\n },\r\n\r\n // Generate HTML for page numbers\r\n generatePageNumbersHTML: function (args) {\r\n var self = this;\r\n var currentPage = args.currentPage;\r\n var totalPage = self.getTotalPage();\r\n var getPageLinkTag = self.getPageLinkTag;\r\n var rangeStart = args.rangeStart;\r\n var rangeEnd = args.rangeEnd;\r\n var html = '';\r\n var i;\r\n\r\n var ellipsisText = attributes.ellipsisText;\r\n\r\n var classPrefix = attributes.classPrefix;\r\n var pageClassName = attributes.pageClassName || '';\r\n var activeClassName = attributes.activeClassName || '';\r\n var disableClassName = attributes.disableClassName || '';\r\n\r\n // Display all page numbers if page range disabled\r\n if (attributes.pageRange === null) {\r\n for (i = 1; i <= totalPage; i++) {\r\n if (i == currentPage) {\r\n html += '
  • ' + i + '
  • ';\r\n } else {\r\n html += '
  • ' + getPageLinkTag(i) + '
  • ';\r\n }\r\n }\r\n return html;\r\n }\r\n\r\n if (rangeStart <= 3) {\r\n for (i = 1; i < rangeStart; i++) {\r\n if (i == currentPage) {\r\n html += '
  • ' + i + '
  • ';\r\n } else {\r\n html += '
  • ' + getPageLinkTag(i) + '
  • ';\r\n }\r\n }\r\n } else {\r\n if (!attributes.hideFirstOnEllipsisShow) {\r\n html += '
  • ' + getPageLinkTag(1) + '
  • ';\r\n }\r\n html += '
  • ' + ellipsisText + '
  • ';\r\n }\r\n\r\n for (i = rangeStart; i <= rangeEnd; i++) {\r\n if (i == currentPage) {\r\n html += '
  • ' + i + '
  • ';\r\n } else {\r\n html += '
  • ' + getPageLinkTag(i) + '
  • ';\r\n }\r\n }\r\n\r\n if (rangeEnd >= totalPage - 2) {\r\n for (i = rangeEnd + 1; i <= totalPage; i++) {\r\n html += '
  • ' + getPageLinkTag(i) + '
  • ';\r\n }\r\n } else {\r\n html += '
  • ' + ellipsisText + '
  • ';\r\n\r\n if (!attributes.hideLastOnEllipsisShow) {\r\n html += '
  • ' + getPageLinkTag(totalPage) + '
  • ';\r\n }\r\n }\r\n\r\n return html;\r\n },\r\n\r\n // Generate HTML content\r\n generateHTML: function (args) {\r\n var self = this;\r\n var currentPage = args.currentPage;\r\n var totalPage = self.getTotalPage();\r\n var getPageLinkTag = self.getPageLinkTag;\r\n\r\n var totalNumber = self.getTotalNumber();\r\n\r\n var pageSize = attributes.pageSize;\r\n var showPrevious = attributes.showPrevious;\r\n var showNext = attributes.showNext;\r\n var showPageNumbers = attributes.showPageNumbers;\r\n var showNavigator = attributes.showNavigator;\r\n var showSizeChanger = attributes.showSizeChanger;\r\n var sizeChangerOptions = attributes.sizeChangerOptions;\r\n var showGoInput = attributes.showGoInput;\r\n var showGoButton = attributes.showGoButton;\r\n\r\n var prevText = attributes.prevText;\r\n var nextText = attributes.nextText;\r\n var goButtonText = attributes.goButtonText;\r\n\r\n var classPrefix = attributes.classPrefix;\r\n var disableClassName = attributes.disableClassName || '';\r\n var ulClassName = attributes.ulClassName || '';\r\n var prevClassName = attributes.prevClassName || '';\r\n var nextClassName = attributes.nextClassName || '';\r\n\r\n var html = '';\r\n var sizeSelect = '';\r\n var goButton = '';\r\n var formattedString;\r\n\r\n var formatSizeChanger = typeof attributes.formatSizeChanger === 'function' ? attributes.formatSizeChanger(currentPage, totalPage, totalNumber) : attributes.formatSizeChanger;\r\n var formatNavigator = typeof attributes.formatNavigator === 'function' ? attributes.formatNavigator(currentPage, totalPage, totalNumber) : attributes.formatNavigator;\r\n var formatGoInput = typeof attributes.formatGoInput === 'function' ? attributes.formatGoInput(goInput, currentPage, totalPage, totalNumber) : attributes.formatGoInput;\r\n var formatGoButton = typeof attributes.formatGoButton === 'function' ? attributes.formatGoButton(goButton, currentPage, totalPage, totalNumber) : attributes.formatGoButton;\r\n\r\n var autoHidePrevious = typeof attributes.autoHidePrevious === 'function' ? attributes.autoHidePrevious() : attributes.autoHidePrevious;\r\n var autoHideNext = typeof attributes.autoHideNext === 'function' ? attributes.autoHideNext() : attributes.autoHideNext;\r\n\r\n var header = typeof attributes.header === 'function' ? attributes.header(currentPage, totalPage, totalNumber) : attributes.header;\r\n var footer = typeof attributes.footer === 'function' ? attributes.footer(currentPage, totalPage, totalNumber) : attributes.footer;\r\n\r\n // Prepend extra contents to the pagination buttons\r\n if (header) {\r\n formattedString = self.replaceVariables(header, {\r\n currentPage: currentPage,\r\n totalPage: totalPage,\r\n totalNumber: totalNumber\r\n });\r\n html += formattedString;\r\n }\r\n\r\n // Whether to display navigator\r\n if (showNavigator) {\r\n if (formatNavigator) {\r\n formattedString = self.replaceVariables(formatNavigator, {\r\n currentPage: currentPage,\r\n totalPage: totalPage,\r\n totalNumber: totalNumber,\r\n rangeStart: (currentPage - 1) * pageSize + 1,\r\n rangeEnd: Math.min(currentPage * pageSize, totalNumber)\r\n });\r\n html += '
    ' + formattedString + '
    ';\r\n }\r\n }\r\n\r\n if (showPrevious || showPageNumbers || showNext) {\r\n html += '
    ';\r\n\r\n if (ulClassName) {\r\n html += '
      ';\r\n } else {\r\n html += '
        ';\r\n }\r\n\r\n // Whether to display Previous button\r\n if (showPrevious) {\r\n if (currentPage <= 1) {\r\n if (!autoHidePrevious) {\r\n html += '
      • ' + prevText + '
      • ';\r\n }\r\n } else {\r\n html += '
      • ' + getPageLinkTag(prevText) + '
      • ';\r\n }\r\n }\r\n\r\n // Whether to display page numbers\r\n if (showPageNumbers) {\r\n html += self.generatePageNumbersHTML(args);\r\n }\r\n\r\n // Whether to display Next button\r\n if (showNext) {\r\n if (currentPage >= totalPage) {\r\n if (!autoHideNext) {\r\n html += '
      • ' + nextText + '
      • ';\r\n }\r\n } else {\r\n html += '
      • ' + getPageLinkTag(nextText) + '
      • ';\r\n }\r\n }\r\n html += '
    ';\r\n }\r\n\r\n if (showSizeChanger) {\r\n if (Helpers.isArray(sizeChangerOptions)) {\r\n if (sizeChangerOptions.indexOf(pageSize) === -1) {\r\n sizeChangerOptions.unshift(pageSize);\r\n sizeChangerOptions.sort(function (a, b) { return a - b; });\r\n }\r\n for (var ii = 0; ii < sizeChangerOptions.length; ii++) {\r\n sizeSelect += '';\r\n }\r\n sizeSelect += '';\r\n formattedString = sizeSelect;\r\n\r\n if (formatSizeChanger) {\r\n formattedString = self.replaceVariables(formatSizeChanger, {\r\n length: sizeSelect,\r\n total: totalNumber\r\n });\r\n }\r\n html += '
    ' + formattedString + '
    ';\r\n }\r\n }\r\n\r\n // Whether to display Go input\r\n if (showGoInput) {\r\n if (formatGoInput) {\r\n formattedString = self.replaceVariables(formatGoInput, {\r\n currentPage: currentPage,\r\n totalPage: totalPage,\r\n totalNumber: totalNumber,\r\n input: goInput\r\n });\r\n html += '
    ' + formattedString + '
    ';\r\n }\r\n }\r\n\r\n // Whether to display Go button\r\n if (showGoButton) {\r\n if (formatGoButton) {\r\n formattedString = self.replaceVariables(formatGoButton, {\r\n currentPage: currentPage,\r\n totalPage: totalPage,\r\n totalNumber: totalNumber,\r\n button: goButton\r\n });\r\n html += '
    ' + formattedString + '
    ';\r\n }\r\n }\r\n\r\n // Append extra contents to the pagination buttons\r\n if (footer) {\r\n formattedString = self.replaceVariables(footer, {\r\n currentPage: currentPage,\r\n totalPage: totalPage,\r\n totalNumber: totalNumber\r\n });\r\n html += formattedString;\r\n }\r\n\r\n return html;\r\n },\r\n\r\n // dataSource is a request URL and a 'totalNumberLocator' function specified\r\n // execute it to find out 'totalNumber' from the response\r\n findTotalNumberFromRemoteResponse: function (response) {\r\n var self = this;\r\n self.model.totalNumber = attributes.totalNumberLocator(response);\r\n },\r\n\r\n // Go to the specified page\r\n go: function (number, callback) {\r\n var self = this;\r\n var model = self.model;\r\n\r\n if (self.disabled) return;\r\n\r\n var pageNumber = number;\r\n pageNumber = parseInt(pageNumber);\r\n\r\n if (!pageNumber || pageNumber < 1) return;\r\n\r\n var pageSize = attributes.pageSize;\r\n var totalNumber = self.getTotalNumber();\r\n var totalPage = self.getTotalPage();\r\n\r\n if (totalNumber > 0 && pageNumber > totalPage) return;\r\n\r\n // Pick paging data in synchronous mode\r\n if (!self.isAsync) {\r\n render(self.getPagingData(pageNumber));\r\n return;\r\n }\r\n\r\n var postData = {};\r\n var alias = attributes.alias || {};\r\n var pageSizeName = alias.pageSize ? alias.pageSize : 'pageSize';\r\n var pageNumberName = alias.pageNumber ? alias.pageNumber : 'pageNumber';\r\n postData[pageSizeName] = pageSize;\r\n postData[pageNumberName] = pageNumber;\r\n\r\n var ajaxParams = typeof attributes.ajax === 'function' ? attributes.ajax() : attributes.ajax;\r\n\r\n // If the pageNumber's value starts with 0 via Ajax\r\n if (ajaxParams && ajaxParams.pageNumberStartWithZero) {\r\n postData[pageNumberName] = pageNumber - 1;\r\n }\r\n\r\n var formatAjaxParams = {\r\n type: 'get',\r\n cache: false,\r\n data: {},\r\n contentType: 'application/x-www-form-urlencoded; charset=UTF-8',\r\n dataType: 'json',\r\n async: true\r\n };\r\n\r\n $.extend(true, formatAjaxParams, ajaxParams);\r\n $.extend(formatAjaxParams.data, postData);\r\n\r\n formatAjaxParams.url = attributes.dataSource;\r\n formatAjaxParams.success = function (response) {\r\n try {\r\n self.model.originalResponse = response;\r\n if (self.isDynamicTotalNumber) {\r\n self.findTotalNumberFromRemoteResponse(response);\r\n } else {\r\n self.model.totalNumber = attributes.totalNumber;\r\n }\r\n\r\n var finalData = self.filterDataWithLocator(response);\r\n render(finalData);\r\n } catch (e) {\r\n if (typeof attributes.onError === 'function') {\r\n attributes.onError(e, 'ajaxSuccessHandlerError');\r\n } else {\r\n throw e;\r\n }\r\n }\r\n };\r\n formatAjaxParams.error = function (jqXHR, textStatus, errorThrown) {\r\n attributes.formatAjaxError && attributes.formatAjaxError(jqXHR, textStatus, errorThrown);\r\n self.enable();\r\n };\r\n\r\n self.disable();\r\n\r\n if (attributes.ajaxFunction) {\r\n attributes.ajaxFunction(formatAjaxParams);\r\n } else {\r\n $.ajax(formatAjaxParams);\r\n }\r\n\r\n function render(data) {\r\n if (self.callHook('beforePaging', pageNumber) === false) return false;\r\n\r\n // Pagination direction\r\n model.direction = typeof model.pageNumber === 'undefined' ? 0 : (pageNumber > model.pageNumber ? 1 : -1);\r\n\r\n model.pageNumber = pageNumber;\r\n\r\n self.render();\r\n\r\n if (self.disabled && self.isAsync) {\r\n // enable pagination\r\n self.enable();\r\n }\r\n\r\n // cache model data\r\n container.data('pagination').model = model;\r\n\r\n // format result data before callback invoked\r\n if (attributes.formatResult) {\r\n var cloneData = $.extend(true, [], data);\r\n if (!Helpers.isArray(data = attributes.formatResult(cloneData))) {\r\n data = cloneData;\r\n }\r\n }\r\n\r\n container.data('pagination').currentPageData = data;\r\n\r\n self.doCallback(data, callback);\r\n\r\n self.callHook('afterPaging', pageNumber);\r\n\r\n if (pageNumber == 1) {\r\n self.callHook('afterIsFirstPage');\r\n } else if (pageNumber == self.getTotalPage()) {\r\n self.callHook('afterIsLastPage');\r\n }\r\n }\r\n },\r\n\r\n doCallback: function (data, customCallback) {\r\n var self = this;\r\n var model = self.model;\r\n\r\n if (typeof customCallback === 'function') {\r\n customCallback(data, model);\r\n } else if (typeof attributes.callback === 'function') {\r\n attributes.callback(data, model);\r\n }\r\n },\r\n\r\n destroy: function () {\r\n if (this.callHook('beforeDestroy') === false) return;\r\n\r\n this.model.el.remove();\r\n container.off();\r\n\r\n // Remove style element\r\n $('#paginationjs-style').remove();\r\n\r\n this.callHook('afterDestroy');\r\n },\r\n\r\n previous: function (callback) {\r\n this.go(this.model.pageNumber - 1, callback);\r\n },\r\n\r\n next: function (callback) {\r\n this.go(this.model.pageNumber + 1, callback);\r\n },\r\n\r\n disable: function () {\r\n var self = this;\r\n var source = self.isAsync ? 'async' : 'sync';\r\n\r\n if (self.callHook('beforeDisable', source) === false) return;\r\n\r\n self.disabled = true;\r\n self.model.disabled = true;\r\n\r\n self.callHook('afterDisable', source);\r\n },\r\n\r\n enable: function () {\r\n var self = this;\r\n var source = self.isAsync ? 'async' : 'sync';\r\n\r\n if (self.callHook('beforeEnable', source) === false) return;\r\n\r\n self.disabled = false;\r\n self.model.disabled = false;\r\n\r\n self.callHook('afterEnable', source);\r\n },\r\n\r\n refresh: function (callback) {\r\n this.go(this.model.pageNumber, callback);\r\n },\r\n\r\n show: function () {\r\n var self = this;\r\n\r\n if (self.model.el.is(':visible')) return;\r\n\r\n self.model.el.show();\r\n },\r\n\r\n hide: function () {\r\n var self = this;\r\n\r\n if (!self.model.el.is(':visible')) return;\r\n\r\n self.model.el.hide();\r\n },\r\n\r\n // Replace variables for template string\r\n replaceVariables: function (template, variables) {\r\n var formattedString;\r\n\r\n for (var key in variables) {\r\n var value = variables[key];\r\n var regexp = new RegExp('<%=\\\\s*' + key + '\\\\s*%>', 'img');\r\n\r\n formattedString = (formattedString || template).replace(regexp, value);\r\n }\r\n\r\n return formattedString;\r\n },\r\n\r\n getPagingData: function (number) {\r\n var pageSize = attributes.pageSize;\r\n var dataSource = attributes.dataSource;\r\n var totalNumber = this.getTotalNumber();\r\n\r\n var start = pageSize * (number - 1) + 1;\r\n var end = Math.min(number * pageSize, totalNumber);\r\n\r\n return dataSource.slice(start - 1, end);\r\n },\r\n\r\n getTotalNumber: function () {\r\n return this.model.totalNumber || attributes.totalNumber || 0;\r\n },\r\n\r\n getTotalPage: function () {\r\n return Math.ceil(this.getTotalNumber() / attributes.pageSize);\r\n },\r\n\r\n getLocator: function (locator) {\r\n var result;\r\n\r\n if (typeof locator === 'string') {\r\n result = locator;\r\n } else if (typeof locator === 'function') {\r\n result = locator();\r\n } else {\r\n throwError('\"locator\" is incorrect. Expect string or function type.');\r\n }\r\n\r\n return result;\r\n },\r\n\r\n // Filter data with \"locator\"\r\n filterDataWithLocator: function (dataSource) {\r\n var locator = this.getLocator(attributes.locator);\r\n var filteredData;\r\n\r\n // Datasource is an Object, use \"locator\" to locate available data\r\n if (Helpers.isObject(dataSource)) {\r\n try {\r\n $.each(locator.split('.'), function (index, item) {\r\n filteredData = (filteredData ? filteredData : dataSource)[item];\r\n });\r\n }\r\n catch (e) {\r\n // ignore\r\n }\r\n\r\n if (!filteredData) {\r\n throwError('dataSource.' + locator + ' is undefined.');\r\n } else if (!Helpers.isArray(filteredData)) {\r\n throwError('dataSource.' + locator + ' should be an Array.');\r\n }\r\n }\r\n\r\n return filteredData || dataSource;\r\n },\r\n\r\n parseDataSource: function (dataSource, callback) {\r\n var self = this;\r\n\r\n if (Helpers.isObject(dataSource)) {\r\n callback(attributes.dataSource = self.filterDataWithLocator(dataSource));\r\n } else if (Helpers.isArray(dataSource)) {\r\n callback(attributes.dataSource = dataSource);\r\n } else if (typeof dataSource === 'function') {\r\n attributes.dataSource(function (data) {\r\n if (!Helpers.isArray(data)) {\r\n throwError('The parameter of \"done\" Function should be an Array.');\r\n }\r\n self.parseDataSource.call(self, data, callback);\r\n });\r\n } else if (typeof dataSource === 'string') {\r\n if (/^https?|file:/.test(dataSource)) {\r\n attributes.ajaxDataType = 'jsonp';\r\n }\r\n callback(dataSource);\r\n } else {\r\n throwError('Unexpected dataSource type');\r\n }\r\n },\r\n\r\n callHook: function (hook) {\r\n var paginationData = container.data('pagination') || {};\r\n var result;\r\n\r\n var args = Array.prototype.slice.apply(arguments);\r\n args.shift();\r\n\r\n if (attributes[hook] && typeof attributes[hook] === 'function') {\r\n if (attributes[hook].apply(global, args) === false) {\r\n result = false;\r\n }\r\n }\r\n\r\n if (paginationData.hooks && paginationData.hooks[hook]) {\r\n $.each(paginationData.hooks[hook], function (index, item) {\r\n if (item.apply(global, args) === false) {\r\n result = false;\r\n }\r\n });\r\n }\r\n\r\n return result !== false;\r\n },\r\n\r\n observer: function () {\r\n var self = this;\r\n var el = self.model.el;\r\n\r\n // Go to specified page number\r\n container.on(eventPrefix + 'go', function (event, pageNumber, done) {\r\n if (typeof pageNumber === 'string') {\r\n pageNumber = parseInt(pageNumber.trim());\r\n }\r\n\r\n if (!pageNumber) return;\r\n\r\n if (typeof pageNumber !== 'number') {\r\n throwError('\"pageNumber\" is incorrect. (Number)');\r\n }\r\n\r\n self.go(pageNumber, done);\r\n });\r\n\r\n // Page number button click listener\r\n el.on('click', '.J-paginationjs-page', function (event) {\r\n var current = $(event.currentTarget);\r\n var pageNumber = current.attr('data-num').trim();\r\n\r\n if (!pageNumber || current.hasClass(attributes.disableClassName) || current.hasClass(attributes.activeClassName)) return;\r\n\r\n if (self.callHook('beforePageOnClick', event, pageNumber) === false) return false;\r\n\r\n self.go(pageNumber);\r\n\r\n self.callHook('afterPageOnClick', event, pageNumber);\r\n\r\n if (!attributes.pageLink) return false;\r\n });\r\n\r\n // Previous button click listener\r\n el.on('click', '.J-paginationjs-previous', function (event) {\r\n var current = $(event.currentTarget);\r\n var pageNumber = current.attr('data-num').trim();\r\n\r\n if (!pageNumber || current.hasClass(attributes.disableClassName)) return;\r\n\r\n if (self.callHook('beforePreviousOnClick', event, pageNumber) === false) return false;\r\n\r\n self.go(pageNumber);\r\n\r\n self.callHook('afterPreviousOnClick', event, pageNumber);\r\n\r\n if (!attributes.pageLink) return false;\r\n });\r\n\r\n // Next button click listener\r\n el.on('click', '.J-paginationjs-next', function (event) {\r\n var current = $(event.currentTarget);\r\n var pageNumber = current.attr('data-num').trim();\r\n\r\n if (!pageNumber || current.hasClass(attributes.disableClassName)) return;\r\n\r\n if (self.callHook('beforeNextOnClick', event, pageNumber) === false) return false;\r\n\r\n self.go(pageNumber);\r\n\r\n self.callHook('afterNextOnClick', event, pageNumber);\r\n\r\n if (!attributes.pageLink) return false;\r\n });\r\n\r\n // Go button click listener\r\n el.on('click', '.J-paginationjs-go-button', function (event) {\r\n var pageNumber = $('.J-paginationjs-go-pagenumber', el).val();\r\n\r\n if (self.callHook('beforeGoButtonOnClick', event, pageNumber) === false) return false;\r\n\r\n container.trigger(eventPrefix + 'go', pageNumber);\r\n\r\n self.callHook('afterGoButtonOnClick', event, pageNumber);\r\n });\r\n\r\n // go input enter keyup listener\r\n el.on('keyup', '.J-paginationjs-go-pagenumber', function (event) {\r\n if (event.which === 13) {\r\n var pageNumber = $(event.currentTarget).val();\r\n\r\n if (self.callHook('beforeGoInputOnEnter', event, pageNumber) === false) return false;\r\n\r\n container.trigger(eventPrefix + 'go', pageNumber);\r\n\r\n // Maintain the cursor\r\n $('.J-paginationjs-go-pagenumber', el).focus();\r\n\r\n self.callHook('afterGoInputOnEnter', event, pageNumber);\r\n }\r\n });\r\n\r\n el.on('change', '.J-paginationjs-size-select', function (event) {\r\n var current = $(event.currentTarget);\r\n var size = parseInt(current.val());\r\n var currentPage = self.model.pageNumber || attributes.pageNumber;\r\n\r\n if (typeof size !== 'number') return;\r\n\r\n if (self.callHook('beforeSizeSelectorChange', event, size) === false) return false;\r\n\r\n attributes.pageSize = size;\r\n self.model.pageSize = size;\r\n self.model.totalPage = self.getTotalPage();\r\n if (currentPage > self.model.totalPage) {\r\n currentPage = self.model.totalPage;\r\n }\r\n self.go(currentPage);\r\n\r\n self.callHook('afterSizeSelectorChange', event, size);\r\n\r\n if (!attributes.pageLink) return false;\r\n });\r\n\r\n // Previous page\r\n container.on(eventPrefix + 'previous', function (event, done) {\r\n self.previous(done);\r\n });\r\n\r\n // Next page\r\n container.on(eventPrefix + 'next', function (event, done) {\r\n self.next(done);\r\n });\r\n\r\n // Disable\r\n container.on(eventPrefix + 'disable', function () {\r\n self.disable();\r\n });\r\n\r\n // Enable\r\n container.on(eventPrefix + 'enable', function () {\r\n self.enable();\r\n });\r\n\r\n // Refresh\r\n container.on(eventPrefix + 'refresh', function (event, done) {\r\n self.refresh(done);\r\n });\r\n\r\n // Show\r\n container.on(eventPrefix + 'show', function () {\r\n self.show();\r\n });\r\n\r\n // Hide\r\n container.on(eventPrefix + 'hide', function () {\r\n self.hide();\r\n });\r\n\r\n // Destroy\r\n container.on(eventPrefix + 'destroy', function () {\r\n self.destroy();\r\n });\r\n\r\n // Whether to load the default page\r\n var validTotalPage = Math.max(self.getTotalPage(), 1)\r\n var defaultPageNumber = attributes.pageNumber;\r\n\r\n // Default pageNumber should be 1 when totalNumber is dynamic\r\n if (self.isDynamicTotalNumber) {\r\n if (attributes.resetPageNumberOnInit) defaultPageNumber = 1;\r\n }\r\n\r\n if (attributes.triggerPagingOnInit) {\r\n container.trigger(eventPrefix + 'go', Math.min(defaultPageNumber, validTotalPage));\r\n }\r\n }\r\n };\r\n\r\n // Pagination has been initialized\r\n if (container.data('pagination') && container.data('pagination').initialized === true) {\r\n // Handle events\r\n if (isNumeric(options)) {\r\n // eg: container.pagination(5)\r\n container.trigger.call(this, eventPrefix + 'go', options, arguments[1]);\r\n return this;\r\n } else if (typeof options === 'string') {\r\n var args = Array.prototype.slice.apply(arguments);\r\n args[0] = eventPrefix + args[0];\r\n\r\n switch (options) {\r\n case 'previous':\r\n case 'next':\r\n case 'go':\r\n case 'disable':\r\n case 'enable':\r\n case 'refresh':\r\n case 'show':\r\n case 'hide':\r\n case 'destroy':\r\n container.trigger.apply(this, args);\r\n break;\r\n case 'getSelectedPageNum':\r\n case 'getCurrentPageNum':\r\n if (container.data('pagination').model) {\r\n return container.data('pagination').model.pageNumber;\r\n } else {\r\n return container.data('pagination').attributes.pageNumber;\r\n }\r\n case 'getTotalPage':\r\n return Math.ceil(container.data('pagination').model.totalNumber / container.data('pagination').model.pageSize);\r\n case 'getSelectedPageData':\r\n case 'getCurrentPageData':\r\n return container.data('pagination').currentPageData;\r\n // Whether pagination has been disabled\r\n case 'isDisabled':\r\n return container.data('pagination').model.disabled === true;\r\n default:\r\n throwError('Unknown action: ' + options);\r\n }\r\n return this;\r\n } else {\r\n // Uninstall the old instance before initializing a new one\r\n uninstallPlugin(container);\r\n }\r\n } else {\r\n if (!Helpers.isObject(options)) throwError('Illegal options');\r\n }\r\n\r\n // Check parameters\r\n parameterChecker(attributes);\r\n\r\n pagination.initialize();\r\n\r\n return this;\r\n };\r\n\r\n // Instance defaults\r\n $.fn[pluginName].defaults = {\r\n\r\n // Data source\r\n // Array | String | Function | Object\r\n //dataSource: '',\r\n\r\n // String | Function\r\n //locator: 'data',\r\n\r\n // Function\r\n //totalNumberLocator: function() {},\r\n\r\n // Total number of data items\r\n totalNumber: 0,\r\n\r\n // Default page number\r\n pageNumber: 1,\r\n\r\n // Number of data items per page\r\n pageSize: 10,\r\n\r\n // Page range (pages around current page)\r\n pageRange: 2,\r\n\r\n // Whether to display the 'Previous' button\r\n showPrevious: true,\r\n\r\n // Whether to display the 'Next' button\r\n showNext: true,\r\n\r\n // Whether to display the page buttons\r\n showPageNumbers: true,\r\n\r\n showNavigator: false,\r\n\r\n // Whether to display the 'Go' input\r\n showGoInput: false,\r\n\r\n // Whether to display the 'Go' button\r\n showGoButton: false,\r\n\r\n showSizeChanger: false,\r\n\r\n sizeChangerOptions: [10, 20, 50, 100],\r\n\r\n // Page link\r\n pageLink: '',\r\n\r\n // 'Previous' text\r\n prevText: '‹',\r\n\r\n // 'Next' text\r\n nextText: '›',\r\n\r\n // Ellipsis text\r\n ellipsisText: '...',\r\n\r\n // 'Go' button text\r\n goButtonText: 'Go',\r\n\r\n // Additional class name(s) for the Pagination container\r\n //className: '',\r\n\r\n classPrefix: 'paginationjs',\r\n\r\n activeClassName: 'active',\r\n\r\n // class name when disabled\r\n disableClassName: 'disabled',\r\n\r\n //ulClassName: '',\r\n\r\n //pageClassName: '',\r\n\r\n //prevClassName: '',\r\n\r\n //nextClassName: '',\r\n\r\n formatNavigator: 'Total <%= totalNumber %> items',\r\n\r\n formatGoInput: '<%= input %>',\r\n\r\n formatGoButton: '<%= button %>',\r\n\r\n // position in the container\r\n position: 'bottom',\r\n\r\n // Auto hide previous button when current page is the first\r\n autoHidePrevious: false,\r\n\r\n // Auto hide next button when current page is the last\r\n autoHideNext: false,\r\n\r\n //header: '',\r\n\r\n //footer: '',\r\n\r\n //alias: {},\r\n\r\n // Whether to trigger pagination at initialization\r\n triggerPagingOnInit: true,\r\n\r\n // Whether to reset page number at initialization, it works only if dataSource is a URL and totalNumberLocator is specified\r\n resetPageNumberOnInit: true,\r\n\r\n // Whether to hide pagination when less than one page\r\n hideOnlyOnePage: false,\r\n\r\n hideFirstOnEllipsisShow: false,\r\n\r\n hideLastOnEllipsisShow: false,\r\n\r\n // Customize item's innerHTML\r\n callback: function () { }\r\n };\r\n\r\n // Hook register\r\n $.fn[pluginHookMethod] = function (hook, callback) {\r\n if (arguments.length < 2) {\r\n throwError('Expect 2 arguments at least.');\r\n }\r\n\r\n if (typeof callback !== 'function') {\r\n throwError('callback should be a function.');\r\n }\r\n\r\n var container = $(this);\r\n var paginationData = container.data('pagination');\r\n\r\n if (!paginationData) {\r\n container.data('pagination', {});\r\n paginationData = container.data('pagination');\r\n }\r\n\r\n !paginationData.hooks && (paginationData.hooks = {});\r\n\r\n //paginationData.hooks[hook] = callback;\r\n paginationData.hooks[hook] = paginationData.hooks[hook] || [];\r\n paginationData.hooks[hook].push(callback);\r\n\r\n };\r\n\r\n // Static method\r\n $[pluginName] = function (selector, options) {\r\n if (arguments.length < 2) {\r\n throwError('Requires two parameters.');\r\n }\r\n\r\n var container;\r\n\r\n // 'selector' is a jQuery object\r\n if (typeof selector !== 'string' && selector instanceof jQuery) {\r\n container = selector;\r\n } else {\r\n container = $(selector);\r\n }\r\n\r\n if (!container.length) return;\r\n\r\n container.pagination(options);\r\n\r\n return container;\r\n };\r\n\r\n // ============================================================\r\n // helpers\r\n // ============================================================\r\n\r\n var Helpers = {};\r\n\r\n // Throw error\r\n function throwError(content) {\r\n throw new Error('Pagination: ' + content);\r\n }\r\n\r\n // Check parameters\r\n function parameterChecker(args) {\r\n if (!args.dataSource) {\r\n throwError('\"dataSource\" is required.');\r\n }\r\n\r\n if (typeof args.dataSource === 'string') {\r\n if (args.totalNumberLocator === undefined) {\r\n if (args.totalNumber === undefined) {\r\n throwError('\"totalNumber\" is required.');\r\n } else if (!isNumeric(args.totalNumber)) {\r\n throwError('\"totalNumber\" is incorrect. Expect numberic type');\r\n }\r\n } else {\r\n if (typeof args.totalNumberLocator !== 'function') {\r\n throwError('\"totalNumberLocator\" should be a Function.');\r\n }\r\n }\r\n } else if (Helpers.isObject(args.dataSource)) {\r\n if (typeof args.locator === 'undefined') {\r\n throwError('\"dataSource\" is an Object, please specify a \"locator\".');\r\n } else if (typeof args.locator !== 'string' && typeof args.locator !== 'function') {\r\n throwError('' + args.locator + ' is incorrect. Expect string or function type');\r\n }\r\n }\r\n\r\n if (args.formatResult !== undefined && typeof args.formatResult !== 'function') {\r\n throwError('\"formatResult\" should be a Function.');\r\n }\r\n\r\n if (args.onError !== undefined && typeof args.onError !== 'function') {\r\n throwError('\"onError\" should be a Function.');\r\n }\r\n }\r\n\r\n // uninstall plugin\r\n function uninstallPlugin(target) {\r\n var events = ['go', 'previous', 'next', 'disable', 'enable', 'refresh', 'show', 'hide', 'destroy'];\r\n\r\n // off all events\r\n $.each(events, function (index, value) {\r\n target.off(eventPrefix + value);\r\n });\r\n\r\n // reset pagination data\r\n target.data('pagination', {});\r\n\r\n // remove pagination element\r\n $('.paginationjs', target).remove();\r\n }\r\n\r\n // Object type detection\r\n function getObjectType(object, tmp) {\r\n return ((tmp = typeof (object)) == \"object\" ? object == null && \"null\" || Object.prototype.toString.call(object).slice(8, -1) : tmp).toLowerCase();\r\n }\r\n\r\n function isNumeric(n) {\r\n return !isNaN(parseFloat(n)) && isFinite(n);\r\n }\r\n\r\n $.each(['Object', 'Array', 'String'], function (index, name) {\r\n Helpers['is' + name] = function (object) {\r\n return getObjectType(object) === name.toLowerCase();\r\n };\r\n });\r\n\r\n /*\r\n * export via AMD or CommonJS\r\n * */\r\n if (typeof define === 'function' && define.amd) {\r\n define(function () {\r\n return $;\r\n });\r\n }\r\n\r\n})(this, window.jQuery);\nfunction SetScrollTableShadowStyle(obj) {\r\n\r\n var wrapper = obj;\r\n var scrollLeft = wrapper.scrollLeft;\r\n\r\n if ($('html').attr(\"dir\") == \"rtl\" && scrollLeft != 0) {\r\n scrollLeft = -scrollLeft + 1;\r\n }\r\n\r\n if (scrollLeft + wrapper.offsetWidth < wrapper.scrollWidth) {\r\n wrapper.parentElement.classList.add('shadow-right');\r\n } else {\r\n wrapper.parentElement.classList.remove('shadow-right');\r\n }\r\n\r\n if (scrollLeft > 0) {\r\n wrapper.parentElement.classList.add('shadow-left');\r\n $('.spreads-table.clone .fixed-column').addClass('shadow-left');\r\n $('.broker-spread-table.clone .fixed-column').addClass('shadow-left');\r\n } else {\r\n wrapper.parentElement.classList.remove('shadow-left');\r\n $('.spreads-table.clone .fixed-column').removeClass('shadow-left');\r\n $('.broker-spread-table.clone .fixed-column').removeClass('shadow-left');\r\n }\r\n}\r\nfunction checkOverflow(elem) {\r\n const elemWidth = elem.getBoundingClientRect().width\r\n const parentWidth = elem.parentElement.getBoundingClientRect().width\r\n\r\n return elemWidth > parentWidth\r\n}\r\nfunction InitializeScrollTable(selectQuery) {\r\n \r\n $(selectQuery).each(function (index, elem) {\r\n if (!elem.parentElement.classList.contains(\"tablescroll-wrap\")) {\r\n $(elem).wrap('
    ').wrap('
    ');\r\n }\r\n })\r\n\r\n $(\".tablescroll-wrap\").scroll(function (e) {\r\n SetScrollTableShadowStyle(this);\r\n var that = this;\r\n if ($('.fixed-header')) {\r\n $('.scroll-fixed-header').scrollLeft(that.scrollLeft);\r\n }\r\n });\r\n $(\".tablescroll-wrap\").trigger('scroll');\r\n $(\".tablescroll-wrap\").mousedown(function (e) {\r\n var prev = { x: e.clientX, y: e.clientY };\r\n this.style.userSelect = 'none';\r\n var that = this;\r\n function mouseMoveHandler(me) {\r\n var delta = prev.x - me.clientX;\r\n prev.x = me.clientX;\r\n\r\n that.scrollLeft += delta;\r\n $(that).trigger('scroll');\r\n if ($('.fixed-header')) {\r\n var scLeft = $('.scroll-fixed-header').scrollLeft();\r\n $('.scroll-fixed-header').scrollLeft(scLeft + delta)\r\n }\r\n \r\n\r\n }\r\n function mouseUpHandler(me) {\r\n $(document).off('mousemove', mouseMoveHandler);\r\n $(document).off('mouseup', mouseUpHandler);\r\n that.style.userSelect = 'initial';\r\n }\r\n\r\n $(document).mousemove(mouseMoveHandler);\r\n $(document).mouseup(mouseUpHandler);\r\n })\r\n $(\".tablescroll-wrap\").on('touchstart', function (e) {\r\n var touch = e.originalEvent.touches[0] || e.originalEvent.changedTouches[0];\r\n var prev = { x: touch.pageX, y: touch.pageY };\r\n var that = this;\r\n function touchMoveHandler(me) {\r\n var mytouch = me.originalEvent.touches[0] || me.originalEvent.changedTouches[0];\r\n var delta = prev.x - mytouch.pageX;\r\n prev.x = mytouch.pageX;\r\n that.scrollLeft += delta;\r\n $(that).trigger('scroll');\r\n if ($('.fixed-header')) {\r\n var scLeft = $('.scroll-fixed-header').scrollLeft();\r\n $('.scroll-fixed-header').scrollLeft(scLeft + delta);\r\n }\r\n\r\n\r\n }\r\n function touchUpHandler(me) {\r\n $(document).off('touchmove', touchMoveHandler);\r\n $(document).off('touchend', touchUpHandler);\r\n }\r\n\r\n $(document).on('touchmove', touchMoveHandler);\r\n $(document).on('touchend', touchUpHandler);\r\n })\r\n}\n/*\r\n * Toastr\r\n * Copyright 2012-2015\r\n * Authors: John Papa, Hans FjÀllemark, and Tim Ferrell.\r\n * All Rights Reserved.\r\n * Use, reproduction, distribution, and modification of this code is subject to the terms and\r\n * conditions of the MIT license, available at http://www.opensource.org/licenses/mit-license.php\r\n *\r\n * ARIA Support: Greta Krafsig\r\n *\r\n * Project: https://github.com/CodeSeven/toastr\r\n */\r\n/* global define */\r\n; (function (define) {\r\n define(['jquery'], function ($) {\r\n return (function () {\r\n var $container;\r\n var listener;\r\n var toastId = 0;\r\n var toastType = {\r\n error: 'error',\r\n info: 'info',\r\n success: 'success',\r\n warning: 'warning'\r\n };\r\n\r\n var toastr = {\r\n clear: clear,\r\n remove: remove,\r\n error: error,\r\n getContainer: getContainer,\r\n info: info,\r\n options: {},\r\n subscribe: subscribe,\r\n success: success,\r\n version: '2.1.1',\r\n warning: warning\r\n };\r\n\r\n var previousToast;\r\n\r\n return toastr;\r\n\r\n ////////////////\r\n\r\n function error(message, title, optionsOverride) {\r\n return notify({\r\n type: toastType.error,\r\n iconClass: getOptions().iconClasses.error,\r\n message: message,\r\n optionsOverride: optionsOverride,\r\n title: title\r\n });\r\n }\r\n\r\n function getContainer(options, create) {\r\n if (!options) { options = getOptions(); }\r\n $container = $('#' + options.containerId);\r\n if ($container.length) {\r\n return $container;\r\n }\r\n if (create) {\r\n $container = createContainer(options);\r\n }\r\n return $container;\r\n }\r\n\r\n function info(message, title, optionsOverride) {\r\n return notify({\r\n type: toastType.info,\r\n iconClass: getOptions().iconClasses.info,\r\n message: message,\r\n optionsOverride: optionsOverride,\r\n title: title\r\n });\r\n }\r\n\r\n function subscribe(callback) {\r\n listener = callback;\r\n }\r\n\r\n function success(message, title, optionsOverride) {\r\n return notify({\r\n type: toastType.success,\r\n iconClass: getOptions().iconClasses.success,\r\n message: message,\r\n optionsOverride: optionsOverride,\r\n title: title\r\n });\r\n }\r\n\r\n function warning(message, title, optionsOverride) {\r\n return notify({\r\n type: toastType.warning,\r\n iconClass: getOptions().iconClasses.warning,\r\n message: message,\r\n optionsOverride: optionsOverride,\r\n title: title\r\n });\r\n }\r\n\r\n function clear($toastElement, clearOptions) {\r\n var options = getOptions();\r\n if (!$container) { getContainer(options); }\r\n if (!clearToast($toastElement, options, clearOptions)) {\r\n clearContainer(options);\r\n }\r\n }\r\n\r\n function remove($toastElement) {\r\n var options = getOptions();\r\n if (!$container) { getContainer(options); }\r\n if ($toastElement && $(':focus', $toastElement).length === 0) {\r\n removeToast($toastElement);\r\n return;\r\n }\r\n if ($container.children().length) {\r\n $container.remove();\r\n }\r\n }\r\n\r\n // internal functions\r\n\r\n function clearContainer (options) {\r\n var toastsToClear = $container.children();\r\n for (var i = toastsToClear.length - 1; i >= 0; i--) {\r\n clearToast($(toastsToClear[i]), options);\r\n }\r\n }\r\n\r\n function clearToast ($toastElement, options, clearOptions) {\r\n var force = clearOptions && clearOptions.force ? clearOptions.force : false;\r\n if ($toastElement && (force || $(':focus', $toastElement).length === 0)) {\r\n $toastElement[options.hideMethod]({\r\n duration: options.hideDuration,\r\n easing: options.hideEasing,\r\n complete: function () { removeToast($toastElement); }\r\n });\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n function createContainer(options) {\r\n $container = $('
    ')\r\n .attr('id', options.containerId)\r\n .addClass(options.positionClass)\r\n .attr('aria-live', 'polite')\r\n .attr('role', 'alert');\r\n\r\n $container.appendTo($(options.target));\r\n return $container;\r\n }\r\n\r\n function getDefaults() {\r\n return {\r\n tapToDismiss: true,\r\n toastClass: 'toast',\r\n containerId: 'toast-container',\r\n debug: false,\r\n\r\n showMethod: 'fadeIn', //fadeIn, slideDown, and show are built into jQuery\r\n showDuration: 300,\r\n showEasing: 'swing', //swing and linear are built into jQuery\r\n onShown: undefined,\r\n hideMethod: 'fadeOut',\r\n hideDuration: 1000,\r\n hideEasing: 'swing',\r\n onHidden: undefined,\r\n\r\n extendedTimeOut: 1000,\r\n iconClasses: {\r\n error: 'toast-error',\r\n info: 'toast-info',\r\n success: 'toast-success',\r\n warning: 'toast-warning'\r\n },\r\n iconClass: 'toast-info',\r\n positionClass: 'toast-top-right',\r\n timeOut: 5000, // Set timeOut and extendedTimeOut to 0 to make it sticky\r\n titleClass: 'toast-title',\r\n messageClass: 'toast-message',\r\n target: 'body',\r\n closeHtml: '',\r\n newestOnTop: true,\r\n preventDuplicates: false,\r\n progressBar: false\r\n };\r\n }\r\n\r\n function publish(args) {\r\n if (!listener) { return; }\r\n listener(args);\r\n }\r\n\r\n function notify(map) {\r\n var options = getOptions();\r\n var iconClass = map.iconClass || options.iconClass;\r\n\r\n if (typeof (map.optionsOverride) !== 'undefined') {\r\n options = $.extend(options, map.optionsOverride);\r\n iconClass = map.optionsOverride.iconClass || iconClass;\r\n }\r\n\r\n if (shouldExit(options, map)) { return; }\r\n\r\n toastId++;\r\n\r\n $container = getContainer(options, true);\r\n\r\n var intervalId = null;\r\n var $toastElement = $('
    ');\r\n var $titleElement = $('
    ');\r\n var $messageElement = $('
    ');\r\n var $progressElement = $('
    ');\r\n var $closeElement = $(options.closeHtml);\r\n var progressBar = {\r\n intervalId: null,\r\n hideEta: null,\r\n maxHideTime: null\r\n };\r\n var response = {\r\n toastId: toastId,\r\n state: 'visible',\r\n startTime: new Date(),\r\n options: options,\r\n map: map\r\n };\r\n\r\n personalizeToast();\r\n\r\n displayToast();\r\n\r\n handleEvents();\r\n\r\n publish(response);\r\n\r\n if (options.debug && console) {\r\n console.log(response);\r\n }\r\n\r\n return $toastElement;\r\n\r\n function personalizeToast() {\r\n setIcon();\r\n setTitle();\r\n setMessage();\r\n setCloseButton();\r\n setProgressBar();\r\n setSequence();\r\n }\r\n\r\n function handleEvents() {\r\n $toastElement.hover(stickAround, delayedHideToast);\r\n if (!options.onclick && options.tapToDismiss) {\r\n $toastElement.click(hideToast);\r\n }\r\n\r\n if (options.closeButton && $closeElement) {\r\n $closeElement.click(function (event) {\r\n if (event.stopPropagation) {\r\n event.stopPropagation();\r\n } else if (event.cancelBubble !== undefined && event.cancelBubble !== true) {\r\n event.cancelBubble = true;\r\n }\r\n hideToast(true);\r\n });\r\n }\r\n\r\n if (options.onclick) {\r\n $toastElement.click(function () {\r\n options.onclick();\r\n hideToast();\r\n });\r\n }\r\n }\r\n\r\n function displayToast() {\r\n $toastElement.hide();\r\n\r\n $toastElement[options.showMethod](\r\n {duration: options.showDuration, easing: options.showEasing, complete: options.onShown}\r\n );\r\n\r\n if (options.timeOut > 0) {\r\n intervalId = setTimeout(hideToast, options.timeOut);\r\n progressBar.maxHideTime = parseFloat(options.timeOut);\r\n progressBar.hideEta = new Date().getTime() + progressBar.maxHideTime;\r\n if (options.progressBar) {\r\n progressBar.intervalId = setInterval(updateProgress, 10);\r\n }\r\n }\r\n }\r\n\r\n function setIcon() {\r\n if (map.iconClass) {\r\n $toastElement.addClass(options.toastClass).addClass(iconClass);\r\n }\r\n }\r\n\r\n function setSequence() {\r\n if (options.newestOnTop) {\r\n $container.prepend($toastElement);\r\n } else {\r\n $container.append($toastElement);\r\n }\r\n }\r\n\r\n function setTitle() {\r\n if (map.title) {\r\n $titleElement.append(map.title).addClass(options.titleClass);\r\n $toastElement.append($titleElement);\r\n }\r\n }\r\n\r\n function setMessage() {\r\n if (map.message) {\r\n $messageElement.append(map.message).addClass(options.messageClass);\r\n $toastElement.append($messageElement);\r\n }\r\n }\r\n\r\n function setCloseButton() {\r\n if (options.closeButton) {\r\n $closeElement.addClass('toast-close-button').attr('role', 'button');\r\n $toastElement.prepend($closeElement);\r\n }\r\n }\r\n\r\n function setProgressBar() {\r\n if (options.progressBar) {\r\n $progressElement.addClass('toast-progress');\r\n $toastElement.prepend($progressElement);\r\n }\r\n }\r\n\r\n function shouldExit(options, map) {\r\n if (options.preventDuplicates) {\r\n if (map.message === previousToast) {\r\n return true;\r\n } else {\r\n previousToast = map.message;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n function hideToast(override) {\r\n if ($(':focus', $toastElement).length && !override) {\r\n return;\r\n }\r\n clearTimeout(progressBar.intervalId);\r\n return $toastElement[options.hideMethod]({\r\n duration: options.hideDuration,\r\n easing: options.hideEasing,\r\n complete: function () {\r\n removeToast($toastElement);\r\n if (options.onHidden && response.state !== 'hidden') {\r\n options.onHidden();\r\n }\r\n response.state = 'hidden';\r\n response.endTime = new Date();\r\n publish(response);\r\n }\r\n });\r\n }\r\n\r\n function delayedHideToast() {\r\n if (options.timeOut > 0 || options.extendedTimeOut > 0) {\r\n intervalId = setTimeout(hideToast, options.extendedTimeOut);\r\n progressBar.maxHideTime = parseFloat(options.extendedTimeOut);\r\n progressBar.hideEta = new Date().getTime() + progressBar.maxHideTime;\r\n }\r\n }\r\n\r\n function stickAround() {\r\n clearTimeout(intervalId);\r\n progressBar.hideEta = 0;\r\n $toastElement.stop(true, true)[options.showMethod](\r\n {duration: options.showDuration, easing: options.showEasing}\r\n );\r\n }\r\n\r\n function updateProgress() {\r\n var percentage = ((progressBar.hideEta - (new Date().getTime())) / progressBar.maxHideTime) * 100;\r\n $progressElement.width(percentage + '%');\r\n }\r\n }\r\n\r\n function getOptions() {\r\n return $.extend({}, getDefaults(), toastr.options);\r\n }\r\n\r\n function removeToast($toastElement) {\r\n if (!$container) { $container = getContainer(); }\r\n if ($toastElement.is(':visible')) {\r\n return;\r\n }\r\n $toastElement.remove();\r\n $toastElement = null;\r\n if ($container.children().length === 0) {\r\n $container.remove();\r\n previousToast = undefined;\r\n }\r\n }\r\n\r\n })();\r\n });\r\n}(typeof define === 'function' && define.amd ? define : function (deps, factory) {\r\n if (typeof module !== 'undefined' && module.exports) { //Node\r\n module.exports = factory(require('jquery'));\r\n } else {\r\n window['toastr'] = factory(window['jQuery']);\r\n }\r\n}));\r\n"]}