var	attendeeTemplate = null;
var divPrivate = null;
var divCompany = null;
var divMailAddress = null;

$(function() {
	attendeeTemplate = $('table.attendeeTemplate');
	divPrivate = $('#private');
	divCompany = $('#company');
	divMailAddress = $('#mail-address');
	
	removeSection(attendeeTemplate, 'attendeeTemplate');
	removeSection(divPrivate, 'hidden');
	removeSection(divCompany, 'hidden');
	removeSection(divMailAddress, 'hidden');

	updateApplicationForm();
});

function removeSection(div, className) {
	if ($(div).hasClass(className)) {
		$(div).remove().removeClass(className);
	}
}

function togglePrivateCompany(checkbox) {
	var showPrivate = checkbox.checked;
	if (showPrivate) {
		$(divCompany).replaceWith($(divPrivate));
	}
	else {
		$(divPrivate).replaceWith($(divCompany));
	}
	updateApplicationForm();
}

function toggleMailAddress(checkbox) {
	var showMailAddress = !checkbox.checked;
	if (showMailAddress) {
		$('#invoice-address').after($(divMailAddress));
	}
	else {
		$(divMailAddress).remove();
	}
}

function addAttendee() {
	var attendees = $('table.attendee').length;
	if (attendees < maxAttendees) {
		$('table.addAttendee').before($(attendeeTemplate).clone());
	}
	updateApplicationForm();
}

function deleteAttendee(button) {
	$(button).parents('table.attendee').eq(0).remove();
	updateApplicationForm();
}

function updateApplicationForm() {
	var attendees = $('table.attendee').length;
	$('table.addAttendee tr.max-attendees').toggle(attendees == maxAttendees);
	$('table.addAttendee button').attr('disabled', attendees == maxAttendees);
	$('table.attendee tr.delete').toggle(attendees != 1);
	updatePrice(attendees == 0 ? 1 : attendees);
}

function updatePrice(number) {
	var priceNet = number * coursePrice;
	var priceGross = priceNet * (1 + VAT);
	var priceNetStr = priceNet.toFixed(2).replace('.',',');
	var priceGrossStr = priceGross.toFixed(2).replace('.',',');
	$('span#total-gross').html(priceGrossStr);
	$('input[name="total"]').attr('value', priceGrossStr);
	$('input[name="total_net"]').attr('value', priceNetStr);
}


