/*
********************************************************************

	file:	account.js
	author:	Rob Cannon
	date:	2003-11-24
	
	This file is protected by copyright.  Unauthorized use is 
	strictly prohibited.

	Copyright (c) 2003 US Off-Track, Inc.  All Rights Reserved.
	
********************************************************************
*/


var mdecTotalCost = 0;
var mintBetNumber;
var mblnSending = false;
var mblnSubmitting = false;
var mtrHighlight;
var mintTransaction = 0;

var marrHistory;
var mstrDate;
var marrDateList;

var marrAccountImages = PreLoadImages('img/login.gif','img/loginover.gif','img/submitbets.gif','img/submitbetsdown.gif','img/submitbetsover.gif','img/clearqueue.gif','img/clearqueueover.gif','img/clearqueuedown.gif' );

var mintHeartbeatAccountData;
var mintHeartbeatAccountUpd;

var mstrAccountDataURL='accountdata.aspx';
var mstrAccountUpdURL;









function SendToQueue() {
	var cmdQueue = GetElement('cmdQueue');
	cmdQueue.src = 'img/queuedown.gif';
	cmdQueue.className = 'buttonoff';
	var strPlayAll = '';
	if (GetElement('tdPlayAllHdr')) {
		strPlayAll = '&PlayAll=1';
	}
	else {
		strPlayAll = '&RaceNumber=' + mintRaceNumber;
	}
	LoadAccountDataURL('accountdata.aspx?action=queue&trans=' + mintTransaction + '&ProgramKey=' + mintProgramKey + '&BetTypeCode=' + mstrBetTypeCode + '&BetAmount=' + mdecBetAmount + '&RunnerList=' + GetRunnerList() + '&BetCost=' + mdecBetCost + '&BetMod=' + GetBetMod()+ strPlayAll);
	mblnSending = true;	
	HideBetMenu ();
}


function Login () {
	LoadAccountDataURL('accountdata.aspx?action=login&trans=' + mintTransaction + '&UserName=' + GetElement('txtUserName').value + '&Password=' + GetElement('txtPassword').value);
	return false;

}


function Logout () {
	LoadAccountDataURL('accountdata.aspx?action=logout&trans=' + mintTransaction);
	HideBetMenu ();
	
}

function ViewBetHistory () {
	DisplayBetQueueLink ();
 	LoadAccountDataURL('accountdata.aspx?disptype=H&trans=' + mintTransaction);
	HideBetMenu ();
}

function ViewBetQueue () {
	DisplayBetHistoryLink();
	LoadAccountDataURL('accountdata.aspx?disptype=Q&trans=' + mintTransaction);
}

function RefreshTodaysBets () {
	DisplayBetHistoryLink();
	LoadAccountDataURL('accountdata.aspx?disptype=R&trans=' + mintTransaction);
	HideBetMenu ();
}

function DisplayBetQueueLink () {
	if (GetElement('lnkBetQueue')) {
		GetElement('lnkBetQueue').style.display = 'inline';
	}
	if (GetElement('lnkBetHistory')) {
		GetElement('lnkBetHistory').style.display = 'none';
	}
	if (GetElement('lnkBetRefresh')) {
		GetElement('lnkBetRefresh').style.display = 'inline';
	}
}

function DisplayBetHistoryLink () {
	if (GetElement('lnkBetQueue')) {
		GetElement('lnkBetQueue').style.display = 'none';
	}
	if (GetElement('lnkBetHistory')) {
		GetElement('lnkBetHistory').style.display = 'inline';
	}
	if (GetElement('lnkBetRefresh')) {
		GetElement('lnkBetRefresh').style.display = 'none';
	}
}


function UpdateHistory (strHistory) {
	marrHistory=null;
	if (strHistory != '') {
		marrHistory = strHistory.split ('%09');
	}
	if (GetElement('tblHistoryFrame')) {
		DisplayHistory();
	}
}

