function SortEvents(a, b){
	if ( a.title < b.title ) return -1;
	if ( a.title > b.title ) return 1;
	return 0;
}

function EventTable(arr) {
	var rcolor1=new String();
	var s=new String();
	var timeLeft=new String();
	var t=arr.length;
	arr.sort(SortEvents);
	for(var i=0;i<t;i++) {
		var itm=arr[i];
		var closes = "";
		if(itm.expiryDate=='')
			closes = _UNEXPIRABLE;
		else
			closes = TimeLeft(itm.secBE);
		if(itm.secBS < 0)
			closes = '<SPAN style="color:#cc0000">'+closes+'</SPAN>';
		s+='<TR><TD class="betrow"><A class="event" href="event.asp?eid='+itm.id+'">'+itm.title+'</A></TD><TD class="betrowc">'+closes+'</TD><TD class="betrowc">'+itm.offers+'</TD></TR>';
	}
	s='<TABLE class="bets" border="0" cellspacing="0" cellspacing="0"><TR><TD class="thdr" width="65%" style="text-align:left">'+_EVENT_TITLE+'</TD><TD class="thdr" width="25%">'+_CLOSES+'</TD><TD class="thdr" width="10%">'+_OFFERS+'</TD></TR>'+s+'</TABLE>';
	return s;
}

