var i_server_check_interval = 15000;
var i_server_check_count = 1.0;
var i_bet_time_left_diff = 0;
var intervalBetCheckUpdate;
var intervalBetCurrentBetQueue;
var a_bet_cur_queue = new Array();
var a_bet_cur_time_left = new Array();
var i_bet_cur_count = 0;
var i_bet_cur_rows = -1;

for (var t=0;t<getBetActiveMaxRows();t++)
	{
	a_bet_cur_queue[t] = new betCurrentBetQueueObject(0, '', '', '', '', '')
	a_bet_cur_time_left[t] = 0;
	eval('var intervalBetTimeLeft'+ t +';');
	}
	
//***************************************************
//*** DO BET CHECK UPDATE
function doBetCheckUpdate()
	{
	doBetCheckUpdateActions();
	intervalBetCheckUpdate = setInterval("doBetCheckUpdateActions()", i_server_check_interval);
	}
	
function doBetCheckUpdateActions()
	{
	if (i_server_check_interval < i_server_stop_updates)
		{
		doBetCurrentBets(); // UPDATE CURRENT BETS
		
		i_server_check_count += .005;
		i_server_check_interval *= i_server_check_count;
		i_server_check_interval = parseInt(i_server_check_interval);
		
		clearInterval(intervalBetCheckUpdate);
		intervalBetCheckUpdate = setInterval("doBetCheckUpdateActions()", i_server_check_interval);
		}
	else
		{
		var theDiv = document.getElementById('lb_message');
		theDiv.innerHTML = 'Stale Session. Live updates have stopped. Refresh the page to start live updates again.';
		}
	}
	
//***************************************************
//*** BET CURRENT BET OBJECT
function betCurrentBetQueueObject(argBetID, argTitle, argDesc, argBetters, argDateEnd, argDateNow)
	{
	this.bet_id = argBetID;
	this.bet_title = argTitle;
	this.bet_desc = argDesc;
	this.bet_betters = argBetters;
	this.bet_date_end = argDateEnd;
	this.bet_date_now = argDateNow;
	}
	
function doBetCurrentBets()
	{
	showLoadingIcon('div_loading_icon');
	var res = ASP.default_aspx.GetBetCurrentBets();
	setTimeout("hideLoadingIcon('div_loading_icon');", 300);
	
	var i_rows = res.value.Tables[0].Rows.length;
	
	var i_bet_id = 0;
	var s_title = '';
	var s_desc = '';
	var s_betters = '';
	var s_date_end = '';
	var s_date_now = '';
	
	if (i_bet_cur_rows != i_rows && i_bet_cur_rows != -1)
		betClearBetQueue();
		
	i_bet_cur_rows = i_rows
	
	if (i_rows > 0)
		{
		for (var i=0;i<i_rows;i++)
			{
			i_bet_id = res.value.Tables[0].Rows[i]['bet_id'];
			s_title = res.value.Tables[0].Rows[i]['title'];
			s_desc = res.value.Tables[0].Rows[i]['description'];
			s_betters = res.value.Tables[0].Rows[i]['num_betters'];
			s_date_end = res.value.Tables[0].Rows[i]['date_end'];
			s_date_now = res.value.Tables[0].Rows[i]['date_now'];
			
			betCurrentBetQueueEdit(i,i_bet_id,s_title,s_desc,s_betters,s_date_end,s_date_now);
			}
		doBetCurrentBetQueue();
		}
	}
	
function doBetCurrentBetQueue()
	{
	clearInterval(intervalBetCurrentBetQueue);
	intervalBetCurrentBetQueue = setInterval("betCurrentBetQueueToScreen()", 100);
	}
	