function UpdateHistoryLine (intIndex, strFields) {
	var trBetLine = AssertHistoryLine (intIndex);
	var arrFields = strFields.split ('%7F');
	var strBetText = arrFields[1] + ' Race ' + arrFields[2] + '<br/>' + arrFields[3] + arrFields[7] + ' $' + Number(arrFields[4]).toFixed(2) + ' ' + ReplaceAll(arrFields[5],'-','/');
	trBetLine.title = 'Serial Number: ' + arrFields[9] + '  Purchased: ' + ReplaceAll(arrFields[10],'%20',' ') + '  Click to display this race.';
	var strStatus; 
	if (arrFields[8]=='Won') {
		strStatus = arrFields[6];
	}
	else {
		strStatus = arrFields[8];
	}
	
	GetElement('tdHistoryStatus' + intIndex).innerHTML = strStatus;
	
	trBetLine.onmouseover = OvertrBetQueue; 
	trBetLine.onmouseout = OuttrBetQueue; 
	trBetLine.onclick = HistoryClick;
	trBetLine.className = 'betqueuerow';
	try {
		trBetLine.style.cursor = 'pointer';
	}
	catch (e) { }
	
			
	GetElement('tdHistoryText' + intIndex).innerHTML = strBetText;

}

function AssertHistoryLine (intIndex) {
	var tdAdd;
	var trAdd = GetElement('trHistory' + intIndex);
	if (!trAdd) {
		var tblHistory = GetElement('tblHistory');
		trAdd = tblHistory.insertRow(tblHistory.rows.length);
		trAdd.id = 'trHistory' + intIndex;

		tdAdd = trAdd.insertCell(0);
		tdAdd.id = 'tdHistoryText' + intIndex;
		if (intIndex>0) {
			tdAdd.style.borderTopStyle = 'solid';
			tdAdd.style.borderTopWidth = 1;
			tdAdd.style.borderTopColor = 'White';
		}
		tdAdd = trAdd.insertCell(1);
		tdAdd.align = 'right';
		tdAdd.vAlign = 'bottom';
		tdAdd.id = 'tdHistoryStatus' + intIndex;
		if (intIndex>0) {
			tdAdd.style.borderTopStyle = 'solid';
			tdAdd.style.borderTopWidth = 1;
			tdAdd.style.borderTopColor = 'White';
		}
	}
	return trAdd;

}

function HideBetMenu () {
	GetElement('divBetMenu').style.visibility = 'hidden';
}

function SubmitBets() {
	GetElement('cmdsubmitbets').src = 'img/submitbetsdown.gif';
	GetElement('cmdsubmitbets').style.className = 'buttonpushed';
	
	GetElement('cmdsubmitbets').onmouseover = null;
	GetElement('cmdsubmitbets').onmouseout = null;
	GetElement('cmdsubmitbets').onclick = null;
	LoadAccountDataURL('accountdata.aspx?action=submit&trans=' + mintTransaction);
	mblnSubmitting = true;
	HideBetMenu ();
	
}

function ClearQueue() {
	var cmdClear = GetElement('imgClearQueue');
	cmdClear.src = 'img/clearqueuedown.gif';
	cmdClear.onmouseover = null;
	cmdClear.onmouseout = null;
	cmdClear.onclick = null;
	cmdClear.className = 'buttonpushed';
	LoadAccountDataURL('accountdata.aspx?action=clear&trans=' + mintTransaction);
	HideBetMenu ();

}

function RepeatBet() {
	LoadAccountDataURL('accountdata.aspx?action=repeat&trans=' + mintTransaction + '&betindex=' + GetRemoteBetIndex(mintBetNumber));
	HideBetMenu ();

}

