function displayBlock(divId, state){
	var e = document.getElementById(divId);
	e.style.display = state ? 'block' : 'none';
}
function displayInline(divId, state){
	var e = document.getElementById(divId);
	e.style.display = state ? 'inline' : 'none';
}

function computeTotals() {
	computeNatlOpenTotals();
	computePolgarTotals();
	computeCampTotals();
	computeBreakfastTotals();
}

function feebox(event) {
	return document.getElementsByName(event + '[FEE]')[0];
}

function computeNatlOpenTotals() {
	var fee    = allFees.NATLOPEN;

	var sec    = document.getElementsByName('NATLOPEN[SECTION]')[0];
	sec        = sec.options[sec.selectedIndex].value;

	if (sec == 'OPEN') {
		document.getElementsByName('NATLOPEN[U21OPEN]')[0].disabled = false;
		if (document.getElementsByName('NATLOPEN[U21OPEN]')[0].checked == true)
			fee += allFees.U21OPEN;
	} else {
		document.getElementsByName('NATLOPEN[U21OPEN]')[0].checked = false;
		document.getElementsByName('NATLOPEN[U21OPEN]')[0].disabled = true;
	}
	feebox('NATLOPEN').value = roundNumber(fee,2);
}

function computePolgarTotals() {
	var fee    = allFees.POLGAR;

	var sec    = document.getElementsByName('POLGAR[SECTION]')[0];
	var ndx    = sec.selectedIndex;
	sec        = sec.options[ndx].value;

	var puzzle = document.getElementsByName('POLGAR[PPUZZLE]')[0];
	var simul  = document.getElementsByName('POLGAR[PSIMUL]')[0];
	var blitz  = document.getElementsByName('POLGAR[PBLITZ]')[0];

	var sides  = 0;

	if (sec == 'NONE' || ndx == 0)
		fee = 0;

	if (document.getElementsByName('POLGAR[PPUZZLE]')[0].checked) {
		sides++;
		fee += allFees.PPUZZLE;
	}

	if (document.getElementsByName('POLGAR[PSIMUL]')[0].checked) {
		sides++;
		fee += allFees.PSIMUL;
	}

	if (document.getElementsByName('POLGAR[PBLITZ]')[0].checked) {
		sides++;
		fee += allFees.PBLITZ;
	}

	if (sides == 3)
		fee += allFees.PDISCOUNT;

	feebox('POLGAR').value = roundNumber(fee,2);
}

function computeBreakfastTotals() {
	var fee    = allFees.BREAKFAST;
	var num    = document.getElementsByName('BREAKFAST[COUNT]')[0];
	num        = num.options[num.selectedIndex].value;
	feebox('BREAKFAST').value = roundNumber(fee * num, 2);
}

function computeCampTotals() {
	var fee    = allFees.CAMP;

	var secs   = document.getElementsByName('CAMP[SECTION]');

	if (secs[2].checked || secs[1].checked)
		fee = allFees.CAMPHD;

	if (secs[1].checked) {
		document.getElementsByName('CAMP[TD]')[0].checked = false;
		document.getElementsByName('CAMP[TD]')[0].disabled = true;
	} else {
		document.getElementsByName('CAMP[TD]')[0].disabled = false;
	}

	feebox('CAMP').value = roundNumber(fee,2);
}

function roundNumber(number,decimal_points) {
	if(!decimal_points) return Math.round(number);
	if(number == 0) {
		var decimals = "";
		for(var i=0;i<decimal_points;i++) decimals += "0";
		return "0."+decimals;
	}

	var exponent = Math.pow(10,decimal_points);
	var num = Math.round((number * exponent)).toString();
	return num.slice(0,-1*decimal_points) + "." + num.slice(-1*decimal_points)
}

function displayEvents() {
	var e = document.getElementsByName('INEVENTS[]');
	var i;
	for (i = 0; i < e.length; i++) {
		var id = e[i].value;
		displayBlock('DISP' + id, e[i].checked);
		displayInline('FEES' + id, e[i].checked);
	}
	computeTotals();
}

function teamChanged() {
	var s = document.getElementsByName('POLGAR[TEAMCODE]')[0];
	var n = document.getElementsByName('POLGAR[TEAMNAME]')[0];
	var o = s.options[s.selectedIndex];;
	if  (o.value == 'NEW') {
		n.disabled = false;
	} else {
		n.disabled = true;
		n.value = o.value != '0' ? o.text : '';
	}
}