function betCurrentBetQueueToScreen()
	{
//	alert('a_bet_cur_queue.length='+ a_bet_cur_queue.length);
//	alert('i_bet_cur_count='+ i_bet_cur_count);
//	alert('a_bet_cur_queue[i_bet_cur_count].bet_id='+ a_bet_cur_queue[i_bet_cur_count].bet_id);
	
	if (a_bet_cur_queue.length > i_bet_cur_count && parseInt(a_bet_cur_queue[i_bet_cur_count].bet_id) > 0)
		{
//		alert('update2='+ i_bet_cur_count);
		updateCurrentBetRow(i_bet_cur_count, a_bet_cur_queue[i_bet_cur_count].bet_id, a_bet_cur_queue[i_bet_cur_count].bet_title, a_bet_cur_queue[i_bet_cur_count].bet_desc, a_bet_cur_queue[i_bet_cur_count].bet_betters, a_bet_cur_queue[i_bet_cur_count].bet_date_end, a_bet_cur_queue[i_bet_cur_count].bet_date_now)
		i_bet_cur_count++;
		}
	else
		{
		clearInterval(intervalBetCurrentBetQueue);
		i_bet_cur_count = 0;
		}
	}
	
function betCurrentBetQueueEdit(argIndex, argBetID, argTitle, argDesc, argBetters, argDateEnd, argDateNow)
	{
	a_bet_cur_queue[argIndex].bet_id = argBetID;
	a_bet_cur_queue[argIndex].bet_title = argTitle;
	a_bet_cur_queue[argIndex].bet_desc = argDesc;
	a_bet_cur_queue[argIndex].bet_betters = argBetters;
	a_bet_cur_queue[argIndex].bet_date_end = argDateEnd;
	a_bet_cur_queue[argIndex].bet_date_now = argDateNow;
	}
	
function betClearBetQueue()
	{
	var theDiv;
	
	for (var i = 0; i<a_bet_cur_queue.length;i++)
		{
		betCurrentBetQueueEdit(i, 0, '', '', '', '', '');
		
		// BET ROW
		theDiv = document.getElementById('bet_list_row_id_'+ i);
		theDiv.className = '';
		
		// BET ID
		theDiv = document.getElementById('bet_list_id_'+ i);
		theDiv.innerHTML = '';
		
		// BET TITLE
		theDiv = document.getElementById('bet_title_id_'+ i);
		theDiv.innerHTML = '';
		
		// BET # BETTERS
		theDiv = document.getElementById('bet_num_betters_id_'+ i);
		theDiv.innerHTML = '';
			
		// BET TIME LEFT
		theDiv = document.getElementById('bet_time_left_id_'+ i);
		theDiv.innerHTML = '';
		}
	}
	