function BetClick () {
	if (!mblnSending && !mblnSubmitting) {
		switch (this.className) {
			case 'betqueuerowdown':
			case 'betqueuerowbaddown':
				HideBetMenu ();
				DeHighlight ();
				break;
			case 'betqueuerowover':
			case 'betqueuerowbadover':
				if (this.className.substr(this.className.length-4) == 'over') {
					this.className = this.className.substr(0,this.className.length-4) + 'down';
				}
				else {
					this.className += 'down';
				}
				
		
				mintBetNumber = this.id.substr(10);

				this.onmouseout = null;
				this.onmouseover = null;
				
				// var obj = GetElement('betqueuedet' + mintBetNumber);
				mtrHighlight = this;
				
				var divBetMenu = GetElement('divBetMenu');
				

				
				divBetMenu.style.left = GetX(mtrHighlight) + 5;
				divBetMenu.style.top = GetY(mtrHighlight) + mtrHighlight.offsetHeight;
				// GetElement('divBetMenu').style.setAttribute ('left',GetX(obj) + 5)
				//  GetElement('divBetMenu').style.setAttribute ('top',GetY(obj) + this.offsetHeight)
				GetElement('divBetMenu').style.visibility = 'visible';
		}		
	}
}

function RemoveFromQueue () {
	LoadAccountDataURL('accountdata.aspx?action=remove&trans=' + mintTransaction + '&betindex=' + GetRemoteBetIndex(mintBetNumber));
	HideBetMenu ();

	// document.location.href ('removefromqueue.aspx?betindex=' + mintBetNumber);
}

function RemoveAndEdit () {
	DisableAccountDataTimeout();
	DisableAccountUpdTimeout();
	HideBetMenu ();
	
	document.location.href = 'accountdata.aspx?action=editbet&trans=' + mintTransaction + '&betindex=' + GetRemoteBetIndex(mintBetNumber);
}

function SubmitSingleBet () {
	LoadAccountDataURL('accountdata.aspx?action=single&trans=' + mintTransaction + '&betindex=' + GetRemoteBetIndex(mintBetNumber));
	HideBetMenu ();
	/*
	document.location.href ('placebets.aspx?betindex=' + mintBetNumber);
	*/
}

function RemoveLogin() {
	if (GetElement('divLogin')) {
		RemoveNode(GetElement('divLogin'));
		
	}
}

function AssertBalance() {
	if (!GetElement('divBalance')) {
		var divBalance = document.createElement ('div');
		divBalance.id = 'divBalance';
		divBalance.className = 'acctinfo';
		divBalance.innerHTML = 'You are logged in as <span id="spnUserName"></span>.<br />Your account balance: <span id="spnBalance"></span><br /><a class="acctlink" onclick="Logout();">Logout</a><br /><a id="lnkBetHistory" class="acctlink" onclick="ViewBetHistory();">View Bet History</a><a style="display:none;" id="lnkBetQueue" class="acctlink" onclick="ViewBetQueue();">View Bet Queue</a><br/><a style="display:none;" id="lnkBetRefresh" class="acctlink" onclick="RefreshTodaysBets();">Import HomeBet/Phone Bets</a><br/> ';
		//divBalance.innerHTML = 'You are logged in as <span id="spnUserName"></span>.<br />Your account balance: <span id="spnBalance"></span><br /><a class="acctlink" onclick="Logout();">Logout</a><br /><a class="acctlink" onclick="BetHistory();">Bet History Window</a><br />';
		GetElement('tdWelcome').appendChild (divBalance);
	}
}

function AssertLogin() {
	if (!GetElement('divLogin')) {
		var divLogin = document.createElement ('div');
		divLogin.id = 'divLogin';
		divLogin.className = 'acctinfo';
		divLogin.innerHTML = '<form id="frmLogin" style="display:inline;" onsubmit="return(Login())">Welcome!<br/>You will need to login before you can submit bets or view your history.<br /><table cellpadding="0" cellspacing="0"><tr><td><span class="acctinfo">Acct #:</span></td><td><input TABINDEX="1" type="text" class="logininput" id="txtUserName" onfocus="gblnInputActive=true;" onblur="gblnInputActive=false;"/></td></tr><tr><td><span class="acctinfo">PIN:</span></td><td><input TABINDEX="2" type="password" class="logininput" id="txtPassword" onfocus="gblnInputActive=true;" onblur="gblnInputActive=false;"/></td></tr></table><div style="padding-left:30;padding-top:10;padding-bottom:10;"><input type="image" id="cmdlogin" TABINDEX="3" class="changebutton" src="img/login.gif" onmouseover="this.src=\'img/loginover.gif\';" onmouseout="this.src=\'img/login.gif\';" ></input><div></form>';
		GetElement('tdWelcome').appendChild (divLogin);		
	}
}



