{"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","_typeof","Symbol","iterator","constructor","prototype","_classCallCheck","instance","Constructor","TypeError","_defineProperties","target","props","descriptor","enumerable","configurable","writable","Object","defineProperty","_toPropertyKey","key","_createClass","protoProps","staticProps","arg","_toPrimitive","String","input","hint","prim","toPrimitive","undefined","res","Number","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","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","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","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","test","len","arr2","_i","_s","_e","_x","_r","_arr","_n","_d","next","done","err","_taggedTemplateLiteral","strings","raw","freeze","defineProperties","_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 _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, _toPropertyKey(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; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\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 $.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 _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, _toPropertyKey(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; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\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 _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, _toPropertyKey(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; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\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 _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, _toPropertyKey(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; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\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 _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, _toPropertyKey(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; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\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 _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, _toPropertyKey(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; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\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 _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, _toPropertyKey(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; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\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 _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, _toPropertyKey(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; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\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 _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, _toPropertyKey(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; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\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 _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, _toPropertyKey(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; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\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 = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0) { ; } } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) 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, _toPropertyKey(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; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\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 _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, _toPropertyKey(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; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\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"]}