var WAGER_MAXIMUM = 32000; function GetBetString() { var betElement = document.getElementById("txtBet"); var bet = betElement.value; var matches = bet.match(/(V|N|Q|S|WA|T1|T2|X1|X2)[RHG] (WN|PL|EW|QN|EX|TF|CD|DD|QD|TW|\?TF|\?TF\/C) \d{1,2} ([\dFCfc]{1,2}([+]{1}[\d{1,2}FCfc]){0,}\/{0,1}){1,4}(:\d{1,5}(\.5){0,1}){1,2}/); if (matches != null) { bet = matches[0]; //truncate extra data not matching the regex betElement.value = bet; return bet; } else { return null; } } function Bet(string) { var _BOX = "/C"; var _D = " "; //Delimiter var _DC = ":"; //Cost delimiter var betString; var postString = ""; var sParts = string.split(" "); var sDetails = sParts[3].split(":"); var enteredBetType = sParts[1]; var codedBetType = GetBetType(enteredBetType); betString = codedBetType; this.win = parseFloat(sDetails[1]); if (sDetails.length > 2) { this.place = parseFloat(sDetails[2]); } else { this.place = 0; } switch (betString) { case "place": this.place = this.win; this.win = 0; betString = "win_place_eachway"; break; case "mystery": betString = "?TF"; this.win = 1; break; case "mystery_boxed": betString = "?TF"; postString = _BOX; this.win = 3; break; } betString += _D + sParts[2]; if (enteredBetType == "?TF") { // Handle mystery bet string construction betString += postString; } else { // Handle standard bet string construction betString += _D + sDetails[0]; } betString += _DC + this.win; if (this.place > 0) betString += _DC + this.place; this.betString = betString; this.meetingVenue = GetMeetingVenue(sParts[0].substr(0, sParts[0].length - 1)); this.meetingType = sParts[0].charAt(sParts[0].length - 1); this.meetingDate = document.getElementById("meetingDate").value; this.costcheck = "0"; } function GetBetQS(bet) { var qs = "meetingVenue=" + UrlEncode(bet.meetingVenue); qs += "&meetingType=" + UrlEncode(bet.meetingType); qs += "&meetingDate=" + UrlEncode(bet.meetingDate); qs += "&bet=" + UrlEncode(bet.betString); qs += "&costcheck=" + bet.costcheck; qs += "&system=local"; //Assume we are betting on local events return qs; } function setMessage(message) { document.getElementById("errorMessage").innerHTML = message; } function confirmBet() { var sBet = GetBetString(); if (sBet == null) { setMessage("Format wrong"); return; } setMessage(""); var oBet = new Bet(sBet); if (oBet.win > WAGER_MAXIMUM || oBet.place > WAGER_MAXIMUM) { setMessage("The maximum amount you can bet is $" + WAGER_MAXIMUM); return; } var oDlg = new DialogWindow("confirm.aspx?" + GetBetQS(oBet)); oDlg.Name = "confirm"; oDlg.Width = 570; oDlg.Height = 340; oDlg.Scroll = false; oDlg.Status = false; oDlg.Resizable = true; oDlg.TryModal = true; oDlg.Show(); if (oDlg.WasModal) { var result = oDlg.ReturnValue; if (result != null) handleBetAction(result); } } function GetMeetingVenue(string) { switch (string.toUpperCase()) { case "V": return "VIC"; case "N": return "NSW"; case "Q": return "QLD"; case "S": return "SA"; case "WA": return "WA"; case "T1": return "TAS1"; case "T2": return "TAS2"; default: return string; } } function resetSelections() { document.getElementById("txtBet").value = ""; } function GetBetType(string) { switch (string.toUpperCase()) { case "WN": return "win_place_eachway"; case "PL": return "place"; case "EW": return "win_place_eachway"; case "QN": return "quinella"; case "EX": return "exacta"; case "TF": return "trifecta"; case "CD": return "cd"; case "DD": return "dd"; case "QD": return "qd"; case "TW": return "tw"; case "?TF": return "mystery"; case "?TF/C": return "mystery_boxed"; default: return ""; } }