function RemoveBalance() {
	if (GetElement('divBalance')) {
		RemoveNode(GetElement('divBalance'));
		// LoadAccountUpdURL(QueryReady(gstrDummyURL) + 'f=h');
		ClearAccountUpdURL();
	}
}

function UpdateTransaction(strTransaction) {
	
	var intOldTrans = mintTransaction;
	var strURL = '';
	var blnReload = false;
	
	mintTransaction = Number(strTransaction);

	
	GetElement('tdAccount').width = GetElement('tdAccount').width;
	mblnSubmitting = false;
	if (mblnSending) {
		mblnSending=false;
		strURL = '?BetTypeCode=';
		ClearBetType ();
		DisplayPage();	
	}
	
	if ((intOldTrans>0) && (intOldTrans!=mintTransaction)) {
		blnReload = true;
	}


	if (blnReload || (strURL!='')) {
		if (GetElement('tdPlayAllHdr')) {
			LoadPlayAllDataURL ('playalldata.aspx' + strURL);
		}
		if (GetElement('tdRaceNumber')) {
			LoadRaceDataURL ('racedata.aspx' + strURL);
		}
	}

	
}

function UpdateBalance (strBalance) {
	if (GetElement('spnBalance')) {
		GetElement('spnBalance').innerHTML = strBalance;
	}
}

function UpdateUserName(strUserName) {
	if (strUserName == '') {
		RemoveBalance();
		AssertLogin();
	}
	else
	{
		RemoveLogin();
		AssertBalance();
		GetElement('spnUserName').innerHTML =strUserName;
	}
}

function UpdateInfo (strInfo) {
	if (strInfo=='') {
		RemoveInfo();
	}
	else {
		AssertInfo();
		GetElement('divInfo').innerHTML = strInfo;
	}
}

function UpdateWarning (strWarning) {
	if (strWarning=='') {
		RemoveWarning();
	}
	else {
		AssertWarning();
		GetElement('divWarning').innerHTML = strWarning;
	}
}

function AssertInfo () {
	if (!GetElement('divInfo')) {
		GetElement('tdInfo').innerHTML='<span class="infomsgtitle">Info:</span><div class="infomsgtext" id="divInfo"></div>';
	}
}

function RemoveInfo () {
	GetElement('tdInfo').innerHTML = '';
}

function AssertWarning() {
	if (!GetElement('divWarning')) {
		GetElement('tdWarning').innerHTML='<span class="warningmsgtitle">Warning:</span><div class="warningmsgtext" id="divWarning"></div>';
	}
}

function RemoveWarning() {
	GetElement('tdWarning').innerHTML = '';
}

function UpdateBetQueue (strBetQueue) {
	marrBetQueue = null;
	if (strBetQueue != '') {
		marrBetQueue=strBetQueue.split ('%09');
	}
}


function RemoveBetQueue (){
	if (!GetElement('trEmptyQueue')) {
		 for (i=GetElement('tblBetQueue').rows.length;i>0;i--) {
			GetElement('tblBetQueue').deleteRow(i-1);
		 }
	}
}

function AssertEmptyQueue () {
	if (!GetElement('trEmptyQueue')) {
		var trAdd = GetElement('tblBetQueue').insertRow (0);
		trAdd.id = 'trEmptyQueue';
		tdAdd = trAdd.insertCell (0);
		tdAdd.innerHTML = '<div class="queueempty">--- The queue is empty. ---</div>';
	}
}

function RemoveEmptyQueue () {
	if (GetElement('trEmptyQueue')) {
		RemoveNode(GetElement('trEmptyQueue'));
	}
}

function OvertrBetQueue () {
	this.className += 'over';
}

function OuttrBetQueue () {
	switch (this.className) {
		case 'betqueuerowover':
			this.className='betqueuerow'; break;
		case 'betqueuerowgoodover':
			this.className='betqueuerowgood'; break;
		case 'betqueuerowbadover':
			this.className='betqueuerowbad'; break;
	}
}

