{"version":3,"sources":["wwwroot/app-out/app.js"],"names":["userProfileEdit","container","changePasswordUrl","toteRoleTxt","playerTxt","betBrokerTxt","operatorRole","runnerRole","getInterfacesUrl","_this","this","uiElements","$","playerText","betBrokerRoleTxt","operatorText","runnerText","getInterfaceListUrl","on","changePasswordClick","e","val","target","closest","attr","$self","$userInterface","find","$playeragent","$playerShowHide","get","role","data","updateDropdown","toggle","clearInputs","preventDefault","$form","valid","params","serialize","postUrl","post","done","html","site","validators","refreshValidators","prototype","dropdown","selectList","$dropdown","value","each","ind","append","text","$container","clear","$inputs","dialogSettings","appSaveFormDialogOptions","title","saveBtnText","dialogs","saveFormDialog","balanceHandler","args","listContainer","dateType","dateFilterContainer","okBtn","customTypeValue","datepicker","dateFormat","subscribeToEvents","is","has","length","popover","click","content","next","refreshList","change","index","el","$lnk","bookmakerId","betbrokerId","balance","dialogOptions","fetchParams","betBrokerId","cutterId","runningBalance","appSaveFormDialog","payoutUrl","raceResultsHandler","getResultsUrl","getListUrl","BalanceDateType","StartDate","EndDate","balanceHandlerArgs","betBrokerHistory","savePayloadUrl","exportUrl","editBetRecommendationUrl","updateStatusUrl","formElement","statusContainer","exportBtn","onSelect","dateText","obj","$el","input","getUrl","updateList","$newForm","jQuery","action","method","_i","array_1","serializeArray","pair","name","type","appendTo","submit","remove","id","readOnly","bookamkerId","raceId","readOnlyType","CutterId","BookmakerId","BetBrokerId","betEditHandler","addBtn","itemTemplate","horses","race","date","_args","self","onDateChanged","setCompletedDate","completedDateVal","undefined","localVal","moment","utc","local","console","log","format","options","appConfirmDialogOptions","dialogClass","confirm","isConfirmed","recalculateIndexes","getHorsesUrl","$items","prefix","replace","getRacesUrl","Date","firstOption","trigger","betEditHandlerArgs","payoutHandler","sign","reasonContainer","hint","typeSelector","reason","adjustmentType","paymentType","payoutType","paymentTypeVal","createHint","toString","parseFloat","playerBalanceAgentHandler","mainContainer","listInnerPagingSorting","appPagingSorting","startConnection","connection","signalR","HubConnectionBuilder","withUrl","build","start","catch","err","refreshAction","refreshBalances","update","array_2","agentId","sendRequest","AgentId","search","pagingSorting","getState","getJsonBalancesUrl","Search","PagingSortingInfo","items","v","refreshBalance","$tr","$balanceTd","oldBalance","oldBalanceNum","priceChangeType","getPriceChange","priceChange","PriceGoDown","removeClass","addClass","PriceGoUp","balanceString","resolveMinus","toFixed","newBalance","result","NotChanged","playerBalanceAgentArgs","playerListModel","playerListItemModel","playerBalancesArgs","playerBalanceHandler","playerId","payoutLink","playerBetUrl","bookmakerSelect","betLocationSelect","startDate","endDate","resetBtn","prop","userId","array_3","BetLocationId","raceResultsConnection","refreshStatusAction","callbackOnClose","onCloseCallback","onUrlLoaded","btn","toLowerCase","savePlayerBetHandler","subscribeOnEvents","savePlayerBetArgs","totalBalanceHandler","filterUrl","updateListUrl","toDateString","json","JSON","parse","response","appAjaxAreaLoading","$area","deffered","divOverlay","before","fadeIn","duration","always","fadeOut","complete","appAjaxSetup","document","ajaxComplete","event","jqXHR","getResponseHeader","ajaxRedirect","init","ajaxError","notify","message","responseText","delay","redirectUrl","pathAndQuery","split","queryArgs","isUrlChanged","i","indexOf","rootPath","window","location","protocol","host","encodeURIComponent","href","join","appFilterControl","events","form","btnApply","btnClear","proxy","off","initUi","refreshHighlights","getFilteredColumns","columns","getNonEmptyFilterControls","elem","column","splitted","push","getFilterControls","updateClearButtonStatus","keyup","submitFilter","filterData","filteredColumns","isNonEmpty","highlightFilterElement","$element","toggleClass","isNonEmptyFilterControl","filter","containerSelector","url","filterFormSelector","getTable","errMsg","alert","Error","initFilterControl","filterContainer","highlightTableColumns","$this","currentColumn","keepPaging","parametesData","appSerializeObject","extend","Page","ajaxRequest","subscribeToPaging","subscribeToSorting","deparam","query","pairs","keyValuePair","key","map","slice","decodeURIComponent","page","currentTarget","$val","pagingSortingChanged","SortMember","SortDescending","changedData","pagingSortingInfoData","stateControl","deff","ajax","cache","empty","promise","object","forseNotValidate","isPlainObject","isArray","inputs","name_1","nameExistInArray","pushCounters","patterns","validate","fixed","named","base","push_counter","test","k","keys","match","merge","reverse_key","pop","RegExp","Object","call","appShowScriptMessages","scriptMessagesBase64","cookie","path","expires","scriptMessagesJson","Base64","decode","showScriptMessages","jsonString","parseJSON","scriptItems","evaluateScriptMessage","Message","MessageDataType","MessageTypeString","dataType","dataMessageType","eval","appUtils","htmlEncode","htmlToText","readCookieRaw","raw","autofocus","$focus","not","focusOnElement","doc","elemLen","selection","focus","oSel","createRange","moveStart","moveEnd","select","selectionStart","selectionEnd","appValidators","validator","setDefaults","ignore","$forms","validateBootstrap","appDialogs","appAlertDialog","appConfirmDialog","appSite","_","templateSettings","variable","utils","ready","appControlAutocomplete","listHandler","opts","deleteUrl","dialogTitle","editUrl","listHandlerArgs","autocomplete","source","request","contentType","stringify","prefixText","term","count","contextKey","success","item","label","minLength","ui","open","close","dblclick","onClose","dialog","appDialogShow","body","buttons","okText","buttonClass","appAlertDialogOptions","onCloseSafe","timer","timerCallback","cancelText","modalTemplate","template","headerClass","buttonId","Math","random","htmlText","$dialog","skipClose","counter","originalText_1","interval","setInterval","modal","clearInterval","PopupIframeResult","OK","Cancel","PopupContext","callContext","onOK","onCancel","Result","ReturnInfo","_callContext","_onOK","_onCancel","FireClose","sender","_eventArgs","CallContext","PopupIframeManager","CurrentModalPopup","ModalOnLoad","dv","dvLoading","dvIfrHolder","hide","show","ShowModal","width","height","setTimeout","tplIfr","isIE","navigator","appName","rndID","src","resizable","CloseModal","returnInfo","isOK","fetchUrl","defSaveFormDialog","Deferred","bodyHtml","$button","formElem","formdata","FormData","processData","textStatus","xhr","resolve","betHistoryHandler","updateUrl","adminMode","table","list","refresh","isRefreshNeeded","reload","forcedUpdate","$tbody","raceNumber","trackName","betOddsString","numerator","denominator","layOddsString","layNumerator","layDenominator","layBetString","layBet","betString","bet","$trAdmin","updatedDate","toLocaleString","horseName","$trUser","existedTr","replaceWith","UserId","PlayerBetAdminModel","playerHandler","_lock","initUI","getRestrictions","mobileToggleColumns","isColumnToggled","disableOrEnableSubmit","onRefreshRaceList","element","prevAll","nextAll","getBetsUrl","addValidationsForForm","getBetsAsString","$form_1","isJson","getBalances","updateStatus","refreshBets","confirmOptions","loggedUser","$bets","$layBets","betsString","layBetsString","odds","str","betLocationId","updateIfRaceExists","isStopped","stopBets","refreshUrl","refreshInner","getHistoryMarkup","trIndex","betIndex","historyIndex","model","betTypeInp","horseId","needToShowLayBet","round","playerBetsListModel","playerBets","$trs","tr","$trIndex","parseInt","$nextTr","trHorseId","saveBetModels","j","excluded","css","oldNumerator","parseOdd","oldDenominator","oldLayNumerator","oldLayDenominator","priceChangeTypeLay","setOdds","history","markup_1","style","jj","h","after","checkBet","maxBet","currentProjBalance","checkLayBet","checkMaxBet","checkLayMaxBet","odd","num","Number","EPSILON","newNumerator","newDenominator","oldK","newK","layType","$oddsTd","$layOddsTd","$textContainers","$textContainer","$submitBtn","$noRf","getRestrictionsUrl","_restrictions","calcBets","startBalanceWithBets","$elTr","layValue","layVal","backVal","calculateExistedBets","maxLayBet","calculateBetsSum","startBets","isNaN","getBalanceUrl","_balance","validateOverallBalance","overallBalanceRestriction","currentBalance","currentBalanceWithProjectedWin","getProjectedWin","getProjectedWinUrl","async","validatePlayerBalance","amountToWinRestriction","addMethod","_projectedWin","hasClass","projectedWinAmount","opts_1","$label","$input","errorPlacement","error","placement","insertAfter","rules","optsJson_1","isOverallBalanceValidForUser","isOverallBalanceValid","isMaxBetValid","isBetValid","$b","playerHandlerArgs","projectedWinModel","playerRestrictions","playerBalanceModel","playerCurrentBalanceModel","playerBetListModel","playerBetModel","playerBetItemModel","exportFilter","filterForm","exportForm","submitForm","select2","placeholder","containerCssClass","dropdownAutoWidth","submitAction","raceAjaxImport","fileInput","initUploader","processResult","fileupload","paramName","autoUpload","replaceFileInput","fail","redirect","dialogResult_1","getErrorMessage","serializtionError","saveError","ajaxUploadOptions","UploadResult","raceExcelExportDialog","importButton","initDialog","$btn","dialogResult","dialogContainer","exportActionType","formToSend","raceExcelExportDialogOptions","raceAssignmentEdit","bookmakersUrl","betLocationsUrl","bookmakersDropdown","locationsDropdown","usersLookup","getBetLocationsUrl","getBookmakersUrl","$event","onLocationChanged","onBookmakerChanged","filterText","parents","isChecked","$targetToShow","$inputToReset","searchTerm","$checkboxes","$value","parent","$checkBoxContainer","raceAssignmentList","copyLink","openDialog","onDelete","openCopyDialog","assignmentListUrl","deleteAssignmentUrl","copyParams","copyDialogTitle","copyUrl","editDialogLabel","raceAssignmentListOptions","raceHorseEdit","raceHorseTextBox","horseIdInput","raceHorseList","$evt","sortable","initSortable","addHorseUrl","HorseId","RaceId","getList","dispose","raceHorseSorting","saveSortingUrl","raceHorseOptions","saveUrl","updateCallback","realtimeUpdate","updateListFunction","axis","tolerance","onUpdate","attribute","HorsesIds","raceHorseResultList","defineBtn","sorting","onDefineClick","isFormExists","resultExists","resultsDefined","toggleButton","setOrdinals","$ordinals","raceHorseResultOptions","raceOddEdit","horseOddsUrl","bookmakerDropdown","onBookmakerChange","onSubmit","$denominator","selectedBookmakerId","reportMapHandler","messageContainer","markers","addMapsScript","$target","userIds","raceOddId","highlightItems","$elements","children","$currentEl","$prev","prev","last","$next","first","querySelectorAll","googleMapsUrl","initMap","googleScript","assign","createElement","onload","appendChild","google","maps","Map","getElementById","maxZoom","minZoom","updateMarkers","getItemsUrl","clearMap","setZoom","forEach","exists","hypot","latitude","longitude","$template","slides_1","display","removed","infowindow_1","InfoWindow","login","marker_1","Marker","position","LatLng","fontSize","fontWeight","connectedItems","addListener","clusterer","addMarkers","MarkerClusterer","imagePath","bounds","LatLngBounds","fitBounds","marker","inde","setMap","clearMarkers","resultMarkers","arr","setCenter","marks","setAnimation","Animation","BOUNCE","mapViewModel","mapViewItemModel","horseOddMapModel","reportMapArgs","reportMapOptions","testRecommendationSendHandler","horsesUrl","racesUrl","track","horse","updateRaces","trackId","trackEdit","toteUserIds","trackNameTxtBox","traderOdds","timers","timeoutStorage","$td","historyPopupUrl","popupUrl","onclose","initial","silentRefresh","silentRefreshHorses","silentRefreshOdds","getMaxOdds","raceAssignments","assignment","isExists","removeHighlight","startTimeout","addHighlight","updatePercentage","$tableTrs","allTds","sum","res","$horseTr","$upd","$horseTrs","$tds","horseOdds","maxOdd","max","apply","$dataTds","$headTds","$bottomTrs","raceOddsModel","raceHorseModel","raceAssignmentModel","raceRunnerModel","horseOddModel","raceOddsArgs","traderOddsArgs","timeouts","Array","callback","isBefore","raceStartDateUtc","tradeUIUpdateTimeoutMinutes","timerId","add","itemToRemove","clearTimeout","splice","removeByTimeout","timeoutId","timeoutStorageItem","traderOddsHistory","_chart","chartContainer","initChart","historyDataUrl","ctx","getContext","dataCopy","chartTooltip","borderWidth","bodySpacing","xPadding","yPadding","cornerRadius","displayColors","callbacks","tooltipItem","dataIndex","createdDate","chartConfig","datasets","getData","backgroundColor","borderColor","lineTension","scales","xAxes","time","unit","plugins","tooltip","Chart","getLabels","x","y","horseOddHistoryArgs","horseOddHistoryItem","horseOddHistoryModel"],"mappings":"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","file":"all.min.js","sourcesContent":["var userProfileEdit = (function () {\r\n function userProfileEdit(container, changePasswordUrl, toteRoleTxt, playerTxt, betBrokerTxt, operatorRole, runnerRole, getInterfacesUrl) {\r\n var _this = this;\r\n this.uiElements = {\r\n container: null\r\n };\r\n this.uiElements.container = $(container);\r\n this.changePasswordUrl = changePasswordUrl;\r\n this.toteRoleTxt = toteRoleTxt;\r\n this.playerText = playerTxt;\r\n this.betBrokerRoleTxt = betBrokerTxt;\r\n this.operatorText = operatorRole;\r\n this.runnerText = runnerRole;\r\n this.getInterfaceListUrl = getInterfacesUrl;\r\n var self = this;\r\n this.uiElements.container.on(\"click\", \".changePasswordUrl\", function () {\r\n _this.changePasswordClick();\r\n });\r\n this.uiElements.container.on(\"click\", \".role-radio\", function (e) {\r\n var val = $(e.target).closest(\".role-radio\").attr(\"data-role-text\");\r\n var $self = _this;\r\n var $userInterface = _this.uiElements.container.find(\".user-interface\");\r\n var $playeragent = _this.uiElements.container.find(\".player-agent\");\r\n var $playerShowHide = _this.uiElements.container.find(\".player-show\");\r\n $.get(_this.getInterfaceListUrl, { role: val }, function (data) {\r\n $self.updateDropdown($userInterface.find(\"select\"), data);\r\n });\r\n if (val == _this.toteRoleTxt || val == _this.betBrokerRoleTxt || val == _this.runnerText || val == _this.operatorText) {\r\n $userInterface.toggle(true);\r\n }\r\n else {\r\n $userInterface.toggle(false);\r\n }\r\n if (val == _this.playerText) {\r\n $playeragent.toggle(true);\r\n $playerShowHide.toggle(true);\r\n _this.clearInputs($playerShowHide, false);\r\n }\r\n else {\r\n $playeragent.toggle(false);\r\n $playerShowHide.toggle(false);\r\n _this.clearInputs($playerShowHide, true);\r\n }\r\n });\r\n this.uiElements.container.on(\"click\", \"input[type='submit']:not('.full-submit')\", function (e) {\r\n e.preventDefault();\r\n var $form = $('form', _this.uiElements.container);\r\n if (!$form.valid())\r\n return;\r\n var params = $form.serialize();\r\n var postUrl = $form.attr('action');\r\n $.post(postUrl, params).done(function (data) {\r\n _this.uiElements.container.html(data);\r\n site.validators.refreshValidators(_this.uiElements.container);\r\n });\r\n });\r\n }\r\n userProfileEdit.prototype.updateDropdown = function (dropdown, selectList) {\r\n var $dropdown = $(dropdown);\r\n var value = $dropdown.val();\r\n $dropdown.val(\"\");\r\n $dropdown.html(\"\");\r\n $.each(selectList, function (ind, val) {\r\n $dropdown.append($(\"\").val(val.value).text(val.text));\r\n });\r\n $dropdown.val(value);\r\n };\r\n userProfileEdit.prototype.clearInputs = function ($container, clear) {\r\n if (clear) {\r\n var $inputs = $container.find(\":input\");\r\n $.each($inputs, function (ind, val) {\r\n $(val).val('');\r\n });\r\n }\r\n };\r\n userProfileEdit.prototype.changePasswordClick = function () {\r\n var dialogSettings = new appSaveFormDialogOptions();\r\n dialogSettings.title = \"Change Password\";\r\n dialogSettings.saveBtnText = \"Change Password\";\r\n site.dialogs.saveFormDialog(this.changePasswordUrl, dialogSettings);\r\n };\r\n return userProfileEdit;\r\n}());\r\nvar balanceHandler = (function () {\r\n function balanceHandler(args) {\r\n this.uiElements = {\r\n container: null,\r\n listContainer: null,\r\n dateType: null,\r\n dateFilterContainer: null,\r\n okBtn: null\r\n };\r\n this.customTypeValue = \"Custom\";\r\n this.args = args;\r\n this.uiElements.container = $(this.args.container);\r\n this.uiElements.listContainer = $(\".items-container\", this.uiElements.container);\r\n this.uiElements.dateType = $(\"#BalanceDateType\", this.uiElements.container);\r\n this.uiElements.okBtn = $(\"#okBtn\", this.uiElements.container);\r\n this.uiElements.dateFilterContainer = $(\".filters\", this.uiElements.container);\r\n $(\".datepicker\").datepicker({ dateFormat: \"mm/dd/yy\" });\r\n this.subscribeToEvents();\r\n }\r\n balanceHandler.prototype.subscribeToEvents = function () {\r\n var _this = this;\r\n $('body').on('click', function (e) {\r\n $('.warning-toggle').each(function () {\r\n if (!$(this).is(e.target) && $(this).has(e.target).length === 0 && $('.popover').has(e.target).length === 0) {\r\n $(this).popover('hide');\r\n }\r\n });\r\n });\r\n $(\"button.warning-toggle\").click(function (e) {\r\n e.preventDefault();\r\n });\r\n $(\".warning-toggle\", this.uiElements.container).popover({\r\n html: true,\r\n container: this.args.container,\r\n content: function () {\r\n return $(this).next(\".warning-content\").html();\r\n }\r\n });\r\n this.uiElements.okBtn.click(function (e) {\r\n _this.refreshList();\r\n });\r\n this.uiElements.dateType.change(function (e) {\r\n var val = _this.uiElements.dateType.val();\r\n if (val == _this.customTypeValue) {\r\n _this.uiElements.dateFilterContainer.toggle(true);\r\n }\r\n else {\r\n _this.uiElements.dateFilterContainer.toggle(false);\r\n _this.uiElements.container.find(\".datepicker\").each(function (index, el) {\r\n $(el).val('');\r\n });\r\n _this.refreshList();\r\n }\r\n });\r\n this.uiElements.container.on(\"click\", \"[data-bookmaker-id]\", function (e) {\r\n e.preventDefault();\r\n var $lnk = $(e.target);\r\n var bookmakerId = $lnk.attr(\"data-bookmaker-id\");\r\n var betbrokerId = $lnk.attr(\"data-bet-broker-id\");\r\n var balance = $lnk.attr(\"data-balance\");\r\n var cutterId = $lnk.attr(\"data-cutter-id\");\r\n var dialogOptions = {\r\n fetchParams: { bookmakerId: bookmakerId, betBrokerId: betbrokerId, cutterId: cutterId, runningBalance: balance },\r\n saveBtnText: \"Apply\",\r\n title: \"Log Payment/Payout\"\r\n };\r\n appSaveFormDialog(_this.args.payoutUrl, dialogOptions).done(function () { return _this.refreshList(); });\r\n });\r\n new raceResultsHandler(this.args.container, function () {\r\n _this.refreshList();\r\n }, this.args.getResultsUrl);\r\n };\r\n balanceHandler.prototype.refreshList = function () {\r\n var _this = this;\r\n $.get(this.args.getListUrl, { BalanceDateType: this.uiElements.dateType.val(), StartDate: $(\"#StartDate\", this.uiElements.container).val(), EndDate: $(\"#EndDate\", this.uiElements.container).val() })\r\n .done(function (data) {\r\n _this.uiElements.listContainer.html(data);\r\n $(\".warning-toggle\", _this.uiElements.container).popover({\r\n html: true,\r\n container: _this.args.container,\r\n content: function () {\r\n return $(this).next(\".warning-content\").html();\r\n }\r\n });\r\n });\r\n };\r\n return balanceHandler;\r\n}());\r\nvar balanceHandlerArgs = (function () {\r\n function balanceHandlerArgs() {\r\n }\r\n return balanceHandlerArgs;\r\n}());\r\nvar betBrokerHistory = (function () {\r\n function betBrokerHistory(container, getListUrl, savePayloadUrl, exportUrl, editBetRecommendationUrl, updateStatusUrl) {\r\n this.uiElements = {\r\n container: null,\r\n listContainer: null,\r\n formElement: null,\r\n dateFilterContainer: null,\r\n okBtn: null,\r\n dateType: null,\r\n statusContainer: null,\r\n exportBtn: null\r\n };\r\n this.customTypeValue = \"Custom\";\r\n this.uiElements.container = $(container);\r\n this.uiElements.listContainer = $(\".list-items\", this.uiElements.container);\r\n this.uiElements.formElement = $(\"form\", this.uiElements.container);\r\n this.uiElements.dateFilterContainer = $(\".filters\", this.uiElements.container);\r\n this.uiElements.dateType = $(\"#BalanceDateType\", this.uiElements.container);\r\n this.uiElements.okBtn = $(\"#okBtn\", this.uiElements.container);\r\n this.uiElements.exportBtn = $(\"#exportBtn\", this.uiElements.container);\r\n this.uiElements.statusContainer = $(\".status-container\", this.uiElements.container);\r\n this.exportUrl = exportUrl;\r\n this.editBetRecommendationUrl = editBetRecommendationUrl;\r\n this.updateStatusUrl = updateStatusUrl;\r\n var onSelectFunction = function (dateText, obj) {\r\n var $el = $(obj.input);\r\n $($el.attr(\"data-id\")).val(dateText);\r\n };\r\n $(\".datepicker\").datepicker({ dateFormat: \"mm/dd/yy\", onSelect: onSelectFunction });\r\n this.subscribeToEvents();\r\n this.getUrl = getListUrl;\r\n this.savePayloadUrl = savePayloadUrl;\r\n }\r\n betBrokerHistory.prototype.subscribeToEvents = function () {\r\n var _this = this;\r\n var self = this;\r\n self.uiElements.container.on(\"click\", \"#resetBtn\", function (e) {\r\n e.preventDefault();\r\n _this.uiElements.dateType.val(\"Today\");\r\n _this.uiElements.dateFilterContainer.toggle(false);\r\n _this.uiElements.container.find(\".datepicker\").each(function (index, el) {\r\n $(el).val('');\r\n });\r\n _this.updateList();\r\n });\r\n if (this.uiElements.exportBtn) {\r\n this.uiElements.exportBtn.click(function (e) {\r\n e.preventDefault();\r\n var $form = _this.uiElements.formElement;\r\n var $newForm = jQuery('
', {\r\n 'action': _this.exportUrl,\r\n 'method': \"POST\"\r\n });\r\n var array = $form.serializeArray();\r\n for (var _i = 0, array_1 = array; _i < array_1.length; _i++) {\r\n var pair = array_1[_i];\r\n $newForm.append($('', {\r\n 'name': pair.name,\r\n 'value': pair.value,\r\n 'type': 'hidden'\r\n }));\r\n }\r\n ;\r\n $newForm.appendTo(\"body\").submit().remove();\r\n });\r\n }\r\n this.uiElements.container.on(\"click\", \"[data-edit-recommendation-id]\", function (e) {\r\n e.preventDefault();\r\n var id = $(e.target).closest(\"a\").attr(\"data-edit-recommendation-id\");\r\n var dialogSettings = new appSaveFormDialogOptions();\r\n var betBrokerId = $(\"#BetBrokerId\", _this.uiElements.container).val();\r\n var readOnly = $(e.target).attr(\"data-read-only\");\r\n var bookamkerId = $(e.target).attr(\"data-br-bookmaker-id\");\r\n var raceId = $(e.target).attr(\"data-race-id\");\r\n dialogSettings.title = \"Edit Recommendation\";\r\n dialogSettings.saveBtnText = \"Save\";\r\n dialogSettings.fetchParams = { id: id, betBrokerId: betBrokerId, readOnlyType: readOnly, bookmakerId: bookamkerId, raceId: raceId };\r\n site.dialogs.saveFormDialog(_this.editBetRecommendationUrl, dialogSettings).done(function () {\r\n _this.updateList();\r\n });\r\n });\r\n this.uiElements.container.on(\"click\", \"[data-bookmaker-id]\", function (e) {\r\n e.preventDefault();\r\n var $lnk = $(e.target);\r\n var bookmakerId = $lnk.attr(\"data-bookmaker-id\");\r\n var betbrokerId = $lnk.attr(\"data-bet-broker-id\");\r\n var cutterId = $lnk.attr(\"data-cutter-id\");\r\n var dialogOptions = {\r\n fetchParams: { bookmakerId: bookmakerId, betBrokerId: betbrokerId, cutterId: cutterId },\r\n saveBtnText: \"Apply\",\r\n title: \"Log Payment/Payout\"\r\n };\r\n appSaveFormDialog(_this.savePayloadUrl, dialogOptions).done(function () { return _this.updateList(); });\r\n });\r\n this.uiElements.container.on(\"change\", \"#BalanceDateType\", function () {\r\n var val = _this.uiElements.dateType.val();\r\n if (val == _this.customTypeValue) {\r\n _this.uiElements.dateFilterContainer.toggle(true);\r\n }\r\n else {\r\n _this.uiElements.dateFilterContainer.toggle(false);\r\n _this.uiElements.container.find(\".datepicker\").each(function (index, el) {\r\n $(el).val('');\r\n });\r\n _this.updateList();\r\n }\r\n });\r\n this.uiElements.container.on(\"click\", \"#okBtn\", function (e) {\r\n e.preventDefault();\r\n _this.updateList();\r\n });\r\n };\r\n betBrokerHistory.prototype.updateList = function () {\r\n var _this = this;\r\n var bookmakerId = $(\"#BookmakerId\", this.uiElements.container).val();\r\n var betBrokerId = $(\"#BetBrokerId\", this.uiElements.container).val();\r\n var cutterId = $(\"#CutterId\", this.uiElements.container).val();\r\n var startDate = $(\"#StartDate\", this.uiElements.container).val();\r\n var endDate = $(\"#EndDate\", this.uiElements.container).val();\r\n var balanceDateType = $(\"#BalanceDateType\", this.uiElements.container).val();\r\n var args = { CutterId: cutterId, BookmakerId: bookmakerId, StartDate: startDate, EndDate: endDate, BalanceDateType: balanceDateType, BetBrokerId: betBrokerId };\r\n $.post(this.getUrl, args, function (data) {\r\n _this.uiElements.listContainer.html(data);\r\n });\r\n $.post(this.updateStatusUrl, args, function (data) {\r\n _this.uiElements.statusContainer.html(data);\r\n });\r\n };\r\n return betBrokerHistory;\r\n}());\r\nvar betEditHandler = (function () {\r\n function betEditHandler(args) {\r\n this.uiElements = {\r\n container: null,\r\n listContainer: null,\r\n addBtn: null,\r\n itemTemplate: null,\r\n horses: null,\r\n race: null,\r\n date: null\r\n };\r\n this._args = args;\r\n this.uiElements.container = $(this._args.container);\r\n this.uiElements.listContainer = $(\".items\", this.uiElements.container);\r\n this.uiElements.addBtn = $(\".add-btn\", this.uiElements.container);\r\n this.uiElements.itemTemplate = $(\"#item-template\", this.uiElements.container);\r\n this.uiElements.horses = $(\"#HorseId\", this.uiElements.container);\r\n this.uiElements.race = $(\"#RaceId\", this.uiElements.container);\r\n this.uiElements.date = $(\".datepicker\", this.uiElements.container);\r\n var self = this;\r\n var changeDateAction = function (date) {\r\n self.onDateChanged(date, self);\r\n };\r\n this.uiElements.date.datepicker({\r\n dateFormat: \"mm/dd/yy\", onSelect: changeDateAction\r\n });\r\n this.subscribeToEvents();\r\n var $items = $(\"tr\", this.uiElements.listContainer);\r\n if ($items.length == 1) {\r\n $(\"[data-delete-item]\", this.uiElements.listContainer).toggle(false);\r\n }\r\n else {\r\n $(\"[data-delete-item]\", this.uiElements.listContainer).toggle(true);\r\n }\r\n this.setCompletedDate();\r\n }\r\n betEditHandler.prototype.setCompletedDate = function () {\r\n var completedDateVal = this.uiElements.container.find(\"#CompletedDate\");\r\n if (completedDateVal.val() != \"\" && completedDateVal.val() != undefined && completedDateVal.val() != null) {\r\n var utcVal = moment.utc(completedDateVal.val());\r\n var localVal = utcVal.local();\r\n console.log(localVal.format(\"HH:mm:ss MM/DD\"));\r\n this.uiElements.container.find(\".completed-date\").text(localVal.format(\"HH:mm:ss MM/DD\"));\r\n }\r\n };\r\n betEditHandler.prototype.subscribeToEvents = function () {\r\n var _this = this;\r\n var self = this;\r\n this.uiElements.container.on(\"click\", \"[data-delete-item]\", function (e) {\r\n e.preventDefault();\r\n var options = new appConfirmDialogOptions();\r\n options.dialogClass = \"dialog-520px-top\";\r\n site.dialogs.confirm(\"Are you sure?\", function (isConfirmed) {\r\n if (isConfirmed) {\r\n $(e.target).closest(\"tr\").remove();\r\n _this.recalculateIndexes();\r\n }\r\n }, options);\r\n });\r\n self.uiElements.race.change(function () {\r\n $.get(self._args.getHorsesUrl, { raceId: self.uiElements.race.val() }, function (data) {\r\n self.updateDropdown(self.uiElements.horses, data);\r\n });\r\n });\r\n this.uiElements.addBtn.click(function (e) {\r\n _this.uiElements.listContainer.append(_this.uiElements.itemTemplate.html());\r\n _this.recalculateIndexes();\r\n });\r\n };\r\n betEditHandler.prototype.recalculateIndexes = function () {\r\n var $items = $(\"tr\", this.uiElements.listContainer);\r\n $.each($items, function (index, $el) {\r\n var prefix = \"Bets[\" + index + \"]\";\r\n $($el).find(\":input\").each(function (ind, val) {\r\n $(val).attr(\"name\", $(val).attr(\"name\").replace(/Bets\\[\\d+\\]/, prefix));\r\n });\r\n });\r\n if ($items.length == 1) {\r\n $(\"[data-delete-item]\", this.uiElements.listContainer).toggle(false);\r\n }\r\n else {\r\n $(\"[data-delete-item]\", this.uiElements.listContainer).toggle(true);\r\n }\r\n };\r\n betEditHandler.prototype.onDateChanged = function (dateText, self) {\r\n $.get(self._args.getRacesUrl, { Date: dateText == \"\" ? null : dateText }, function (data) {\r\n self.updateDropdown(self.uiElements.race, data);\r\n });\r\n };\r\n betEditHandler.prototype.updateDropdown = function (dropdown, selectList) {\r\n var $dropdown = $(dropdown);\r\n var value = $dropdown.val();\r\n $dropdown.val(\"\");\r\n var firstOption = $dropdown.find(\"option\")[0];\r\n $dropdown.html(\"\");\r\n $dropdown.append(firstOption);\r\n $.each(selectList, function (ind, val) {\r\n $dropdown.append($(\"\").val(val.value).text(val.text));\r\n });\r\n $dropdown.val(value);\r\n $dropdown.trigger(\"change\");\r\n };\r\n return betEditHandler;\r\n}());\r\nvar betEditHandlerArgs = (function () {\r\n function betEditHandlerArgs() {\r\n }\r\n return betEditHandlerArgs;\r\n}());\r\nvar payoutHandler = (function () {\r\n function payoutHandler(container, prefix, sign) {\r\n this.uiElements = {\r\n container: null,\r\n reasonContainer: null,\r\n hint: null,\r\n typeSelector: null,\r\n reason: null\r\n };\r\n this.adjustmentType = \"Adjustment\";\r\n this.paymentType = \"Payment\";\r\n this.payoutType = \"Payout\";\r\n this.prefix = \"Bookmaker\";\r\n this.sign = \"₹\";\r\n this.uiElements.container = $(container);\r\n this.uiElements.reasonContainer = $(\".reason-container\", this.uiElements.container);\r\n this.uiElements.hint = $(\".hint\", this.uiElements.container);\r\n this.uiElements.typeSelector = $(\"#PaymentType\", this.uiElements.container);\r\n this.uiElements.reason = $(\"#Type\", this.uiElements.container);\r\n this.sign = sign != null && sign != \"\" ? sign : this.sign;\r\n if (prefix && prefix != '') {\r\n this.prefix = prefix;\r\n }\r\n this.subscribeToEvents();\r\n }\r\n payoutHandler.prototype.subscribeToEvents = function () {\r\n var _this = this;\r\n this.uiElements.typeSelector.change(function (e) {\r\n var paymentTypeVal = _this.uiElements.typeSelector.val();\r\n var isAdjustment = paymentTypeVal == _this.adjustmentType;\r\n if (isAdjustment) {\r\n _this.uiElements.reason.val(\"\");\r\n _this.uiElements.reasonContainer.toggle(true);\r\n }\r\n else {\r\n _this.uiElements.reason.val(paymentTypeVal);\r\n _this.uiElements.reasonContainer.toggle(false);\r\n }\r\n _this.uiElements.hint.text(_this.createHint());\r\n });\r\n this.uiElements.container.on(\"change keyup\", \"#Payment\", function (e) {\r\n _this.uiElements.hint.text(_this.createHint());\r\n });\r\n this.uiElements.container.on(\"change keyup\", \"#Type\", function (e) {\r\n var val = _this.uiElements.reason.val();\r\n _this.uiElements.reason.next(\"span\").toggle(true).text(118 - val.toString().length + \" characters left.\");\r\n });\r\n };\r\n payoutHandler.prototype.createHint = function () {\r\n var type = this.uiElements.typeSelector.val();\r\n switch (type) {\r\n case this.paymentType:\r\n {\r\n var str = this.prefix + \" will be debited \" + this.sign + $(\"#Payment\", this.uiElements.container).val();\r\n return str;\r\n }\r\n case this.payoutType:\r\n {\r\n var str = this.prefix + \" will be credited \" + this.sign + $(\"#Payment\", this.uiElements.container).val();\r\n return str;\r\n }\r\n default: {\r\n var sign = parseFloat($(\"#Payment\", this.uiElements.container).val()) > 0;\r\n if (sign) {\r\n var str = this.prefix + \" will be debited \" + this.sign + $(\"#Payment\", this.uiElements.container).val();\r\n return str;\r\n }\r\n else {\r\n var str = this.prefix + \" will be credited \" + this.sign + $(\"#Payment\", this.uiElements.container).val();\r\n return str;\r\n }\r\n }\r\n }\r\n };\r\n return payoutHandler;\r\n}());\r\nvar playerBalanceAgentHandler = (function () {\r\n function playerBalanceAgentHandler(args) {\r\n this.uiElements = {\r\n mainContainer: null,\r\n listContainer: null,\r\n listInnerPagingSorting: null\r\n };\r\n this._args = args;\r\n this.uiElements.mainContainer = $(args.container);\r\n this.uiElements.listContainer = $(\".paging-sorting-update\", this.uiElements.mainContainer);\r\n this.uiElements.listInnerPagingSorting = new appPagingSorting(args.container, args.getUrl, \".paging-sorting-filter-form\");\r\n this.subscribeToEvents();\r\n this.startConnection();\r\n }\r\n playerBalanceAgentHandler.prototype.startConnection = function () {\r\n var _this = this;\r\n this.connection = new signalR.HubConnectionBuilder()\r\n .withUrl(\"/playerbethub\")\r\n .build();\r\n this.connection.start().catch(function (err) { return console.log(err); });\r\n var refreshAction = function () {\r\n _this.refreshBalances();\r\n };\r\n this.connection.on(\"HorsesExcluded\", function (raceId) {\r\n refreshAction();\r\n });\r\n this.connection.on(\"RefreshRaceResults\", function () {\r\n refreshAction();\r\n });\r\n };\r\n playerBalanceAgentHandler.prototype.subscribeToEvents = function () {\r\n var self = this;\r\n self.uiElements.mainContainer.on(\"click\", \"#resetBtn\", function (e) {\r\n e.preventDefault();\r\n self.update();\r\n });\r\n self.uiElements.mainContainer.on(\"click\", \"#exportBtn\", function (e) {\r\n e.preventDefault();\r\n var $form = $(\"form\", self.uiElements.mainContainer);\r\n var $newForm = $('', {\r\n 'action': self._args.exportUrl,\r\n 'method': \"POST\"\r\n });\r\n var array = $form.serializeArray();\r\n for (var _i = 0, array_2 = array; _i < array_2.length; _i++) {\r\n var pair = array_2[_i];\r\n $newForm.append($('', {\r\n 'name': pair.name,\r\n 'value': pair.value,\r\n 'type': 'hidden'\r\n }));\r\n }\r\n ;\r\n $newForm.appendTo(\"body\").submit().remove();\r\n });\r\n self.uiElements.mainContainer.on(\"change\", \"#AgentId\", function () {\r\n self.update();\r\n });\r\n };\r\n playerBalanceAgentHandler.prototype.update = function () {\r\n var self = this;\r\n var agentId = $(\"#AgentId\", this.uiElements.mainContainer).val();\r\n this.uiElements.listInnerPagingSorting.sendRequest({ AgentId: agentId }, false);\r\n };\r\n playerBalanceAgentHandler.prototype.refreshBalances = function () {\r\n var self = this;\r\n var search = $(\"#Search\", this.uiElements.mainContainer).val();\r\n var agentId = $(\"#AgentId\", this.uiElements.mainContainer).val();\r\n var pagingSorting = this.uiElements.listInnerPagingSorting.getState();\r\n $.post(self._args.getJsonBalancesUrl, { Search: search, AgentId: agentId, PagingSortingInfo: pagingSorting }, function (data) {\r\n $.each(data.items, function (ind, v) {\r\n self.refreshBalance(v);\r\n });\r\n });\r\n };\r\n playerBalanceAgentHandler.prototype.refreshBalance = function (v) {\r\n var self = this;\r\n var $tr = this.uiElements.listContainer.find(\"[data-player-id='\" + v.id + \"']\");\r\n if ($tr.length > 0) {\r\n var $balanceTd = $tr.find(\"[data-balance-td]\");\r\n var oldBalance = $tr.find(\"[data-balance-td]\").attr(\"data-balance-td\");\r\n if (oldBalance && oldBalance != '') {\r\n var oldBalanceNum = parseFloat(oldBalance);\r\n var priceChangeType = self.getPriceChange(oldBalanceNum, v.balance);\r\n if (priceChangeType == priceChange.PriceGoDown) {\r\n $balanceTd.removeClass(\"standart-text-green\");\r\n $balanceTd.addClass(\"standart-text-red\");\r\n }\r\n if (priceChangeType == priceChange.PriceGoUp) {\r\n $balanceTd.removeClass(\"standart-text-red\");\r\n $balanceTd.addClass(\"standart-text-green\");\r\n }\r\n var balanceString = self.resolveMinus(v.balance);\r\n $balanceTd.text(balanceString);\r\n }\r\n }\r\n };\r\n playerBalanceAgentHandler.prototype.resolveMinus = function (balance) {\r\n if (!balance)\r\n return \"\";\r\n if (balance < 0) {\r\n var abs = balance * -1;\r\n var out = \"(\" + abs + \")\";\r\n return out;\r\n }\r\n return balance.toFixed(2);\r\n };\r\n playerBalanceAgentHandler.prototype.getPriceChange = function (oldBalance, newBalance) {\r\n var result = priceChange.NotChanged;\r\n if (oldBalance > newBalance)\r\n return priceChange.PriceGoDown;\r\n if (newBalance > oldBalance)\r\n return priceChange.PriceGoUp;\r\n return result;\r\n };\r\n return playerBalanceAgentHandler;\r\n}());\r\nvar playerBalanceAgentArgs = (function () {\r\n function playerBalanceAgentArgs() {\r\n }\r\n return playerBalanceAgentArgs;\r\n}());\r\nvar playerListModel = (function () {\r\n function playerListModel() {\r\n }\r\n return playerListModel;\r\n}());\r\nvar playerListItemModel = (function () {\r\n function playerListItemModel() {\r\n }\r\n return playerListItemModel;\r\n}());\r\nvar playerBalancesArgs = (function () {\r\n function playerBalancesArgs() {\r\n }\r\n return playerBalancesArgs;\r\n}());\r\nvar playerBalanceHandler = (function () {\r\n function playerBalanceHandler(container, getUrl, playerId, payoutLink, updateStatusUrl, exportUrl, playerBetUrl) {\r\n var _this = this;\r\n this.uiElements = {\r\n container: null,\r\n bookmakerSelect: null,\r\n betLocationSelect: null,\r\n startDate: null,\r\n endDate: null,\r\n resetBtn: null,\r\n okBtn: null,\r\n dateType: null,\r\n dateFilterContainer: null,\r\n listInnerPagingSorting: null,\r\n formElement: null,\r\n exportBtn: null\r\n };\r\n this.uiElements.container = $(container);\r\n this.uiElements.listInnerPagingSorting = new appPagingSorting(container, getUrl, null);\r\n this.exportUrl = exportUrl;\r\n this.uiElements.dateType = $(\"#BalanceDateType\", this.uiElements.container);\r\n this.uiElements.bookmakerSelect = $(\"#BookmakerId\", this.uiElements.container);\r\n this.uiElements.betLocationSelect = $(\"#BetLocationId\", this.uiElements.container);\r\n this.uiElements.startDate = $(\"#StartDate\", this.uiElements.container);\r\n this.uiElements.okBtn = $(\"#okBtn\", this.uiElements.container);\r\n this.uiElements.endDate = $(\"#EndDate\", this.uiElements.container);\r\n this.uiElements.dateFilterContainer = $(\".filters\", this.uiElements.container);\r\n this.uiElements.resetBtn = $(\"#resetBtn\", this.uiElements.container);\r\n this.uiElements.exportBtn = $(\"#exportBtn\", this.uiElements.container);\r\n this.uiElements.formElement = $(\"form\", this.uiElements.container);\r\n this.payoutUrl = payoutLink;\r\n this.playerId = playerId;\r\n this.playerBetUrl = playerBetUrl;\r\n this.updateStatusUrl = updateStatusUrl;\r\n this.uiElements.okBtn.prop(\"disabled\", true);\r\n var onSelectFunction = function (dateText, obj) {\r\n var $el = $(obj.input);\r\n $($el.attr(\"data-id\")).val(dateText);\r\n _this.uiElements.okBtn.prop(\"disabled\", false);\r\n };\r\n $(\".datepicker\").datepicker({ dateFormat: \"mm/dd/yy\", onSelect: onSelectFunction });\r\n this.subscribeToEvents();\r\n this.startConnection();\r\n }\r\n playerBalanceHandler.prototype.subscribeToEvents = function () {\r\n var _this = this;\r\n $('body').addClass('balance');\r\n this.uiElements.container.on(\"click\", \".payout\", function (e) {\r\n e.preventDefault();\r\n var dialogOptions = {\r\n fetchParams: { playerId: _this.playerId },\r\n saveBtnText: \"Apply\",\r\n title: \"Log Payment/Payout\"\r\n };\r\n appSaveFormDialog(_this.payoutUrl, dialogOptions).done(function () { return _this.update({ StartDate: _this.uiElements.startDate.val(), EndDate: _this.uiElements.endDate.val(), BalanceDateType: _this.uiElements.dateType.val() }); });\r\n });\r\n this.uiElements.container.on(\"click\", \".player-bet-item\", function (e) {\r\n e.preventDefault();\r\n var $target = $(e.target).closest(\"a\");\r\n var id = $target.attr(\"data-player-bet-id\");\r\n var dialogOptions = {\r\n fetchParams: { userId: _this.playerId, id: id },\r\n saveBtnText: \"Save\",\r\n title: \"Save Player Bet\"\r\n };\r\n appSaveFormDialog(_this.playerBetUrl, dialogOptions).done(function () { return _this.update({ StartDate: _this.uiElements.startDate.val(), EndDate: _this.uiElements.endDate.val(), BalanceDateType: _this.uiElements.dateType.val() }); });\r\n });\r\n if (this.uiElements.exportBtn) {\r\n this.uiElements.exportBtn.click(function (e) {\r\n e.preventDefault();\r\n var $form = _this.uiElements.formElement;\r\n var $newForm = jQuery('', {\r\n 'action': _this.exportUrl,\r\n 'method': \"POST\"\r\n });\r\n var array = $form.serializeArray();\r\n for (var _i = 0, array_3 = array; _i < array_3.length; _i++) {\r\n var pair = array_3[_i];\r\n $newForm.append($('', {\r\n 'name': pair.name,\r\n 'value': pair.value,\r\n 'type': 'hidden'\r\n }));\r\n }\r\n ;\r\n $newForm.appendTo(\"body\").submit().remove();\r\n });\r\n }\r\n this.uiElements.bookmakerSelect.change(function (e) {\r\n var value = _this.uiElements.bookmakerSelect.val();\r\n _this.update({ BookmakerId: value });\r\n });\r\n this.uiElements.betLocationSelect.change(function (e) {\r\n var value = _this.uiElements.betLocationSelect.val();\r\n _this.update({ BetLocationId: value });\r\n });\r\n this.uiElements.okBtn.click(function (e) {\r\n e.preventDefault();\r\n _this.uiElements.listInnerPagingSorting.sendRequest({\r\n StartDate: _this.uiElements.startDate.val(),\r\n EndDate: _this.uiElements.endDate.val(),\r\n BalanceDateType: _this.uiElements.dateType.val()\r\n }, false);\r\n });\r\n this.uiElements.resetBtn.click(function (e) {\r\n e.preventDefault();\r\n _this.uiElements.startDate.val(null);\r\n _this.uiElements.endDate.val(null);\r\n _this.uiElements.dateType.val(\"Today\");\r\n _this.uiElements.dateType.trigger(\"change\");\r\n _this.uiElements.betLocationSelect.val(null);\r\n _this.uiElements.bookmakerSelect.val(null);\r\n _this.uiElements.dateFilterContainer.find(\"[data-id='#StartDate']\").val('');\r\n _this.uiElements.dateFilterContainer.find(\"[data-id='#EndDate']\").val('');\r\n _this.update({ StartDate: '', EndDate: '', BalanceDateType: _this.uiElements.dateType.val(), BookmakerId: _this.uiElements.bookmakerSelect.val(), BetLocationId: _this.uiElements.betLocationSelect.val() });\r\n });\r\n this.uiElements.dateType.change(function (e) {\r\n var val = _this.uiElements.dateType.val();\r\n if (val == \"Custom\") {\r\n _this.uiElements.dateFilterContainer.addClass('d-flex');\r\n }\r\n else {\r\n _this.uiElements.dateFilterContainer.removeClass('d-flex');\r\n _this.uiElements.container.find(\".datepicker\").each(function (index, el) {\r\n $(el).val('');\r\n });\r\n _this.update({ StartDate: '', EndDate: '', BalanceDateType: _this.uiElements.dateType.val() });\r\n }\r\n });\r\n };\r\n playerBalanceHandler.prototype.startConnection = function () {\r\n var self = this;\r\n self.raceResultsConnection = new signalR.HubConnectionBuilder()\r\n .withUrl(\"/playerbethub\")\r\n .build();\r\n self.raceResultsConnection.start().catch(function (err) { return console.log(err); });\r\n var refreshStatusAction = function () {\r\n self.update({});\r\n };\r\n this.raceResultsConnection.on(\"RefreshRaceResults\", function (raceId) {\r\n refreshStatusAction();\r\n });\r\n this.raceResultsConnection.on(\"UpdateStatus\", function (raceId) {\r\n refreshStatusAction();\r\n });\r\n this.raceResultsConnection.on(\"HorsesExcluded\", function (raceId) {\r\n refreshStatusAction();\r\n });\r\n };\r\n playerBalanceHandler.prototype.update = function (data) {\r\n var _this = this;\r\n this.uiElements.listInnerPagingSorting.sendRequest(data, false);\r\n if (this.updateStatusUrl) {\r\n $.get(this.updateStatusUrl, { playerId: this.playerId }, function (data) {\r\n $(\".standart-player-info-container\", _this.uiElements.container).html(data);\r\n });\r\n }\r\n };\r\n return playerBalanceHandler;\r\n}());\r\nvar raceResultsHandler = (function () {\r\n function raceResultsHandler(container, callbackOnClose, getUrl) {\r\n this.uiElements = {\r\n container: null,\r\n onCloseCallback: null,\r\n getUrl: null\r\n };\r\n this.uiElements.container = $(container);\r\n this.uiElements.onCloseCallback = callbackOnClose;\r\n this.uiElements.getUrl = getUrl;\r\n this.subscribeToEvents();\r\n }\r\n raceResultsHandler.prototype.subscribeToEvents = function () {\r\n var _this = this;\r\n this.uiElements.container.on(\"click\", \"[data-race-id]\", function (e) {\r\n $('.warning-toggle', _this.uiElements.container).each(function () {\r\n $(this).popover('hide');\r\n });\r\n var raceId = $(e.target).closest(\"a\").attr(\"data-race-id\");\r\n var dialogOptions = {\r\n fetchParams: { raceId: raceId },\r\n title: \"Define Race Results\",\r\n onUrlLoaded: function (container) {\r\n var btn = $(\".btn-primary\", container);\r\n var isDefinedResults = $(\"#ReadOnly\", container).val().toString().toLowerCase() == \"true\";\r\n if (isDefinedResults) {\r\n btn.remove();\r\n }\r\n },\r\n saveBtnText: \"Save\"\r\n };\r\n appSaveFormDialog(_this.uiElements.getUrl, dialogOptions).done(function () {\r\n _this.uiElements.onCloseCallback();\r\n });\r\n });\r\n };\r\n return raceResultsHandler;\r\n}());\r\nvar savePlayerBetHandler = (function () {\r\n function savePlayerBetHandler(args) {\r\n this.uiElements = {\r\n container: null,\r\n horses: null,\r\n race: null,\r\n date: null\r\n };\r\n this._args = args;\r\n this.uiElements.container = $(args.container);\r\n this.uiElements.horses = $(\"#HorseId\", this.uiElements.container);\r\n this.uiElements.race = $(\"#RaceId\", this.uiElements.container);\r\n this.uiElements.date = $(\".datepicker\", this.uiElements.container);\r\n var self = this;\r\n var changeDateAction = function (date) {\r\n self.onDateChanged(date, self);\r\n };\r\n this.uiElements.date.datepicker({\r\n dateFormat: \"mm/dd/yy\", onSelect: changeDateAction\r\n });\r\n this.subscribeOnEvents();\r\n }\r\n savePlayerBetHandler.prototype.subscribeOnEvents = function () {\r\n var self = this;\r\n self.uiElements.race.change(function () {\r\n $.get(self._args.getHorsesUrl, { raceId: self.uiElements.race.val() }, function (data) {\r\n self.updateDropdown(self.uiElements.horses, data);\r\n });\r\n });\r\n };\r\n savePlayerBetHandler.prototype.onDateChanged = function (dateText, self) {\r\n $.get(self._args.getRacesUrl, { Date: dateText == \"\" ? null : dateText }, function (data) {\r\n self.updateDropdown(self.uiElements.race, data);\r\n });\r\n };\r\n savePlayerBetHandler.prototype.updateDropdown = function (dropdown, selectList) {\r\n var $dropdown = $(dropdown);\r\n var value = $dropdown.val();\r\n $dropdown.val(\"\");\r\n var firstOption = $dropdown.find(\"option\")[0];\r\n $dropdown.html(\"\");\r\n $dropdown.append(firstOption);\r\n $.each(selectList, function (ind, val) {\r\n $dropdown.append($(\"\").val(val.value).text(val.text));\r\n });\r\n $dropdown.val(value);\r\n $dropdown.trigger(\"change\");\r\n };\r\n return savePlayerBetHandler;\r\n}());\r\nvar savePlayerBetArgs = (function () {\r\n function savePlayerBetArgs() {\r\n }\r\n return savePlayerBetArgs;\r\n}());\r\nvar totalBalanceHandler = (function () {\r\n function totalBalanceHandler(container, filterUrl, updateListUrl) {\r\n this.uiElements = {\r\n container: null\r\n };\r\n this.uiElements.container = $(container);\r\n this.filterUrl = filterUrl;\r\n this.updateListUrl = updateListUrl;\r\n this.subscribeToEvents();\r\n }\r\n totalBalanceHandler.prototype.subscribeToEvents = function () {\r\n var _this = this;\r\n this.uiElements.container.on(\"click\", \".set-filter\", function (e) {\r\n var args = null;\r\n if (_this.args) {\r\n args = _this.args;\r\n }\r\n else {\r\n args = { StartDate: new Date().toDateString(), EndDate: null };\r\n }\r\n var options = {\r\n title: \"Set Dates\",\r\n saveBtnText: \"Ok\",\r\n fetchParams: args\r\n };\r\n site.dialogs.saveFormDialog(_this.filterUrl, options).done(function (data) {\r\n var json = JSON.parse(data);\r\n _this.args = json;\r\n _this.updateList(json);\r\n });\r\n });\r\n };\r\n totalBalanceHandler.prototype.updateList = function (data) {\r\n var _this = this;\r\n $.get(this.updateListUrl, data, function (response) {\r\n _this.uiElements.container.html(response);\r\n });\r\n };\r\n return totalBalanceHandler;\r\n}());\r\nfunction appAjaxAreaLoading($area, deffered) {\r\n var fadeDuration = 250;\r\n if ($area.length <= 0)\r\n return;\r\n var divOverlay = $(\"
\");\r\n $area.before(divOverlay);\r\n divOverlay.fadeIn({ duration: fadeDuration });\r\n deffered.always(function () {\r\n divOverlay.fadeOut({\r\n duration: fadeDuration,\r\n complete: function () { divOverlay.remove(); }\r\n });\r\n });\r\n}\r\nvar appAjaxSetup = (function () {\r\n function appAjaxSetup() {\r\n var _this = this;\r\n $(document).ajaxComplete(function (event, jqXHR) {\r\n var isAjaxRedirect = jqXHR.getResponseHeader('AjaxRedirect') === \"1\";\r\n if (isAjaxRedirect) {\r\n _this.ajaxRedirect(jqXHR);\r\n return;\r\n }\r\n site.init();\r\n });\r\n $(document).ajaxError(function (event, jqXHR) {\r\n $.notify({ message: \"Unhandled Error: \" + jqXHR.responseText }, { type: 'danger', delay: 7000 });\r\n });\r\n }\r\n appAjaxSetup.prototype.ajaxRedirect = function (jqXHR) {\r\n var redirectUrl = jqXHR.getResponseHeader('location');\r\n var pathAndQuery = redirectUrl.split('?');\r\n if (pathAndQuery.length === 2) {\r\n var queryArgs = pathAndQuery[1].split('&');\r\n var isUrlChanged = false;\r\n for (var i = 0; i < queryArgs.length; i++) {\r\n if (queryArgs[i].indexOf(\"ReturnUrl=\") === 0) {\r\n var rootPath = window.location.protocol + \"//\" + window.location.host + \"/\";\r\n queryArgs[i] = \"ReturnUrl=\" + encodeURIComponent(\"/\" + window.location.href.replace(rootPath, \"\"));\r\n isUrlChanged = true;\r\n break;\r\n }\r\n }\r\n if (isUrlChanged) {\r\n pathAndQuery[1] = queryArgs.join('&');\r\n redirectUrl = pathAndQuery.join('?');\r\n }\r\n }\r\n window.location.href = redirectUrl;\r\n };\r\n return appAjaxSetup;\r\n}());\r\nvar appFilterControl = (function () {\r\n function appFilterControl(container) {\r\n this.events = $(this);\r\n this.uiElements = {\r\n container: null,\r\n form: null,\r\n btnApply: null,\r\n btnClear: null\r\n };\r\n this.on = $.proxy(this.events.on, this.events);\r\n this.off = $.proxy(this.events.off, this.events);\r\n this.uiElements.container = container;\r\n this.initUi();\r\n this.subscribeToEvents();\r\n this.refreshHighlights();\r\n }\r\n appFilterControl.prototype.getFilteredColumns = function () {\r\n var columns = [];\r\n this.getNonEmptyFilterControls()\r\n .each(function (index, elem) {\r\n var column = $(elem).attr(\"data-highlight-column\") || $(elem).attr(\"name\");\r\n if (column) {\r\n var splitted = column.split(\",\");\r\n for (var i = 0; i < splitted.length; i++) {\r\n columns.push(splitted[i]);\r\n }\r\n }\r\n });\r\n return columns;\r\n };\r\n appFilterControl.prototype.subscribeToEvents = function () {\r\n var _this = this;\r\n this.getFilterControls().change(function () { _this.updateClearButtonStatus(); });\r\n $(\":input[autocomplete]\", this.uiElements.container).keyup(function () { _this.updateClearButtonStatus(); });\r\n this.uiElements.btnApply.click(function (e) {\r\n e.preventDefault();\r\n _this.submitFilter();\r\n });\r\n this.uiElements.form.submit(function (e) {\r\n e.preventDefault();\r\n _this.submitFilter();\r\n });\r\n this.uiElements.btnClear.click(function (e) {\r\n e.preventDefault();\r\n if (_this.uiElements.btnClear.attr(\"disabled\") === \"disabled\")\r\n return;\r\n _this.getFilterControls().val(null);\r\n _this.updateClearButtonStatus();\r\n _this.submitFilter();\r\n });\r\n };\r\n appFilterControl.prototype.submitFilter = function () {\r\n var args = { filterData: this.uiElements.form.serialize(), filteredColumns: this.getFilteredColumns() };\r\n this.events.trigger(\"filter-control-changed\", args);\r\n this.refreshHighlights();\r\n };\r\n appFilterControl.prototype.updateClearButtonStatus = function () {\r\n var isNonEmpty = this.getNonEmptyFilterControls().length > 0;\r\n this.uiElements.btnClear.prop(\"disabled\", !isNonEmpty);\r\n };\r\n appFilterControl.prototype.refreshHighlights = function () {\r\n var _this = this;\r\n this.updateClearButtonStatus();\r\n this.getFilterControls().each(function (i, el) { return _this.highlightFilterElement($(el)); });\r\n };\r\n appFilterControl.prototype.highlightFilterElement = function ($element) {\r\n $element.toggleClass(\"highlight\", this.isNonEmptyFilterControl($element));\r\n };\r\n appFilterControl.prototype.getFilterControls = function () {\r\n return $(\":input\", this.uiElements.container);\r\n };\r\n appFilterControl.prototype.getNonEmptyFilterControls = function () {\r\n var _this = this;\r\n return this.getFilterControls()\r\n .filter(function (i, elem) { return _this.isNonEmptyFilterControl(elem); });\r\n };\r\n appFilterControl.prototype.isNonEmptyFilterControl = function (elem) {\r\n return $(elem).val() !== \"\";\r\n };\r\n appFilterControl.prototype.initUi = function () {\r\n this.uiElements.btnApply = $(\"[data-apply]\", this.uiElements.container);\r\n this.uiElements.btnClear = $(\"[data-clear]\", this.uiElements.container);\r\n this.uiElements.form = this.uiElements.container;\r\n };\r\n return appFilterControl;\r\n}());\r\nvar appPagingSorting = (function () {\r\n function appPagingSorting(containerSelector, url, filterFormSelector) {\r\n var _this = this;\r\n this.uiElements = {\r\n container: null,\r\n getTable: null,\r\n getState: null\r\n };\r\n this.filter = null;\r\n this.containerSelector = containerSelector;\r\n this.url = url;\r\n this.filterFormSelector = filterFormSelector;\r\n this.uiElements.container = $(\".paging-sorting-update\", $(containerSelector));\r\n if (this.uiElements.container.length === 0) {\r\n var errMsg = \".paging-sorting-update not found in container '\" + containerSelector + \"' or container not found\";\r\n alert(errMsg);\r\n throw new Error(errMsg);\r\n }\r\n this.uiElements.getTable = function () { return $(\"table.paging-sorting\", _this.uiElements.container); };\r\n this.uiElements.getState = function () { return $(\"[data-paging-sorting-state]\", _this.uiElements.container); };\r\n this.initFilterControl();\r\n this.subscribeToEvents();\r\n }\r\n appPagingSorting.prototype.initFilterControl = function () {\r\n var filterContainer;\r\n if (this.filterFormSelector) {\r\n filterContainer = $(this.filterFormSelector);\r\n }\r\n else {\r\n filterContainer = $(\".paging-sorting-filter-form\", $(this.containerSelector));\r\n }\r\n if (filterContainer.length > 0) {\r\n this.filter = new appFilterControl(filterContainer);\r\n this.refreshHighlights();\r\n }\r\n };\r\n appPagingSorting.prototype.refreshHighlights = function () {\r\n if (this.filter) {\r\n this.highlightTableColumns(this.filter.getFilteredColumns());\r\n }\r\n };\r\n appPagingSorting.prototype.highlightTableColumns = function (columns) {\r\n $(\"[data-sortmember]\", this.uiElements.container).each(function (index, elem) {\r\n var $this = $(elem);\r\n var currentColumn = $this.attr(\"data-sortmember\");\r\n $this.toggleClass(\"highlight\", columns.indexOf(currentColumn) >= 0);\r\n });\r\n };\r\n appPagingSorting.prototype.sendRequest = function (data, keepPaging) {\r\n var parametesData = this.getState();\r\n data = appSerializeObject(data);\r\n if (data) {\r\n $.extend(parametesData, data);\r\n }\r\n if (!keepPaging) {\r\n $.extend(parametesData.PagingSortingInfo, { Page: 1 });\r\n }\r\n return this.ajaxRequest(parametesData);\r\n };\r\n appPagingSorting.prototype.subscribeToEvents = function () {\r\n var _this = this;\r\n this.subscribeToPaging();\r\n this.subscribeToSorting();\r\n if (this.filter) {\r\n this.filter.on(\"filter-control-changed\", function (e, args) {\r\n var data = _this.deparam(args.filterData);\r\n var parametesData = _this.getState();\r\n $.extend(parametesData, data);\r\n _this.ajaxRequest(parametesData);\r\n });\r\n }\r\n };\r\n appPagingSorting.prototype.deparam = function (query) {\r\n if (!query)\r\n return {};\r\n var pairs, i, keyValuePair, key, value;\r\n var map = {};\r\n if (query.slice(0, 1) === '?') {\r\n query = query.slice(1);\r\n }\r\n if (query !== '') {\r\n pairs = query.split('&');\r\n for (i = 0; i < pairs.length; i += 1) {\r\n keyValuePair = pairs[i].split('=');\r\n key = decodeURIComponent(keyValuePair[0]);\r\n value = (keyValuePair.length > 1) ? decodeURIComponent(keyValuePair[1]) : undefined;\r\n map[key] = value;\r\n }\r\n }\r\n return map;\r\n };\r\n appPagingSorting.prototype.subscribeToPaging = function () {\r\n var _this = this;\r\n this.uiElements.container.on(\"click\", \"a[data-Page]\", function (event) {\r\n var $this = $(event.currentTarget);\r\n var page = $this.attr(\"data-Page\");\r\n var data = { Page: page };\r\n _this.uiElements.container.find(\"a[data-Page]\").each(function (index, $val) {\r\n var p = $($val).attr(\"data-Page\");\r\n if (p == page) {\r\n $($val).closest(\"page-item\").addClass(\"disabled\");\r\n }\r\n else {\r\n $($val).closest(\"page-item\").removeClass(\"disabled\");\r\n }\r\n });\r\n _this.pagingSortingChanged(data);\r\n });\r\n };\r\n appPagingSorting.prototype.subscribeToSorting = function () {\r\n var _this = this;\r\n this.uiElements.container.on(\"click\", \".paging-sorting th[data-SortMember]\", function (event) {\r\n var $this = $(event.currentTarget);\r\n var sortMember = $this.attr(\"data-SortMember\");\r\n var sortDescending = $this.attr(\"data-SortDescending\");\r\n var data = {\r\n SortMember: sortMember,\r\n SortDescending: sortDescending\r\n };\r\n _this.pagingSortingChanged(data);\r\n });\r\n };\r\n appPagingSorting.prototype.pagingSortingChanged = function (changedData) {\r\n var parametesData = this.getState();\r\n var pagingSortingInfoData = parametesData[\"PagingSortingInfo\"];\r\n $.extend(pagingSortingInfoData, changedData);\r\n parametesData[\"PagingSortingInfo\"] = pagingSortingInfoData;\r\n this.ajaxRequest(parametesData);\r\n };\r\n appPagingSorting.prototype.getState = function () {\r\n var stateControl = this.uiElements.getState();\r\n if (stateControl.length <= 0)\r\n return null;\r\n return JSON.parse(stateControl.attr(\"data-paging-sorting-state\"));\r\n };\r\n appPagingSorting.prototype.ajaxRequest = function (data) {\r\n var _this = this;\r\n var $self = this;\r\n var deff = $.ajax({\r\n url: this.url,\r\n data: data,\r\n cache: false,\r\n type: \"POST\",\r\n })\r\n .done(function (html) {\r\n _this.uiElements.container.empty().append(html);\r\n })\r\n .always(function () {\r\n $($self).trigger(\"request-complete\");\r\n _this.refreshHighlights();\r\n });\r\n appAjaxAreaLoading(this.uiElements.getTable().find(\"tbody\"), deff);\r\n return deff.promise();\r\n };\r\n return appPagingSorting;\r\n}());\r\nfunction appSerializeObject(object, forseNotValidate) {\r\n if (forseNotValidate === void 0) { forseNotValidate = false; }\r\n if ($.isPlainObject(object)) {\r\n return object;\r\n }\r\n var serializeArray;\r\n if ($.isArray(object)) {\r\n serializeArray = object;\r\n }\r\n else {\r\n var inputs = $(object).find(\":input\");\r\n serializeArray = inputs.serializeArray();\r\n inputs.filter(\"select.multiselect\").each(function () {\r\n if (!$(this).val() || !$(this).val().toString().length) {\r\n var name_1 = $(this).attr(\"id\");\r\n var nameExistInArray = false;\r\n for (var i = 0; i < serializeArray.length; i++) {\r\n if (serializeArray[i].name === name_1) {\r\n nameExistInArray = true;\r\n break;\r\n }\r\n }\r\n if (!nameExistInArray) {\r\n serializeArray.push({\r\n name: name_1,\r\n value: \"\"\r\n });\r\n }\r\n }\r\n });\r\n }\r\n var self = this, json = {}, pushCounters = {}, patterns = {\r\n \"validate\": /^[a-zA-Z][a-zA-Z0-9_]*(?:\\[(?:\\d*|[a-zA-Z0-9_]+)\\])*$/,\r\n \"key\": /[a-zA-Z0-9_]+|(?=\\[\\])/g,\r\n \"push\": /^$/,\r\n \"fixed\": /^\\d+$/,\r\n \"named\": /^[a-zA-Z0-9_]+$/\r\n };\r\n this.build = function (base, key, value) {\r\n base[key] = value;\r\n return base;\r\n };\r\n this.push_counter = function (key) {\r\n if (pushCounters[key] === undefined) {\r\n pushCounters[key] = 0;\r\n }\r\n return pushCounters[key]++;\r\n };\r\n $.each(serializeArray, function () {\r\n if (!forseNotValidate) {\r\n if (!patterns.validate.test(this.name)) {\r\n return;\r\n }\r\n }\r\n var k, keys = this.name.match(patterns.key), merge = this.value, reverse_key = this.name;\r\n while ((k = keys.pop()) !== undefined) {\r\n reverse_key = reverse_key.replace(new RegExp(\"\\\\[\" + k + \"\\\\]$\"), '');\r\n if (k.match(patterns.push)) {\r\n merge = self.build([], self.push_counter(reverse_key), merge);\r\n }\r\n else if (k.match(patterns.fixed)) {\r\n merge = self.build([], k, merge);\r\n }\r\n else if (k.match(patterns.named)) {\r\n merge = self.build({}, k, merge);\r\n }\r\n }\r\n if (this.value === \"\") {\r\n json[this.name] = [];\r\n }\r\n else {\r\n if ((this.name in json)) {\r\n if (!(Object.prototype.toString.call(json[this.name]) === '[object Array]')) {\r\n json[this.name] = [json[this.name]];\r\n }\r\n json[this.name].push(this.value);\r\n }\r\n else {\r\n json = $.extend(true, json, merge);\r\n }\r\n }\r\n });\r\n return json;\r\n}\r\nfunction appShowScriptMessages() {\r\n var scriptMessagesBase64 = $.cookie(\"SiteScriptMessage\");\r\n if (scriptMessagesBase64) {\r\n $.cookie(\"SiteScriptMessage\", null, { path: \"/\", expires: -1 });\r\n }\r\n if (scriptMessagesBase64 && scriptMessagesBase64 != \"\") {\r\n var scriptMessagesJson = Base64.decode(scriptMessagesBase64);\r\n showScriptMessages(scriptMessagesJson);\r\n }\r\n function showScriptMessages(jsonString) {\r\n var json = $.parseJSON(jsonString);\r\n if (json) {\r\n var scriptItems = [];\r\n if (json.length) {\r\n scriptItems = json;\r\n }\r\n for (var i = 0; i < scriptItems.length; i++) {\r\n var message = scriptItems[i];\r\n evaluateScriptMessage(message.Message, message.MessageDataType, message.MessageTypeString);\r\n }\r\n }\r\n }\r\n function evaluateScriptMessage(message, dataType, dataMessageType) {\r\n if (dataType === 'messsage') {\r\n var delay = 2000;\r\n if (dataMessageType === 'danger')\r\n delay = 7000;\r\n $.notify({ message: message }, { type: dataMessageType, delay: delay });\r\n }\r\n else if (dataType === 'script') {\r\n eval(message);\r\n }\r\n else {\r\n throw new Error(\"Unknown message dataType - \" + dataType);\r\n }\r\n }\r\n}\r\nvar appUtils = (function () {\r\n function appUtils() {\r\n }\r\n appUtils.prototype.htmlEncode = function (value) {\r\n return $('
').text(value).html();\r\n };\r\n appUtils.prototype.htmlToText = function (value) {\r\n return $('
').html(value).text();\r\n };\r\n appUtils.prototype.readCookieRaw = function (name) {\r\n var raw = $.cookie.raw;\r\n try {\r\n $.cookie.raw = true;\r\n var result = $.cookie(name);\r\n $.cookie.raw = raw;\r\n return result;\r\n }\r\n catch (e) {\r\n $.cookie.raw = raw;\r\n throw e;\r\n }\r\n };\r\n appUtils.prototype.autofocus = function () {\r\n var $focus = $(\"[data-focus]\").not(\"[data-focus-placed='true']\");\r\n if ($focus.length > 0) {\r\n $focus.attr(\"data-focus-placed\", \"true\");\r\n this.focusOnElement($focus);\r\n }\r\n };\r\n appUtils.prototype.focusOnElement = function ($focus) {\r\n var doc = document;\r\n var elem = $focus[0];\r\n var elemLen = elem.value.length;\r\n if (doc.selection) {\r\n elem.focus();\r\n var oSel = doc.selection.createRange();\r\n oSel.moveStart('character', -elemLen);\r\n oSel.moveStart('character', elemLen);\r\n oSel.moveEnd('character', 0);\r\n oSel.select();\r\n }\r\n else if (elem.selectionStart || elem.selectionStart == '0') {\r\n elem.selectionStart = elemLen;\r\n elem.selectionEnd = elemLen;\r\n elem.focus();\r\n }\r\n };\r\n return appUtils;\r\n}());\r\nvar appValidators = (function () {\r\n function appValidators() {\r\n var defaultOptions = {\r\n ignore: \":hidden:not([data-validatehidden])\"\r\n };\r\n $.validator.setDefaults(defaultOptions);\r\n }\r\n appValidators.prototype.refreshValidators = function (containerSelector) {\r\n var $forms = $(containerSelector);\r\n if (!$forms.is(\"form\")) {\r\n $forms = $forms.find(\"form\");\r\n }\r\n $forms.validateBootstrap(true);\r\n };\r\n return appValidators;\r\n}());\r\nvar appDialogs = (function () {\r\n function appDialogs() {\r\n this.saveFormDialog = appSaveFormDialog;\r\n this.alert = appAlertDialog;\r\n this.confirm = appConfirmDialog;\r\n }\r\n return appDialogs;\r\n}());\r\nvar appSite = (function () {\r\n function appSite() {\r\n _.templateSettings.variable = \"model\";\r\n this.appAjaxSetup = new appAjaxSetup();\r\n this.validators = new appValidators();\r\n this.dialogs = new appDialogs();\r\n this.utils = new appUtils();\r\n $(document).ready(function () {\r\n site.init();\r\n });\r\n }\r\n appSite.prototype.init = function () {\r\n appShowScriptMessages();\r\n new appControlAutocomplete().init();\r\n this.utils.autofocus();\r\n };\r\n return appSite;\r\n}());\r\nvar site = new appSite();\r\nvar listHandler = (function () {\r\n function listHandler(args) {\r\n this.uiElements = {\r\n container: null,\r\n listContainer: null,\r\n listInnerPagingSorting: null\r\n };\r\n this._args = args;\r\n this.uiElements.container = $(args.container);\r\n this.uiElements.listContainer = $(\".paging-sorting-update\", this.uiElements.container);\r\n this.uiElements.listInnerPagingSorting = new appPagingSorting(args.container, args.getUrl, \".paging-sorting-filter-form\");\r\n this.subscribeToEvents();\r\n }\r\n listHandler.prototype.subscribeToEvents = function () {\r\n var _this = this;\r\n this.uiElements.container.on(\"click\", \"[data-delete-id]\", function (e) {\r\n e.preventDefault();\r\n var $self = _this;\r\n var $target = $(e.target).closest(\"a\");\r\n var id = $target.attr(\"data-delete-id\");\r\n var opts = new appConfirmDialogOptions();\r\n site.dialogs.confirm(\"Are you sure?\", function (isConfirmed) {\r\n if (!isConfirmed)\r\n return;\r\n $.post($self._args.deleteUrl, { id: id }, function () {\r\n $self.uiElements.listInnerPagingSorting.sendRequest({}, false);\r\n });\r\n }, opts);\r\n });\r\n this.uiElements.container.on(\"click\", \"[data-edit-id]\", function (e) {\r\n var $self = _this;\r\n var opts = new appSaveFormDialogOptions();\r\n var id = $(e.target).closest(\"a\").attr(\"data-edit-id\");\r\n if (id && id != '') {\r\n opts.title = \"Edit \" + $self._args.dialogTitle;\r\n }\r\n else {\r\n opts.title = \"Create \" + $self._args.dialogTitle;\r\n }\r\n opts.fetchParams = { id: id };\r\n site.dialogs.saveFormDialog($self._args.editUrl, opts).done(function () {\r\n $self.uiElements.listInnerPagingSorting.sendRequest({}, false);\r\n });\r\n });\r\n };\r\n return listHandler;\r\n}());\r\nvar listHandlerArgs = (function () {\r\n function listHandlerArgs() {\r\n }\r\n return listHandlerArgs;\r\n}());\r\nvar appControlAutocomplete = (function () {\r\n function appControlAutocomplete() {\r\n }\r\n appControlAutocomplete.prototype.init = function () {\r\n $(\"input[data-autocomplete-url]:not(.processed)\").each(function (index, elem) {\r\n var $this = $(elem);\r\n $this.addClass(\"processed\");\r\n $this.autocomplete({\r\n source: function (request, response) {\r\n $.ajax({\r\n type: \"POST\",\r\n url: $this.attr(\"data-autocomplete-url\"),\r\n contentType: \"application/json; charset=utf-8\",\r\n dataType: \"json\",\r\n data: JSON.stringify({ prefixText: request.term, count: ($this.attr(\"data-itemscount\") || '20'), contextKey: ($this.attr(\"data-contextKey\") || \"\") }),\r\n success: function (data) {\r\n response($.map(data, function (item) { return ({\r\n label: item.label,\r\n value: item.value,\r\n data: item.data\r\n }); }));\r\n }\r\n });\r\n },\r\n minLength: 0,\r\n delay: 100,\r\n select: function (event, ui) {\r\n if (ui.item.value === '[No matches found]')\r\n ui.item.value = '';\r\n },\r\n open: function () {\r\n $this.removeClass(\"ui-corner-all\").addClass(\"ui-corner-top\").addClass(\"autocompleteOpen\");\r\n },\r\n close: function (event, ui) {\r\n $this.removeClass(\"ui-corner-top\").addClass(\"ui-corner-all\").removeClass(\"autocompleteOpen\");\r\n if ($this.attr(\"data-onautocompleteclose\")) {\r\n eval($this.attr(\"data-onautocompleteclose\") + \"(event, ui)\");\r\n }\r\n }\r\n });\r\n $this.dblclick(function () {\r\n $this.autocomplete(\"search\");\r\n });\r\n });\r\n };\r\n return appControlAutocomplete;\r\n}());\r\nfunction appAlertDialog(message, onClose, options) {\r\n var dialog = appDialogShow({\r\n title: options.title,\r\n body: message,\r\n close: onClose,\r\n dialogClass: options.dialogClass,\r\n buttons: [\r\n {\r\n text: options.okText,\r\n buttonClass: 'btn-secondary',\r\n click: function () {\r\n dialog.close();\r\n if (onClose) {\r\n onClose();\r\n }\r\n }\r\n }\r\n ]\r\n });\r\n}\r\nvar appAlertDialogOptions = (function () {\r\n function appAlertDialogOptions() {\r\n this.dialogClass = \"\";\r\n this.title = \"\";\r\n this.okText = \"OK\";\r\n }\r\n return appAlertDialogOptions;\r\n}());\r\nfunction appConfirmDialog(message, onClose, options) {\r\n var onCloseSafe = function (isConfirmed) {\r\n if (onClose) {\r\n onClose(isConfirmed || false);\r\n }\r\n };\r\n var dialog = appDialogShow({\r\n title: options.title,\r\n body: message,\r\n close: onCloseSafe,\r\n timer: options.timer,\r\n timerCallback: options.timerCallback,\r\n dialogClass: options.dialogClass,\r\n buttons: [\r\n {\r\n text: options.cancelText,\r\n buttonClass: 'btn-secondary bt-cancel',\r\n click: function () {\r\n dialog.close();\r\n onCloseSafe(false);\r\n }\r\n },\r\n {\r\n text: options.okText,\r\n buttonClass: 'btn-primary',\r\n click: function () {\r\n dialog.close();\r\n onCloseSafe(true);\r\n }\r\n }\r\n ]\r\n });\r\n}\r\nvar appConfirmDialogOptions = (function () {\r\n function appConfirmDialogOptions() {\r\n this.dialogClass = \"\";\r\n this.title = \"\";\r\n this.okText = \"OK\";\r\n this.cancelText = \"Cancel\";\r\n this.timer = null;\r\n this.timerCallback = null;\r\n }\r\n return appConfirmDialogOptions;\r\n}());\r\nfunction appDialogShow(options) {\r\n var modalTemplate = _.template('
' +\r\n '
\">'\r\n + '
'\r\n + \"<% if(model.title) { %>\"\r\n + '
\">'\r\n + '
<%= model.title %>
'\r\n + ''\r\n + '
'\r\n + \"<% } %>\"\r\n + '
<%= model.body %>
'\r\n + '<% if(model.buttons && model.buttons.length > 0) { %>'\r\n + '
'\r\n + '<% for(var i = 0; i < model.buttons.length; i++) {%>'\r\n + '\" class=\"btn <%= model.buttons[i].buttonClass %>\" value=\"<%=model.buttons[i].text%>\"/>'\r\n + '<% } %>'\r\n + '
'\r\n + '<% } %>'\r\n + '
'\r\n + '
'\r\n + '
');\r\n options = $.extend({\r\n dialogClass: '',\r\n title: '',\r\n body: '',\r\n close: null,\r\n headerClass: '',\r\n buttons: [],\r\n timer: null,\r\n timerCallback: null\r\n }, options);\r\n if (options.buttons) {\r\n for (var i = 0; i < options.buttons.length; i++) {\r\n options.buttons[i].buttonId = (\"button_\" + Math.random()).replace(\".\", \"\");\r\n }\r\n }\r\n var htmlText = modalTemplate(options);\r\n var $dialog = $(htmlText);\r\n var skipClose = false;\r\n if (options.timer) {\r\n var counter = options.timer;\r\n var originalText_1 = $dialog.find(\".bt-cancel\").attr(\"value\");\r\n $dialog.find(\".bt-cancel\").attr(\"value\", originalText_1 + \" (\" + counter + \")\");\r\n var interval = setInterval(function () {\r\n counter--;\r\n $dialog.find(\".bt-cancel\").attr(\"value\", originalText_1 + \" (\" + counter + \")\");\r\n if (counter == 0) {\r\n if (options.timerCallback) {\r\n options.timerCallback();\r\n }\r\n $dialog.modal(\"hide\");\r\n clearInterval(interval);\r\n }\r\n }, 1000);\r\n }\r\n $dialog.modal('show');\r\n if (options.buttons) {\r\n for (var i = 0; i < options.buttons.length; i++) {\r\n if (options.buttons[i].click) {\r\n $(\"input[data-sitedialog-button-id='\" + options.buttons[i].buttonId + \"']\", $dialog).click(options.buttons[i].click);\r\n }\r\n }\r\n }\r\n $dialog.on('hidden.bs.modal', function () {\r\n $dialog.remove();\r\n if (options.close && !skipClose) {\r\n options.close();\r\n }\r\n });\r\n return {\r\n container: $dialog,\r\n close: function () {\r\n skipClose = true;\r\n $dialog.modal(\"hide\");\r\n }\r\n };\r\n}\r\nvar PopupIframeResult = {\r\n OK: \"OK\",\r\n Cancel: \"Cancel\"\r\n};\r\nvar PopupContext = (function () {\r\n function PopupContext(callContext, onOK, onCancel) {\r\n this.Result = null;\r\n this.ReturnInfo = null;\r\n this._callContext = callContext;\r\n this._onOK = onOK;\r\n this._onCancel = onCancel;\r\n }\r\n PopupContext.prototype.FireClose = function (sender) {\r\n var _eventArgs = { ReturnInfo: this.ReturnInfo, CallContext: this._callContext };\r\n if (this.Result === PopupIframeResult.OK && this._onOK != null)\r\n this._onOK(sender, _eventArgs);\r\n else if ((this.Result == null || this.Result === PopupIframeResult.Cancel) && this._onCancel != null)\r\n this._onCancel(sender, _eventArgs);\r\n };\r\n ;\r\n return PopupContext;\r\n}());\r\nvar PopupIframeManager = {\r\n CurrentModalPopup: null,\r\n ModalOnLoad: function () {\r\n var dv = $('#divModalIframe');\r\n var dvLoading = dv.find('#divModalIframeLoading');\r\n var dvIfrHolder = dv.find(\"#divModalIframeHolder\");\r\n dvLoading.hide();\r\n dvIfrHolder.show();\r\n },\r\n ShowModal: function (url, width, height, title, callContext, onOK, onCancel) {\r\n setTimeout(function () {\r\n url = url + (url.indexOf('?') > 0 ? \"&\" : \"?\") + \"rnd=\" + Math.random();\r\n var dv = $(\"\");\r\n var dvLoading = dv.find('#divModalIframeLoading');\r\n var dvIfrHolder = dv.find(\"#divModalIframeHolder\");\r\n var isIE = navigator.appName === 'Microsoft Internet Explorer';\r\n var rndID = Math.random();\r\n var tplIfr;\r\n if (isIE) {\r\n tplIfr = '';\r\n }\r\n else {\r\n tplIfr = '';\r\n }\r\n dvIfrHolder.hide();\r\n dvIfrHolder.html(tplIfr);\r\n if (isIE) {\r\n dvIfrHolder.find('iframe')[0].src = url;\r\n }\r\n dvLoading.show();\r\n PopupIframeManager.CurrentModalPopup = new PopupContext(callContext, onOK, onCancel);\r\n dv.dialog({\r\n modal: true,\r\n width: width,\r\n height: height,\r\n title: title,\r\n buttons: null,\r\n close: function () {\r\n dvIfrHolder.html(\"\");\r\n dv.remove();\r\n if (PopupIframeManager.CurrentModalPopup != null) {\r\n PopupIframeManager.CurrentModalPopup.FireClose(null);\r\n PopupIframeManager.CurrentModalPopup = null;\r\n }\r\n },\r\n resizable: false\r\n });\r\n }, 0);\r\n },\r\n CloseModal: function (returnInfo, isOK) {\r\n if (PopupIframeManager.CurrentModalPopup != null) {\r\n PopupIframeManager.CurrentModalPopup.Result = isOK ? PopupIframeResult.OK : PopupIframeResult.Cancel;\r\n PopupIframeManager.CurrentModalPopup.ReturnInfo = returnInfo;\r\n }\r\n $('#divModalIframe').dialog(\"close\");\r\n }\r\n};\r\nfunction appSaveFormDialog(fetchUrl, dialogOptions) {\r\n var defSaveFormDialog = $.Deferred();\r\n var dialog = appDialogShow({\r\n title: dialogOptions.title,\r\n dialogClass: dialogOptions.dialogClass,\r\n body: dialogOptions.bodyHtml,\r\n headerClass: dialogOptions.headerClass,\r\n buttons: [\r\n {\r\n text: \"Close\",\r\n buttonClass: 'btn-secondary',\r\n click: function () {\r\n dialog.close();\r\n }\r\n },\r\n {\r\n text: dialogOptions.saveBtnText,\r\n buttonClass: \"btn-primary\",\r\n click: function () {\r\n var $button = $(this);\r\n $button.prop(\"disabled\", true);\r\n var $form = $('form', dialog.container);\r\n if (!$form.valid()) {\r\n $button.prop(\"disabled\", false);\r\n return;\r\n }\r\n var postUrl = $form.attr('action');\r\n var request;\r\n if ($form.attr(\"enctype\") === \"multipart/form-data\") {\r\n var formElem = $form[0];\r\n var formdata = new FormData(formElem);\r\n request = $.ajax({\r\n type: \"POST\",\r\n url: postUrl,\r\n data: formdata,\r\n processData: false,\r\n contentType: false,\r\n });\r\n }\r\n else {\r\n var params = $form.serialize();\r\n request = $.post(postUrl, params);\r\n }\r\n request.done(function (data, textStatus, xhr) {\r\n $button.prop(\"disabled\", false);\r\n if (xhr.getResponseHeader('CloseDialog') === \"1\") {\r\n defSaveFormDialog.resolve(xhr.getResponseHeader('CloseDialogResult'));\r\n dialog.close();\r\n return;\r\n }\r\n dialog.container.find(\".modal-body\").html(data);\r\n site.validators.refreshValidators(dialog.container);\r\n });\r\n }\r\n }\r\n ]\r\n });\r\n dialog.container.on(\"shown.bs.modal\", function () {\r\n $(\".btn-primary\", dialog.container).prop(\"disabled\", true);\r\n $.get(fetchUrl, dialogOptions.fetchParams, function (data) {\r\n dialog.container.find(\".modal-body\").html(data);\r\n site.validators.refreshValidators(dialog.container);\r\n if (dialog.container.find(\"form\").length == 0) {\r\n $(\".btn-primary\", dialog.container).prop(\"disabled\", true);\r\n }\r\n else {\r\n $(\".btn-primary\", dialog.container).prop(\"disabled\", false);\r\n }\r\n if (dialogOptions.onUrlLoaded) {\r\n dialogOptions.onUrlLoaded(dialog.container);\r\n }\r\n });\r\n });\r\n return defSaveFormDialog.promise();\r\n}\r\nvar appSaveFormDialogOptions = (function () {\r\n function appSaveFormDialogOptions() {\r\n this.fetchParams = null;\r\n this.title = \"Dialog\";\r\n this.saveBtnText = \"Save changes\";\r\n this.bodyHtml = \"

Loading...

\";\r\n this.dialogClass = \"\";\r\n this.headerClass = \"\";\r\n }\r\n return appSaveFormDialogOptions;\r\n}());\r\nvar betHistoryHandler = (function () {\r\n function betHistoryHandler(container, userId, updateUrl, adminMode) {\r\n if (adminMode === void 0) { adminMode = false; }\r\n this.uiElements = {\r\n container: null,\r\n table: null\r\n };\r\n this.uiElements.container = $(container);\r\n this.userId = userId;\r\n this.uiElements.table = $(\".table-container-unfinished-bets\", this.uiElements.container);\r\n this.updateUrl = updateUrl;\r\n this.adminMode = adminMode;\r\n this.startConnection();\r\n }\r\n betHistoryHandler.prototype.startConnection = function () {\r\n var _this = this;\r\n this.connection = new signalR.HubConnectionBuilder()\r\n .withUrl(\"/playerbethub?userId=\" + this.userId)\r\n .build();\r\n this.connection.start().catch(function (err) { return console.log(err); });\r\n var refreshAction = function (raceId, list) { return _this.refresh(raceId, list); };\r\n var refreshPageAction = function (raceId) {\r\n if (_this.isRefreshNeeded(raceId)) {\r\n var options = new appConfirmDialogOptions();\r\n appConfirmDialog(\"Results for race in list was updated. Do you want to refresh page?\", function (isConfirmed) {\r\n if (isConfirmed) {\r\n window.location.reload();\r\n }\r\n }, options);\r\n }\r\n };\r\n this.connection.on(\"UpdateBets\", function (raceId, list) {\r\n refreshAction(raceId, list);\r\n });\r\n this.connection.on(\"RefreshRaceResults\", function (raceId) {\r\n refreshPageAction(raceId);\r\n });\r\n var refreshForced = function (raceId) {\r\n _this.forcedUpdate();\r\n };\r\n this.connection.on(\"HorsesExcluded\", function (raceId) {\r\n refreshForced(raceId);\r\n });\r\n };\r\n betHistoryHandler.prototype.refresh = function (raceId, list) {\r\n var _this = this;\r\n var self = this;\r\n if (list.length > 0) {\r\n this.uiElements.container.find(\".unfinished-bets-table-container\").removeClass(\"d-none\").addClass(\"d-flex\");\r\n $.each(list, function (ind, val) {\r\n var $tbody = _this.uiElements.table.find(\"tbody\");\r\n var name = \"\";\r\n if (val.raceNumber != null) {\r\n name += val.raceNumber + \" - \";\r\n }\r\n name += val.trackName;\r\n var betOddsString = val.numerator != null && val.numerator != 0 && val.denominator != null && val.denominator != 0\r\n ? parseFloat(val.numerator.toFixed(2)) + \"/\" + parseFloat(val.denominator.toFixed(2))\r\n : '-';\r\n var layOddsString = val.layNumerator != null && val.layNumerator != 0 && val.layDenominator != null && val.layDenominator != 0\r\n ? parseFloat(val.layNumerator.toFixed(2)) + \"/\" + parseFloat(val.layDenominator.toFixed(2))\r\n : '-';\r\n var layBetString = val.layBet == null ? \"\" : val.layBet;\r\n var betString = val.bet == null ? \"\" : val.bet;\r\n var $trAdmin = \"\" + new Date(val.updatedDate).toLocaleString().replace(\",\", \"\") + \"\" + name + \"\" + val.horseName + \"\" + betOddsString + \"\" + betString + \"\" + layOddsString + \"\" + layBetString + \"\";\r\n var $trUser = \"\" + new Date(val.updatedDate).toLocaleString().replace(\",\", \"\") + \"\" + name + \"\" + val.horseName + \"\" + betOddsString + \"\" + betString + \"\" + layOddsString + \"\" + layBetString + \"\";\r\n var $tr = self.adminMode\r\n ? $trAdmin\r\n : $trUser;\r\n var existedTr = $tbody.find(\"[data-player-bet-id='\" + val.id + \"']\").closest(\"tr\");\r\n if (existedTr.length > 0) {\r\n existedTr.replaceWith($tr);\r\n }\r\n else {\r\n $tbody.append($tr);\r\n }\r\n });\r\n }\r\n };\r\n betHistoryHandler.prototype.forcedUpdate = function () {\r\n var self = this;\r\n $.get(self.updateUrl, { UserId: self.userId }, function (data) {\r\n self.uiElements.container.find(\".unfinished-bets-table-container\").replaceWith(data);\r\n });\r\n };\r\n betHistoryHandler.prototype.isRefreshNeeded = function (raceId) {\r\n return this.uiElements.table.find(\"[data-race-bet-id='\" + raceId + \"']\").length > 0;\r\n };\r\n return betHistoryHandler;\r\n}());\r\nvar PlayerBetAdminModel = (function () {\r\n function PlayerBetAdminModel() {\r\n }\r\n return PlayerBetAdminModel;\r\n}());\r\nvar playerHandler = (function () {\r\n function playerHandler(args) {\r\n this.uiElements = {\r\n container: null,\r\n statusContainer: null,\r\n listInnerPagingSorting: null,\r\n date: null\r\n };\r\n this._lock = false;\r\n this._args = args;\r\n this.uiElements.container = $(this._args.container);\r\n this.uiElements.statusContainer = $(\".standart-player-info-container\", this.uiElements.container);\r\n this.initUI();\r\n this.subscribeToEvents();\r\n this.getRestrictions();\r\n }\r\n playerHandler.prototype.initUI = function () {\r\n this.uiElements.listInnerPagingSorting = new appPagingSorting(this._args.container, this._args.getRacesUrl, \".paging-filter\");\r\n this.uiElements.date = $(\".datepicker\", this.uiElements.container);\r\n this.uiElements.date.datepicker({\r\n dateFormat: \"mm/dd/yy\", onSelect: this.onSelect, onClose: this.onSelect\r\n });\r\n this.startConnection();\r\n };\r\n playerHandler.prototype.mobileToggleColumns = function (isColumnToggled) {\r\n if (!isColumnToggled) {\r\n $('.race-bets-container').removeClass('d-none');\r\n $('.standart-page-player').addClass('mobile-screen');\r\n $('.standart-bet-wrapper-footer').removeClass('d-none');\r\n }\r\n else {\r\n $('.race-bets-container').addClass('d-none');\r\n $('.standart-page-player').removeClass('mobile-screen');\r\n $('.standart-bet-wrapper-footer').addClass('d-none');\r\n }\r\n $('.mobile-bets-header').toggleClass('d-none d-lg-none');\r\n $('.race-filter').toggleClass('d-none d-flex d-lg-flex');\r\n $('.race-cards').toggleClass('d-none d-flex d-lg-flex');\r\n var self = this;\r\n self.disableOrEnableSubmit();\r\n };\r\n playerHandler.prototype.subscribeToEvents = function () {\r\n var self = this;\r\n $(this.uiElements.listInnerPagingSorting).on(\"request-complete\", function () {\r\n self.onRefreshRaceList();\r\n });\r\n this.uiElements.container.on(\"keyup\", \"[data-bet], [data-lay-bet]\", function (e) {\r\n self.disableOrEnableSubmit();\r\n $(e.target).validate();\r\n });\r\n this.uiElements.container.on(\"click\", \"a[data-race-id]\", function (e) {\r\n e.preventDefault();\r\n var element = $(e.target).closest(\"[data-race-id]\");\r\n var raceId = element.attr(\"data-race-id\");\r\n var title = element.find('.race-name').text();\r\n $('.mobile-race-name').text(title);\r\n element.prevAll().removeClass('active');\r\n element.nextAll().removeClass('active');\r\n element.addClass('active');\r\n self.mobileToggleColumns(false);\r\n $('.raceBets').addClass('loading');\r\n self.uiElements.container.find(\".raceBets\").html('');\r\n $.get(self._args.getBetsUrl, { raceId: raceId }, function (data) {\r\n $('.raceBets').removeClass('loading');\r\n self.uiElements.container.find(\".raceBets\").html(data);\r\n self.addValidationsForForm();\r\n self.disableOrEnableSubmit();\r\n });\r\n });\r\n this.uiElements.container.on(\"click\", \".mobile-race-back\", function (e) {\r\n e.preventDefault();\r\n $('.mobile-race-name').text('');\r\n self.mobileToggleColumns(true);\r\n $('a[data-race-id]').removeClass('active');\r\n });\r\n $(\".raceBets\", this.uiElements.container).on(\"submit\", function (e) {\r\n e.preventDefault();\r\n var raceId = $(\"form\", self.uiElements.container).find(\"#RaceId\").val();\r\n var $form = $(\"form\", $(\".raceBets\"));\r\n if ($form.valid()) {\r\n if (self._lock == false) {\r\n self._lock = true;\r\n var text = self.getBetsAsString();\r\n site.dialogs.confirm(text + \"Are you sure?\", function (isConfirmed) {\r\n self._lock = false;\r\n if (isConfirmed) {\r\n var $form_1 = $(\"form\", $(\".raceBets\"));\r\n if ($form_1.valid()) {\r\n $.post($form_1.attr(\"action\"), $form_1.serialize(), function (data) {\r\n if (self.isJson(data)) {\r\n $.get(self._args.getBetsUrl, { raceId: data.raceId }, function (data) {\r\n $(\".raceListContainer\").find(\".raceBets\").html(data);\r\n self.disableOrEnableSubmit();\r\n self.getBalances();\r\n self.addValidationsForForm();\r\n });\r\n }\r\n else {\r\n $(\".raceListContainer\").find(\".raceBets\").html(data);\r\n site.validators.refreshValidators(self.uiElements.container);\r\n self.disableOrEnableSubmit();\r\n self.addValidationsForForm();\r\n self.getBalances();\r\n }\r\n self.updateStatus();\r\n });\r\n }\r\n }\r\n }, {\r\n okText: \"OK\", cancelText: \"Cancel\", timer: 5, timerCallback: function () {\r\n self._lock = false;\r\n self.refreshBets(raceId, null, null, null, true);\r\n }\r\n });\r\n }\r\n }\r\n });\r\n this.uiElements.container.on('click', '.delete-link', function (e) {\r\n e.preventDefault();\r\n new appSaveFormDialogOptions();\r\n var id = $(this).closest('[data-item-id]').attr('data-item-id');\r\n var confirmOptions = new appConfirmDialogOptions();\r\n site.dialogs.confirm(\"Are you sure?\", function (isConfirmed) {\r\n if (!isConfirmed)\r\n return;\r\n $.post(self._args.deleteUrl, { id: id }, function () {\r\n self.uiElements.listInnerPagingSorting.sendRequest({}, false);\r\n });\r\n }, confirmOptions);\r\n });\r\n };\r\n playerHandler.prototype.updateStatus = function () {\r\n var self = this;\r\n if (this._args.loggedUser && this._args.loggedUser != '') {\r\n $.get(self._args.updateStatusUrl, { playerId: self._args.loggedUser }, function (data) {\r\n self.uiElements.statusContainer.find(\".standart-player-info\").replaceWith(data);\r\n });\r\n }\r\n this.getRestrictions();\r\n };\r\n playerHandler.prototype.getBetsAsString = function () {\r\n var $bets = this.uiElements.container.find(\"[data-bet]\");\r\n var $layBets = this.uiElements.container.find(\"[data-lay-bet]\");\r\n var betsString = \"\";\r\n var layBetsString = \"\";\r\n $.each($bets, function (index, val) {\r\n var value = $(val).val();\r\n if (value) {\r\n var horseName = $(val).closest(\"tr\").find(\".horse-name\").text();\r\n var odds = $(val).closest(\"tr\").find(\"[data-odds]\").text();\r\n betsString += \"

\" + horseName + \" - \" + odds + \" - \" + value + \"

\";\r\n }\r\n });\r\n $.each($layBets, function (index, val) {\r\n var value = $(val).val();\r\n if (value) {\r\n var horseName = $(val).closest(\"tr\").find(\".horse-name\").text();\r\n var odds = $(val).closest(\"tr\").find(\"[data-lay-odds]\").text();\r\n layBetsString += \"

\" + horseName + \" - \" + odds + \" - \" + value + \"

\";\r\n }\r\n });\r\n var result = \"\";\r\n if (betsString.length > 0) {\r\n result += \"

Back Odds:

\" + betsString;\r\n }\r\n if (layBetsString.length > 0) {\r\n result += \"

Lay Odds:

\" + layBetsString;\r\n }\r\n return result + \"
\";\r\n };\r\n playerHandler.prototype.isJson = function (str) {\r\n if (typeof str == \"object\")\r\n return true;\r\n try {\r\n JSON.parse(str);\r\n }\r\n catch (e) {\r\n return false;\r\n }\r\n return true;\r\n };\r\n playerHandler.prototype.onSelect = function (dateText) {\r\n this.uiElements.listInnerPagingSorting.sendRequest({ Date: dateText == \"\" ? null : dateText }, false);\r\n this.updateStatus();\r\n };\r\n playerHandler.prototype.startConnection = function () {\r\n var self = this;\r\n self.connection = null;\r\n self.connection = new signalR.HubConnectionBuilder()\r\n .withUrl(\"/raceoddsPlayer\")\r\n .build();\r\n self.raceResultsConnection = new signalR.HubConnectionBuilder()\r\n .withUrl(\"/playerbethub\")\r\n .build();\r\n self.raceResultsConnection.start().catch(function (err) { return console.log(err); });\r\n var refreshStatusAction = function () {\r\n self.updateStatus();\r\n };\r\n this.raceResultsConnection.on(\"RefreshRaceResults\", function (raceId) {\r\n refreshStatusAction();\r\n });\r\n var refreshStatusActionOnExcludeHorse = function (raceId) {\r\n self.updateIfRaceExists(raceId);\r\n };\r\n self.connection.start().catch(function (err) { return console.log(err); });\r\n var refreshAction = function (raceId, betLocationId, bookmakerId, userId) { self.refreshBets(raceId, betLocationId, bookmakerId, userId); self.updateStatus(); };\r\n self.raceResultsConnection.on(\"HorsesExcluded\", function (raceId) {\r\n refreshStatusActionOnExcludeHorse(raceId);\r\n refreshAction(raceId, null, null, null);\r\n });\r\n self.connection.on(\"UpdateRaceInfoPlayer\", function (raceId, betLocationId, bookmakerId, userId) {\r\n refreshAction(raceId, betLocationId, bookmakerId, userId);\r\n });\r\n var stopRaceAction = function (raceId, isStopped) { return self.stopBets(raceId, isStopped); };\r\n self.connection.on(\"StopBets\", function (raceId, isStopped) {\r\n stopRaceAction(raceId, isStopped);\r\n });\r\n };\r\n playerHandler.prototype.refreshBets = function (raceId, betLocationId, bookmakerId, userId, clearInputs) {\r\n if (clearInputs === void 0) { clearInputs = false; }\r\n var self = this;\r\n if (!self._lock)\r\n $.post(self._args.refreshUrl, { raceId: raceId, betLocationId: betLocationId, bookmakerId: bookmakerId, userId: userId }, function (data) {\r\n self.refreshInner(data, clearInputs);\r\n });\r\n };\r\n playerHandler.prototype.getHistoryMarkup = function (trIndex, betIndex, historyIndex, model) {\r\n var self = this;\r\n var result = \"
\";\r\n var idInp = \"\";\r\n var betTypeInp = \"\";\r\n var horseIdInp = \"\";\r\n var denominatorInp = \"\";\r\n var numeratorInp = \"\";\r\n var betInp = \"\";\r\n var layDenominatorInp = \"\";\r\n var layNumeratorInp = \"\";\r\n var layBetInp = \"\";\r\n result += (idInp + betTypeInp + horseIdInp + denominatorInp + numeratorInp + betTypeInp + betInp + layDenominatorInp + layNumeratorInp + layBetInp);\r\n var needToShowLayBet = model.layNumerator != null && model.layDenominator != null && model.layNumerator != 0 && model.layDenominator != 0 && model.layBet != null;\r\n var needToShowBackBet = model.numerator != null && model.denominator != null && model.numerator != 0 && model.denominator != 0 && model.bet != null;\r\n var betStr = (needToShowBackBet ? self.round(model.numerator) + \"/\" + self.round(model.denominator) + \" - \" + model.bet + \" \" : \"\")\r\n + (needToShowLayBet ? self.round(model.layNumerator) + \"/\" + self.round(model.layDenominator) + \" - \" + model.layBet : \"\");\r\n var placedBet = \"
\" + betStr + \"
\";\r\n result += placedBet + \"
\";\r\n return result;\r\n };\r\n playerHandler.prototype.refreshInner = function (data, clearInputs) {\r\n if (clearInputs === void 0) { clearInputs = false; }\r\n var self = this;\r\n $.each(data.playerBetsListModel.playerBets, function (ind, val) {\r\n var $trs = $(\"[data-bookmaker-id=''][data-bet-location-id='']\", self.uiElements.container);\r\n $.each($trs, function (i, tr) {\r\n var $tr = $(tr);\r\n var $trIndex = parseInt($(tr).closest(\".standart-bet\").find(\"[data-index]\").attr(\"data-index\"));\r\n var $nextTr = $tr.next(\".placed-bet-row\");\r\n var trHorseId = $tr.attr(\"data-horse-id\");\r\n $.each(val.saveBetModels, function (j, v) {\r\n if (clearInputs) {\r\n $tr.find(\"[data-bet]\").val(\"\");\r\n $tr.find(\"[data-lay-bet]\").val(\"\");\r\n }\r\n if (v.horseId.toString() == trHorseId) {\r\n if ((v.numerator != 0 && v.denominator != 0) && (v.numerator != null && v.denominator != null)) {\r\n $tr.find(\"[data-bet]\").toggle(true);\r\n }\r\n else {\r\n $tr.find(\"[data-bet]\").toggle(false);\r\n }\r\n if ((v.layNumerator != 0 && v.layDenominator != 0) && (v.layNumerator != null && v.layDenominator != null)) {\r\n $tr.find(\"[data-lay-bet]\").toggle(true);\r\n }\r\n else {\r\n $tr.find(\"[data-lay-bet]\").toggle(false);\r\n }\r\n if (!v.excluded) {\r\n $tr.removeClass(\"disabled\");\r\n $tr.find(\"[data-scratched]\").text('');\r\n $tr.find(\"[data-excluded-hidden]\").attr(\"value\", \"False\");\r\n if ($nextTr.length > 0) {\r\n $nextTr.css(\"display\", \"\");\r\n }\r\n }\r\n else {\r\n $tr.addClass(\"disabled\");\r\n $tr.find(\"[data-scratched]\").text(\"Scratched\");\r\n $tr.find(\"[data-excluded-hidden]\").attr(\"value\", \"True\");\r\n if ($nextTr.length > 0) {\r\n $nextTr.css(\"display\", \"none\");\r\n }\r\n }\r\n var oldNumerator = self.parseOdd($tr.find(\"[data-numerator]\").attr(\"data-numerator\"));\r\n var oldDenominator = self.parseOdd($tr.find(\"[data-denominator]\").attr(\"data-denominator\"));\r\n var oldLayNumerator = self.parseOdd($tr.find(\"[data-lay-numerator]\").attr(\"data-lay-numerator\"));\r\n var oldLayDenominator = self.parseOdd($tr.find(\"[data-lay-denominator]\").attr(\"data-lay-denominator\"));\r\n var priceChangeTypeLay = self.getPriceChange(oldLayNumerator, oldLayDenominator, v.layNumerator, v.layDenominator);\r\n var priceChangeType = self.getPriceChange(oldNumerator, oldDenominator, v.numerator, v.denominator);\r\n self.setOdds(v.numerator, v.denominator, v.layNumerator, v.layDenominator, priceChangeType, priceChangeTypeLay, $tr);\r\n if (v.history.length > 0) {\r\n var markup_1 = \"\";\r\n if ($nextTr.length == 0) {\r\n var style = v.excluded ? \"display:none;\" : \"\";\r\n markup_1 = \"
Placed bets:
\";\r\n $.each(v.history, function (jj, h) {\r\n markup_1 += self.getHistoryMarkup($trIndex, j, jj, h);\r\n });\r\n markup_1 += \"
\";\r\n $tr.after(markup_1);\r\n }\r\n else {\r\n $.each(v.history, function (jj, h) {\r\n markup_1 += self.getHistoryMarkup($trIndex, j, jj, h);\r\n });\r\n $nextTr.find(\".placed-bets-wrapper\").html(markup_1);\r\n }\r\n }\r\n }\r\n });\r\n });\r\n });\r\n self.disableOrEnableSubmit();\r\n };\r\n playerHandler.prototype.checkBet = function (maxBet, currentProjBalance, odds, value) {\r\n var win = value * odds;\r\n var projBalanceWithBet = currentProjBalance + win;\r\n return maxBet && maxBet != 0 ? projBalanceWithBet < maxBet : true;\r\n };\r\n playerHandler.prototype.checkLayBet = function (maxBet, currentProjBalance, odds, value) {\r\n var win = value;\r\n var projBalanceWithBet = currentProjBalance + win;\r\n return maxBet && maxBet != 0 ? projBalanceWithBet < maxBet : true;\r\n };\r\n playerHandler.prototype.checkMaxBet = function (maxBet, odds, value) {\r\n var win = value * odds;\r\n return maxBet && maxBet != 0 ? win < maxBet : true;\r\n };\r\n playerHandler.prototype.checkLayMaxBet = function (maxBet, odds, value) {\r\n var win = value;\r\n return maxBet && maxBet != 0 ? win < maxBet : true;\r\n };\r\n playerHandler.prototype.parseOdd = function (odd) {\r\n var result = 0;\r\n if (odd && odd != '') {\r\n result = parseFloat(odd);\r\n }\r\n return result;\r\n };\r\n playerHandler.prototype.round = function (num) {\r\n return Math.round((num + Number.EPSILON) * 100) / 100;\r\n };\r\n playerHandler.prototype.getPriceChange = function (numerator, denominator, newNumerator, newDenominator) {\r\n var result = priceChange.NotChanged;\r\n if (numerator != 0 && denominator != 0 && newDenominator != 0 && newNumerator != 0) {\r\n var oldK = numerator / denominator;\r\n var newK = newNumerator / newDenominator;\r\n if (oldK < newK)\r\n return priceChange.PriceGoUp;\r\n if (oldK > newK)\r\n return priceChange.PriceGoDown;\r\n return result;\r\n }\r\n return result;\r\n };\r\n playerHandler.prototype.setOdds = function (numerator, denominator, layNumerator, layDenominator, type, layType, $tr) {\r\n var $oddsTd = $tr.find(\"[data-odds]\");\r\n var $layOddsTd = $tr.find(\"[data-lay-odds]\");\r\n $layOddsTd.attr(\"data-lay-numerator\", layNumerator);\r\n $layOddsTd.attr(\"data-lay-denominator\", layDenominator);\r\n $oddsTd.attr(\"data-numerator\", numerator);\r\n $oddsTd.attr(\"data-denominator\", denominator);\r\n $tr.find(\"[data-lay-denominator-hidden]\").attr(\"value\", layDenominator);\r\n $tr.find(\"[data-lay-numerator-hidden]\").attr(\"value\", layNumerator);\r\n $tr.find(\"[data-denominator-hidden]\").attr(\"value\", denominator);\r\n $tr.find(\"[data-numerator-hidden]\").attr(\"value\", numerator);\r\n if ((numerator == 0 && denominator == 0) || (numerator == null && denominator == null)) {\r\n $oddsTd.text('');\r\n }\r\n if ((layNumerator == null && layDenominator == null) || (layDenominator == 0 && layNumerator == 0)) {\r\n $layOddsTd.text('');\r\n }\r\n if ((numerator != 0 && denominator != 0) && (numerator != null && denominator != null)) {\r\n $oddsTd.text(parseFloat(numerator.toFixed(2)) + \"/\" + parseFloat(denominator.toFixed(2)));\r\n }\r\n if ((layNumerator != null && layDenominator != null) && (layDenominator != 0 && layNumerator != 0)) {\r\n $layOddsTd.text(parseFloat(layNumerator.toFixed(2)) + \"/\" + parseFloat(layDenominator.toFixed(2)));\r\n }\r\n if (layType == priceChange.NotChanged) {\r\n }\r\n if (layType == priceChange.PriceGoDown) {\r\n $layOddsTd.removeClass(\"standart-text-green\");\r\n $layOddsTd.addClass(\"standart-text-red\");\r\n }\r\n if (layType == priceChange.PriceGoUp) {\r\n $layOddsTd.removeClass(\"standart-text-red\");\r\n $layOddsTd.addClass(\"standart-text-green\");\r\n }\r\n if (type == priceChange.NotChanged) {\r\n }\r\n if (type == priceChange.PriceGoDown) {\r\n $oddsTd.removeClass(\"standart-text-green\");\r\n $oddsTd.addClass(\"standart-text-red\");\r\n }\r\n if (type == priceChange.PriceGoUp) {\r\n $oddsTd.removeClass(\"standart-text-red\");\r\n $oddsTd.addClass(\"standart-text-green\");\r\n }\r\n };\r\n playerHandler.prototype.stopBets = function (raceId, isStopped) {\r\n var self = this;\r\n var $textContainers = self.uiElements.container.find(\"[data-race-message-id='\" + raceId + \"']\");\r\n var $form = $(\"form\", $(\".raceBets\"));\r\n $form.attr(\"data-stopped\", isStopped ? \"true\" : \"false\");\r\n $.each($textContainers, function (index, val) {\r\n var $textContainer = $(val);\r\n if (isStopped) {\r\n $textContainer.html(\"Bets has been stopped\");\r\n $(\".raceBets\", self.uiElements.container).find(\":submit\").prop(\"disabled\", true);\r\n }\r\n else {\r\n $textContainer.html(\"\");\r\n $(\".raceBets\", self.uiElements.container).find(\":submit\").prop(\"disabled\", false);\r\n }\r\n });\r\n };\r\n playerHandler.prototype.disableOrEnableSubmit = function () {\r\n var $form = $(\"form\", $(\".raceBets\"));\r\n var isStopped = $form.attr(\"data-stopped\");\r\n if (isStopped != \"true\") {\r\n var $bets = $(\"[data-bet], [data-lay-bet]\");\r\n var $submitBtn = $(\"input[type='submit']\", $form);\r\n var notEmptyBets = $bets.filter(function (index, $el) {\r\n var val = $($el).val();\r\n return val && val != '' && parseFloat(val) > 0;\r\n });\r\n if (notEmptyBets.length > 0) {\r\n $submitBtn.prop('disabled', false);\r\n }\r\n else {\r\n $submitBtn.prop('disabled', true);\r\n }\r\n }\r\n };\r\n playerHandler.prototype.onRefreshRaceList = function () {\r\n var self = this;\r\n var $items = self.uiElements.container.find(\".race\");\r\n var $noRf = self.uiElements.container.find(\".standart-empty-state\");\r\n var $bets = $(\".race-bets-container\", self.uiElements.container);\r\n var $noBetsHtml = \"
Please, select a race to the left to view detail
\";\r\n if ($items.length == 0) {\r\n $noRf.removeClass(\"d-none\");\r\n $noRf.addClass(\"d-flex\");\r\n $bets.removeClass(\"d-lg-flex d-flex\");\r\n $bets.addClass(\"d-none\");\r\n }\r\n else {\r\n $noRf.removeClass(\"d-flex\");\r\n $noRf.addClass(\"d-none\");\r\n $bets.addClass(\"d-lg-flex d-flex\");\r\n $bets.removeClass(\"d-none\");\r\n $bets.find(\".raceBets\").html($noBetsHtml);\r\n }\r\n };\r\n playerHandler.prototype.getRestrictions = function () {\r\n var $self = this;\r\n $.get($self._args.getRestrictionsUrl, function (data) {\r\n $self._restrictions = data;\r\n $self.getBalances();\r\n });\r\n };\r\n playerHandler.prototype.calcBets = function () {\r\n var $form = $(\"form\", $(\".raceBets\"));\r\n var $bets = $(\"[data-bet], [data-lay-bet]\", $form).closest(\"tr\");\r\n var startBalanceWithBets = 0;\r\n $.each($bets, function (ind, val) {\r\n var $elTr = $(val);\r\n var value = $elTr.find(\"[data-bet]\").val();\r\n var layValue = $elTr.find(\"[data-lay-bet]\").val();\r\n if ((!value || value == \"\") && (!layValue || layValue == \"\"))\r\n return;\r\n var layNumerator = $elTr.find(\"[data-lay-numerator]\").attr(\"data-lay-numerator\");\r\n var layDenominator = $elTr.find(\"[data-lay-denominator]\").attr(\"data-lay-denominator\");\r\n var layVal = 0;\r\n var backVal = 0;\r\n if (layNumerator != \"\" && layDenominator != \"\" && layValue != \"\") {\r\n layVal = parseFloat(layValue) * (parseFloat(layNumerator) / parseFloat(layDenominator));\r\n }\r\n if (value != \"\") {\r\n backVal = parseFloat(value);\r\n }\r\n var winBet = backVal + layVal;\r\n startBalanceWithBets += winBet;\r\n });\r\n return startBalanceWithBets;\r\n };\r\n playerHandler.prototype.calculateExistedBets = function () {\r\n var $form = $(\"form\", $(\".raceBets\"));\r\n var $bets = $(\"[data-bet]\", $form).closest(\"tr\");\r\n var startBalanceWithBets = 0;\r\n var maxBet = 0;\r\n var maxLayBet = 0;\r\n $.each($bets, function (ind, val) {\r\n var $elTr = $(val);\r\n var value = parseFloat($elTr.find(\"[data-bet]\").val());\r\n var layValue = parseFloat($elTr.find(\"[data-lay-bet]\").val());\r\n var $oddsTd = $($elTr).closest(\"tr\").find(\"[data-odds]\");\r\n var numerator = parseFloat($oddsTd.attr(\"data-numerator\"));\r\n var denominator = parseFloat($oddsTd.attr(\"data-denominator\"));\r\n var layNumerator = parseFloat($oddsTd.attr(\"data-lay-numerator\"));\r\n var layDenominator = parseFloat($oddsTd.attr(\"data-lay-denominator\"));\r\n if (value > maxBet) {\r\n maxBet = value * (numerator / denominator);\r\n }\r\n if (layValue > maxBet) {\r\n maxLayBet = layValue * (layNumerator / layDenominator) + layValue;\r\n }\r\n });\r\n startBalanceWithBets += (maxBet + maxLayBet);\r\n return startBalanceWithBets;\r\n };\r\n playerHandler.prototype.calculateBetsSum = function () {\r\n var $form = $(\"form\", $(\".raceBets\"));\r\n var $bets = $(\"[data-bet]\", $form).closest(\"tr\");\r\n var startBets = 0;\r\n $.each($bets, function (ind, val) {\r\n var $elTr = $(val);\r\n var value = isNaN(parseFloat($elTr.find(\"[data-bet]\").val())) ? 0 : parseFloat($elTr.find(\"[data-bet]\").val());\r\n var layValue = isNaN(parseFloat($elTr.find(\"[data-lay-bet]\").val())) ? 0 : parseFloat($elTr.find(\"[data-lay-bet]\").val());\r\n startBets += ((value !== null && value !== void 0 ? value : 0) + (layValue !== null && layValue !== void 0 ? layValue : 0));\r\n });\r\n return startBets;\r\n };\r\n playerHandler.prototype.getBalances = function () {\r\n var self = this;\r\n $.get(self._args.getBalanceUrl, function (data) {\r\n self._balance = data;\r\n });\r\n };\r\n playerHandler.prototype.validateOverallBalance = function (value, $el) {\r\n var self = this;\r\n if (!value || value == '')\r\n return true;\r\n if ((self._restrictions.overallBalanceRestriction && self._restrictions.overallBalanceRestriction != 0) && (self._balance && self._balance.currentBalance.currentBalanceWithProjectedWin && self._balance.currentBalance.currentBalanceWithProjectedWin != 0)) {\r\n var overallBalanceRestriction = self._restrictions.overallBalanceRestriction;\r\n var currentBalance = self._balance.currentBalance.currentBalanceWithProjectedWin;\r\n var allBetsOnView = self.calculateExistedBets();\r\n if ((currentBalance + allBetsOnView) > overallBalanceRestriction)\r\n return false;\r\n return true;\r\n }\r\n return true;\r\n };\r\n playerHandler.prototype.getProjectedWin = function (raceId, horseId) {\r\n var url = this._args.getProjectedWinUrl + \"?raceId=\" + raceId + \"&horseId=\" + horseId;\r\n return $.ajax({ method: 'get', url: url, dataType: 'json', async: false });\r\n };\r\n playerHandler.prototype.validatePlayerBalance = function (value, $el) {\r\n var self = this;\r\n if (!value || value == '')\r\n return true;\r\n if (self._balance && self._balance.currentBalance && self._balance.currentBalance.currentBalance != 0) {\r\n var currentBalance = self._balance.currentBalance.currentBalance;\r\n var allBetsOnView = self.calculateBetsSum();\r\n if ((currentBalance - allBetsOnView) < 0)\r\n return false;\r\n return true;\r\n }\r\n return true;\r\n };\r\n playerHandler.prototype.updateIfRaceExists = function (raceId) {\r\n var self = this;\r\n if (self.uiElements.container.find(\"[data-race-id='\" + raceId + \"']\").length > 0) {\r\n self.updateStatus();\r\n }\r\n };\r\n playerHandler.prototype.addValidationsForForm = function () {\r\n var $form = $(\"form\", $(\".raceBets\"));\r\n var self = this;\r\n var maxBet = $form.find(\"#MaxBet\").val();\r\n var raceId = $form.find(\"#RaceId\").val();\r\n if ((maxBet && maxBet != '') || (self._restrictions && self._restrictions.amountToWinRestriction && self._restrictions.amountToWinRestriction != 0)) {\r\n $.validator.addMethod(\"isBetValid\", function (value, element) {\r\n if (!value)\r\n return true;\r\n var horseId = $(element).closest(\"tr\").attr(\"data-horse-id\");\r\n self.getProjectedWin(parseInt(raceId), parseInt(horseId)).done(function (data) {\r\n self._projectedWin = data;\r\n });\r\n if ($(element).hasClass(\"lay-input\")) {\r\n var $oddsTd = $(element).closest(\"tr\").find(\"[data-lay-odds]\");\r\n var numerator = $oddsTd.attr(\"data-lay-numerator\");\r\n var denominator = $oddsTd.attr(\"data-lay-denominator\");\r\n var odds = parseFloat(numerator) / parseFloat(denominator);\r\n var maxRestrictionOnPlayer = self._restrictions && self._restrictions.amountToWinRestriction && self._restrictions.amountToWinRestriction != 0\r\n ? self.checkLayBet(self._restrictions.amountToWinRestriction, self._projectedWin.projectedWinAmount, odds, parseFloat(value))\r\n : true;\r\n return maxRestrictionOnPlayer;\r\n }\r\n else {\r\n var $oddsTd = $(element).closest(\"tr\").find(\"[data-odds]\");\r\n var numerator = $oddsTd.attr(\"data-numerator\");\r\n var denominator = $oddsTd.attr(\"data-denominator\");\r\n var odds = parseFloat(numerator) / parseFloat(denominator);\r\n var maxRestrictionOnPlayer = self._restrictions && self._restrictions.amountToWinRestriction && self._restrictions.amountToWinRestriction != 0\r\n ? self.checkBet(self._restrictions.amountToWinRestriction, self._projectedWin.projectedWinAmount, odds, parseFloat(value))\r\n : true;\r\n return maxRestrictionOnPlayer;\r\n }\r\n }, function (params, element) {\r\n var value = $(element).val();\r\n if (!value)\r\n return \"\";\r\n return \"Please check win limit. Limit is:\" + self._restrictions.amountToWinRestriction;\r\n });\r\n }\r\n if ((maxBet && maxBet != '')) {\r\n $.validator.addMethod(\"isMaxBetValid\", function (value, element) {\r\n if (!value)\r\n return true;\r\n if ($(element).hasClass(\"lay-input\")) {\r\n var $oddsTd = $(element).closest(\"tr\").find(\"[data-lay-odds]\");\r\n var numerator = $oddsTd.attr(\"data-lay-numerator\");\r\n var denominator = $oddsTd.attr(\"data-lay-denominator\");\r\n var odds = parseFloat(numerator) / parseFloat(denominator);\r\n var maxRestrictionOnRaceError = maxBet && maxBet != '' ? self.checkLayMaxBet(parseFloat(maxBet), odds, parseFloat(value)) : true;\r\n return maxRestrictionOnRaceError;\r\n }\r\n else {\r\n var $oddsTd = $(element).closest(\"tr\").find(\"[data-odds]\");\r\n var numerator = $oddsTd.attr(\"data-numerator\");\r\n var denominator = $oddsTd.attr(\"data-denominator\");\r\n var odds = parseFloat(numerator) / parseFloat(denominator);\r\n var maxRestrictionOnRaceError = maxBet && maxBet != '' ? self.checkMaxBet(parseFloat(maxBet), odds, parseFloat(value)) : true;\r\n return maxRestrictionOnRaceError;\r\n }\r\n }, function (params, element) {\r\n var value = $(element).val();\r\n if (!value)\r\n return \"\";\r\n return \"Please check win limit. Limit is:\" + maxBet;\r\n });\r\n }\r\n var $bets = $form.find(\"[data-bet], [data-lay-bet]\");\r\n if (self._restrictions.overallBalanceRestriction && self._restrictions.overallBalanceRestriction != 0) {\r\n $.validator.addMethod(\"isOverallBalanceValid\", function (val, element) {\r\n return self.validateOverallBalance(val, $(element));\r\n }, \"Overall balance for user was exceeded\");\r\n }\r\n $.validator.addMethod(\"isOverallBalanceValidForUser\", function (val, element) {\r\n return self.validatePlayerBalance(val, $(element));\r\n }, \"You cannot place a bet because your balance will become negative.\");\r\n if ((self._restrictions.overallBalanceRestriction && self._restrictions.overallBalanceRestriction != 0)\r\n || ((maxBet && maxBet != '') || (self._restrictions && self._restrictions.amountToWinRestriction && self._restrictions.amountToWinRestriction != 0)) || (self._balance && self._balance.currentBalance)) {\r\n var opts_1 = {\r\n success: function ($label, $input) {\r\n $($input).removeClass(\"input-validation-error is-invalid\");\r\n },\r\n errorPlacement: function (error, element) {\r\n var placement = $(element).data('error');\r\n if (placement) {\r\n $(placement).append(error);\r\n }\r\n else {\r\n error.insertAfter(element);\r\n }\r\n $(element).addClass(\"input-validation-error is-invalid\");\r\n error.insertAfter(element);\r\n },\r\n rules: {}\r\n };\r\n var optsJson_1 = {};\r\n optsJson_1.isOverallBalanceValidForUser = true;\r\n if ((self._restrictions.overallBalanceRestriction && self._restrictions.overallBalanceRestriction != 0)) {\r\n optsJson_1.isOverallBalanceValid = true;\r\n }\r\n if (((maxBet && maxBet != ''))) {\r\n optsJson_1.isMaxBetValid = true;\r\n }\r\n if (((self._restrictions && self._restrictions.amountToWinRestriction && self._restrictions.amountToWinRestriction != 0))) {\r\n optsJson_1.isBetValid = true;\r\n }\r\n $.each($bets, function (index, v) {\r\n var $b = $(v);\r\n opts_1.rules[$b.attr('name')] = optsJson_1;\r\n });\r\n $form.validate(opts_1);\r\n }\r\n };\r\n return playerHandler;\r\n}());\r\nvar priceChange;\r\n(function (priceChange) {\r\n priceChange[priceChange[\"PriceGoUp\"] = 1] = \"PriceGoUp\";\r\n priceChange[priceChange[\"PriceGoDown\"] = 2] = \"PriceGoDown\";\r\n priceChange[priceChange[\"NotChanged\"] = 3] = \"NotChanged\";\r\n})(priceChange || (priceChange = {}));\r\nvar playerHandlerArgs = (function () {\r\n function playerHandlerArgs() {\r\n }\r\n return playerHandlerArgs;\r\n}());\r\nvar projectedWinModel = (function () {\r\n function projectedWinModel() {\r\n }\r\n return projectedWinModel;\r\n}());\r\nvar playerRestrictions = (function () {\r\n function playerRestrictions() {\r\n }\r\n return playerRestrictions;\r\n}());\r\nvar playerBalanceModel = (function () {\r\n function playerBalanceModel() {\r\n }\r\n return playerBalanceModel;\r\n}());\r\nvar playerCurrentBalanceModel = (function () {\r\n function playerCurrentBalanceModel() {\r\n }\r\n return playerCurrentBalanceModel;\r\n}());\r\nvar playerBetListModel = (function () {\r\n function playerBetListModel() {\r\n }\r\n return playerBetListModel;\r\n}());\r\nvar playerBetModel = (function () {\r\n function playerBetModel() {\r\n }\r\n return playerBetModel;\r\n}());\r\nvar playerBetItemModel = (function () {\r\n function playerBetItemModel() {\r\n }\r\n return playerBetItemModel;\r\n}());\r\nvar exportFilter = (function () {\r\n function exportFilter(container) {\r\n var _this = this;\r\n this.uiElements = {\r\n container: null,\r\n filterForm: null,\r\n exportForm: null\r\n };\r\n this.uiElements.container = $(container);\r\n this.uiElements.filterForm = $(\".filter\", this.uiElements.container);\r\n this.uiElements.exportForm = $(\".export-form\", this.uiElements.container);\r\n var submitAction = function () { _this.submitForm(); site.validators.refreshValidators(_this.uiElements.container); };\r\n $(\"#Date\", this.uiElements.container).datepicker({ dateFormat: \"mm/dd/yy\", onClose: submitAction });\r\n $(\".user-ids\", this.uiElements.container).select2({\r\n placeholder: 'All Operators',\r\n containerCssClass: 'form-control',\r\n dropdownAutoWidth: true\r\n });\r\n site.validators.refreshValidators(this.uiElements.container);\r\n this.subscribeToEvents();\r\n }\r\n exportFilter.prototype.subscribeToEvents = function () {\r\n var _this = this;\r\n var submitAction = function () { return _this.submitForm(); };\r\n this.uiElements.filterForm.on(\"change\", \"#TrackId\", submitAction);\r\n this.uiElements.filterForm.on(\"change\", \"#UserId\", submitAction);\r\n };\r\n exportFilter.prototype.submitForm = function () {\r\n var _this = this;\r\n this.uiElements.filterForm.validate();\r\n var updateRacesAction = function (data) {\r\n _this.uiElements.exportForm.html(data);\r\n };\r\n if (this.uiElements.filterForm.valid()) {\r\n $.post(this.uiElements.filterForm.attr(\"action\"), this.uiElements.filterForm.serialize(), function (data) {\r\n updateRacesAction(data);\r\n });\r\n }\r\n };\r\n return exportFilter;\r\n}());\r\nvar raceAjaxImport = (function () {\r\n function raceAjaxImport(options) {\r\n this.uiElements = {\r\n container: null,\r\n fileInput: null\r\n };\r\n this.options = options;\r\n this.uiElements.container = $(options.container);\r\n this.uiElements.fileInput = $(\".file-input-upload\", this.uiElements.container);\r\n this.initUploader();\r\n }\r\n raceAjaxImport.prototype.initUploader = function () {\r\n var _this = this;\r\n var processResult = function (data) { return _this.processResult(data); };\r\n this.uiElements.fileInput.fileupload({\r\n url: this.options.url,\r\n paramName: \"Json\",\r\n autoUpload: true,\r\n fileInput: $(this.uiElements.fileInput),\r\n replaceFileInput: true,\r\n start: function (e, data) {\r\n },\r\n done: function (e, data) {\r\n processResult(data.result);\r\n },\r\n fail: function (e, data) {\r\n processResult(data.result);\r\n }\r\n });\r\n };\r\n raceAjaxImport.prototype.processResult = function (result) {\r\n if (!result.success) {\r\n var dialogResult_1 = appDialogShow({\r\n body: this.getErrorMessage(result),\r\n title: \"Error\",\r\n dialogClass: \"min-h-200 dialog-450px big-padding\",\r\n headerClass: \"border-bottom-0\",\r\n buttons: [\r\n {\r\n text: 'OK', buttonClass: 'btn-primary', click: function () { dialogResult_1.close(); }\r\n }\r\n ]\r\n });\r\n }\r\n else {\r\n if (result.reload) {\r\n setTimeout(function () { return window.location.reload(); }, 2500);\r\n }\r\n if (result.redirect) {\r\n window.location.href = result.redirect;\r\n }\r\n }\r\n };\r\n raceAjaxImport.prototype.getErrorMessage = function (response) {\r\n return response.serializtionError ? response.serializtionError : response.saveError ? response.saveError : \"\";\r\n };\r\n return raceAjaxImport;\r\n}());\r\nvar ajaxUploadOptions = (function () {\r\n function ajaxUploadOptions() {\r\n }\r\n return ajaxUploadOptions;\r\n}());\r\nvar UploadResult = (function () {\r\n function UploadResult() {\r\n }\r\n return UploadResult;\r\n}());\r\nvar raceExcelExportDialog = (function () {\r\n function raceExcelExportDialog(opts) {\r\n this.uiElements = {\r\n container: null,\r\n importButton: null\r\n };\r\n this.options = opts;\r\n this.uiElements.container = $(this.options.container);\r\n this.uiElements.importButton = $(\".export-to-excel\", this.uiElements.container);\r\n this.initDialog();\r\n }\r\n raceExcelExportDialog.prototype.initDialog = function () {\r\n var _this = this;\r\n var saveButtonAction = function (dialogContainer, exportActionType) {\r\n var formToSend = $(\".export-form\", dialogContainer.container);\r\n var $form = $(formToSend);\r\n $(\"#ExportActionType\", $form).val(exportActionType);\r\n $form.validate();\r\n if ($form.valid()) {\r\n $form.submit();\r\n dialogContainer.close();\r\n }\r\n };\r\n var cancelButtonAction = function (dialogContainer) {\r\n dialogContainer.close();\r\n };\r\n var saveAsLog = \"1\";\r\n var saveAsTimeTable = \"2\";\r\n var saveToteOdds = \"3\";\r\n this.uiElements.importButton.click(function (e) {\r\n e.preventDefault();\r\n var $btn = $(e.target);\r\n $btn.prop(\"disabled\", true);\r\n $.get(_this.options.url, function (data) {\r\n $btn.prop(\"disabled\", false);\r\n var dialogResult = appDialogShow({\r\n body: data,\r\n title: \"Export\",\r\n dialogClass: \"dialog-900px min-h-400\",\r\n });\r\n dialogResult.container.on(\"shown.bs.modal\", function () { new exportFilter(dialogResult.container); });\r\n dialogResult.container.on(\"click\", \".btn-secondary\", function () {\r\n cancelButtonAction(dialogResult);\r\n });\r\n dialogResult.container.on(\"click\", \"[data-report-type]\", function (e) {\r\n e.preventDefault();\r\n var target = $(e.target).closest(\"a\").attr(\"data-report-type\");\r\n saveButtonAction(dialogResult, target);\r\n });\r\n });\r\n });\r\n };\r\n return raceExcelExportDialog;\r\n}());\r\nvar raceExcelExportDialogOptions = (function () {\r\n function raceExcelExportDialogOptions() {\r\n }\r\n return raceExcelExportDialogOptions;\r\n}());\r\nvar raceAssignmentEdit = (function () {\r\n function raceAssignmentEdit(container, bookmakersUrl, betLocationsUrl, raceId) {\r\n var _this = this;\r\n this.uiElements = {\r\n container: null,\r\n bookmakersDropdown: null,\r\n locationsDropdown: null,\r\n usersLookup: null\r\n };\r\n this.getBetLocationsUrl = betLocationsUrl;\r\n this.getBookmakersUrl = bookmakersUrl;\r\n this.raceId = raceId;\r\n this.uiElements.container = $(container);\r\n this.uiElements.bookmakersDropdown = $(\".bookmakers-dropdown\", this.uiElements.container);\r\n this.uiElements.locationsDropdown = $(\".locations-dropdown\", this.uiElements.container);\r\n this.uiElements.usersLookup = $(\".users-lookup\", this.uiElements.container);\r\n if (this.getBetLocationsUrl && this.getBookmakersUrl) {\r\n this.uiElements.locationsDropdown.change(function ($event) {\r\n _this.onLocationChanged();\r\n });\r\n this.uiElements.bookmakersDropdown.change(function ($event) {\r\n _this.onBookmakerChanged();\r\n });\r\n }\r\n this.uiElements.usersLookup.on(\"keyup\", function ($event) {\r\n var text = $($event.target).val();\r\n _this.filterText(text, $($event.target).parents(\".filter-container\"));\r\n });\r\n this.uiElements.container.on(\"click\", \".minute-text\", function (e) {\r\n var isChecked = $(e.target).closest(\"input[type='checkbox']\").is(\":checked\");\r\n var $targetToShow = $(e.target).closest(\".check-container\").find(\".user-timeout\");\r\n var $inputToReset = $(\".form-control\", $targetToShow);\r\n console.log($inputToReset);\r\n if (isChecked) {\r\n $inputToReset.prop('disabled', false);\r\n }\r\n else {\r\n $inputToReset.val(\"\");\r\n $inputToReset.prop('disabled', true);\r\n }\r\n });\r\n }\r\n raceAssignmentEdit.prototype.filterText = function (searchTerm, container) {\r\n var $checkboxes = $(\"input[type='checkbox']\", container);\r\n if (searchTerm == '' || searchTerm == null) {\r\n $.each($checkboxes, function (index, $value) {\r\n $($value.closest(\".checkbox-item\")).toggle(true);\r\n });\r\n return;\r\n }\r\n $.each($checkboxes, function (index, $value) {\r\n var isSelected = $($value).is(\":checked\");\r\n if (!isSelected) {\r\n var text = $($value).parent().text().toLowerCase();\r\n var $checkBoxContainer = $($value.closest(\".checkbox-item\"));\r\n if (text.indexOf(searchTerm.toLowerCase()) > -1) {\r\n $checkBoxContainer.toggle(true);\r\n }\r\n else {\r\n $checkBoxContainer.toggle(false);\r\n }\r\n }\r\n });\r\n };\r\n raceAssignmentEdit.prototype.onBookmakerChanged = function () {\r\n var _this = this;\r\n $.get(this.getBetLocationsUrl, { raceId: this.raceId, bookmakerId: this.uiElements.bookmakersDropdown.val() }, function (data) {\r\n _this.updateDropdown(_this.uiElements.locationsDropdown, data);\r\n });\r\n };\r\n raceAssignmentEdit.prototype.onLocationChanged = function () {\r\n var _this = this;\r\n $.get(this.getBookmakersUrl, { raceId: this.raceId, betLocationId: this.uiElements.locationsDropdown.val() }, function (data) {\r\n _this.updateDropdown(_this.uiElements.bookmakersDropdown, data);\r\n });\r\n };\r\n raceAssignmentEdit.prototype.updateDropdown = function (dropdown, selectList) {\r\n var $dropdown = $(dropdown);\r\n var value = $dropdown.val();\r\n $dropdown.val(\"\");\r\n var firstOption = $dropdown.find(\"option\")[0];\r\n $dropdown.html(\"\");\r\n $dropdown.append(firstOption);\r\n $.each(selectList, function (ind, val) {\r\n $dropdown.append($(\"\").val(val.value).text(val.text));\r\n });\r\n $dropdown.val(value);\r\n };\r\n return raceAssignmentEdit;\r\n}());\r\nvar raceAssignmentList = (function () {\r\n function raceAssignmentList(container, options) {\r\n var _this = this;\r\n this.uiElements = {\r\n container: null,\r\n listContainer: null,\r\n copyLink: null\r\n };\r\n this.uiElements.container = $(container);\r\n this.uiElements.listContainer = $(\".list-container\", this.uiElements.container);\r\n this.uiElements.copyLink = $(\".copy-link\", this.uiElements.container);\r\n this.options = options;\r\n this.uiElements.container.on(\"click\", \".edit-link\", function ($event) {\r\n $event.preventDefault();\r\n _this.openDialog($($event.target));\r\n });\r\n this.uiElements.container.on(\"click\", \".delete-link\", function ($event) {\r\n $event.preventDefault();\r\n _this.onDelete($($event.target));\r\n });\r\n this.uiElements.copyLink.click(function (e) {\r\n e.preventDefault();\r\n _this.openCopyDialog();\r\n });\r\n }\r\n raceAssignmentList.prototype.updateList = function () {\r\n var _this = this;\r\n $.get(this.options.assignmentListUrl, { raceId: this.options.raceId }, function (data) {\r\n _this.uiElements.listContainer.html(data);\r\n if (_this.uiElements.listContainer.find(\"table\").length > 0) {\r\n $(\".copy-lnk\", _this.uiElements.container).toggle(true);\r\n }\r\n else {\r\n $(\".copy-lnk\", _this.uiElements.container).toggle(false);\r\n }\r\n });\r\n };\r\n raceAssignmentList.prototype.onDelete = function ($el) {\r\n var _this = this;\r\n var id = $el.closest(\"[data-id]\").attr('data-id');\r\n var confirmOptions = new appConfirmDialogOptions();\r\n var deleteFunction = function () { return $.post(_this.options.deleteAssignmentUrl, { id: id }, function () { return _this.updateList(); }); };\r\n site.dialogs.confirm(\"Are you sure?\", function (isConfirmed) {\r\n if (!isConfirmed)\r\n return;\r\n deleteFunction();\r\n }, confirmOptions);\r\n };\r\n raceAssignmentList.prototype.openCopyDialog = function () {\r\n var dialogOptions = {\r\n fetchParams: this.options.copyParams ? this.options.copyParams : { raceId: this.options.raceId },\r\n saveBtnText: \"Copy\",\r\n title: this.options.copyDialogTitle ? this.options.copyDialogTitle : \"Copy Assignments\",\r\n dialogClass: \"dialog-650px\"\r\n };\r\n appSaveFormDialog(this.options.copyUrl, dialogOptions);\r\n };\r\n raceAssignmentList.prototype.openDialog = function ($el) {\r\n var _this = this;\r\n var id = $el.closest(\"[data-id]\").attr('data-id');\r\n var dialogOptions = {\r\n fetchParams: { id: id, raceId: this.options.raceId },\r\n saveBtnText: \"Save\",\r\n title: this.options.editDialogLabel ? this.options.editDialogLabel : \"Edit Race Assignment\",\r\n dialogClass: \"dialog-1100px\"\r\n };\r\n appSaveFormDialog(this.options.editUrl, dialogOptions).done(function () { return _this.updateList(); });\r\n };\r\n return raceAssignmentList;\r\n}());\r\nvar raceAssignmentListOptions = (function () {\r\n function raceAssignmentListOptions() {\r\n }\r\n return raceAssignmentListOptions;\r\n}());\r\nvar raceHorseEdit = (function () {\r\n function raceHorseEdit(container) {\r\n this.uiElements = {\r\n container: null,\r\n raceHorseTextBox: null,\r\n horseIdInput: null\r\n };\r\n this.uiElements.container = $(container);\r\n this.uiElements.raceHorseTextBox = $(\"[data-autocomplete-url]\", this.uiElements.container);\r\n this.uiElements.horseIdInput = $(\"#HorseId\", this.uiElements.container);\r\n this.subscribeToEvents();\r\n }\r\n raceHorseEdit.prototype.subscribeToEvents = function () {\r\n var _this = this;\r\n this.uiElements.raceHorseTextBox.on(\"autocompleteselect\", function (event, ui) {\r\n _this.uiElements.horseIdInput.val(ui.item.data);\r\n });\r\n };\r\n return raceHorseEdit;\r\n}());\r\nvar raceHorseList = (function () {\r\n function raceHorseList(container, options) {\r\n var _this = this;\r\n this.uiElements = {\r\n container: null,\r\n listContainer: null\r\n };\r\n this.uiElements.container = $(container);\r\n this.uiElements.listContainer = $(\".horses-list\", this.uiElements.container);\r\n this.options = options;\r\n this.uiElements.container.on(\"click\", \".edit-link\", function ($evt) {\r\n $evt.preventDefault();\r\n _this.openDialog($($evt.target));\r\n });\r\n this.uiElements.container.on(\"click\", \".delete-link\", function ($evt) {\r\n $evt.preventDefault();\r\n _this.onDelete($($evt.target));\r\n });\r\n this.sortable = this.initSortable();\r\n }\r\n raceHorseList.prototype.openDialog = function ($el) {\r\n var _this = this;\r\n var id = $el.attr('data-id');\r\n var dialogOptions = {\r\n fetchParams: { id: id, raceId: this.options.raceId },\r\n saveBtnText: \"Add\",\r\n title: \"Add Horse\"\r\n };\r\n appSaveFormDialog(this.options.addHorseUrl, dialogOptions).done(function () { return _this.updateList(); });\r\n };\r\n raceHorseList.prototype.onDelete = function ($el) {\r\n var _this = this;\r\n var horseId = $el.closest(\"[data-horse-id]\").attr(\"data-horse-id\");\r\n var confirmOptions = new appConfirmDialogOptions();\r\n var deleteFunction = function () { return $.post(_this.options.deleteUrl, { HorseId: horseId, RaceId: _this.options.raceId }, function () { return _this.updateList(); }); };\r\n site.dialogs.confirm(\"Are you sure?\", function (isConfirmed) {\r\n if (!isConfirmed)\r\n return;\r\n deleteFunction();\r\n }, confirmOptions);\r\n };\r\n raceHorseList.prototype.updateList = function () {\r\n var _this = this;\r\n $.get(this.options.getList, { raceId: this.options.raceId }, function (data) {\r\n if (_this.sortable) {\r\n _this.sortable.dispose();\r\n }\r\n _this.uiElements.listContainer.html(data);\r\n _this.sortable = _this.initSortable();\r\n });\r\n };\r\n raceHorseList.prototype.initSortable = function () {\r\n var _this = this;\r\n var sort = new raceHorseSorting($(this.uiElements.listContainer), this.options.saveSortingUrl, this.options.raceId, function () { _this.updateList(); });\r\n return sort;\r\n };\r\n return raceHorseList;\r\n}());\r\nvar raceHorseOptions = (function () {\r\n function raceHorseOptions() {\r\n }\r\n return raceHorseOptions;\r\n}());\r\nvar raceHorseSorting = (function () {\r\n function raceHorseSorting(container, saveUrl, raceId, updateCallback, realtimeUpdate) {\r\n if (realtimeUpdate === void 0) { realtimeUpdate = true; }\r\n this.uiElements = {\r\n container: null\r\n };\r\n this.uiElements.container = $(container);\r\n this.updateListFunction = updateCallback;\r\n this.saveUrl = saveUrl;\r\n this.raceId = raceId;\r\n this.realtimeUpdate = realtimeUpdate;\r\n this.init();\r\n }\r\n raceHorseSorting.prototype.init = function () {\r\n var _this = this;\r\n this.sortable = $(\".sort-items-container\", this.uiElements.container);\r\n this.sortable.sortable({\r\n axis: \"y\",\r\n tolerance: \"pointer\",\r\n items: \"[data-sortable-item]\",\r\n update: function (event, ui) { return _this.onUpdate(event, ui); }\r\n });\r\n };\r\n raceHorseSorting.prototype.onUpdate = function (event, ui) {\r\n var _this = this;\r\n if (this.realtimeUpdate) {\r\n var items = this.sortable.sortable(\"toArray\", { attribute: 'data-sortable-item' });\r\n var model = {\r\n RaceId: this.raceId,\r\n HorsesIds: items\r\n };\r\n $.post(this.saveUrl, model, function () {\r\n _this.updateListFunction();\r\n });\r\n }\r\n else {\r\n this.updateListFunction();\r\n }\r\n };\r\n raceHorseSorting.prototype.dispose = function () {\r\n if (this.sortable) {\r\n this.sortable.sortable(\"destroy\");\r\n }\r\n };\r\n return raceHorseSorting;\r\n}());\r\nvar raceHorseResultList = (function () {\r\n function raceHorseResultList(container, options) {\r\n var _this = this;\r\n this.uiElements = {\r\n container: null,\r\n defineBtn: null,\r\n listContainer: null\r\n };\r\n this.uiElements.container = $(container);\r\n this.uiElements.listContainer = $(\".horse-results-list\", this.uiElements.container);\r\n this.uiElements.defineBtn = $(\".define-btn\", this.uiElements.container);\r\n this.options = options;\r\n if (options.sorting) {\r\n this.sortable = this.initSortable();\r\n }\r\n this.uiElements.defineBtn.click(function (e) {\r\n _this.onDefineClick();\r\n });\r\n }\r\n raceHorseResultList.prototype.onDefineClick = function () {\r\n var _this = this;\r\n if (this.isFormExists()) {\r\n var $form = this.uiElements.listContainer.find(\"form\");\r\n $form.validate();\r\n if ($form.valid()) {\r\n $.post(this.options.getListUrl, $form.serialize(), function (data) { _this.options.resultExists = true; _this.updateList(); });\r\n }\r\n }\r\n else {\r\n this.updateList();\r\n }\r\n };\r\n raceHorseResultList.prototype.updateList = function () {\r\n var _this = this;\r\n $.get(this.options.getListUrl, { raceId: this.options.raceId, resultsDefined: this.options.resultExists }, function (data) {\r\n if (_this.sortable) {\r\n _this.sortable.dispose();\r\n }\r\n _this.uiElements.listContainer.html(data);\r\n _this.sortable = _this.initSortable();\r\n _this.toggleButton();\r\n });\r\n };\r\n raceHorseResultList.prototype.toggleButton = function () {\r\n if (this.isFormExists()) {\r\n this.uiElements.defineBtn.text(\"Save\");\r\n this.uiElements.defineBtn.removeClass(\"btn-success\");\r\n this.uiElements.defineBtn.addClass(\"btn-primary\");\r\n }\r\n else {\r\n this.uiElements.defineBtn.text(\"Define\");\r\n this.uiElements.defineBtn.removeClass(\"btn-primary\");\r\n this.uiElements.defineBtn.addClass(\"btn-success\");\r\n }\r\n };\r\n raceHorseResultList.prototype.initSortable = function () {\r\n var _this = this;\r\n var sort = new raceHorseSorting($(this.uiElements.listContainer), this.options.saveSortingUrl, this.options.raceId, function () { _this.setOrdinals(); }, false);\r\n return sort;\r\n };\r\n raceHorseResultList.prototype.setOrdinals = function () {\r\n var $ordinals = this.uiElements.listContainer.find(\"[data-ordinal]\");\r\n var index = 1;\r\n $.each($ordinals, function (ind, val) {\r\n $(val).val(index);\r\n index++;\r\n });\r\n };\r\n raceHorseResultList.prototype.isFormExists = function () {\r\n return this.uiElements.listContainer.find(\"form\").length > 0;\r\n };\r\n return raceHorseResultList;\r\n}());\r\nvar raceHorseResultOptions = (function () {\r\n function raceHorseResultOptions() {\r\n this.sorting = true;\r\n }\r\n return raceHorseResultOptions;\r\n}());\r\nvar raceOddEdit = (function () {\r\n function raceOddEdit(container, horseOddsUrl, raceId) {\r\n var _this = this;\r\n this.uiElements = {\r\n container: null,\r\n bookmakerDropdown: null,\r\n listContainer: null\r\n };\r\n this.uiElements.container = $(container);\r\n this.uiElements.listContainer = $(\".odds-tab\", this.uiElements.container);\r\n this.uiElements.bookmakerDropdown = $(\".bookmaker-dropdown\", this.uiElements.container);\r\n this.raceId = raceId;\r\n this.horseOddsUrl = horseOddsUrl;\r\n this.uiElements.bookmakerDropdown.change(function () { return _this.onBookmakerChange(); });\r\n this.uiElements.listContainer.submit(function (event) { return _this.onSubmit(event); });\r\n this.uiElements.container.on(\"keyup\", \".numerator\", function (e) {\r\n var val = $(e.target).val();\r\n var $denominator = $(e.target).closest(\".row\").find(\".denominator\");\r\n if (val.indexOf(\".\") != -1) {\r\n $denominator.val(1).addClass(\"readonly-field\");\r\n }\r\n else {\r\n $denominator.removeClass(\"readonly-field\");\r\n }\r\n });\r\n }\r\n raceOddEdit.prototype.onBookmakerChange = function () {\r\n var _this = this;\r\n var bookmakerId = this.uiElements.bookmakerDropdown.val();\r\n $.get(this.horseOddsUrl, { raceId: this.raceId, selectedBookmakerId: bookmakerId }, function (data) {\r\n _this.uiElements.listContainer.html(data);\r\n });\r\n };\r\n raceOddEdit.prototype.onSubmit = function ($event) {\r\n var _this = this;\r\n $event.preventDefault();\r\n var $form = $($event.target);\r\n $form.find(\"input[type='submit']\").prop(\"disabled\", true);\r\n $form.validate();\r\n if (!$form.valid()) {\r\n $form.find(\"input[type='submit']\").prop(\"disabled\", true);\r\n return;\r\n }\r\n $.post($form.attr(\"action\"), $form.serialize(), function (data) {\r\n _this.uiElements.listContainer.html(data);\r\n });\r\n };\r\n return raceOddEdit;\r\n}());\r\nvar reportMapHandler = (function () {\r\n function reportMapHandler(args) {\r\n var _this = this;\r\n this.uiElements = {\r\n container: null,\r\n filterContainer: null,\r\n messageContainer: null\r\n };\r\n this.markers = [];\r\n this.itemTemplate = _.template(\"
'>\" +\r\n \"
\" +\r\n \"\" +\r\n \"
\" +\r\n \"
\" +\r\n \"
\" +\r\n \"<%=model.trackName%> - <%=model.raceNumber%> - <%=model.raceStartDate%>\" +\r\n \"
\" +\r\n \"
\" +\r\n \"

<% if (model.horseOdds.length > 0) {%>\" +\r\n \"<% _.each(model.horseOdds, function (odd) { %>\" +\r\n \"

'><%=odd.numerator%>/<%=odd.denominator%> - <%=odd.horseName%>
\" +\r\n \"
'><%=odd.layNumerator%>/<%=odd.layDenominator%> - <%=odd.horseName%>
\" +\r\n \"<% }); %>\" +\r\n \"<%}%>\" +\r\n \"<% if (model.type == 'ToteOdd') {%>\" +\r\n \"
<%=model.horseName != null ? model.horseName : 'Pool'%>
\" +\r\n \"
WNP:<%=model.wnp ? model.wnp : '-'%>
\" +\r\n \"
SHP:<%=model.shp ? model.shp : '-'%>
\" +\r\n \"
THP:<%=model.thp ? model.thp : '-'%>
\" +\r\n \"
PLP:<%=model.plp ? model.plp : '-'%>
\" +\r\n \"
FCP:<%=model.fcp ? model.fcp : '-'%>
\" +\r\n \"
TNP:<%=model.tnp ? model.tnp : '-'%>
\" +\r\n \"
QNP:<%=model.qnp ? model.qnp : '-'%>
\" +\r\n \"<%}%>\" +\r\n \"

\" +\r\n \"
\" +\r\n \"
\" +\r\n \"
\");\r\n this._args = args;\r\n this.uiElements.container = $(args.container);\r\n this.uiElements.filterContainer = $(\".users-filter\", this.uiElements.container);\r\n this.uiElements.messageContainer = $(\"#not-found\", this.uiElements.container);\r\n this.addMapsScript();\r\n this.uiElements.filterContainer.on(\"click\", \"[data-navigate-to]\", function (e) {\r\n e.preventDefault();\r\n var $target = $(e.target).closest(\"tr\");\r\n var userId = parseInt($target.closest(\"tr\").attr(\"data-navigate-to\"));\r\n _this._args.args.userIds = [];\r\n _this._args.args.userIds.push(userId);\r\n _this._args.args.raceOddId = null;\r\n _this._args.args.horseId = null;\r\n _this.highlightItems(_this._args.args);\r\n $target.closest(\"tbody\").find(\"tr\").removeClass(\"active\");\r\n $target.closest(\"tr\").addClass(\"active\");\r\n });\r\n this.uiElements.container.on(\"click\", \"[data-back]\", function (e) {\r\n e.preventDefault();\r\n var $target = $(e.target);\r\n var $sliderContainer = $target.parent().children(\".slider-container\");\r\n var $elements = $sliderContainer.find(\".slider-item\");\r\n var $currentEl = $elements.not(\":hidden\");\r\n $currentEl.toggle(false);\r\n var $prev = $currentEl.prev(\".slider-item\");\r\n if ($prev.length == 0) {\r\n $prev = $elements.last();\r\n }\r\n $prev.toggle(true);\r\n });\r\n this.uiElements.container.on(\"click\", \"[data-forward]\", function (e) {\r\n e.preventDefault();\r\n var $target = $(e.target);\r\n var $sliderContainer = $target.parent().children(\".slider-container\");\r\n var $elements = $sliderContainer.find(\".slider-item\");\r\n var $currentEl = $elements.not(\":hidden\");\r\n var $next = $currentEl.next(\".slider-item\");\r\n if ($next.length == 0) {\r\n $next = $elements.first();\r\n }\r\n $currentEl.toggle(false);\r\n $next.toggle(true);\r\n });\r\n }\r\n reportMapHandler.prototype.addMapsScript = function () {\r\n var _this = this;\r\n if (!document.querySelectorAll(\"[src=\\\"\" + this._args.googleMapsUrl + \"\\\"]\").length) {\r\n var googleScript = Object.assign(document.createElement('script'), {\r\n type: 'text/javascript',\r\n src: this._args.googleMapsUrl,\r\n onload: function () { return _this.initMap(); }\r\n });\r\n document.body.appendChild(googleScript);\r\n }\r\n else {\r\n this.initMap();\r\n }\r\n };\r\n reportMapHandler.prototype.initMap = function () {\r\n this.map = new google.maps.Map(document.getElementById('map'), {\r\n maxZoom: 18,\r\n minZoom: 4\r\n });\r\n var args = {\r\n raceId: this._args.args.raceId\r\n };\r\n this.updateMarkers(args);\r\n };\r\n reportMapHandler.prototype.updateMarkers = function (args) {\r\n var _this = this;\r\n $.post(this._args.getItemsUrl, args, function (data) {\r\n _this._args.args = data.args;\r\n _this.clearMap();\r\n _this.map.setZoom(12);\r\n if (data.items.length == 0) {\r\n $(\"#map\").toggle(false);\r\n _this.uiElements.messageContainer.toggle(true);\r\n }\r\n else {\r\n $(\"#map\").css(\"visibility\", \"\");\r\n }\r\n data.items.forEach(function (item, index) {\r\n var exists = data.items.filter(function (k, i) {\r\n var tolerance = 0.0001;\r\n return Math.hypot(k.latitude - item.latitude, k.longitude - item.longitude) <= tolerance;\r\n });\r\n var $template = \"\";\r\n if (exists.length > 1) {\r\n var slides_1 = \"\";\r\n $template = \" \" +\r\n \"\" +\r\n \"Previous\" +\r\n \"\" +\r\n \"\" +\r\n \"Next\" +\r\n \"\" +\r\n \"\";\r\n exists.forEach(function (k, j) {\r\n if (j == 0) {\r\n k.display = true;\r\n }\r\n if (j != 0) {\r\n k.removed = true;\r\n }\r\n slides_1 += _this.itemTemplate(k);\r\n });\r\n $template += \"
\" +\r\n slides_1;\r\n }\r\n else {\r\n item.display = true;\r\n $template = _this.itemTemplate(item);\r\n }\r\n if (!item.removed) {\r\n var infowindow_1 = new google.maps.InfoWindow({\r\n content: \"\"\r\n });\r\n var title = exists.length > 1 ? exists.length.toString() : item.login + \" \" + \"(\" + item.updatedDate + \")\";\r\n var marker_1 = new google.maps.Marker({\r\n position: new google.maps.LatLng(item.latitude, item.longitude),\r\n map: _this.map,\r\n label: {\r\n text: title,\r\n fontSize: \"15px\",\r\n fontWeight: \"bold\"\r\n },\r\n title: title\r\n });\r\n marker_1.connectedItems = exists.length > 0 ? exists : [item];\r\n marker_1.addListener('click', function (event) {\r\n infowindow_1.open(_this.map, marker_1);\r\n });\r\n _this.markers.push(marker_1);\r\n }\r\n });\r\n if (!_this.clusterer) {\r\n _this.clusterer = new MarkerClusterer(_this.map, _this.markers, {\r\n imagePath: 'https://github.com/googlearchive/js-marker-clusterer/raw/gh-pages/images/m',\r\n maxZoom: 18\r\n });\r\n }\r\n else {\r\n _this.clusterer.addMarkers(_this.markers);\r\n }\r\n var bounds = new google.maps.LatLngBounds();\r\n for (var i = 0; i < _this.markers.length; i++) {\r\n bounds.extend(_this.markers[i].position);\r\n }\r\n _this.map.fitBounds(bounds);\r\n _this.highlightItems(args);\r\n });\r\n };\r\n reportMapHandler.prototype.clearMap = function () {\r\n this.markers.forEach(function (marker, inde) {\r\n marker.setMap(null);\r\n });\r\n if (this.clusterer) {\r\n this.clusterer.clearMarkers();\r\n }\r\n this.markers = [];\r\n };\r\n reportMapHandler.prototype.highlightItems = function (args) {\r\n var resultMarkers = this.markers;\r\n if (args.raceOddId) {\r\n resultMarkers = resultMarkers.filter(function (val, index, arr) {\r\n return (val.connectedItems.filter(function (v, i) { return v.raceOddId == args.raceOddId; }).length > 0);\r\n });\r\n }\r\n if (args.horseId) {\r\n resultMarkers = resultMarkers.filter(function (val, index, arr) {\r\n return (val.connectedItems.filter(function (v, i) { return v.horseId == args.horseId; }).length > 0);\r\n });\r\n }\r\n if (args.userIds && args.userIds.length > 0) {\r\n resultMarkers = resultMarkers.filter(function (val, index, arr) {\r\n return (val.connectedItems.filter(function (v, i) { return args.userIds.indexOf(v.userId) > -1; }).length > 0);\r\n });\r\n }\r\n if (resultMarkers.length > 0) {\r\n this.map.setCenter(resultMarkers[0].position);\r\n }\r\n resultMarkers.forEach(function (marker, index, marks) {\r\n marker.setAnimation(google.maps.Animation.BOUNCE);\r\n setTimeout(function () {\r\n marker.setAnimation(null);\r\n }, 1000);\r\n });\r\n };\r\n return reportMapHandler;\r\n}());\r\nvar mapViewModel = (function () {\r\n function mapViewModel() {\r\n }\r\n return mapViewModel;\r\n}());\r\nvar mapViewItemModel = (function () {\r\n function mapViewItemModel() {\r\n }\r\n return mapViewItemModel;\r\n}());\r\nvar horseOddMapModel = (function () {\r\n function horseOddMapModel() {\r\n }\r\n return horseOddMapModel;\r\n}());\r\nvar reportMapArgs = (function () {\r\n function reportMapArgs() {\r\n }\r\n return reportMapArgs;\r\n}());\r\nvar reportMapOptions = (function () {\r\n function reportMapOptions() {\r\n }\r\n return reportMapOptions;\r\n}());\r\nvar testRecommendationSendHandler = (function () {\r\n function testRecommendationSendHandler(container, horsesUrl, racesUrl) {\r\n var _this = this;\r\n this.uiElements = {\r\n container: null,\r\n date: null,\r\n track: null,\r\n race: null,\r\n horse: null\r\n };\r\n this.uiElements.container = $(container);\r\n this.uiElements.date = $(\".datepicker\", this.uiElements.container);\r\n this.uiElements.track = $(\"#TrackId\", this.uiElements.container);\r\n this.uiElements.race = $(\"#RaceId\", this.uiElements.container);\r\n this.uiElements.horse = $(\"#HorseId\", this.uiElements.container);\r\n this.horsesUrl = horsesUrl;\r\n this.racesUrl = racesUrl;\r\n var onDateChanged = function () { return _this.updateRaces(); };\r\n this.uiElements.date.datepicker({ dateFormat: \"mm/dd/yy\", onClose: onDateChanged });\r\n this.subscribeToEvents();\r\n }\r\n testRecommendationSendHandler.prototype.updateRaces = function () {\r\n var _this = this;\r\n var date = this.uiElements.date.val();\r\n var track = this.uiElements.track.val();\r\n var args = {\r\n date: date,\r\n trackId: track\r\n };\r\n $.post(this.racesUrl, args, function (data) {\r\n _this.updateDropdown(_this.uiElements.race, data);\r\n });\r\n };\r\n testRecommendationSendHandler.prototype.subscribeToEvents = function () {\r\n var _this = this;\r\n this.uiElements.track.change(function () {\r\n _this.updateRaces();\r\n });\r\n this.uiElements.race.change(function () {\r\n $.post(_this.horsesUrl, { raceId: _this.uiElements.race.val() }, function (data) {\r\n _this.updateDropdown(_this.uiElements.horse, data);\r\n });\r\n });\r\n };\r\n testRecommendationSendHandler.prototype.updateDropdown = function (dropdown, selectList) {\r\n var $dropdown = $(dropdown);\r\n var value = $dropdown.val();\r\n $dropdown.val(\"\");\r\n var firstOption = $dropdown.find(\"option\")[0];\r\n $dropdown.html(\"\");\r\n $dropdown.append(firstOption);\r\n $.each(selectList, function (ind, val) {\r\n $dropdown.append($(\"\").val(val.value).text(val.text));\r\n });\r\n $dropdown.val(value);\r\n };\r\n return testRecommendationSendHandler;\r\n}());\r\nvar trackEdit = (function () {\r\n function trackEdit(container) {\r\n this.uiElements = {\r\n container: null,\r\n toteUserIds: null,\r\n trackNameTxtBox: null\r\n };\r\n this.uiElements.container = $(container);\r\n this.uiElements.toteUserIds = $(\"#ToteUserIds\", this.uiElements.container);\r\n this.uiElements.toteUserIds.select2({ dropdownAutoWidth: true, containerCssClass: '', placeholder: '' });\r\n this.subscribeToEvents();\r\n }\r\n trackEdit.prototype.subscribeToEvents = function () {\r\n };\r\n return trackEdit;\r\n}());\r\nvar traderOdds = (function () {\r\n function traderOdds(args) {\r\n this.uiElements = {\r\n container: null,\r\n listContainer: null\r\n };\r\n this._args = args;\r\n this.timers = new timeoutStorage();\r\n this.startConnection();\r\n this.uiElements.container = $(args.container);\r\n this.uiElements.listContainer = $(\".items-container\", this.uiElements.container);\r\n this.subscribeToEvents();\r\n this.refresh(this._args, true);\r\n }\r\n traderOdds.prototype.subscribeToEvents = function () {\r\n var _this = this;\r\n this.uiElements.container.on(\"click\", \"[data-race-odd-id]\", function (e) {\r\n e.preventDefault();\r\n var $td = $(e.target).closest(\"td\");\r\n var userId = $td.attr(\"data-user-id\");\r\n var raceId = $td.attr(\"data-race-id\");\r\n var raceOddId = $td.attr(\"data-race-odd-id\");\r\n var horseId = $td.attr(\"data-horse-odd-id\");\r\n var dialog = appDialogShow({\r\n dialogClass: \"dialog-750px\",\r\n body: \"

Loading...

\", buttons: [\r\n {\r\n text: \"Close\",\r\n buttonClass: 'btn-secondary',\r\n click: function () {\r\n dialog.close();\r\n }\r\n }\r\n ]\r\n });\r\n dialog.container.on(\"shown.bs.modal\", function () {\r\n $.get(_this._args.historyPopupUrl, {\r\n raceId: raceId,\r\n userId: userId,\r\n horseId: horseId,\r\n raceOddId: raceOddId\r\n }, function (data) {\r\n dialog.container.find(\".modal-body\").html(data);\r\n site.validators.refreshValidators(dialog.container);\r\n if (dialog.container.find(\"form\").length == 0) {\r\n $(\".btn-primary\", dialog.container).prop(\"disabled\", true);\r\n }\r\n else {\r\n $(\".btn-primary\", dialog.container).prop(\"disabled\", false);\r\n }\r\n });\r\n });\r\n });\r\n this.uiElements.container.on(\"click\", \"[data-horse-odd]\", function (e) {\r\n e.preventDefault();\r\n $.get(_this._args.popupUrl, function (data) {\r\n var dialog = appDialogShow({\r\n body: data, buttons: [\r\n {\r\n text: \"Close\",\r\n buttonClass: 'btn-secondary',\r\n click: function () {\r\n dialog.close();\r\n }\r\n }\r\n ]\r\n });\r\n });\r\n });\r\n };\r\n traderOdds.prototype.startConnection = function () {\r\n var _this = this;\r\n this.connection = new signalR.HubConnectionBuilder()\r\n .withUrl(\"/raceodds?raceId=\" + this._args.raceId)\r\n .build();\r\n this.connection.start().catch(function (err) { return console.log(err); });\r\n var refreshAction = function () { return _this.refresh(); };\r\n this.connection.onclose(function () {\r\n refreshAction();\r\n _this.startConnection();\r\n });\r\n this.connection.on(\"UpdateRaceInfo\", function (raceId, betLocationId, bookmakerId, userId) {\r\n if (_this._args.raceId == raceId) {\r\n _this._args.bookmakerId = bookmakerId;\r\n _this._args.betLocationId = betLocationId;\r\n _this._args.userId = userId;\r\n refreshAction();\r\n }\r\n });\r\n };\r\n traderOdds.prototype.refresh = function (args, initial) {\r\n var _this = this;\r\n if (args === void 0) { args = null; }\r\n if (initial === void 0) { initial = false; }\r\n $.post(this._args.getUrl, args == null ? this._args : args, function (data) {\r\n _this.silentRefresh(data, initial);\r\n });\r\n };\r\n traderOdds.prototype.silentRefresh = function (data, initial) {\r\n var _this = this;\r\n if (initial === void 0) { initial = false; }\r\n this.silentRefreshHorses(data);\r\n this.silentRefreshOdds(data);\r\n this.getMaxOdds();\r\n data.raceAssignments.forEach(function (assignment, index) {\r\n var isExist = _this.timers.isExists(assignment);\r\n if (isExist) {\r\n _this.timers.remove(assignment, function (assignment) { _this.removeHighlight(assignment); });\r\n _this.timers.startTimeout(assignment, function (assignment) { _this.addHighlight(assignment); });\r\n }\r\n else {\r\n if (!initial) {\r\n _this.removeHighlight(assignment);\r\n }\r\n _this.timers.startTimeout(assignment, function (assignment) { _this.addHighlight(assignment); });\r\n }\r\n });\r\n };\r\n traderOdds.prototype.updatePercentage = function () {\r\n var $tableTrs = $(\"th[data-head-user-id]\", this.uiElements.listContainer);\r\n $.each($tableTrs, function (index, val) {\r\n var $tr = $(val);\r\n var userId = $tr.attr(\"data-head-user-id\");\r\n var bookmakerId = $tr.attr(\"data-header-bookmaker-id\");\r\n var betLocationId = $tr.attr(\"data-header-location-id\");\r\n var allTds = $(\"td[data-bookmaker-td='\" + bookmakerId + \"'][data-bet-location-td='\" + betLocationId + \"'][data-user-id='\" + userId + \"']\");\r\n var sum = 0;\r\n $.each(allTds, function (i, v) {\r\n var $td = $(v);\r\n if ($td.is(\":visible\")) {\r\n var odd = parseFloat($td.attr(\"data-odd\"));\r\n if (odd != 0) {\r\n sum += 1 / (odd + 1);\r\n }\r\n }\r\n });\r\n var res = sum * 100;\r\n if (res > 0) {\r\n $(\"td[data-percentage-bookmaker-id='\" + bookmakerId + \"'][data-percentage-location-id='\" + betLocationId + \"'][data-user-percentage-id='\" + userId + \"']\").html(res.toFixed(2) + \"%\");\r\n }\r\n else {\r\n $(\"td[data-percentage-bookmaker-id='\" + bookmakerId + \"'][data-percentage-location-id='\" + betLocationId + \"'][data-user-percentage-id='\" + userId + \"']\").html(\"\");\r\n }\r\n });\r\n };\r\n traderOdds.prototype.silentRefreshHorses = function (model) {\r\n var _this = this;\r\n model.horses.forEach(function (v, ind, arr) {\r\n var $horseTr = $(\"[data-horse-id='\" + v.horseId + \"']\", _this.uiElements.listContainer);\r\n if (v.excluded) {\r\n $horseTr.css(\"display\", \"none\");\r\n }\r\n else {\r\n $horseTr.css(\"display\", \"\");\r\n }\r\n });\r\n };\r\n traderOdds.prototype.silentRefreshOdds = function (model) {\r\n model.raceAssignments.forEach(function (assignment, ind, arr) {\r\n assignment.odds.forEach(function (odd, i, odds) {\r\n var $upd = $(\"[data-horse-odd-id='\" + odd.horseId + \"'][data-assignment-id='\" + assignment.id + \"'][data-user-id='\" + assignment.userId + \"']\");\r\n $upd.attr(\"data-race-odd-id\", odd.raceOddId);\r\n if ($upd.length > 0) {\r\n if (odd.denominator != 0 && odd.numerator != 0) {\r\n $upd.html(\"\" + odd.numerator + \"/\" + odd.denominator + \"\");\r\n $upd.closest(\"td\").attr(\"data-odd\", odd.numerator / odd.denominator);\r\n }\r\n else {\r\n $upd.html(\"\" + \"\");\r\n $upd.closest(\"td\").attr(\"data-odd\", 0);\r\n }\r\n }\r\n });\r\n });\r\n };\r\n traderOdds.prototype.getMaxOdds = function () {\r\n $(\"[data-horse-odd-id]>span\").css(\"color\", \"\");\r\n var $horseTrs = $(\"[data-horse-id]\", this.uiElements.listContainer);\r\n $.each($horseTrs, function (ind, val) {\r\n var $tds = $(val).find(\"[data-odd]\");\r\n var horseOdds = [];\r\n $.each($tds, function (i, v) {\r\n var odd = $(v).attr(\"data-odd\");\r\n var res = 0;\r\n if (odd) {\r\n res = parseFloat(odd);\r\n ;\r\n }\r\n horseOdds.push(res);\r\n });\r\n var maxOdd = Math.max.apply(Math, horseOdds);\r\n $.each($tds, function (i, v) {\r\n var odd = $(v).attr(\"data-odd\");\r\n var res = 0;\r\n if (odd) {\r\n res = parseFloat(odd);\r\n ;\r\n }\r\n if (maxOdd == res) {\r\n $(v).find(\"span\").css(\"color\", \"#00862d;\");\r\n }\r\n });\r\n });\r\n this.updatePercentage();\r\n };\r\n traderOdds.prototype.addHighlight = function (assignment) {\r\n var odds = assignment.odds.filter(function (odd, ind) {\r\n return odd.numerator != 0 && odd.denominator != 0 && odd.excluded == false;\r\n });\r\n if (odds.length > 0) {\r\n var $dataTds = $(\"td[data-bookmaker-td='\" + assignment.bookmakerId + \"'][data-bet-location-td='\" + assignment.betLocationId + \"'][data-user-id='\" + assignment.userId + \"']\");\r\n var $headTds = $(\"th[data-head-user-id='\" + assignment.userId + \"'][data-header-location-id='\" + assignment.betLocationId + \"'][data-header-bookmaker-id='\" + assignment.bookmakerId + \"']\");\r\n var $bottomTrs = $(\"td[data-user-percentage-id='\" + assignment.userId + \"'][data-percentage-location-id='\" + assignment.betLocationId + \"'][data-percentage-bookmaker-id='\" + assignment.bookmakerId + \"']\");\r\n $dataTds.addClass(\"highlighted-col\");\r\n $headTds.addClass(\"highlighted-col\");\r\n $bottomTrs.addClass(\"highlighted-col\");\r\n }\r\n };\r\n traderOdds.prototype.removeHighlight = function (assignment) {\r\n var $dataTds = $(\"td[data-bookmaker-td='\" + assignment.bookmakerId + \"'][data-bet-location-td='\" + assignment.betLocationId + \"'][data-user-id='\" + assignment.userId + \"']\");\r\n var $headTds = $(\"th[data-head-user-id='\" + assignment.userId + \"'][data-header-location-id='\" + assignment.betLocationId + \"'][data-header-bookmaker-id='\" + assignment.bookmakerId + \"']\");\r\n var $bottomTrs = $(\"td[data-user-percentage-id='\" + assignment.userId + \"'][data-percentage-location-id='\" + assignment.betLocationId + \"'][data-percentage-bookmaker-id='\" + assignment.bookmakerId + \"']\");\r\n $dataTds.removeClass(\"highlighted-col\");\r\n $headTds.removeClass(\"highlighted-col\");\r\n $bottomTrs.removeClass(\"highlighted-col\");\r\n };\r\n return traderOdds;\r\n}());\r\nvar raceOddsModel = (function () {\r\n function raceOddsModel() {\r\n }\r\n return raceOddsModel;\r\n}());\r\nvar raceHorseModel = (function () {\r\n function raceHorseModel() {\r\n }\r\n return raceHorseModel;\r\n}());\r\nvar raceAssignmentModel = (function () {\r\n function raceAssignmentModel() {\r\n }\r\n return raceAssignmentModel;\r\n}());\r\nvar raceRunnerModel = (function () {\r\n function raceRunnerModel() {\r\n }\r\n return raceRunnerModel;\r\n}());\r\nvar horseOddModel = (function () {\r\n function horseOddModel() {\r\n }\r\n return horseOddModel;\r\n}());\r\nvar raceOddsArgs = (function () {\r\n function raceOddsArgs() {\r\n }\r\n return raceOddsArgs;\r\n}());\r\nvar traderOddsArgs = (function () {\r\n function traderOddsArgs() {\r\n }\r\n return traderOddsArgs;\r\n}());\r\nvar timeoutStorage = (function () {\r\n function timeoutStorage() {\r\n this.timeouts = new Array();\r\n }\r\n timeoutStorage.prototype.startTimeout = function (assignment, callback) {\r\n var isBefore = moment().utc().isBefore(moment.utc(assignment.raceStartDateUtc));\r\n var odds = assignment.odds.filter(function (odd, ind) {\r\n return odd.numerator != 0 && odd.denominator != 0 && odd.excluded == false;\r\n });\r\n if (isBefore && assignment.tradeUIUpdateTimeoutMinutes != null && odds.length > 0) {\r\n var func = function () { callback(assignment); };\r\n var timer = window.setTimeout(func, 1000 * 60 * assignment.tradeUIUpdateTimeoutMinutes);\r\n this.timeouts.push({ assignment: assignment, timerId: timer });\r\n }\r\n };\r\n timeoutStorage.prototype.add = function (item) {\r\n var isExists = this.timeouts.find(function (v) {\r\n return v.timerId == item.timerId;\r\n });\r\n if (!isExists) {\r\n this.timeouts.push(item);\r\n }\r\n ;\r\n };\r\n timeoutStorage.prototype.remove = function (assignment, callback) {\r\n var itemToRemove = this.timeouts.find(function (v) {\r\n return v.assignment.userId == assignment.userId && v.assignment.betLocationId == assignment.betLocationId && v.assignment.bookmakerId == assignment.bookmakerId;\r\n });\r\n if (itemToRemove) {\r\n clearTimeout(itemToRemove.timerId);\r\n this.timeouts.splice(this.timeouts.indexOf(itemToRemove), 1);\r\n callback(assignment);\r\n }\r\n };\r\n timeoutStorage.prototype.isExists = function (assignment) {\r\n var itemToRemove = this.timeouts.find(function (v) {\r\n return v.assignment.userId == assignment.userId && v.assignment.betLocationId == assignment.betLocationId && v.assignment.bookmakerId == assignment.bookmakerId;\r\n });\r\n return itemToRemove != null;\r\n };\r\n timeoutStorage.prototype.removeByTimeout = function (timeoutId) {\r\n var itemToRemove = this.timeouts.find(function (v) {\r\n return v.timerId == timeoutId;\r\n });\r\n if (itemToRemove) {\r\n clearTimeout(itemToRemove.timerId);\r\n this.timeouts.splice(this.timeouts.indexOf(itemToRemove), 1);\r\n }\r\n };\r\n return timeoutStorage;\r\n}());\r\nvar timeoutStorageItem = (function () {\r\n function timeoutStorageItem() {\r\n }\r\n return timeoutStorageItem;\r\n}());\r\nvar traderOddsHistory = (function () {\r\n function traderOddsHistory(args) {\r\n this._chart = null;\r\n this.uiElements = {\r\n container: null,\r\n chartContainer: null\r\n };\r\n this._args = args;\r\n this.uiElements.container = $(args.container);\r\n this.uiElements.chartContainer = $(\"#chartContainer\", this.uiElements.container);\r\n this.initChart();\r\n }\r\n traderOddsHistory.prototype.initChart = function () {\r\n var _this = this;\r\n $.get(this._args.historyDataUrl, {\r\n raceId: this._args.raceId,\r\n horseId: this._args.horseId,\r\n raceOddId: this._args.raceOddId,\r\n horseName: this._args.horseName,\r\n userId: this._args.userId\r\n }, function (data) {\r\n var ctx = _this.uiElements.chartContainer[0].getContext('2d');\r\n var dataCopy = data;\r\n var chartTooltip = {\r\n borderWidth: 0.5,\r\n bodySpacing: 10,\r\n xPadding: 15,\r\n yPadding: 15,\r\n cornerRadius: 0.15,\r\n displayColors: false,\r\n callbacks: {\r\n label: function (tooltipItem, data) {\r\n var element = dataCopy.items[tooltipItem.dataIndex];\r\n return \"Date: \" + moment(element.createdDate).format(\"MM/DD/YYYY hh:mm A\") + \"; Bet: \" + element.numerator + \"/\" + element.denominator;\r\n }\r\n }\r\n };\r\n var chartConfig = {\r\n type: 'line',\r\n data: {\r\n datasets: [{\r\n label: \"Odds for \" + _this._args.horseName,\r\n data: _this.getData(data),\r\n backgroundColor: 'rgb(255, 99, 132)',\r\n borderColor: 'rgb(255, 99, 132)',\r\n borderWidth: 1,\r\n lineTension: 0.5\r\n }]\r\n },\r\n options: {\r\n scales: {\r\n xAxes: [{\r\n type: 'time',\r\n time: {\r\n unit: 'minute'\r\n }\r\n }]\r\n },\r\n plugins: {\r\n tooltip: chartTooltip\r\n }\r\n }\r\n };\r\n _this._chart = new Chart(ctx, chartConfig);\r\n });\r\n };\r\n traderOddsHistory.prototype.getLabels = function (data) {\r\n var result = [];\r\n data.items.forEach(function (value, index) {\r\n result.push(moment(value.createdDate).format(\"MM/DD/YYYY hh:mm A\") + \" - \" + value.numerator + \"/\" + value.denominator);\r\n });\r\n return result;\r\n };\r\n traderOddsHistory.prototype.getData = function (data) {\r\n var result = [];\r\n data.items.forEach(function (value, index) {\r\n result.push({ x: moment(value.createdDate).format(\"hh:mm A\"), y: value.numerator / value.denominator });\r\n });\r\n return result;\r\n };\r\n return traderOddsHistory;\r\n}());\r\nvar horseOddHistoryArgs = (function () {\r\n function horseOddHistoryArgs() {\r\n }\r\n return horseOddHistoryArgs;\r\n}());\r\nvar horseOddHistoryItem = (function () {\r\n function horseOddHistoryItem() {\r\n }\r\n return horseOddHistoryItem;\r\n}());\r\nvar horseOddHistoryModel = (function () {\r\n function horseOddHistoryModel() {\r\n }\r\n return horseOddHistoryModel;\r\n}());\r\n//# sourceMappingURL=/app-out/app.js.map"]}