function update_holes(formname, holes_played, holes_total)
{
	if(holes_played == 0)
	{
		document.getElementById('instruct').style.display="";
	}
	else
	{
		document.getElementById('instruct').style.display="none";
	}
	
	for (i = 1; i <= holes_total; i++)
	{
		if(i <= holes_played)
		{
			document.getElementById('tr_'+i).style.display="";
		}
		else
		{
			document.getElementById('tr_'+i).style.display="none";
		}
	}
	
	update_totals(formname);
}

function update_distance(formname, tee, start_hole, holes_total)
{		
	for (i = start_hole; i < holes_total; i++)
	{
		if(course_tees[i][tee] > 0)
		{
			document.forms[formname].elements['distance[]'][i].value = course_tees[i][tee];
		}
		else
		{
			document.forms[formname].elements['distance[]'][i].value = '';
		}
	}
	
	update_totals(formname);
}

function update_par(formname, par, start_hole, holes_total)
{
	for (i = start_hole; i < holes_total; i++)
	{
		if(course_pars[i][par] > 0)
		{
			document.forms[formname].elements['par[]'][i].value = course_pars[i][par];
		}
		else
		{
			document.forms[formname].elements['par[]'][i].value = '';
		}
	}
	
	update_totals(formname);
}

function update_totals(formname)
{
	var total_distance = 0;
	var total_par = 0;
	var total_score = 0;
	var total_putts = 0;
	var total_penalty = 0;
	var total_fir = 0;
	var total_gir = 0;
	var total_updn = 0;
	var show_value = 0;
	
	var holes_to_show = document.getElementById('holes').value;
		
	for(i=0;i<holes_to_show;i++)
	{
		if(document.forms[formname].elements['skip[]'][i].checked == false)
		{
			total_distance += Number(document.forms[formname].elements['distance[]'][i].value);
			total_par += Number(document.forms[formname].elements['par[]'][i].value);
			total_score += Number(document.forms[formname].elements['score[]'][i].value);
			total_putts += Number(document.forms[formname].elements['putts[]'][i].value);
			total_penalty += Number(document.forms[formname].elements['penalty[]'][i].value);
			
			if(document.forms[formname].elements['fir[]'][i].value == "Y")
			{
				++total_fir;
			}
			if(document.forms[formname].elements['gir[]'][i].value == "Y")
			{
				++total_gir;
			}
			if(document.forms[formname].elements['updn[]'][i].value == "Y")
			{
				++total_updn;
			}
		}
	}

	total_distance > 0 ? show_value = total_distance : show_value = '';
	document.getElementById('distance_total').value = show_value;
	document.getElementById('distance_total_q').value = show_value;
	
	total_par > 0 ? show_value = total_par : show_value = '';
	document.getElementById('par_total').value = show_value;
	document.getElementById('par_total_q').value = show_value;
	
	if(document.getElementById('quick').value == 0)
	{
		total_score > 0 ? show_value = total_score : show_value = '';
		document.getElementById('score_total').value = show_value;	

		total_putts > 0 ? show_value = total_putts : show_value = '';
		document.getElementById('putts_total').value = show_value;	

		total_penalty > 0 ? show_value = total_penalty : show_value = '';
		document.getElementById('penalty_total').value = show_value;

		total_fir > 0 ? show_value = total_fir : show_value = '';
		document.getElementById('fir_total').value = show_value;

		total_gir > 0 ? show_value = total_gir : show_value = '';
		document.getElementById('gir_total').value = show_value;
		
		total_updn > 0 ? show_value = total_updn : show_value = '';
		document.getElementById('updn_total').value = show_value;
	}
}