function AssertBetQueueLine (intIndex) {
	var tdAdd;
	var trAdd = GetElement('trBetQueue' + intIndex);
	if (!trAdd) {
		var tblQueue = GetElement('tblBetQueue');
		trAdd = tblQueue.insertRow(tblQueue.rows.length);
		trAdd.id = 'trBetQueue' + intIndex;

		tdAdd = trAdd.insertCell(0);
		tdAdd.id = 'tdBetQueueText' + intIndex;
		if (intIndex>0) {
			tdAdd.style.borderTopStyle = 'solid';
			tdAdd.style.borderTopWidth = 1;
			tdAdd.style.borderTopColor = 'White';
		}
		tdAdd = trAdd.insertCell(1);
		tdAdd.align = 'right';
		tdAdd.vAlign = 'bottom';
		tdAdd.id = 'tdBetQueueCost' + intIndex;
		if (intIndex>0) {
			tdAdd.style.borderTopStyle = 'solid';
			tdAdd.style.borderTopWidth = 1;
			tdAdd.style.borderTopColor = 'White';
		}
	}
	return trAdd;

}

function UpdateBetQueueLine (intIndex, strFields) {
	var trBetLine = AssertBetQueueLine (intIndex);
	var arrFields = strFields.split ('%7F');
	var strBetMod = '';
	switch (arrFields[7]) {
		case 'BX': strBetMod = ' BX'; break;
		case 'KY': strBetMod = ' KY'; break;
	}
	var strBetText = arrFields[1] + ' Race ' + arrFields[2] + '<br/>' + arrFields[3] + strBetMod + ' $' + Number(arrFields[4]).toFixed(2) + ' ' + ReplaceAll(arrFields[5],'-','/');
	switch (arrFields[8]) {
		case 'S':
			trBetLine.onmouseover = null; 
			trBetLine.onmouseout = null; 
			trBetLine.onclick = null;

			trBetLine.className = 'betqueuerowgood';
			strBetText += ' (Success)';
//			GetElement('tdBetQueueText' + intIndex).style.color = '#40F040';
			GetElement('tdBetQueueCost' + intIndex).innerHTML = '--';
			trBetLine.title = arrFields[9];
			break;
		case 'F':
			trBetLine.onmouseover = OvertrBetQueue; 
			trBetLine.onmouseout = OuttrBetQueue; 
			trBetLine.onclick = BetClick;
			trBetLine.className = 'betqueuerowbad';
			trBetLine.title = arrFields[9];
			strBetText += ' (Failed)';
//			GetElement('tdBetQueueText' + intIndex).style.color = 'Red';
			mdecTotalCost += Number(arrFields[6]);
			GetElement('tdBetQueueCost' + intIndex).innerHTML = '$' + Number(arrFields[6]).toFixed(2);
			break;
		default:
			trBetLine.onmouseover = OvertrBetQueue; 
			trBetLine.onmouseout = OuttrBetQueue; 
			trBetLine.onclick = BetClick;

			trBetLine.className = 'betqueuerow';
			trBetLine.title = 'Click for options';
			mdecTotalCost += Number(arrFields[6]);
			GetElement('tdBetQueueCost' + intIndex).innerHTML = '$' + Number(arrFields[6]).toFixed(2);
	}
	GetElement('tdBetQueueText' + intIndex).innerHTML = strBetText;
}


function Overcmdsubmitbets () {
	GetElement('cmdsubmitbets').src = 'img/submitbetsover.gif';
}
		
function Outcmdsubmitbets () {
	GetElement('cmdsubmitbets').src = 'img/submitbets.gif';
}
		
function OverimgClearQueue () {
	GetElement('imgClearQueue').src = 'img/clearqueueover.gif';
}
		
function OutimgClearQueue () {
	GetElement('imgClearQueue').src = 'img/clearqueue.gif';
}		



		
function DeHighlight () {
	if (mtrHighlight) {
		mtrHighlight.className = mtrHighlight.className.substr(0,mtrHighlight.className.length-4);
		mtrHighlight.onmouseout = OuttrBetQueue;
		mtrHighlight.onmouseover = OvertrBetQueue;
		mtrHighlight = null;
	}
}


