var statesDisplayChanged=new Observer;var betPlaced=new Observer;var betEdited=new Observer;function registerEvents(){if(eventsListType=="RESULTS"){statesDisplayChanged.subscribe(loadResults);loadNetworkBetsResults(0)}else{statesDisplayChanged.subscribe(updatePagePlaceHoldersIdsFired);updatePagePlaceHoldersIds();getCurrentBets();setInterval("getPagePlaceHoldersValues();",60000)}}function showHideStates(b){var a=jQuery(b);var c=a.closest("div.eventBoxEnhanced").find("div.states");if(isHiden(c)){c.slideDown("fast");changeIcon(b,"moins");statesDisplayChanged.fire(a)}else{c.slideUp("fast",function(){statesDisplayChanged.fire(a)});changeIcon(b,"plus")}}function isHiden(a){return a.is(":hidden")}function changeIcon(c,a){var b=jQuery(c).find("img").get(0);b.src="/Images/picto-"+a+"-big.gif"}var jPlaceBetTemplate;var lastStakeValue;function placeBet(d,e,g,k){var j=jQuery(d);var m=jQuery("#"+e);if(j.hasClass("active")){cancelPlaceBet(d,e)}else{if(!jPlaceBetTemplate){jPlaceBetTemplate=jQuery("#Template_TGB_GUI_Web_Controls_Betting_PlacingBet")}var a={Id:g,Name:k};m.html(jPlaceBetTemplate.parseTemplate({state:a}));var c=j.closest("tr");var l=m.find(".placingBetContainer");var n=false;j.closest(".backCol").each(function(){n=true});var f=n?"BACK":"LAY";var i=(f=="BACK")?"LAY":"BACK";var h=n?"buttonBack":"buttonLay";var b=(h=="buttonLay")?"buttonBack":"buttonLay";l.slideUp("fast",function(){c.find("."+b).removeClass("active");c.find("."+h).addClass("active");l.find(".PlaceHolder").removeClass(i);l.find(".PlaceHolder").addClass(f);l.removeClass(b);l.addClass(h);l.find(".PlaceBetButton").removeAttr("disabled");l.find(".result").hide();var v=parseFloat(j.find(".Odd").html());var q=l.find(".placingBet");var u=l.find(".noOdd");var r=l.find(".noAccount");var t=getDate(m);if(!isNaN(v)){q.show();u.hide();if(IdentificationId){r.hide()}else{r.show()}}else{q.hide();u.show();r.hide()}var o=new Date();if(t>=new Date().setDate(o.getDate()+4)){var p=l.find(".longTimeEvent");p.show();var w=Math.round((t-o)/(new Date().setDate(o.getDate()+1)-o));p.find(".dateEventDays").text(w)}l.find(".oddChanged").hide();l.find(".Odd").html(v);var s=l.find(".Stake");updateProfit(s.get(0));l.find(".inputCancel").click(function(){cancelPlaceBet(d,e)});l.slideDown("fast");s.select();applyPagePlaceHoldersValues()})}return false}function cancelPlaceBet(e,d){var a=jQuery(e);var f=jQuery("#"+d);var c=a.closest("tr");var b=f.find(".placingBetContainer");b.slideUp("fast",function(){c.find(".buttonBet").removeClass("active");f.html("")});return false}function updateProfit(c,g){var b=jQuery(c);var d=b.closest(".placingBet");var f=d.find(".Odd").html();var a=d.find(".Stake").val();d.find(".Profit").html(Math.round(f*a*100)/100);return true}function placeBetCatchKey(a,b){a=a?a:window.event;if(a.keyCode==13){submitMyBet(b);return false}return true}function getDate(a){var c=a.hasClass(".eventBoxEnhanced")?a:a.closest(".eventBoxEnhanced");var b=c.find(".date input[name='EventBoxDate']:first").val();return Date.parse(b)}var pageStates=new Array();var getPageStatesDone=false;function getPageStates(){if(!getPageStatesDone){updatePagePlaceHoldersIds()}return pageStates}function updatePagePlaceHoldersIdsFired(){updatePagePlaceHoldersIds()}function updatePagePlaceHoldersIds(a){getPageStatesDone=true;var c=pageStates.length;pageStates=new Array();var b=0;jQuery(".PlaceHolder:visible").each(function(){var e=jQuery(this);var d=this.className.split(" ");if(e.hasClass("State")){var f=getClassId(d);if(f>0&&!pageStates.contains(f)){pageStates[b]=f;b++}}});if(a||c<pageStates.length){getPagePlaceHoldersValues()}}var odds;function getPagePlaceHoldersValues(a){if(pageStates&&pageStates.length>0){var b=TGB.WebServices.BeterZ.BettingWebService.GetOdds;if(a){b=TGB.WebServices.BeterZ.BettingWebService.GetOddsNoCache}b(IdentificationId,pageStates,CurrencyId,function(c){odds=c;applyPagePlaceHoldersValues()});SafeTrackEvent("webservice-call","BettingWebService.GetOdds"+(a?"NoCache":""),"currency-"+CurrencyId)}}function applyPagePlaceHoldersValues(){if(odds&&odds.length>0){for(var d=0;d<odds.length;d++){var f=odds[d];var e=-1;var c;jQuery(".PlaceHolder.State_Odd.Id_"+f.StateId).each(function(){var i=jQuery(this);var k=i.closest(".stateRow");var j=i.closest(".buttonBet");var g=this.innerHTML;var h=i.hasClass("BACK")?(f.BackAmount>0?Math.floor(f.OddBack*100)/100:suspendedText):(f.LayAmount>0?Math.floor(f.OddLay*100)/100:suspendedText);c=i;if(e<0){e=isLiveState(f.StateId,c)?1:0}if(!isNaN(h)){if(h>1&&h<999){if(e>0){h=Math.floor(((h-1)*(1-oddMarginLive)+1)*100)/100}else{h=Math.floor(((h-1)*(1-oddMargin)+1)*100)/100}}if(h<=1||h>=999){h=suspendedText}}if(isNaN(h)){j.removeClass("hasOdd");k.removeClass("hasOdd");k.find(".hasOdd").each(function(){k.addClass("hasOdd")})}else{j.addClass("hasOdd");k.addClass("hasOdd")}this.innerHTML=h;if(g!=h){i.parent().find(".oddChanged").show()}});var b=0;if(f.BackAmount>0){var a=pronosticCorrection;if(c&&e>0){a=pronosticCorrectionLive}b=1/(f.OddBack*(1-a))*100}setPercentValue(jQuery(".PlaceHolder.State_Pronostic.Id_"+f.StateId),b)}jQuery(".placingBetContainer .Stake:visible").each(function(){updateProfit(this)})}}var liveStates=new Array();function isLiveState(c,b){var a=liveStates[c];if(a==1||a==-1){return a>0}a=-1;if(getDate(b)<=new Date()){a=1}liveStates[c]=a;return a>0}var hasUnmatchedBets=false;var currentBets;function getCurrentBets(a){if(IdentificationId){TGB.WebServices.BeterZ.BettingWebService.GetCurrentBets(IdentificationId,WalletId,TournamentId?null:CurrencyId,TournamentId,function(b){currentBets=b;applyCurrentBets(currentBets,a)});SafeTrackEvent("webservice-call","BettingWebService.GetCurrentBets")}}var jPlacedBetTemplate;function applyCurrentBets(c,h){var g=jQuery(".PlaceHolder.State_PlacedBets").html("");var b=jQuery(".PlaceHolder.Event_PlacedBetsCount");b.text("0");b.removeClass("active");if(c){if(!jPlacedBetTemplate){jPlacedBetTemplate=jQuery("#Template_PlacedBet")}hasUnmatchedBets=false;c.sort(function(j,i){return(i.Id-j.Id)});for(var d=0;d<c.length;d++){var a=c[d];a.StateName=jQuery(".State_Name.Id_"+a.StateId).html();var f=jQuery(".PlaceHolder.State_PlacedBets.Id_"+a.StateId);f.append(jPlacedBetTemplate.parseTemplate({bet:a}));var e=f.closest(".eventBoxEnhanced").find(".PlaceHolder.Event_PlacedBetsCount");e.html(parseInt(e.html())+1);e.addClass("active")}if(hasUnmatchedBets){applyPagePlaceHoldersValues()}}if(window.applyCurrentBetsAdditionalCallBack){applyCurrentBetsAdditionalCallBack(c)}if(h){updateOddsForUnmatchedBets()}}jQuery(document).ready(function(){registerEvents()});var jPlacingBetContainersToDisapear=new Array();function submitMyBet(g){if(IdentificationId){var f=jQuery(g);var e=f.closest(".placingBet");e.find(".PlaceBetButton").attr("disabled","disabled");var c=e.closest(".placingBetContainer");var h=parseInt(e.find(".PlaceHolder.State_Id").val());var d=parseFloat(e.find(".PlaceHolder.State_Odd").html());var a=parseFloat(e.find(".Stake").val());jQuery(".Stake:hidden").val(a);var b=false;f.closest(".buttonBack").each(function(){b=true});if(placeOrEditABet(c,null,h,WalletId,TournamentId,CurrencyId,a,d,b?"BACK":"LAY")){}else{e.find(".PlaceBetButton").removeAttr("disabled")}lastStakeValue=a}else{alert("Please log in or create an account first")}}function replaceMyBet(h,g){var f=jQuery(h);var c=f.closest(".placedBetContainer");var e=c.find(".PlaceHolder.State_Odd");var d=parseFloat(e.html());var a=parseFloat(c.find(".Bet_Amount").html());var b=false;if(e.hasClass("BACK")){b=true}if(placeOrEditABet(c,g,null,WalletId,TournamentId,CurrencyId,a,d,b?"BACK":"LAY")){f.closest("div").hide()}return false}function cancelMyBet(b,a){jQuery(b).closest("div").hide();TGB.WebServices.BeterZ.BettingWebService.CancelBet(IdentificationId,a,function(c){getCurrentBets(true);updateWalletAmount(WalletId,CurrencyId)});SafeTrackEvent("webservice-call","BettingWebService.CancelBet");return false}function placeOrEditABet(n,j,i,c,f,l,d,o,k){var b=0;var m=500000;if(j||i>0){if(d>0&&d<=500000){if(o>1&&o<990){var g;try{g={Id:j,BettingStateId:i,DateCreation:new Date(),CurrencyId:l,WalletId:c,Odds:o,BetType:TGB.WebServices.BeterZ.Public.v1_0.DO.BetType[k],Outcome:TGB.WebServices.BeterZ.Public.v1_0.DO.Outcome.PENDING,Profits:null,User:{Id:UserId,PublicName:PublicName,DefaultPicture:{Id:DefaultPictureId,Picture27x27Url:"/Pictures/Users/MiniThumb/"+DefaultPictureId+".jpg",Picture47x47Url:"/Pictures/Users/SmallThumb/"+DefaultPictureId+".jpg",Picture150x90Url:"/Pictures/Users/ThumbDescription/"+DefaultPictureId+".jpg",Picture150xUrl:"/Pictures/Users/Thumb/"+DefaultPictureId+".jpg",Picture225xUrl:"/Pictures/Users/Profile/"+DefaultPictureId+".jpg",Picture1000xUrl:"/Pictures/Users/Big/"+DefaultPictureId+".jpg"},Locale:Locale}}}catch(h){}if(j){displayPlaceBetCountDown(i,n);TGB.WebServices.BeterZ.BettingWebService.EditBet(IdentificationId,j,d,o,k,false,function(e){getCurrentBets(true);updateWalletAmount(c,l);betEdited.fire(g)});SafeTrackEvent("webservice-call","BettingWebService.EditBet",k,parseInt(d));return true}else{var a=true;if(d>getPageWalletAmount(c)){a=confirm(notEnoughMoneyErrorText)}if(a){displayPlaceBetCountDown(i,n);TGB.WebServices.BeterZ.BettingWebService.PlaceBet(IdentificationId,i,c,f,d,o,k,"CANCEL",false,function(q){n.find(".placingBet").hide();var p=n.find(".result");if(q){p.find(".success").show();p.find(".error").hide();p.find(".PlaceHolder.Bet_Stake").text(d);p.find(".PlaceHolder.Bet_Odd").text(o);p.show();getCurrentBets(true);jPlacingBetContainersToDisapear.push(n);setTimeout("jPlacingBetContainersToDisapear.shift().find('.inputCancel').click();",8000);updateWalletAmount(c,l);var r=getObjClassId(n.closest(".Event").get(0));var e=getObjClassId(n.closest(".eventBoxEnhanced").find(".teams").get(0),"sport_");feedPublishBet(r,k,n);SafeAddTransaction("sportId: "+e+";","eventId: "+r+"; type: "+k+";","BET",d/10000,0,0)}else{p.find(".success").hide();p.find(".error").show();myBetError(n,unknowErrorText);SafeTrackEvent("webservice-call","BettingWebService.PlaceBetError",k,parseInt(d))}});SafeTrackEvent("webservice-call","BettingWebService.PlaceBet",k,parseInt(d));betPlaced.fire(g);return true}}}else{myBetError(n,stateDisabledErrorText)}}else{myBetError(n,stakeOutOfRangeErrorText.replace("{0}",b).replace("{1}",m))}}else{myBetError(n,stateNotFoundErrorText)}return false}function displayPlaceBetCountDown(g,c){var e=placeBetDelay;if(isLiveState(g,c)){e=placeBetLiveDelay}if(e>1){c.find(".PlaceBetButton").hide();var d=c.find(".BetBeingPlaced").fadeIn("fast");var a=d.find(".BetBeingPlacedCountDown");var b=function(){e--;if(e<=0){clearInterval(f)}a.text(e)};b();var f=setInterval(b,1000)}}function updateOddsForUnmatchedBets(){if(hasUnmatchedBets){hasUnmatchedBets=false;getPagePlaceHoldersValues(true)}}function myBetError(c,b){c.find(".placingBet").hide();var a=c.find(".result");a.find(".success").hide();a.find(".error").show();a.find(".error .PlaceHolder.Bet_Error").html(b);a.fadeIn()}function loadResults(b){if(b&&!b.data("haveResults")){var f=b.closest(".teams");var d=f.closest(".eventBoxEnhanced");var a=getObjClassId(f.get(0),"sport_");var c=getObjClassId(d.get(0));var e={SessionKey:IdentificationId,Locale:Locale,EventId:c};loadNetworkBetsResults(c);TGB.WebServices.BeterZ.Public.v1_0.PublicWebService.GetScore(e,function(h){b.data("haveResults",1);var g;if(a==2){g=jQuery("#scoreTennisTemplate")}else{g=jQuery("#scoreFootballTemplate")}d.find(".states .Score").html(g.parseTemplate({scores:h.TeamScores}))},function(g){alertIfDebug(g.get_message())})}}function loadNetworkBetsResults(b,a,c){if(b>0){if(!a){a=getStatesId(b)}displayNetworkBetsResults(b,a,c)}else{jQuery(".PlaceHolder.Event_PlacedBetsCount").text("-");jQuery(".Event").each(function(){loadNetworkBetsResults(getObjClassId(this),null,true)})}}var eventsStatesId=new Array();function getStatesId(b){if(eventsStatesId[b]){return eventsStatesId[b]}var a=jQuery(".Event.Id_"+b+" input[name='StatesId']").val().split(",");eventsStatesId[b]=a;return a}function displayNetworkBetsResults(a,n,k){var d=new Array();var b=getBetsOnStates(n);for(var g=0;g<b.length;g++){var c=b[g];if(d[c.User.Id]){d[c.User.Id].Profits+=c.Profits}else{d[c.User.Id]={User:c.User,Profits:c.Profits}}}if(d.length>0){if(k){if(d[UserId]&&d[UserId].Profits!=0){var m=jQuery(".PlaceHolder.Event_PlacedBetsCount.Id_"+a);if(d[UserId].Profits>0){m.text(eventWonSticker).addClass("profits")}else{if(d[UserId].Profits<0){m.text(eventLostSticker).addClass("losses")}}}}else{var o=jQuery(".Event.Id_"+a+" .WinnersLosers").html(jQuery("#winnersLosersContainerTemplate").html());var e=o.find(".Winners.PlaceHolder");var l=o.find(".Losers.PlaceHolder");var j=jQuery("#winnersLosersItemTemplate");d.sort(sortUsersProfits);for(var g=0;g<d.length;g++){var f=d[g];if(f){var h=j.parseTemplate({item:f});if(f.Profits>=0){e.append(h)}else{l.prepend(h)}}}o.find("table.alternable tbody tr:even").addClass("alt")}}}function sortUsersProfits(d,c){if(d&&c){return c.Profits-d.Profits}if(!d&&!c){return 0}if(d){return -1}if(c){return 1}}function getBetsOnStates(d){var b=new Array();var f=0;var c=new Array();for(var e=0;e<d.length;e++){c[d[e]]=1}for(var e=0;e<betsShown.length;e++){var a=betsShown[e];if(c[a.BettingStateId]){b[f++]=a}}return b}function feedPublishBet(b,h,k){if(haveFB()){var e=null;if(Math.round(Math.random()*14)==1){e=feedPublishDialog}if(e){var a="utm_source=facebook&utm_medium=buzz-feed&utm_content={0}&utm_campaign=facebook";var d="http://beterz.com/Y/LogIn/FBConnect/?Referer="+UserId+"&Code=REFERER&ContinueURL="+URLEncode("/Y/Bet/?DId="+b+"&")+"{1}&{0}";var c=k.closest(".eventBoxEnhanced").find(".eventPath");var f=c.find("a:first").text();var i=c.find("a:last").text();var j={onlineStoryContent:fbOneLineStoryText,shortStoryTitle:fbShortStoryTitleText.replace("{0}",'<a href="'+getTrackingUrl(d,a,"event-first-link")+'">'+f+"</a>").replace("{1}",'<a href="'+getTrackingUrl(d,a,"event-second-link")+'">'+i+"</a>"),shortStoryBody:fbShortStoryBodyText,actionLinkText:fbActionLinkText,actionLinkHref:getTrackingUrl(d,a,"action-link")};var g=(1+Math.round(Math.random()*2))+".jpg";j.images=new Array();j.images[0]={src:"http://beterz.com/Images/Facebook/Feed/"+g,href:getTrackingUrl(d,a,"image-link-"+g)};e(fbConnectTemplateIdBet,j,null,null,null,fbUserPromptText,fbUserDefaultCommentText,true,false)}}}function getSetScore(b,h,f,g){if(f.length>b){var e=f[b];for(var c=0;c<e.Scores.length;c++){var d=e.Scores[c];var a=GetEnumString(d.ScoreType,TGB.WebServices.BeterZ.Public.v1_0.DO.ScoreType);switch(g){case"TENNIS":if((h==1&&a=="WON_SETS")||a=="SET"+(h-1)){return d.Value}break;case"FOOTBALL":if(a=="ORDINARY_TIME"){return d.Value}break}}}return""};