function lookupRatings() {
	var f = document.getElementById('uscfFrame');

	var id = document.getElementsByName('PLAYER[USCFID]')[0];
	var ln = document.getElementsByName('PLAYER[LASTNAME]')[0];
	var fn = document.getElementsByName('PLAYER[FIRSTNAME]')[0];
	var su = document.getElementsByName('SUPPDATE')[0].value;

	var q = '?SUPPDATE=' + su;
	if (id.value)
		q += '&name=' + id.value;
	else if (ln.value.length > 2) {
		q += '&name=' + ln.value;
		if (fn.value)	q += ',' + fn.value;
	}

	f.style.display = 'block';
	f.src = '/uscf/uscflookup.php' + q;
	return void(0);
}

function hideIfPresent(name) {
	var e = document.getElementById(name);
	if (!e) return;

	if (!e.defaultDisplay)
		e.defaultDisplay = e.style.display;
	e.style.display = 'none';
}

function hideRatingInfo() {
	hideIfPresent('INFO_EXPIRES');
	hideIfPresent('INFO_RATING');
	hideIfPresent('INFO_TITLE');
	hideIfPresent('INFO_FIDE RATING');
	hideIfPresent('INFO_FIDE ID');
	hideIfPresent('INFO_USCF ST');
	hideIfPresent('INFO_FIDE ST');
	hideIfPresent('INFO_USCF NAME');
}

function setFromRatings(uscfdata) {
	var f = document.getElementById('uscfFrame');
	f.style.display = 'none';

	if (!uscfdata)  return void(0);

	var id = document.getElementsByName('PLAYER[USCFID]')[0];
	var ln = document.getElementsByName('PLAYER[LASTNAME]')[0];
	var fn = document.getElementsByName('PLAYER[FIRSTNAME]')[0];
	var st = document.getElementsByName('PLAYER[STATE]')[0];
	var cn = document.getElementsByName('PLAYER[COUNTRY]')[0];
	var rd = document.getElementById('ratingDisplay');

	id.value = uscfdata.uscfid.value;
	fn.value = uscfdata.firstname.value;
	ln.value = uscfdata.lastname.value;
	st.value = uscfdata.state.value;
	cn.value = uscfdata.country.value;

	hideRatingInfo();
	rd.innerHTML = uscfdata.displayString.value;

	return void(0);
}

function openEditWindow(url, target, height, width, options) {
	if (!target) target='editentry';
	if (!width)  width= 600;
	if (!height) height=800;
	if (!options) options = "scrollbars=yes,status=yes,resize=yes";
	var opt = options + ",width=" + width + ",height=" + height;
	var w = window.open(url, target, opt);
	w.focus();
	return void(0);
}

function resubmit(form) {
	form.ACTION.value = 'SUBMIT';
	form.submit();
}


function checkEFF (form) {
	if (form.EFFDATE.value != form.EFFDATE.defaultValue) {
		form.ACTIONKLUDGE.value = 'SUBMIT';
	    resubmit(form);
	}
}

function setCellDisp (name, state) {
	cell = document.getElementById('PAYINFO' + name);
	cell.style.display = state ? 'table-cell' : 'none';
}

function checkPayType (form, oldvalue) {
	var newvalue = form.PAYTYPE.value;
	if (newvalue != oldvalue && (newvalue == 'FREE' || oldvalue == 'FREE'))
		resubmit(form);

	var types = ['CHECKNO', 'CHECKDT', 'PAYOR', 'AUTH', 'REASON', 'CCINFO', 'AMOUNT'];
	for (var i = 0; i < types.length; i++)
	setCellDisp(types[i], false);

	setCellDisp('CHECKNO', false);
	setCellDisp('CHECKDT', false);
	setCellDisp('AUTH',    false);
	setCellDisp('CCINFO',  false);
	setCellDisp('REASON',  false);
	setCellDisp('PAYOR',   true);
	setCellDisp('AMOUNT',  true);

	if (newvalue == 'FREE') {
		setCellDisp('AUTH', true);
		setCellDisp('REASON', true);
		setCellDisp('PAYOR', false);
		setCellDisp('AMOUNT',false);
	}

	if (newvalue == 'CHECK') {
		setCellDisp('CHECKNO', true);
		setCellDisp('CHECKDT', true);
	}

	if (newvalue == 'CHARGE') {
		setCellDisp('CCINFO', true);
	}
}

function recordPayment(form) {
	form.ACTION.value = 'RECORD';
	form.submit();
}