function BetTable() {
	var s=new String();
	var t=aOptions.length;
	for(var i=0;i<t;i++) {
		var itm=aOptions[i];
		s+='<TR><TD class="betrow"><A href="javascript:ChooseOdds('+itm.optionId+', '+0+', 0, \''+itm.optionName.replace(/'/g, "\\'")+'\');">'+itm.optionName+'</A></TD>';
		s+='<TD class="betodds1" width="11%"><B>'+GetOdds(itm.odds1[2])+'</B><BR>'+GetStake(itm.stakes1[2])+'</TD><TD class="betodds2" width="11%"><B>'+GetOdds(itm.odds1[1])+'</B><BR>'+GetStake(itm.stakes1[1])+'</TD><TD class="betodds3a" width="11%"><A style="color:#000" href="javascript:ChooseOdds('+itm.optionId+", "+GetOdds(itm.odds1[0])+', 2, \''+itm.optionName.replace(/'/g, "\\'")+'\');"><B>'+GetOdds(itm.odds1[0])+'</B><BR>'+GetStake(itm.stakes1[0])+'</A></TD>';
		s+='<TD class="betodds3b" width="11%"><A style="color:#000" href="javascript:ChooseOdds('+itm.optionId+", "+GetOdds(itm.odds2[0])+', 1, \''+itm.optionName.replace(/'/g, "\\'")+'\');"><B>'+GetOdds(itm.odds2[0])+'</B><BR>'+GetStake(itm.stakes2[0])+'</A></TD><TD class="betodds2" width="11%"><B>'+GetOdds(itm.odds2[1])+'</B><BR>'+GetStake(itm.stakes2[1])+'</TD><TD class="betodds1" width="11%"><B>'+GetOdds(itm.odds2[2])+'</B><BR>'+GetStake(itm.stakes2[2])+'</TD>';
		s+='<TR>';
	}
	s='<TABLE class="bets" border="0" width="100%" cellpadding="0" cellspacing="0"><TR><TD class="thdr" width="34%">'+_BET_OPTIONS+'</TD><TD class="thdr" width="33%" colspan="3">'+_BACK+'</TD><TD class="thdr" width="33%" colspan="3">'+_LAY+'</TD></TR>'+s+'</TABLE>';
	return s;
}

function OBetTable() {	
	var rcolor=new String();
	var s=new String();
	var t=aOBets.length;
	for(var i=0;i<t;i++) {
		var itm=aOBets[i];
		if(rcolor==LCol) { rcolor=DCol; } else { rcolor=LCol; }
		var expiry = MDate(itm.expiryDate, 1, _UNEXPIRABLE);
		s+='<TR style="background-color:'+rcolor+'"><TD class="betrowc"><A href="javascript:CancelBet('+itm.eventId+', '+itm.optionId+', '+itm.id+', ' + classId +');"><IMG border="0" alt="Cancel Bet" src="../assets/system/images/x.gif" width="9" height="8"></A></TD><TD class="betrow">'+itm.optionName+'</TD><TD class="betrowc">'+BetTypeName(itm.type)+'</TD><TD class="betrowc">'+Odd(itm.odds)+'</TD><TD class="betrowc">$'+Round(itm.stake, 2)+'</TD><TD class="betrow">'+TimeLeftFromDate(itm.expiryDate)+'</TD></TR>';
	}
	s='<P class="caption">'+_YOUR_OPEN_BETS+'</P><TABLE class="bets" border="0" cellspacing="0" cellspacing="0"><TR><TD class="thdr" width="2%"><IMG border="0" alt="Cancel Bet" src="../assets/system/images/x.gif" width="9" height="8"></TD><TD class="thdr" width="30%">'+_OPTION+'</TD><TD class="thdr" width="8%">'+_TYPE+'</TD><TD class="thdr" width="18%">'+_ODDS+'</TD><TD class="thdr" width="18%">'+_STAKE+'</TD><TD class="thdr" width="14%">'+_EXPIRES+'</TD></TR>'+s+'</TABLE>';
	return s;	
}

function EBetTable() {
	var rcolor=new String();
	var s=new String();
	var t=aEBets.length;
	for(var i=0;i<t;i++) {
		var itm=aEBets[i];
		if(rcolor==LCol) { rcolor=DCol; } else { rcolor=LCol; }
		var expiry = MDate(itm.expiryDate, 1, _UNEXPIRABLE);
		s+='<TR style="background-color:'+rcolor+'"><TD class="betrowc">'+itm.id+'</TD><TD class="betrow">'+itm.optionName+'</TD><TD class="betrowc">'+BetTypeName(itm.type)+'</TD><TD class="betrowc">'+Odd(itm.odds)+'</TD><TD class="betrowc">$'+Round(itm.stake, 2)+'</TD></TR>';		
	}
	s='<P class="caption">'+_YOUR_EXECUTED_BETS+'</P><TABLE class="bets" border="0" cellspacing="0" cellspacing="0"><TR><TD class="thdr" width="10%">ID</TD><TD class="thdr" width="22%">'+_OPTION+'</TD><TD class="thdr" width="8%">'+_TYPE+'</TD><TD class="thdr" width="12%">'+_ODDS+'</TD><TD class="thdr" width="12%">'+_STAKE+'</TD></TR>'+s+'</TABLE>';
	return s;
}

function MOBetTable() {
	var rcolor=new String();
	var s=new String();
	var t=aBets.length;
	for(var i=0;i<t;i++) {
		var itm=aBets[i];
		if(rcolor==LCol) { rcolor=DCol; } else { rcolor=LCol; }
		var expiry = MDate(itm.expiryDate, 1, _UNEXPIRABLE);
		s+='<TR style="background-color:'+rcolor+'"><TD class="betrowc"><A href="javascript:CancelBet('+itm.eventId+', '+itm.optionId+', '+itm.id+');"><IMG border="0" alt="Cancel Bet" src="assets/images/x.gif" width="9" height="8"></A></TD><TD class="betrowc">'+itm.id+'</TD><TD class="betrow"><A class="event" href="event.asp?eid='+itm.eventId+'">'+itm.eventTitle+'</A></TD><TD class="betrow">'+itm.optionName+'</TD><TD class="betrowc">'+BetTypeName(itm.type)+'</TD><TD class="betrowc">'+Odd(itm.odds)+'</TD><TD class="betrowc">$'+Round(itm.stake, 2)+'</TD></TR>';		
	}
	s='<TABLE class="bets" border="0" cellspacing="0" cellspacing="0"><TR><TD class="thdr" width="3%"><IMG border="0" alt="Cancel Bet" src="assets/images/x.gif" width="9" height="8"></TD><TD class="thdr" width="10%">ID</TD><TD class="thdr" width="34%">'+_EVENT_TITLE+'</TD><TD class="thdr" width="21%">'+_OPTION+'</TD><TD class="thdr" width="8%">'+_TYPE+'</TD><TD class="thdr" width="12%">'+_ODDS+'</TD><TD class="thdr" width="12%">'+_STAKE+'</TD></TR>'+s+'</TABLE>';
	return s;
}

function MEBetTable() {
	var rcolor=new String();
	var s=new String();
	var t=aBets.length;	
	for(var i=0;i<t;i++) {
		var itm=aBets[i];
		if(rcolor==LCol) { rcolor=DCol; } else { rcolor=LCol; }
		var expiry = MDate(itm.expiryDate, 1, _UNEXPIRABLE);
		s+='<TR style="background-color:'+rcolor+'"><TD class="betrowc">'+itm.id+'</TD><TD class="betrow"><A class="event" href="event.asp?eid='+itm.eventId+'">'+itm.eventTitle+'</A></TD><TD class="betrow">'+itm.optionName+'</TD><TD class="betrowc">'+BetTypeName(itm.type)+'</TD><TD class="betrowc">'+Odd(itm.odds)+'</TD><TD class="betrowc">$'+Round(itm.stake, 2)+'</TD></TR>';		
	}
	s='<TABLE class="bets" border="0" cellspacing="0" cellspacing="0"><TR><TD class="thdr" width="10%">ID</TD><TD class="thdr" width="36%">'+_EVENT_TITLE+'</TD><TD class="thdr" width="22%">'+_OPTION+'</TD><TD class="thdr" width="8%">'+_TYPE+'</TD><TD class="thdr" width="12%">'+_ODDS+'</TD><TD class="thdr" width="12%">'+_STAKE+'</TD></TR>'+s+'</TABLE>';
	return s;
}

function BetTypeName(v)
{
	if(v==1) { return _LAY; } else { return _BACK; }
}

function GetOdds(v)
{
	if(v==null) { return ""; } else { return Odd(v); }
}

function GetStake(v)
{
	var tmp = 0;
	if(v<1) { tmp = Round(v, 2); } else { tmp = Round(v, 1); }
	if(v==null) { return ""; } else { return _CSIGN+tmp; }
}

function TimeLeftFromDate(v)
{
	if(v=='')
		return _NEVER;
	else
	{	
		var now = new Date(today);
		var expires = new Date(v);
		var dif = Math.ceil((expires.getTime()-now.getTime())/1000)
		var d, h, m, s;
		d = Math.floor(dif / 86400);
		h = Math.floor((dif % 86400) / 3600);
		m = Math.floor((dif % 3600) / 60);
		return d + 'd ' + SRepeat('0', 2-h.toString().length) + h + ':' + SRepeat('0', 2-m.toString().length) + m;
	}
}

function TimeLeft(v) {
	var d, h, m, s;
	d = Math.floor(v / 86400);
	if(d<32)
	{
		h = Math.floor((v % 86400) / 3600);
		m = Math.floor((v % 3600) / 60);
		//s = v - h*3600 - m*60;
		return d + 'd ' + SRepeat('0', 2-h.toString().length) + h + 'h ' + SRepeat('0', 2-m.toString().length) + m +'m';
	}
	else
	{
		var now = new Date();
		now.setHours(now.getUTCHours()+timeZone);
		now.setSeconds(now.getSeconds()+v);
		return MDate(now, false);
	}
}

function RefreshData(id, q) {
	var url;
	datastatus.style.visibility = 'visible';
	sts(_LOADING_DATA_FROM_SERVER);
	switch(id) {
		case 1: url="v3_events.asp"; break;
		case 2: url="v3_offers.asp"; break;
		case 3: url="v3_events.asp"; break;
		case 4: url="v3_obets.asp"; break;
		case 5: url="v3_ebets.asp"; break;
		case 7: url="v3_events.asp"; break;
	}	
	if(q!='') { q = "&" + q + "&"; }
	if(refreshInterval>0) {
		conn.src = "../dataproviders/" + url + "?cultureid="+cultureId+"&rid=" + id + q + "rnd=" + Math.random();
	} else {
		document.write('<script type="text/javascript" language="JavaScript" src="dataproviders/'+url+'?rid='+id+q+'rnd='+Math.random()+'">noscript</script>');
	}
}

function Odd(v) {
	if(v==0) {
		return 0;
	} else {
		switch(parseInt(oddStyle)) {
			case 1 : return Round(v, 2);
			case 2 : return Decimal2Fractional(v);
			case 3 : return Decimal2US(v);

		}
	}
}

function Decimal2Fractional(v) {
	v = v - 1;
	v = Round(v * 100, 0);
	if((v % 10)==0) { dividend = v / 10; divisor = 10; } else { dividend = v; divisor = 100; }
	return dividend + '/' + divisor;
}

function Decimal2US(v) {
	v = v - 1;
	if(v < 1) {
		odd = -1 * (Round(Round(1/v, 1) * 100, 0));
	} else {
		v = Round(v * 1000, 0);
		if((v % 100)==0) { odd = v / 10; } else { odd = v;  }
	}
	return odd;
}