var dateFormat=function(){var d=/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,b=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,c=/[^-+\dA-Z]/g,a=function(f,e){f=String(f);e=e||2;while(f.length<e){f="0"+f}return f};return function(g,u,q){var t=dateFormat;if(arguments.length==1&&Object.prototype.toString.call(g)=="[object String]"&&!/\d/.test(g)){u=g;g=undefined}g=g?new Date(g):new Date;if(isNaN(g)){throw SyntaxError("invalid date")}u=String(t.masks[u]||u||t.masks["default"]);if(u.slice(0,4)=="UTC:"){u=u.slice(4);q=true}var h=q?"getUTC":"get",l=g[h+"Date"](),f=g[h+"Day"](),v=g[h+"Month"](),j=g[h+"FullYear"](),n=g[h+"Hours"](),i=g[h+"Minutes"](),r=g[h+"Seconds"](),k=g[h+"Milliseconds"](),e=q?0:g.getTimezoneOffset(),p={d:l,dd:a(l),ddd:t.i18n.dayNames[f],dddd:t.i18n.dayNames[f+7],m:v+1,mm:a(v+1),mmm:t.i18n.monthNames[v],mmmm:t.i18n.monthNames[v+12],yy:String(j).slice(2),yyyy:j,h:n%12||12,hh:a(n%12||12),H:n,HH:a(n),M:i,MM:a(i),s:r,ss:a(r),l:a(k,3),L:a(k>99?Math.round(k/10):k),t:n<12?"a":"p",tt:n<12?"am":"pm",T:n<12?"A":"P",TT:n<12?"AM":"PM",Z:q?"UTC":(String(g).match(b)||[""]).pop().replace(c,""),o:(e>0?"-":"+")+a(Math.floor(Math.abs(e)/60)*100+Math.abs(e)%60,4),S:["th","st","nd","rd"][l%10>3?0:(l%100-l%10!=10)*l%10]};return u.replace(d,function(m){return m in p?p[m]:m.slice(1,m.length-1)})}}();dateFormat.masks={"default":"ddd mmm dd yyyy HH:MM:ss",shortDate:"m/d/yy",mediumDate:"mmm d, yyyy",longDate:"mmmm d, yyyy",fullDate:"dddd, mmmm d, yyyy",shortTime:"h:MM TT",mediumTime:"h:MM:ss TT",longTime:"h:MM:ss TT Z",isoDate:"yyyy-mm-dd",isoTime:"HH:MM:ss",isoDateTime:"yyyy-mm-dd'T'HH:MM:ss",isoUtcDateTime:"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"};dateFormat.i18n={dayNames:["Sun","Mon","Tue","Wed","Thu","Fri","Sat","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],monthNames:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec","January","February","March","April","May","June","July","August","September","October","November","December"]};Date.prototype.format=function(a,b){return dateFormat(this,a,b)};if(!Namespace.exist("Ews.Utility")){Namespace("Ews.Utility")}Ews.Utility.CommonJsUtility=function(){};Ews.Utility.CommonJsUtility.prototype.fromJsonToDateString=function(jsonDate,mask){try{mask=mask||"default";var m=eval(jsonDate.replace(/\/Date\((\d+)\)\//gi,"new Date($1)"));return m.format(mask)}catch(e){return""}};Ews.Utility.CommonJsUtility.prototype.fromJsonToDate=function(jsonDate){try{mask=mask||"default";var m=eval(jsonDate.replace(/\/Date\((\d+)\)\//gi,"new Date($1)"));return m}catch(e){return""}};Ews.Utility.CommonJsUtility.prototype.roundNumber=function(a){return Math.round(parseFloat(a)*100)/100};Ews.Utility.CommonJsUtility.prototype.formatCurrency=function(e,c){if(isNaN(parseFloat(e))){throw"InvalidNumberException: "+e+" is not a number"}e=this.roundNumber(e);c=c||"";e+="";var b=e.split(".");var a=b[0];var d=b.length>1?"."+b[1]:".00";if(d.length===2){d+="0"}return c+a+d};Ews.Utility.CommonJsUtility.prototype.removeCurrencyFormat=function(a){return a.replace(/([^0-9\.\-])/g,"")};Ews.Utility.ProgramDataHelper=function(d){if(d===null){throw Error("Program data missing")}var c=d;var b=(d.ProgramInfo.TrackData!==null&&d.ProgramInfo.TrackData.RaceData!==null&&$.trim(d.ProgramInfo.TrackData.RaceData)!=="")?(jQuery.createXMLDocument(d.ProgramInfo.TrackData.RaceData)):null;this.ProgramFullName=c.ProgramInfo.LongName;this.getProgramFullName=function(){return c.ProgramInfo.LongName};this.ProgramShortName=c.ProgramInfo.Name;this.getProgramShortName=function(){return c.ProgramInfo.Name};this.CurrentRaceNumber=parseInt(c.ProgramInfo.CurrentRace,10);this.getOpenBetTypesByRace=function(e){var f=[];$.each(c.ProgramDefn.RaceDataList,function(){if(this.RaceNumber===e){f=this.OpenBetTypes;return false}});return f};this.getMinStakeAmountBy=function(e,f,g){g=g||"";if(!(/^(box|key|none)$/.test(g.toLowerCase()))){throw"InvalidArgumentException - invalid bet modifier - expected in (box,key,none)"}var h=1;$.each(c.ProgramDefn.RaceDataList,function(){if(this.RaceNumber===parseInt(f,10)){$.each(this.BetTypeInfoList,function(){if(this.BetTypeName===e){switch(g.toLowerCase()){case"box":h=parseFloat(this.MinBoxAmount);break;case"key":h=parseFloat(this.MinWheelAmount);break;case"none":default:h=parseFloat(this.MinBaseAmount);break}return false}});return false}});return h};var a=function(f){var e=null;jQuery.each(c.ProgramDefn.RaceDataList,function(){if(this.RaceNumber===f){e=this;return false}});return e};this.getRaceDataList=function(){return c.ProgramDefn.RaceDataList};this.getRaceDataListByStatus=function(e){if(typeof e!=="boolean"){throw new Error("InvalidArgumentExpection: expected a boolean")}var f=[];jQuery.each(c.ProgramDefn.RaceDataList,function(g){if(this.IsOpenRace===e){f.push(this)}});return f};this.getAllLiveRunners=function(){var e=[];jQuery.each(c.ProgramDefn.RaceDataList,function(g){if(this.IsOpenRace){var f={race:this.RaceNumber,liveRunners:[]};if(this.LiveRunners.length>0&&this.LiveRunners[0]!==""){$.merge(f.liveRunners,this.LiveRunners)}if(f.liveRunners.length>0){e.push(f)}}});return e};this.getScratchedRunnersByRace=function(f){var g=[];var e=a(f);for(var h in e.ScratchedRunners){if(e.ScratchedRunners[h]!==""){g.push(e.ScratchedRunners[h])}}return g};this.getRacesWithScratchedRunners=function(){var e=[];jQuery.each(c.ProgramDefn.RaceDataList,function(g){if(this.IsOpenRace){var f={race:this.RaceNumber,scratchedRunners:[]};if(this.ScratchedRunners.length>0&&this.ScratchedRunners[0]!==""){$.merge(f.scratchedRunners,this.ScratchedRunners)}if(f.scratchedRunners.length>0){e.push(f)}}});return e};this.getRacesByMissingPoolType=function(f){var e=[];jQuery.each(c.ProgramDefn.RaceDataList,function(g){if(jQuery.inArray(f,this.OpenBetTypes)===-1){e.push(this.RaceNumber)}});return e};this.getAllOpenPoolTypes=function(){var g=["WN","PL","SH","TR","SU","EX","QU"];var f=[];var e=0;jQuery.each(g,function(i,h){jQuery.each(c.ProgramDefn.RaceDataList,function(j,k){if($.inArray(h,k.OpenBetTypes)===-1){return false}else{++e}});if(e===c.ProgramDefn.RaceDataList.length){f.push(h)}e=0});return f};this.getRunnerName=function(g,f){var h="";if(b!==undefined||b!==null){var e=$(b).find("Event").filter(function(i){return parseInt($(this).attr("RaceNumber"),10)==g});if(e!==null){$(e).find("Competitor").each(function(i){if(parseInt($(this).attr("RunnerNumber"),10)==f){h+=$(this).attr("RunnerName");return false}})}}return h};this.getRunnerDetail=function(g,f){var e=null;if(b!==undefined||b!==null){var h=$(b).find("Event").filter(function(){return parseInt($(this).attr("RaceNumber"),10)===f});if(h!==null){$(h).find("Competitor").each(function(i){if(parseInt($(this).attr("RunnerNumber"),10)===g){e={RunnerNumber:$.trim($(this).attr("RunnerNumber")),EntryCode:$.trim($(this).attr("EntryCode")),PostPosition:$.trim($(this).attr("PostPosition")),RunnerStatus:$.trim($(this).attr("RunnerStatus")),RunnerName:$.trim($(this).attr("RunnerName")),RunnerWeight:$.trim($(this).attr("RunnerWeight")),ClaimPrice:$.trim($(this).attr("ClaimPrice")),OwnerSilks:$.trim($(this).attr("OwnerSilks")),ApprenticeBugs:$.trim($(this).attr("ApprenticeBugs")),MorningOdds:$.trim($(this).attr("MorningOdds")),TrainerName:$.trim($(this).attr("TrainerName")),OwnerName:$.trim($(this).attr("OwnerName"))};return false}})}}return e}};