function check_scorecard(form) {
  if(form.holes.value < 1)
  {
	  alert("Please choose the number of holes you played.");
	  form.holes.focus();
	  return false;
  }

	var errorflag = 0;
	if(form.quick.value < 1)
	{
  	if(form.score_total.value < 1)
  	{
	  	alert("Please make sure you recorded your scores for this round.");
	  	return false;
  	}
	
		for (i = 0; i < form.holes.value; i++)
		{
			if(form.elements['skip[]'][i].checked == false)
			{
				if((form.elements['distance[]'][i].value < 0 || isNaN(form.elements['distance[]'][i].value)) && form.elements['distance[]'][i].value != '')
				{
					errorflag = 1;
					break;
				}

				if((form.elements['par[]'][i].value < 0 || isNaN(form.elements['par[]'][i].value)) && form.elements['par[]'][i].value != '')
				{
					errorflag = 2;
					break;
				}

				if((form.elements['score[]'][i].value <= 0 || isNaN(form.elements['score[]'][i].value)) && form.elements['score[]'][i].value != '')
				{
					errorflag = 3;
					break;
				}

				if((form.elements['putts[]'][i].value < 0 || isNaN(form.elements['putts[]'][i].value)) && form.elements['putts[]'][i].value != '')
				{
					errorflag = 4;
					break;
				}

				if((form.elements['penalty[]'][i].value < 0 || isNaN(form.elements['penalty[]'][i].value)) && form.elements['penalty[]'][i].value != '')
				{
					errorflag = 5;
					break;
				}

				if(form.elements['score[]'][i].value == '')
				{
					errorflag = 6;
					break;
				}
			}
		}
	}
	else
	{
  	if(form.score_total_q.value < 1)
  	{
	  	alert("Please make sure you recorded your score for this round.");
	  	return false;
  	}		

		if(form.ss_total.value > 0 && (form.ss_total.value != form.holes.value))
		{
	  	alert("Your Shot Details Total must be equal to the number of holes you played.\n\nPlease check your shot details and make sure the total in the yellow box matches the number of holes you played.");
	  	return false;
	  }
	  
	  if((form.aces.value < 0 || isNaN(form.aces.value)) && form.aces.value != '')
	  {
	  	alert("You have a negative number, a letter or just something odd in the ACES field.\n\nPlease fix it and try to submit your score again.");
	  	return false;
	  }
	  if((form.deagles.value < 0 || isNaN(form.deagles.value)) && form.deagles.value != '')
	  {
	  	alert("You have a negative number, a letter or just something odd in the DOUBLE EAGLES field.\n\nPlease fix it and try to submit your score again.");
	  	return false;
	  }
	  if((form.eagles.value < 0 || isNaN(form.eagles.value)) && form.eagles.value != '')
	  {
	  	alert("You have a negative number, a letter or just something odd in the EAGLES field.\n\nPlease fix it and try to submit your score again.");
	  	return false;
	  }
	  if((form.birdies.value < 0 || isNaN(form.birdies.value)) && form.birdies.value != '')
	  {
	  	alert("You have a negative number, a letter or just something odd in the BIRDIES field.\n\nPlease fix it and try to submit your score again.");
	  	return false;
	  }
	  if((form.pars.value < 0 || isNaN(form.pars.value)) && form.pars.value != '')
	  {
	  	alert("You have a negative number, a letter or just something odd in the PARS field.\n\nPlease fix it and try to submit your score again.");
	  	return false;
	  }
	  if((form.bogies.value < 0 || isNaN(form.bogies.value)) && form.bogies.value != '')
	  {
	  	alert("You have a negative number, a letter or just something odd in the BOGIES field.\n\nPlease fix it and try to submit your score again.");
	  	return false;
	  }
	  if((form.dbogies.value < 0 || isNaN(form.dbogies.value)) && form.dbogies.value != '')
	  {
	  	alert("You have a negative number, a letter or just something odd in the DOUBLE BOGIES field.\n\nPlease fix it and try to submit your score again.");
	  	return false;
	  }
	  if((form.tbogies.value < 0 || isNaN(form.tbogies.value)) && form.tbogies.value != '')
	  {
	  	alert("You have a negative number, a letter or just something odd in the TRIPLE BOGIES field.\n\nPlease fix it and try to submit your score again.");
	  	return false;
	  }
		for (i = 0; i < form.holes.value; i++)
		{
			if((form.elements['distance[]'][i].value < 0 || isNaN(form.elements['distance[]'][i].value)) && form.elements['distance[]'][i].value != '')
			{
				errorflag = 1;
				break;
			}

			if((form.elements['par[]'][i].value < 0 || isNaN(form.elements['par[]'][i].value)) && form.elements['par[]'][i].value != '')
			{
				errorflag = 2;
				break;
			}
		}
	}
	
	if(errorflag)
	{
		switch(errorflag) {
			case 1:
				alert("You have a negative number, a letter or just something odd in one of the DISTANCE fields.\n\nPlease fix it and try to submit your score again.");
				break;
			case 2:
				alert("You have a negative number, a letter or just something odd in one of the PAR fields.\n\nPlease fix it and try to submit your score again.");
				break;
			case 3:
				alert("You have a negative number, a zero, a letter or just something odd in one of the SCORE fields.\n\nPlease fix it and try to submit your score again.");
				break;
			case 4:
				alert("You have a negative number, a letter or just something odd in one of the PUTT fields.\n\nPlease fix it and try to submit your score again.");
				break;
			case 5:
				alert("You have a negative number, a letter or just something odd in one of the PENALTY fields.\n\nPlease fix it and try to submit your score again.");
				break;
			case 6:
				alert("Please make sure you've entered a score for each hole you played.");
				break;
		}
		return false;
	}
	
	if(form.tp_ap.value == "" && form.tp_hour.value > 0)
	{
	  alert("Please enter the complete time that you played this round");
	  form.tp_ap.focus();
	  return false;
	}

	if(form.tp_ap.value != "" && form.tp_hour.value == 0)
	{
	  alert("Please enter the complete time that you played this round");
	  form.tp_hour.focus();
	  return false;
	}
	
  var now = new Date();
  var date_played = form.date_played.value;
  var pa = date_played.split("-");
  var played_date = new Date(pa[0], pa[1] - 1, pa[2]);

  if(played_date > now)
  {
	  alert("Looks like you took your DeLorean to the future to play that round!\n\nPlease take a second and double check the date you played.");
	  return false;
  }
}

