function SortableTable(c,e,b,a){this.sortTypes=a||[];this.sortColumn=null;this.descending=null;this.ev_id=c;this.headers_row_idx=e;var d=this;this._headerOnclick=function(g){d.headerOnclick(g)};if(b){this.setTable(b);this.document=b.ownerDocument||b.document}else{this.document=document}var f=this.document.defaultView||this.document.parentWindow;this._onunload=function(){d.destroy()};if(f&&typeof f.attachEvent!="undefined"){f.attachEvent("onunload",this._onunload)}}SortableTable.gecko=navigator.product=="Gecko";SortableTable.msie=/msie/i.test(navigator.userAgent);SortableTable.removeBeforeSort=SortableTable.gecko;SortableTable.prototype.onsort=function(){};SortableTable.prototype.defaultDescending=false;SortableTable.prototype._sortTypeInfo={};SortableTable.prototype.setTable=function(a){if(this.tHead){this.uninitHeader()}this.element=a;this.setTHead(a.tHead);this.setTBody(a.tBodies[0])};SortableTable.prototype.setTHead=function(a){if(this.tHead&&this.tHead!=a){this.uninitHeader()}this.tHead=a;this.initHeader(this.sortTypes)};SortableTable.prototype.setTBody=function(a){this.tBody=a};SortableTable.prototype.setSortTypes=function(a){if(this.tHead){this.uninitHeader()}this.sortTypes=a||[];if(this.tHead){this.initHeader(this.sortTypes)}};SortableTable.prototype.initHeader=function(b){if(!this.tHead){return}var e=this.tHead.rows[this.headers_row_idx].cells;var g=this.tHead.ownerDocument||this.tHead.document;this.sortTypes=b||[];var a=e.length;var d,h;for(var f=0;f<a;f++){h=e[f];if(this.sortTypes[f]!=null&&this.sortTypes[f]!="None"){d=g.createElement("img");d.src="/img/sb/racing/sortasc.gif";h.appendChild(d);if(this.sortTypes[f]!=null){h._sortType=this.sortTypes[f]}if(typeof h.addEventListener!="undefined"){h.addEventListener("click",this._headerOnclick,false)}else{if(typeof h.attachEvent!="undefined"){h.attachEvent("onclick",this._headerOnclick)}else{h.onclick=this._headerOnclick}}}else{h.setAttribute("_sortType",b[f]);h._sortType="None"}}this.updateHeaderArrows()};SortableTable.prototype.uninitHeader=function(){if(!this.tHead){return}var b=this.tHead.rows[this.headers_row_idx].cells;var a=b.length;var e;for(var d=0;d<a;d++){e=b[d];if(e._sortType!=null&&e._sortType!="None"){e.removeChild(e.lastChild);if(typeof e.removeEventListener!="undefined"){e.removeEventListener("click",this._headerOnclick,false)}else{if(typeof e.detachEvent!="undefined"){e.detachEvent("onclick",this._headerOnclick)}}e._sortType=null;e.removeAttribute("_sortType")}}};SortableTable.prototype.updateHeaderArrows=function(){if(!this.tHead){return}var c=this.tHead.rows[this.headers_row_idx].cells;var a=c.length;var b;for(var d=0;d<a;d++){if(c[d]._sortType!=null&&c[d]._sortType!="None"){b=c[d].lastChild;if(d==this.sortColumn){b.src="/img/sb/racing/"+(this.descending?"sortdesc.gif":"sortasc.gif")}else{b.src="/img/sb/racing/sortnone.gif"}}}};SortableTable.prototype.headerOnclick=function(d){var a=d.target||d.srcElement;while(a.tagName!="TH"){a=a.parentNode}var c=this.tHead.ownerDocument||this.tHead.document;var b=c.getElementById("initialsort_"+this.ev_id);b.style.display="none";this.sort(SortableTable.msie?SortableTable.getCellIndex(a):a.cellIndex)};SortableTable.getCellIndex=function(d){var b=d.parentNode.childNodes;var a=b.length;var c;for(c=0;b[c]!=d&&c<a;c++){}return c};SortableTable.prototype.getSortType=function(a){return this.sortTypes[a]||"String"};SortableTable.prototype.sort=function(d,j,b){if(!this.tBody){return}if(b==null){b=this.getSortType(d)}if(b=="None"){return}if(j==null){if(this.sortColumn!=d){this.descending=this.defaultDescending}else{this.descending=!this.descending}}else{this.descending=j}if(b=="Odds"&&this.sortColumn!=d){this.descending=!this.descending}this.sortColumn=d;if(typeof this.onbeforesort=="function"){this.onbeforesort()}var k=this.getSortFunction(b,d);var m=this.getCache(b,d);var n=this.tBody;m.sort(k);if(this.descending){m.reverse()}if(SortableTable.removeBeforeSort){var g=n.nextSibling;var c=n.parentNode;c.removeChild(n)}var e=m.length;for(var h=0;h<e;h++){n.appendChild(m[h].element)}if(SortableTable.removeBeforeSort){c.insertBefore(n,g)}this.updateHeaderArrows();this.destroyCache(m);if(typeof this.onsort=="function"){this.onsort()}};SortableTable.prototype.asyncSort=function(c,a,d){var b=this;this._asyncsort=function(){b.sort(c,a,d)};window.setTimeout(this._asyncsort,1)};SortableTable.prototype.getCache=function(h,f){if(!this.tBody){return[]}var g=this.tBody.rows;var c=g.length;var b=new Array(c);var e;for(var d=0;d<c;d++){e=g[d];b[d]={value:this.getRowValue(e,h,f),element:e}}return b};SortableTable.prototype.destroyCache=function(c){var a=c.length;for(var b=0;b<a;b++){c[b].value=null;c[b].element=null;c[b]=null}};SortableTable.prototype.getRowValue=function(a,f,d){if(this._sortTypeInfo[f]&&this._sortTypeInfo[f].getRowValue){return this._sortTypeInfo[f].getRowValue(a,d)}var b;var e=a.cells[d];if(typeof e.innerText!="undefined"){b=e.innerText}else{b=SortableTable.getInnerText(e)}return this.getValueFromString(b,f)};SortableTable.getInnerText=function(e){var d="";var c=e.childNodes;var a=c.length;for(var b=0;b<a;b++){switch(c[b].nodeType){case 1:d+=SortableTable.getInnerText(c[b]);break;case 3:d+=c[b].nodeValue;break}}return d};SortableTable.prototype.getValueFromString=function(a,b){if(this._sortTypeInfo[b]){return this._sortTypeInfo[b].getValueFromString(a)}return a};SortableTable.prototype.getSortFunction=function(b,a){if(this._sortTypeInfo[b]){return this._sortTypeInfo[b].compare}return SortableTable.basicCompare};SortableTable.oddsCompare=function oddsCompare(b,a){if(parseFloat(b.value)<parseFloat(a.value)){return -1}if(parseFloat(a.value)<parseFloat(b.value)){return 1}return 0};SortableTable.getGHRunnerNum=function(a,d){var b;var e=a.cells[0];if(typeof e.innerText!="undefined"){b=e.innerText}else{b=SortableTable.getInnerText(e)}return this.getValueFromString(b,"GreyhoundDog")};SortableTable.getOdds=function(a,d){var b;var e=a.cells[d];if(typeof e.innerText!="undefined"){b=e.innerText}else{b=SortableTable.getInnerTextOdds(e)}if(b==""){b="0.0"}return this.getValueFromString(b,"Odds")};SortableTable.getInnerTextOdds=function(f){var e="";var d=f.childNodes;var b=d.length;var a=0;for(var c=0;c<b;c++){switch(d[c].nodeType){case 1:e=SortableTable.getInnerTextOdds(d[c]);a=1;break;case 3:e=d[c].nodeValue;a=1;break}if(a==1){break}}return e};SortableTable.prototype.destroy=function(){this.uninitHeader();var a=this.document.parentWindow;if(a&&typeof a.detachEvent!="undefined"){a.detachEvent("onunload",this._onunload)}this._onunload=null;this.element=null;this.tHead=null;this.tBody=null;this.document=null;this._headerOnclick=null;this.sortTypes=null;this._asyncsort=null;this.onsort=null};SortableTable.prototype.addSortType=function(d,a,c,b){this._sortTypeInfo[d]={type:d,getValueFromString:a||SortableTable.idFunction,compare:c||SortableTable.basicCompare,getRowValue:b}};SortableTable.prototype.removeSortType=function(a){delete this._sortTypeInfo[a]};SortableTable.basicCompare=function compare(b,a){if(b.value<a.value){return -1}if(a.value<b.value){return 1}return 0};SortableTable.idFunction=function(a){return a};SortableTable.toUpperCase=function(a){return a.toUpperCase()};SortableTable.toDate=function(a){var b=a.split("-");var c=new Date(0);c.setFullYear(b[0]);c.setDate(b[2]);c.setMonth(b[1]-1);return c.valueOf()};SortableTable.toDecimal=function(b){b=b.replace("SP","");b=b.replace("evens","2.00");b=b.strip();if(b.indexOf(".")>-1){return b}else{if(b.indexOf("-")>-1){var c=b.split("-");var a=(parseFloat(c[0])/parseFloat(c[1]))+1;return a}else{if(b.indexOf("/")>-1){var c=b.split("/");var a=(parseFloat(c[0])/parseFloat(c[1]))+1;return a}}}};SortableTable.toNumber=function(a){var b=a.indexOf("(");if(b<0){return a}else{a=a.stripTags();a=a.substring(0,b);a=a.strip();return(a+0)}};SortableTable.prototype.addSortType("Number",Number);SortableTable.prototype.addSortType("CaseInsensitiveString",SortableTable.toUpperCase);SortableTable.prototype.addSortType("Date",SortableTable.toDate);SortableTable.prototype.addSortType("String");SortableTable.prototype.addSortType("Racecard",SortableTable.toNumber,SortableTable.oddsCompare);SortableTable.prototype.addSortType("GreyhoundDog",SortableTable.toNumber,SortableTable.basicCompare,SortableTable.getGHRunnerNum);SortableTable.prototype.addSortType("Odds",SortableTable.toDecimal,SortableTable.oddsCompare,SortableTable.getOdds);