			 
function GetElementValue(elemid)
{
    var elem = document.getElementById(elemid);
    return parseInt(elem.value, 10);
}

function BerekenTotaal()
{
    var totaal = 0.0;
    var totaalBTW = 0.0;

		var element    = document.getElementById("totaalexbtw");
		element.value    = totaal.toFixed(2);

		element    = document.getElementById("totaalbtw");
		element.value    = totaalBTW.toFixed(2);



    // bereken prijs van bestelde artikelen
    totaal = BerekenSubTotaal('prijs');
    totaalBTW = BerekenSubTotaal('prijsbtw');
    
//    // bereken prijs voor extra dagen
//    var elemAantalDagen = document.getElementById("dagen");
//    if (elemAantalDagen != null)
//    {
//        var aantalDagenExtra = parseInt(elemAantalDagen.value, 10) - 1;
//        if (!isNaN(aantalDagenExtra) && aantalDagenExtra > 0)
//        {
//            totaal += aantalDagenExtra * BerekenSubTotaal('prijsExtraDag');
//            totaalBTW += aantalDagenExtra * BerekenSubTotaal('prijsExtraDagBTW');
//        }
//    }

    totaal += BerekenMeerPrijsOpbouw('prijs');
    totaalBTW += BerekenMeerPrijsOpbouw('prijsbtw');

    var bestelling = GenereerBestellingsOverzicht();
    bestelling += "\nTotaal (excl. BTW): " + totaal.toFixed(2);
    bestelling += "\nTotaal (incl. BTW): " + totaalBTW.toFixed(2);

    UpdateTotals(totaal, totaalBTW, bestelling);
}

function BerekenSubTotaal(attributeNaam, predicate)
{
    var elementen = document.all == null ? document.getElementsByTagName("input") : document.all;
    var totaal = 0.0;
    
    for (var i = 0; i < elementen.length; i++)
    {
        var elem = elementen[i];

        if (elem.getAttribute == null || elem.getAttribute(attributeNaam) == null)
            continue;

        if (predicate != null && !predicate(elem))
            continue;

        totaal += BerekenAantal(elem) * parseFloat(elem.getAttribute(attributeNaam));
    }
    return totaal;
}

function BerekenAantal(elem)
{
    if (elem.type == "text")
    {
        var aantal = parseInt(elem.value);
        return isNaN(aantal) ? 0 : aantal;
    }
    else if (elem.type == "radio" || elem.type == "checkbox")
    {
        if (!elem.checked)
            return 0;

        if (elem.getAttribute("aantal") != null)
        {
            return GetElementValue(elem.getAttribute("aantal"));
        }
    }
    return 1;
}

function BerekenMeerPrijsOpbouw(attributeNaam)
{
    var element = document.getElementById("opbouw_door_bcn");
    if (element == null || !element.checked)
        return 0.0;
    
    return 0.25 * BerekenSubTotaal(attributeNaam, IsPartyVerhuur);
}

function GenereerBestellingsOverzicht()
{
    var aantalPersonen = GetElementValue('personen');
    var bestelling = aantalPersonen + "\n\n";
    
    var elementen = document.all == null ? document.getElementsByTagName('input') : document.all;

    for (var i = 0; i < elementen.length; i++)
    {
        var elem = elementen[i];

        if (elem.getAttribute == null || elem.getAttribute('prijs') == null)
            continue;

        if (elem.id == null || elem.id == '' || elem.id == 'pakket')
            continue;

        var aantal = BerekenAantal(elem);
        if (aantal == 0)
            continue;

        bestelling += aantal + " x " + elem.id + "\n";
    }
    return bestelling;
}

function IsPartyVerhuur(element)
{
    return element.getAttribute('partyverhuur') != null;
}

function IsVeldIngevuld(naamVeld)
{
    var element = document.getElementById(naamVeld);
    if (element == null) alert(naamVeld);
    return element.value != "";
}

function VeldIngevuld(naamVeld)
{
	if (!IsVeldIngevuld(naamVeld))
	{
		alert("Een verplicht veld binnen 'Gegevens aanvrager', is nog niet ingevuld.");

		var element    = document.getElementById(naamVeld);
		element.focus();
		return false;
	}
	return true;
}

function submitForm()
{
	BerekenTotaal();
	
    var element    = document.getElementById("totaalexbtw");
    if (element.value == 0)
	{
		alert("U heeft nog niets besteld");
		return;
	}

	if (!VeldIngevuld("naam") || !VeldIngevuld("straat") || !VeldIngevuld("postcode") ||
		!VeldIngevuld("plaats") || !VeldIngevuld("telefoon"))
		return;

    document.forms.FrontPage_Form1.submit();
}


function UpdateTotals(totaal, totaalBtw, bestelling)
{
    var element = document.getElementById("totaalexbtw");
    element.value = totaal.toFixed(2);

    element = document.getElementById("totaalbtw");
    element.value = totaalBtw.toFixed(2);

    element = document.getElementById("bestelling");
    element.value = bestelling;
}

// Functies om adres gegevens te kopieren

function CopyAddress(enabled, copyValues)
{
    EnableElement('naam-cateringlocatie', enabled);
    EnableElement('straat-locatie', enabled);
    EnableElement('postcode-locatie', enabled);
    EnableElement('woonplaats-locatie', enabled);
    

    if (copyValues)
    {
        CopyElementValue('straat', 'straat-locatie');
        CopyElementValue('postcode', 'postcode-locatie');
        CopyElementValue('plaats', 'woonplaats-locatie');
    }
    else
    {
        ClearElementValue('straat-locatie');
        ClearElementValue('postcode-locatie');
        ClearElementValue('woonplaats-locatie');
    }
}

function CopyElementValue(sourceId, destinationId)
{
    var elementSource = document.getElementById(sourceId);
    var elementDestination = document.getElementById(destinationId);
    elementDestination.value = elementSource.value;
}

function EnableElement(id, enable)
{
    var element = document.getElementById(id);

    if (element == null) alert(id);
    
    element.disabled = !enable;
}

function ClearElementValue(id)
{
    var element = document.getElementById(id);
    element.value = '';
}
 
