function toggleSelectedWager(td, tdPos){	
	removeBgColors($('wagerListDiv'), tdPos);
	
	if (td.className == 'selectedTd'){
		td.className = '';
	} else {
		td.className = 'selectedTd';
	}			
	
	if ($('wagerAmount').value.length>0 && $('wagerType').value.length>0){
		$('wagerSelectedDiv').style.display = '';
		$('wagerListDiv').style.display = 'none';						
		
		ajaxGet('wager.ctrm?cmd=showHorses&' + $('trackSelectedForm').serialize() + '&' + $('wagerForm').serialize(), 'selectHorsesDiv', true);
	}
}

function submitWager(){	
	if (isNaN($('totalWager').value) || parseFloat($('totalWager').value)<2){
		alert("Total wager must be $2 or greater.");
	} else {
		window.location='wager.ctrm?cmd=confirmWager';
	}
}

function resetHorses(){
	ajaxGet('wager.ctrm?cmd=showHorses&' + $('trackSelectedForm').serialize() + '&' + $('wagerForm').serialize(), 'selectHorsesDiv');
	$('wagerSummaryDetailDiv').style.display= 'none';
}

function resetAmountAndType(){
	removeBgColors($('wagerListDiv'), 0);
	removeBgColors($('wagerListDiv'), 1);
	
	$('wagerAmount').value='';
	$('wagerType').value='';
}

function changeTrack(){
	$('trackListDiv').style.display=''; 
	$('trackSelectedDiv').style.display='none';
	$('wagerListDiv').style.display='none'; 
	
	var horseListDiv = $('horseListDiv');
	if (horseListDiv)
		horseListDiv.style.display='none'; 
	
	var wagerSummaryDiv = $('wagerSummaryDetailDiv');
	if (wagerSummaryDiv)
		wagerSummaryDiv.style.display= 'none';
}

function changeAmountAndType(){
	$('wagerListDiv').style.display=''; 
	$('wagerSelectedDiv').style.display='none'; 
	$('horseListDiv').style.display='none';
	
	var wagerSummaryDiv = $('wagerSummaryDetailDiv');
	if (wagerSummaryDiv)
		wagerSummaryDiv.style.display= 'none';
}

function toggleHorse(ele, colNum, horseNum){
	var horseInput = $(colNum + ',' + horseNum);	

	if (horseInput.value==''){
		// Select horse
		horseInput.value = 'selected';
		if (ele.nodeName=='td' || ele.nodeName=='TD' ){			
			tdToggleHorse(ele, true);
		} else {
			ele.className = 'selectedTr';
		}
	}else{
		// Un-select horse
		horseInput.value = '';
		if (ele.nodeName=='td' || ele.nodeName=='TD' )		
			tdToggleHorse(ele, false);
		else
			ele.className = '';
	}
	
	checkAllColumn(colNum);
	
	processSummary();
}

/**
 * Function to check if all horses in a column are selected and toggle the checkbox.
 * 
 * @param colNum
 * @return
 */
function checkAllColumn(colNum){
	var count = $('horseCount');
	var allCheckbox = $('toggleAllCheckbox' + colNum);
	var allChecked = true;
	
	for (var x=1; x<=count.value; x++){
		var horse = $(colNum + ',' + x);		
		if (horse){			
			if (horse.value!='selected')
				allChecked = false;
		}
	}
	
	allCheckbox.checked = allChecked;
}

function checkAllBoxes(){
	var count = $('horseCount');
	var placeCount = $('placeCount');
		
	for (var horse = 1; horse<=count.value; horse++){
		var boxed = true;
		for (var place = 1; place<=placeCount.value; place++){
			var aHorse = $(place + ',' + horse);
			if (aHorse && aHorse.value!='selected')
				boxed = false;
		}
		
		var boxCheckbox = $('box' + horse);
		if (boxCheckbox)
			boxCheckbox.checked = boxed;
	}	
}

function tdToggleHorse(td, select){
	if (td!=null){
		if (select){
			td.innerHTML = "<img src='images/checked.png' />";
			td.style.textAlign = 'center';
		} else {
			td.innerHTML = '';
		}
	}
}

function processSummary(){
	ajaxGet('wager.ctrm?cmd=processSummary&' + $('horsesForm').serialize(), 'wagerSummaryDiv');
}


/**
 * For td 'onclick' call to select all horses (win/place/show bets) and bet 3, 4, 6, etc. functionality (hence race# param).
 * 
 * @param checkbox
 * @return
 */
function toggleAllTd(checkbox, raceNum){
	if (checkbox.checked){	
		checkbox.checked = false;
		toggleAll(checkbox, raceNum);
	}else{
		checkbox.checked = true;
		toggleAll(checkbox, raceNum);
	}
}

/**
 * Toggle all horses for win/show/place bets and bet 3, 4, 6, etc. functionality (hence race# param).
 * 
 * @param checkbox
 * @return
 */
function toggleAll(checkbox, raceNum){
	var horseCount = $('horseCount').value;
		
	for (var horseNum=1; horseNum<=horseCount; horseNum++){
		var horseInput = $(raceNum + ',' + horseNum);
				
		if (horseInput!=null){
			var tr = $('tr' + raceNum + ',' + horseNum);
			if (tr){
				if (checkbox.checked){
					horseInput.value = 'selected';
					tr.className = 'selectedTr';
				}else{
					horseInput.value = '';
					tr.className = '';
				}
			}
		}
	}
	
	processSummary();
}