function HistoryClick () {
	var intIndex = this.id.substr(9);
	var strFields = marrHistory[intIndex];
	var arrFields = strFields.split ('%7F');
	this.style.pointer='default';
	if (GetElement('ifmRaceData')) {
		if (GetElement('ifmRaceUpd')) {
			ClearRaceUpdURL();
			// LoadRaceUpdURL(QueryReady(gstrDummyURL) + 'f=u');
		}
		DisableAccountDataTimeout();
		DisableAccountUpdTimeout();
		LoadRaceDataURL('racedata.aspx?ProgramKey=' + arrFields[0] + '&RaceNumber=' + arrFields[2] + '&DispType=W');	
	}
	else {
		document.location.href = 'setrace.aspx?ProgramKey=' + arrFields[0] + '&RaceNumber=' + arrFields[2];
	}
	
}		

function UpdateHistoryDates(strDateList, strDate) {
	mstrDate = strDate;
	marrDateList = strDateList.split (',');
}

function ChangeHistoryDate() {
	LoadAccountDataURL('accountdata.aspx?action=hdate&hdate=' + ReplaceAll(GetElement('cboHistoryDate').value,'/','-') + '&trans=' + mintTransaction);
	var intRow;
	for (intRow=1;GetElement('trHistory' + intRow); intRow++ ) {
		RemoveNode(GetElement('trHistory' + intRow));
	}
	var trZero = AssertHistoryLine (0);
	var tdText = GetElement('tdHistoryText0');
	tdText.innerHTML = 'Retrieving ...';
	trZero.className = 'betqueuerowdown';
	GetElement('tdHistoryStatus0').innerHTML='';
	marrHistory = null;	
}


function RefreshHistory() {
	LoadAccountUpdURL('accountupd.aspx');
}

function AssertBetQueue () {
	if (! GetElement('tblBetQueueFrame')) {
		var tblFrame = CreateTable();
		tblFrame.id='tblBetQueueFrame';
		var trAdd = tblFrame.insertRow(0);
		var tdAdd = trAdd.insertCell(0);
		var tblSub = CreateTable();
		tdAdd.appendChild (tblSub);
		trAdd = tblSub.insertRow(0);
		tdAdd = trAdd.insertCell(0);
		tdAdd.className = 'betqueue';
		tdAdd.align = 'left';
		tdAdd.innerHTML = 'Bet Queue';
		tdAdd = trAdd.insertCell(1);
		tdAdd.align = 'right';
		tdAdd.innerHTML = '<img src="img/clearqueuedown.gif" id="imgClearQueue" alt="Clear Bet Queue" ALIGN="middle" width="39" height="15"></img>';
		trAdd = tblFrame.insertRow(1);
		trAdd.style.height = 17;
		tdAdd = trAdd.insertCell(0);
		tdAdd.className = 'betqueueborder';
		tblSub = CreateTable();
		tdAdd.appendChild (tblSub);
		tblSub.id = 'tblBetQueue';
		
		trAdd = tblFrame.insertRow(2);
		tdAdd = trAdd.insertCell(0);
		tdAdd.className='betqueueborder';
		tblSub = CreateTable();
		tdAdd.appendChild(tblSub);
		tblSub.id='tblTotalCost';
		trAdd = tblSub.insertRow(0);
		trAdd.className='betqueuerow';
		tdAdd=trAdd.insertCell(0);
		tdAdd.innerHTML = 'Total Cost';
		tdAdd=trAdd.insertCell(1);
		tdAdd.align='right';
		tdAdd.width=30;
		tdAdd.id='spnTotalCost';
		tdAdd.innerHTML='$0.00'

		trAdd=tblFrame.insertRow(3);
		tdAdd= trAdd.insertCell(0);
		tdAdd.innerHTML = '<img border="3" src="img/submitbetsdown.gif" id="cmdsubmitbets" alt="Submit Bets" ALIGN="middle" width="96" height="19" className="button" ></img>';

		GetElement('tdAccount').appendChild(tblFrame);
	
	}
}

