WS.Live={live_updater:null,fail_count:0,fail_reload:20,update_rate:5,message_timeout:7,update:function(){new Ajax.Request("/live/update/"+WS.Live.eventId(),{onComplete:function(f){if(f.status!=200){if(WS.fail_count>fail_reload){WS.fail_count++}}else{if(f.responseJSON){var b=["l","a"];var a=false;var d=[];var e=[];var c;f.responseJSON.each(function(p){try{var l=p.attributes;var o=p.item_code.substr(0,1);switch(o){case"s":$("event_score").update(l).pulsate();break;case"o":var k=WS.Live.updateElement("l",l.line_id,l.par_pos);var m=l.new_odds[0];if(k){k.updateOdds(m,l.new_odds[1],l,d,e);e.push(k.up("tr"))}else{if(m!=""){a=true;d.push(WS.Live.updateElementId("l",l.line_id,l.par_pos))}else{e.push(k.up("tr"))}}break;case"l":var s=WS.Live.eventsContainer(l);var q=WS.Live.lineElements(l);var j;if(s&&(j=q.elements())&&j.length>0){var i=l.disabled||l.hidden||l.canceled?"hide":"show";j.invoke(i+"Line");if(i=="hide"){e=e.concat(j.select(function(t){return t&&t.nodeName.toLowerCase()=="td"&&t.isLine(l.line_id)}).invoke("up","tr"))}else{d=d.concat(j)}}else{a=true;q.reset();d.push(q)}break;case"p":case"r":if(l.changed){WS.Live.change_period(l.period_name)}else{var h=o=="p"?"period":"proposition";var g=WS.Live.updateElement(h,l.event_id,l[h+"_id"]);if(g){c=null;if(l.finished){c="finished"}else{if(l.canceled){c="canceled"}else{if(l.disabled||l.hidden){c="suspended"}else{g.enable()}}}if(c){g.disable(c,l)}}else{a=true}}break;case"e":var r=$("the_event").down(".styled",0);if(r){c=null;if(l.finished){if(!$("event_finished")){$("the_event").insert(l.finished_html)}WS.Live.change_period(l.finished_title)}else{if(l.canceled){c="canceled"}else{if(l.disabled||l.live==3||l.hidden){c="suspended"}else{if(l.live==1){r.enable()}}}}if(c){r.disable(c,l)}}else{a=true}break}}catch(n){}});e.each(function(g){if(Object.isElement(g)&&!g.hasOdds()){g.remove();a=true}});if(a){WS.Live.reload(null,{onComplete:function(){WS.Live.newLines(d)}})}else{WS.Live.newLines(d)}}}}})},start:function(){this.live_updater=new PeriodicalExecuter(function(){WS.Live.update()},this.update_rate)},stop:function(){if(this.live_updater){this.live_updater.stop()}this.live_updater=null},reload:function(d,c){c=c||{};this.stop();var f="current";var e=$("the_event");if(d){e.showLoader()}else{var g=$$(".select_event .current");if(g&&(g=g.first())){var b=g.down("a");d=b.href}else{WS.reload();return}}if(c.onComplete){c.onLiveComplete=c.onComplete}c.onComplete=function(a){if(c.onLiveComplete){c.onLiveComplete(a)}WS.Live.eventId(true);WS.Live.start()};c.evalScripts=true;new Ajax.Updater(e,d,c)},updateElement:function(){return $(this.updateElementId($A(arguments)))},updateElementId:function(){return $A(arguments).flatten().join("-")},change_period:function(a){var b=$("event_time");if(b.firstChild.data==a){return false}b.fade({afterFinish:function(){b.update(a);b.appear({afterFinish:function(){b.pulsate()}})}});return true},lineElements:function(a){var f;var e;a=a||{};function d(){var h;var g;if(!e.elements&&(h=c())&&(g=h.select("td.odds."+a.class_name))&&g.length>0){e.elements=g.select(function(i){return i.isLine(a.line_id)})}else{if(!h){b()}}return e.elements}function c(){if(!e.events_cont){e.events_cont=$(WS.Live.updateElement(WS.Live.belongsTo(a),a.event_id,(a.proposition_id||a.period_id)))}return e.events_cont}function b(){e={events_cont:null,elements:null}}b();return{elements:d,attributes:a,reset:b}},newLines:function(a){a.each(function(c){if(Object.isString(c)||Object.isElement(c)){c=$(c);if(c){c.pulsate()}}else{if(("elements" in c)&&Object.isFunction(c.elements)){var b=c.elements();if(b.length>0){WS.Live.newLines(b)}}}})},event_id:null,eventId:function(b){var a=$("score_board");if(!a){return false}try{if(!this.event_id||b){this.event_id=a.className.match(/event-(\d+)/)[1]}return this.event_id}catch(c){alert("There was a problem - going to reload the page.");WS.reload()}},belongsTo:function(a){return a.proposition_id?"proposition":"period"},eventsContainer:function(a){return WS.Live.updateElement(WS.Live.belongsTo(a),a.event_id,(a.proposition_id||a.period_id))}};Event.addBehavior({".sport h1:click":function(){var b=this.up(".sport");var a=!b.hasClassName("open");b[a?"addClassName":"removeClassName"]("open")[!a?"addClassName":"removeClassName"]("closed")},".select_event .events li a:click":function(){var a="current";$$(".select_event ."+a).invoke("removeClassName",a);this.up("li").addClassName(a);WS.Live.reload(this.href);return false}});Element.addMethods("td",{addArrow:function(a,b){a.removeArrow().addClassName(b);(function(){a.removeArrow()}).delay(WS.Live.message_timeout);return a},removeArrow:function(a){a.removeClassName("up").removeClassName("down");return a},lineValue:function(a){var b=a.dataHolder();return b.firstChild?b.firstChild.data:""},extractIds:function(d,c){var f=d.retrieve("extracted_ids");if(!f){var a=d.id.split("-");f={type:a[0]};switch(f.type){case"l":f.line_id=a[1];f.par_pos=a[2];break}var e=d.up("div.event_table_cont");if(e){var b=e.id.split("-");f.event_id=b[1];f[b[0]+"_id"]=b[2]}d.store("extracted_ids",f)}return f&&(f[c+"_id"]||f[c]||f)},updateOdds:function(j,n,k,i,g,h){i=i||{};g=g||[];h=h||[];var f=j.lineValue();var m=j.updateLine(n);var e=j.adjustCell();if(e){var b=e.updateLine(k);m=m||b}if(m){var l=j.extractIds();var d=WS.Live.belongsTo(l);if(i.update_id){var c=j.betLink();c.setAttribute("href",c.getAttribute("href").replace(/;\d+$/,";"+i.update_id))}var a=(n=="");if(f==""&&!a){j.showLine();g.push(j)}else{if(a){j.hideLine();h.push(j.up(".event_table_cont"))}else{j.addArrow(m)}}}return j},adjustCell:function(a){return $(a.id.replace(/^l-/,"a-"))},betLink:function(a){var b=a.betElements();if(b){return b.find(function(c){return c.nodeName.toLowerCase()=="a"})}return false},toggleLine:function(a){if(a.isVisible()){a.hideLine()}else{a.showLine()}return a},showLine:function(a){a.setVisibility("show");return a},hideLine:function(a){a.setVisibility("hide");return a},setVisibility:function(c,a){var d=c.betElements();d.push(c.dataHolder());var b=c.adjustCell();if(b){d.push(b.dataHolder())}d.invoke(a);return c},isVisible:function(a){return a.dataHolder().getStyle("display")!="none"},betElements:function(b){var d=b.retrieve("bet_elements");if(!d){var e=b.extractIds();d=[];var c=b.previous(".checkbox");if(c){d.push(c.down("a"))}var a=b.previous(".desc");if(a){d.push(a.dataHolder())}b.store("bet_elements",d)}return d},dataHolder:function(a){return a.down("span",0)},isLine:function(b,a){var c=b.id.match(/^l-(\d+)/);if(c&&a){c=(a==c[1])}return c?true:false},updateLine:function(e,c){var d=Object.isString(c)?c.toNumber():c;var b=e.lineValue();var a=b.toNumber();var f=(b!=c||d!=a);var g=f?(d>a?"up":"down"):null;if(g){e.dataHolder().update(c)}return g}});Element.addMethods({hasOdds:function(a){return a.select("td.odds").reject(function(b){return b.lineValue()==""||!b.isVisible()}).length>0}});Object.extend(String.prototype,(function(){function a(){return Number(this.replace(/^\+/,""))}return{toNumber:a}})());Element.addMethods("div",{disable:function(b,d,a){var c=b.down(".disabled_message",0);if(!c||!c.hasClassName(d)){b.enable();b.insert(a.disabled_html)}if(d=="finished"||d=="canceled"){b.fade({delay:WS.Live.message_timeout,afterFinish:function(){b.remove();var f=$("event_finished");if(f){f.appear({delay:0.1});var e=$("event_link_"+a.event_id);e.fade({afterFinish:function(){e.remove()}})}}})}return b},enable:function(a,c,b){b=b||a.down(".disabled_message",0);if(b&&(!c||a.hasClassName(c))){b.remove()}return a}});$(document).observe("dom:loaded",function(){WS.Live.start()});