function upd_holecount(id, course_holes){
	var hs = document.getElementById('holes');
	var prev_val = hs.value;
  
	if(hs.options.length != (course_holes[id] + 1))
	{
		hs.options.length = 0;
		
		if(course_holes[id] != null)
		{
			hs.options[0] = new Option('',0);
			for (var i=1;i<=course_holes[id];i++)
			{
				if(i == prev_val)
				{
					hs.options[i] = new Option(i,i,true);
				}
				else
				{
					hs.options[i] = new Option(i,i);
				}
			}
		}
		else
		{
			hs.options[0] = new Option("N/A",0);
		}
	}
}


function upd_customholecount(id, course_holes){
	var hs = document.getElementById('choles');
	var prev_val = hs.value;
	var j = 0;
  
	hs.options.length = 0;
		
	if(course_holes[id] != null)
	{
		for (var i=course_holes[id]+1;i<=course_holes[id]+18;i++)
		{
			hs.options[j] = new Option(i,i);
			++j;
		}
	}
	else
	{
		hs.options[0] = new Option("N/A",0);
	}
}

function upd_coursestats(id, course_stats){
	var items = course_stats[id].split(",");
	var reg_string = "";

	document.getElementById('stat_rounds').innerHTML = items[0];
	document.getElementById('stat_holes').innerHTML = items[1];
	document.getElementById('stat_shots').innerHTML = items[2];
	document.getElementById('stat_distance').innerHTML = items[3];
	document.getElementById('stat_avgscore').innerHTML = items[4];
	document.getElementById('stat_bestround').innerHTML = items[5];
	document.getElementById('stat_putts').innerHTML = items[6];
	document.getElementById('stat_aces').innerHTML = items[8];
	document.getElementById('stat_deagles').innerHTML = items[9];
	document.getElementById('stat_eagles').innerHTML = items[10];
	document.getElementById('stat_birdies').innerHTML = items[11];
	document.getElementById('stat_pars').innerHTML = items[12];
	document.getElementById('stat_bogies').innerHTML = items[13];
	document.getElementById('stat_dbogies').innerHTML = items[14];
	document.getElementById('stat_tbogies').innerHTML = items[15];
	if(Number(items[16]) > 0)
	{
		document.getElementById('stat_fir').innerHTML = items[17]+"/"+items[16]+" ("+Math.round(Number(items[17])/Number(items[16]) * 100)+"%)";
	}
	else
	{
		document.getElementById('stat_fir').innerHTML = "--";
	}
	if(Number(items[18]) > 0)
	{
		document.getElementById('stat_gir').innerHTML = items[19]+"/"+items[18]+" ("+Math.round(Number(items[19])/Number(items[18]) * 100)+"%)";
	}
	else
	{
		document.getElementById('stat_gir').innerHTML = "--";
	}
	if(Number(items[18]) > 0)
	{
		document.getElementById('stat_updn').innerHTML = items[19]+"/"+items[18]+" ("+Math.round(Number(items[21])/Number(items[20]) * 100)+"%)";
	}
	else
	{
		document.getElementById('stat_updn').innerHTML = "--";
	}
}