function updateCurrentBetRow(argBetListID, argBetID, argTitle, argDesc, argBetters, argDateEnd, argDateNow)
	{
	var theDiv;
	var b_new_row = false;
	var s_old_string = '';
	var s_new_string = ''
	var s_end_color = '#c5ccd7';
	
	theDiv = document.getElementById('bet_list_row_id_'+ argBetListID);
	if (argBetListID % 2 == 0)
		{
		theDiv.className = 'betActiveBetsAlt';
		s_end_color = '#c5ccd7';
		}
	else
		{
		theDiv.className = '';
		s_end_color = '#d5d7da';
		}
	
	// BET ID
	theDiv = document.getElementById('bet_list_id_'+ argBetListID);
	s_old_string = theDiv.innerHTML;
	
	s_old_string = s_old_string.replace('http://192.168.15.10/game/','');
	
	s_new_string = '<a href="bet.aspx?betid='+ argBetID +'">view/bet</a>'
	
	var re = /(\d)*/g;
	var i_bed_id_old = String(s_old_string.match(re)).replace(/,/g,'');
	var i_bed_id_new = String(s_new_string.match(re)).replace(/,/g,'');
	
	if (i_bed_id_old != i_bed_id_new && argBetListID == 0)
		b_new_row = true;
		
	if(b_new_row)
		{
		new Effect.Highlight('bet_list_row_id_'+ argBetListID,{duration:.9,startcolor:'#ffffff', endcolor:s_end_color});
		
		for (var j=0;j<a_bet_cur_time_left.length;j++)
			{
			a_bet_cur_time_left[j] = 0;
			if (eval('intervalBetTimeLeft'+ j +' != null'))
				{
				eval('clearInterval(intervalBetTimeLeft'+ j +');');
//				alert(j +'\n'+ eval('intervalBetTimeLeft'+ j));
				}
			}
		}
		
//	alert('('+ argBetListID +')='+ b_new_row);
	
	theDiv.innerHTML = s_new_string;
	
	// BET TITLE
	theDiv = document.getElementById('bet_title_id_'+ argBetListID);
	s_old_string = theDiv.innerHTML;
	s_new_string = '<strong>'+ argTitle +'</strong><br />'+ argDesc;
	
	theDiv.innerHTML = s_new_string;
	
	// BET # BETTERS
	theDiv = document.getElementById('bet_num_betters_id_'+ argBetListID);
	s_old_string = theDiv.innerHTML;
	s_new_string = argBetters;
	
	theDiv.innerHTML = s_new_string;
	
	if (s_old_string != s_new_string && !b_new_row)
		{
		new Effect.Highlight('bet_num_betters_cell_'+ argBetListID,{duration:.9,startcolor:'#ffffff', endcolor:s_end_color});
		}
		
	// BET TIME LEFT
	theDiv = document.getElementById('bet_time_left_id_'+ argBetListID);
	s_old_string = theDiv.innerHTML;
	var s_return = getTimeLeft(argDateEnd,argDateNow);
	var b_interval = false;
	
	s_new_string = s_return;

	if (s_return.substring(0,3) == 'sec')
		{
		var d_date_end = new Date(argDateEnd);
		var d_date_now = new Date(argDateNow);
		
		a_bet_cur_time_left[argBetListID] = (d_date_end - d_date_now);
		
		b_interval = eval('intervalBetTimeLeft'+ argBetListID +' == null');
		
		if (b_interval)
			{
			doBetTimeLeft(argBetListID);
			new Effect.Highlight('bet_time_left_cell_'+ argBetListID,{duration:.9,startcolor:'#ffffff', endcolor:s_end_color});
			}
		}
	else
		{
		theDiv.innerHTML = s_new_string;
		if (s_old_string != s_new_string && !b_new_row)
			{
			new Effect.Highlight('bet_time_left_cell_'+ argBetListID,{duration:.9,startcolor:'#ffffff', endcolor:s_end_color});
			}
		}
	}
	
function doBetTimeLeft(argBetListID)
	{
	changeBetTimeLeft(argBetListID)
	eval('intervalBetTimeLeft'+ argBetListID +' = setInterval("changeBetTimeLeft('+ argBetListID +')", 1000);');
	}
	
function changeBetTimeLeft(argBetListID)
	{
	var i_a_second = 1000;
	var theDiv = document.getElementById('bet_time_left_id_'+ argBetListID);
	var a_startcolors = new Array('#ff0000','#ff0000','#ff0000','#fd411c','#ff873e','#fdb557','#fec96d','#fee187','#fef2a4','#fffed0','#ffffff');
	var s_end_color = '#c5ccd7';
	
	if (argBetListID % 2 == 0)
		s_end_color = '#c5ccd7';
	else
		s_end_color = '#d5d7da';
	
	if (a_bet_cur_time_left[argBetListID] <= 0)
		{
		eval('clearInterval(intervalBetTimeLeft'+ argBetListID +');');
		a_bet_cur_time_left[argBetListID] = 0;
		theDiv.innerHTML = 'Betting Closed';
		}
	else
		{
		var d_seconds = (a_bet_cur_time_left[argBetListID] / i_a_second);
		var i_seconds = Math.floor(d_seconds);
		theDiv.innerHTML = i_seconds +' Seconds';
		
		if (i_seconds >= 0 && i_seconds <= 10)
			{
			var s_startcolor = a_startcolors[i_seconds];
			new Effect.Highlight('bet_time_left_cell_'+ argBetListID,{duration:.9,startcolor:s_startcolor, endcolor:s_end_color});
			}
		
		a_bet_cur_time_left[argBetListID] -= i_a_second;
		}
	}
	