function AssertHistory() {
	if (! GetElement('tblHistoryFrame')) {
		var tblFrame = CreateTable();
		tblFrame.id='tblHistoryFrame';
		var trAdd = tblFrame.insertRow(0);
		var tdAdd = trAdd.insertCell(0);
		var tblSub = CreateTable();
		tdAdd.appendChild(tblSub);
		trAdd=tblSub.insertRow(0);
		tdAdd=trAdd.insertCell(0);
		tdAdd.className='betqueue';
		tdAdd.align='left';
		tdAdd.innerHTML = 'Bet History';
		tdAdd=trAdd.insertCell(1);
		tdAdd.align='right';
		
		trAdd = tblFrame.insertRow(1);
		trAdd.style.height=35;
		tdAdd = trAdd.insertCell(0);
		tdAdd.align='center';
		tdAdd.className='betqueueborder';
		tdAdd.innerHTML = '<span class="betqueuerow">Date: </span><select id="cboHistoryDate" onchange="ChangeHistoryDate()"></select>';
		
		trAdd = tblFrame.insertRow(2);
		trAdd.style.height=17;
		tdAdd = trAdd.insertCell(0);
		tdAdd.className='betqueueborder';
		tblSub = CreateTable();
		tdAdd.appendChild(tblSub);
		tblSub.id = 'tblHistory';
		GetElement('tdAccount').appendChild(tblFrame);				
		var trRetr = AssertHistoryLine (0);
		trRetr.className = 'betqueuerowdown';
		var tdText = GetElement('tdHistoryText0');
		tdText.innerHTML = 'Retrieving ...';
	}	
}


function HideHistory() {
	if (GetElement('tblHistoryFrame')) {
		RemoveNode(GetElement('tblHistoryFrame'));
	}
}

function HideBetQueue() {
	if (GetElement('tblBetQueueFrame')) {
		RemoveNode(GetElement('tblBetQueueFrame'));
	}
}

function DisplayHistory() {
	var intRowCount = 0;
	AssertHistory();
	if (marrHistory && marrHistory.length > 0) {
		GetElement('trHistory0').className = 'betqueuerow';
		var intRow;
		intRowCount = marrHistory.length;
		for (intRow=0;intRow<intRowCount;intRow++) {
			UpdateHistoryLine (intRow, marrHistory[intRow]);
		}
	}
	else {
		var tdText = GetElement('tdHistoryText0');
		tdText.innerHTML = 'Retrieving ...';
		GetElement('trHistory0').className = 'betqueuerowdown';
		GetElement('tdHistoryStatus0').innerHTML='';
		intRowCount = 1;
	}
	for (intRow=intRowCount;GetElement('trHistory' + intRow); intRow++ ) {
		RemoveNode(GetElement('trHistory' + intRow));
	}


	DisplayDateList();
	
}

function DisplayDateList() {
	
	
	var cboHistoryDate = GetElement('cboHistoryDate');
	var blnFound=false;
	
	var intIndex;
	cboHistoryDate.innerHTML = '';
	for (intIndex=0;intIndex<marrDateList.length;intIndex++) {
		AddOption (cboHistoryDate, marrDateList[intIndex])
		if (marrDateList[intIndex]==mstrDate) {
			blnFound=true;
			//  optAdd.selected=true;
		}
	}
	if (!blnFound) {
		AddOption (cboHistoryDate, mstrDate);
	}
	cboHistoryDate.value = mstrDate;	

}