function round_details(round_id) {
	var table_id = 'details_'+round_id;
	var icon_id = 'i_'+round_id;

	if(document.getElementById(table_id).style.display == "none")
	{
	  document.getElementById(table_id).style.display="";
	  document.getElementById(icon_id).src="images/icon_contract.gif";
	  document.getElementById(icon_id).title="Collapse Round Details";
	}
  else
  {
	  document.getElementById(table_id).style.display="none";
		document.getElementById(icon_id).src="images/icon_expand.gif";
		document.getElementById(icon_id).title="Expand Round Details";
	}
}

function check_scorestart(form) {
  if(form.cid.value == 0)
  {
	  alert("Please choose the course you played!");
	  form.cid.focus();
	  return false;
  }
}

function view_course(course, member, mode) {
	switch(mode)
	{
		case 1:
			window.location='http://www.roughreport.com/scorebook.php?vall=1&vcrse='+course+'&mid='+member+'&fd=&sd=';
			break;
		case 2:
			window.location='http://www.roughreport.com/scorebook.php?mode=adv&cid='+course+'&mid='+member;
			break;
		default:
			window.location='http://www.roughreport.com/course.php?id='+course;
			break;
	}
}

function update_sscount(formname)
{
	var total_distance = 0;
	var total_par = 0;
	var total_score = 0;
	var total_putts = 0;
	var total_penalty = 0;
	var show_value = 0;
	
	var total_holes = document.getElementById('holes').value;
	
	stat_total = Number(document.getElementById('aces').value) + Number(document.getElementById('deagles').value) + Number(document.getElementById('eagles').value);
	stat_total += Number(document.getElementById('birdies').value) + Number(document.getElementById('pars').value) + Number(document.getElementById('bogies').value);
	stat_total += Number(document.getElementById('dbogies').value) + Number(document.getElementById('tbogies').value);
	
	stat_total > 0 ? show_value = stat_total : show_value = '';
	document.getElementById('ss_total').value = show_value;
}

function ffoxSelectUpdate(elmt)
{
	if(!document.all) 
	{
		elmt.style.backgroundColor = elmt.options[elmt.selectedIndex].style.backgroundColor;
		elmt.style.color = elmt.options[elmt.selectedIndex].style.backgroundColor;
	}
}

function skip_hole(holeskip, holenum)
{
	if(holeskip.checked == true)
	{
		document.getElementById('tr_'+holenum).style.backgroundColor="#CCCCCC";
	}
	else
	{
		document.getElementById('tr_'+holenum).style.backgroundColor="";
	}
}