/**
 * For td 'onclick' to toggle all horses in a column.
 * 
 * @param checkbox
 * @param colNum
 * @return
 */
function toggleAllTdColumn(checkbox, colNum){
	if (checkbox.checked){	
		checkbox.checked = false;
		toggleAllColumn(checkbox, colNum);
	}else{
		checkbox.checked = true;
		toggleAllColumn(checkbox, colNum);
	}
}

/**
 * Toggle all horses in a column for exactor, quinella, triactor, and superfecta bets.
 * 
 * @param colNum
 * @param checkbox
 * @return
 */
function toggleAllColumn(checkbox, colNum){
	var horseCount = $('horseCount').value;
	
	for (var horseNum=1; horseNum<=horseCount; horseNum++){
		var horseInput = $(colNum + ',' + horseNum);
		
		if (horseInput!=null){
			var td = $('td' + colNum + ',' + horseNum);			
			if (checkbox.checked){
				horseInput.value = 'selected';
				tdToggleHorse(td, true);
			} else {
				horseInput.value = '';
				tdToggleHorse(td, false);				
			}
		}
	}
	
	checkAllBoxes();
	
	processSummary();
}

/**
 * Function for toggling "boxing" of horses.
 * 
 * @param checkbox
 * @param id1
 * @param id2
 * @return
 */
function toggleBox2(checkbox, id1, id2){
	var input1 = $(id1);
	var input2 = $(id2);
	var td1 = $('td' + id1);
	var td2 = $('td' + id2);
	
	if (input1.value=='selected' && input2.value=='selected'){
		input1.value = '';
		input2.value = '';
		tdToggleHorse(td1, false);
		tdToggleHorse(td2, false);
		checkbox.checked = false;
	} else {
		input1.value = 'selected';
		input2.value = 'selected';
		tdToggleHorse(td1, true);
		tdToggleHorse(td2, true);
		checkbox.checked = true;
	}		
	
	checkAllColumn(1);
	checkAllColumn(2);
	
	processSummary();
}

function toggleBox3(checkbox, id1, id2, id3){
	var input1 = $(id1);
	var input2 = $(id2);
	var input3 = $(id3);
	var td1 = $('td' + id1);
	var td2 = $('td' + id2);
	var td3 = $('td' + id3);
	
	if (input1.value=='selected' && input2.value=='selected' && input3.value=='selected'){
		input1.value = '';
		input2.value = '';
		input3.value = '';
		tdToggleHorse(td1, false);
		tdToggleHorse(td2, false);
		tdToggleHorse(td3, false);
		checkbox.checked = false;
	} else {
		input1.value = 'selected';
		input2.value = 'selected';
		input3.value = 'selected';
		tdToggleHorse(td1, true);
		tdToggleHorse(td2, true);
		tdToggleHorse(td3, true);
		checkbox.checked = true;
	}		
	
	checkAllColumn(1);
	checkAllColumn(2);
	checkAllColumn(3);

	processSummary();
}

function toggleBox4(checkbox, id1, id2, id3, id4){
	var input1 = $(id1);
	var input2 = $(id2);
	var input3 = $(id3);
	var input4 = $(id4);
	var td1 = $('td' + id1);
	var td2 = $('td' + id2);
	var td3 = $('td' + id3);
	var td4 = $('td' + id4);
	
	if (input1.value=='selected' && input2.value=='selected' && input3.value=='selected' && input4.value=='selected'){
		input1.value = '';
		input2.value = '';
		input3.value = '';
		input4.value = '';
		tdToggleHorse(td1, false);
		tdToggleHorse(td2, false);
		tdToggleHorse(td3, false);
		tdToggleHorse(td4, false);
		checkbox.checked = false;
	} else {
		input1.value = 'selected';
		input2.value = 'selected';
		input3.value = 'selected';
		input4.value = 'selected';
		tdToggleHorse(td1, true);
		tdToggleHorse(td2, true);
		tdToggleHorse(td3, true);
		tdToggleHorse(td4, true);
		checkbox.checked = true;
	}		
	
	checkAllColumn(1);
	checkAllColumn(2);
	checkAllColumn(3);
	checkAllColumn(4);
	
	processSummary();
}

/**
 * Function for checking if horses have been boxed and toggles the checkbox indicator.
 *  
 * @param checkbox
 * @param id1
 * @param id2
 * @return
 */
function checkBox2(checkbox, id1, id2){
	var input1 = $(id1);
	var input2 = $(id2);
	
	if (input1.value=='selected' && input2.value=='selected'){
		checkbox.checked = true;
	} else {
		checkbox.checked = false;
	}
}

function checkBox3(checkbox, id1, id2, id3){
	var input1 = $(id1);
	var input2 = $(id2);
	var input3 = $(id3);
	
	if (input1.value=='selected' && input2.value=='selected' && input3.value=='selected'){
		checkbox.checked = true;
	} else {
		checkbox.checked = false;
	}
}

function checkBox4(checkbox, id1, id2, id3, id4){
	var input1 = $(id1);
	var input2 = $(id2);
	var input3 = $(id3);
	var input4 = $(id4);
	
	if (input1.value=='selected' && input2.value=='selected' && input3.value=='selected' && input4.value=='selected'){
		checkbox.checked = true;
	} else {
		checkbox.checked = false;
	}
}