function DisplayBetQueue() {
	var intIndex;
	AssertBetQueue();
	DeHighlight();
	var intBetCount=0;
	mdecTotalCost = 0;
	var cmdClear = GetElement('imgClearQueue');
	if (!marrBetQueue) {
		RemoveBetQueue ();
		AssertEmptyQueue ();
		intBetCount = 0;
		cmdClear.src = 'img/clearqueuedown.gif';
		cmdClear.onmouseover = null;
		cmdClear.onmouseout = null;
		cmdClear.onclick = null;
		cmdClear.className = 'buttonoff';
	}
	else {
		cmdClear.src = 'img/clearqueue.gif';		
		cmdClear.onmouseover = OverimgClearQueue;
		cmdClear.onmouseout = OutimgClearQueue;
		cmdClear.onclick = ClearQueue;
		cmdClear.className = 'buttonon';
		RemoveEmptyQueue ();
		
		for (intIndex=0;intIndex<marrBetQueue.length;intIndex++) {
			UpdateBetQueueLine (intIndex, marrBetQueue[intIndex]);
		}
		intBetCount = marrBetQueue.length;
	}
	
	for (intIndex=intBetCount;GetElement('trBetQueue' + intIndex); intIndex++ ) {
		RemoveNode(GetElement('trBetQueue' + intIndex));
	}
	
	GetElement('spnTotalCost').innerHTML = '$' + Number(mdecTotalCost).toFixed(2);

	var cmdSubmit = GetElement('cmdsubmitbets');
	if (mdecTotalCost > 0) {
		cmdSubmit.src = 'img/submitbets.gif';
		cmdSubmit.onmouseover = Overcmdsubmitbets;
		cmdSubmit.onmouseout = Outcmdsubmitbets;
		cmdSubmit.onclick = SubmitBets;
		cmdSubmit.className = 'buttonon';
	}
	else {
		cmdSubmit.src = 'img/submitbetsdown.gif';
		cmdSubmit.onmouseover = null;
		cmdSubmit.onmouseout = null;
		cmdSubmit.onclick = null;
		cmdSubmit.className = 'buttonoff';		
		
	}
	

}

function UpdateAcctDispType(strDispType) {
	
	if (strDispType=='Q') {
		HideHistory();
		DisplayBetQueue();
		DisplayBetHistoryLink();
	}
	else {
		HideBetQueue();
		DisplayHistory();
		DisplayBetQueueLink();
	}
}


function EnableAccountDataTimeout () {
	DisableAccountDataTimeout();
	mintHeartbeatAccountData = window.setTimeout (AccountDataTimeoutExpired, 15000);
	
}

function DisableAccountDataTimeout () {
	
	if (mintHeartbeatAccountData) { window.clearTimeout (mintHeartbeatAccountData); }
	mintHeartbeatAccountData=null;
}

function AccountDataTimeoutExpired () {
	GetElement('ifmAccountData').src = QueryReady(mstrAccountDataURL) + 't=' + TimeStamp();
	EnableAccountDataTimeout();
}

function SetAccountUpdTimeout (intTimeout) {
	DisableAccountUpdTimeout();
	mintHeartbeatAccountUpd = window.setTimeout (AccountUpdTimeoutExpired, intTimeout);
}


function DisableAccountUpdTimeout () {
	if (mintHeartbeatAccountUpd) { 
		window.clearTimeout (mintHeartbeatAccountUpd); 
		mintHeartbeatAccountUpd=null;
	}
}

function AccountUpdTimeoutExpired () {
	GetElement('ifmAccountUpd').src = QueryReady(mstrAccountUpdURL) + 't=' + TimeStamp();
	SetAccountUpdTimeout(15000);
}

function LoadAccountDataURL (strURL) {
	mstrAccountDataURL = strURL;
	GetElement('ifmAccountData').src = QueryReady(strURL) + 't=' + TimeStamp();
	EnableAccountDataTimeout();
}

function LoadAccountUpdURL (strURL) {
	GetElement('ifmAccountUpd').src = QueryReady(strURL) + 't=' + TimeStamp();
	mstrAccountUpdURL = strURL; 
	SetAccountUpdTimeout(15000);
}

function ClearAccountUpdURL () {
	GetElement('ifmAccountUpd').src = gstrDummyURL;
	DisableAccountUpdTimeout();
}

function GetRemoteBetIndex(intBetIndex) {
	var intIndex;
	var intRemoteBetIndex = 0;
	var arrFields;
	for (intIndex=0;intIndex<intBetIndex;intIndex++) {
		arrFields = marrBetQueue[intIndex].split ('%7F');
		if (arrFields[8] != 'S') {
			intRemoteBetIndex += 1;
		}
	}
	return intRemoteBetIndex;
}
