function reserveerOnload()
{
    contactpersoonIdem();
    berekenRangersEnPrijs();
    checkStartDatum();
    checkStartUur();
}

function contactpersoonIdem()
{
    if (document.getElementById('ca_idem').checked)
    {
        var fields = ['naam', 'functie', 'gsm'];
        for (x=0 ; x<fields.length; x++)
        {
            document.getElementById('ca_' + fields[x]).value = document.getElementById('cr_' + fields[x]).value;
            document.getElementById('ca_' + fields[x]).disabled = true;
        }
    }
    else
    {
        var fields = ['ca_naam', 'ca_functie', 'ca_gsm'];
        for (x=0 ; x<fields.length; x++)
            document.getElementById(fields[x]).disabled = false;
    }
}

function factuurIdem()
{
    if (document.getElementById('fac_idem').checked)
    {
        var fields = ['naam', 'adres1', 'adres2'];
        for (x=0 ; x<fields.length; x++)
            document.getElementById('factuur_' + fields[x]).value = document.getElementById(fields[x]).value;
    }
}

function idemFieldChanged(field)
{
    if (document.getElementById('ca_idem').checked)
        document.getElementById('ca_' + field).value = document.getElementById('cr_' + field).value;
}

function berekenRangersEnPrijs()
{
    var binnen_limiet = true;
    var aantal_deelnemers = parseInt(document.getElementById('aantaldeelnemers').value);
    if ( !isNaN(aantal_deelnemers) )
    {
        document.getElementById('aantaldeelnemers').value = parseInt(aantal_deelnemers);
        if ( aantal_deelnemers > max_deelnemers )
        {
            document.getElementById('teveeldeelnemerswarning').style.display='block';
            document.getElementById('aantalrangers').innerHTML = '';
            document.getElementById('prijs').innerHTML = '';
            binnen_limiet = false;
        }
        else
        {
            var aantal_rangers = Math.ceil(aantal_deelnemers / deelnemers_per_ranger);
            document.getElementById('aantalrangers').innerHTML = aantal_rangers;
            document.getElementById('prijs').innerHTML = (aantal_rangers * prijs_per_ranger) + ' €';
            document.getElementById('teveeldeelnemerswarning').style.display='none';
        }
    }
    else
        document.getElementById('aantaldeelnemers').value = '';
    maakBegeleidersVelden();
    return binnen_limiet;
}

function checkStartDatum()
{
    var dag = document.getElementById('datum_Day').value;
    var maand = document.getElementById('datum_Month').value - 1;
    var jaar = document.getElementById('datum_Year').value;
    var ingevulde_datum = new Date();
    ingevulde_datum.setFullYear(jaar);
    ingevulde_datum.setMonth(maand,dag);

    var tmp = minimum_start_datum.split('-');
    var minimum_datum = new Date()
    minimum_datum.setFullYear(tmp[0]);
    minimum_datum.setMonth(tmp[1] - 1,tmp[2]);
    
    var tmp = maximum_start_datum.split('-');
    var maximum_datum = new Date()
    maximum_datum.setFullYear(tmp[0]);
    maximum_datum.setMonth(tmp[1] - 1, tmp[2]);
    
    var datum_goed = true;
    if (ingevulde_datum < minimum_datum || ingevulde_datum > maximum_datum)
    {
        document.getElementById('boekingsdatumwarning').style.display='block';
        datum_goed = false;
    }
    else
        document.getElementById('boekingsdatumwarning').style.display='none';
    
    if (datum_goed) // check blokkeringsdata
        checkBlokkeringen();
    
    // dag van de week
    var dagen = ['zondag','maandag','dinsdag','woensdag','donderdag','vrijdag','zaterdag'];
    $('activiteitdag').innerHTML = dagen[ingevulde_datum.getDay()];
    
    return datum_goed;
}

function checkStartUur()
{
    var startuur = document.forms.reserveerform.su_Hour.value + ':' + document.forms.reserveerform.su_Minute.value;
    startuur = startuur.replace(/h/, ':');
    startuur = startuur.replace(/ /, ':');
    tmp = startuur.split(':');
    if ( tmp[0].substr(0,1) == '0' )
        tmp[0] = tmp[0].substr(1,1);
    if (tmp.length == 1)
        tmp[1] = 0;
    if (isNaN(parseInt(tmp[0])))
        tmp[0] = 9;
    else
        tmp[0] = parseInt(tmp[0]);
    if (isNaN(parseInt(tmp[1])))
        tmp[1] = 0;
    else
        tmp[1] = parseInt(tmp[1]);
    
    var ingegeven_uur = new Date();
    var minimum_uur = new Date();
    var maximum_uur = new Date();
    var utmp = start_uur.split(':');
    minimum_uur.setHours(utmp[0]);
    minimum_uur.setMinutes(utmp[1]);
    var utmp = stop_uur.split(':');
    maximum_uur.setHours(utmp[0]);
    maximum_uur.setMinutes(utmp[1]);
    ingegeven_uur.setHours(tmp[0]);
    ingegeven_uur.setMinutes(tmp[1]);

    if (ingegeven_uur < minimum_uur)
        ingegeven_uur = minimum_uur;
    else if (ingegeven_uur > maximum_uur)
        ingegeven_uur = maximum_uur;

    var tmp = duur.split(':');
    var duurtijd = new Date()
    duurtijd.setHours(tmp[0]);
    duurtijd.setMinutes(tmp[1]);
    
    var einduur = new Date();
    einduur.setHours(ingegeven_uur.getHours() + duurtijd.getHours());
    einduur.setMinutes(ingegeven_uur.getMinutes() + duurtijd.getMinutes());
    
//    document.getElementById('startuur').value = padTime(ingegeven_uur.getHours()) + ':' + padTime(ingegeven_uur.getMinutes());
    document.forms.reserveerform.su_Hour.value = padTime(ingegeven_uur.getHours());
    document.forms.reserveerform.su_Minute.value = padTime(ingegeven_uur.getMinutes());
    document.getElementById('stopuur').innerHTML = padTime(einduur.getHours()) + ':' + padTime(einduur.getMinutes());
    checkBlokkeringen();
}

function checkBlokkeringen()
{
    var dag = $('datum_Day').value;
    var maand = $('datum_Month').value;
    var jaar = $('datum_Year').value;
    var uur = document.forms.reserveerform.su_Hour.value;
    var minuut = document.forms.reserveerform.su_Minute.value;
    var activiteit = document.forms.reserveerform.activiteit.value;
    var url = '/data/php/ajaxblokkering.php?dag='+dag+'&maand='+maand+'&jaar='+jaar+'&uur='+uur+'&minuut='+minuut+'&activiteit='+activiteit;
    new Ajax.Request(url, { method: 'get'
                     ,requestHeaders: {Accept: 'text/plain'}
                     ,onSuccess: function(transport) { toonBlokkering(transport.responseText); } } );
}

function toonBlokkering(reden)
{
    if ( reden != '' )
    {
        $('blokkering').innerHTML = reden;
        $('blokkering').style.display = 'block';
    }
    else
    {
        $('blokkering').innerHTML = '';
        $('blokkering').style.display = 'none';
    }
}

function checkSamenstelling()
{
    /* check disabled
    var aantal_deelnemers = parseInt(document.getElementById('aantaldeelnemers').value);
    if ( isNaN(aantal_deelnemers) )
        return false;
    var fields = [];
    if (samenstelling == 'volwassenen en kinderen')
        fields = ['ss_0_7', 'ss_8_14', 'ss_15_25', 'ss_26_55', 'ss_56_75', 'ss_76plus'];
    else if (samenstelling == 'alleen kinderen')
        fields = ['ss_0_7', 'ss_8_14', 'ss_begeleiders'];
    else if (samenstelling == 'alleen volwassenen')
        fields = ['ss_15_25', 'ss_26_55', 'ss_56_75', 'ss_76plus'];
    var som = 0;
    for ( x=0 ; x<fields.length ; x++)
    {
        var val = parseInt(document.getElementById(fields[x]).value);
        if ( !isNaN(val) )
            som += val;
    }

    return (som == aantal_deelnemers);
    */
    return true;
}

function padTime(x)
{
    if ( x < 10 )
        return '0' + x;
    else
        return x;
}

function valideerNumeriek(obj)
{
    if ( obj && isNaN(parseInt(obj.value)) )
        obj.value = '';
    else
        obj.value = parseInt(obj.value);
}

function valideerForm()
{
    var foutKleur = '#e76b6b';
    var no_errors = true;
    // gegevens aanvrager - andere
    var aanvrager = '';
    var selection = document.forms.reserveerform.aanvrager;
    for (x=0 ; x<selection.length ; x++)
        if ( selection[x].checked )
            aanvrager = selection[x].value;
    if ( aanvrager == 'andere' && document.getElementById('aanvraag_andere_tekst').value == '' )
    {
        no_errors = false;
        document.getElementById('aanvraag_andere_tekst').style.backgroundColor = foutKleur;
    }
    else
        document.getElementById('aanvraag_andere_tekst').style.backgroundColor = '#FFF';

    // deelnemers
    if ( !berekenRangersEnPrijs() || document.getElementById('aantaldeelnemers').value == '')
    {
        no_errors = false;
        document.getElementById('aantaldeelnemers').style.backgroundColor = foutKleur;
    }
    else
        document.getElementById('aantaldeelnemers').style.backgroundColor = '#FFF';

    // simpele tekstvelden
    var textFields = ['naam', 'adres1', 'adres2', 'cr_naam', 'cr_functie', 'cr_email', 'ca_naam', 'ca_functie'];
    if ( $('factuurY').checked )
    {
        textFields[textFields.length] = 'factuur_naam';
        textFields[textFields.length] = 'factuur_adres1';
        textFields[textFields.length] = 'factuur_adres2';
    }
    for (x=0 ; x<textFields.length ; x++)
    {
        if ( document.getElementById(textFields[x]).value == '')
        {
            no_errors = false;
            document.getElementById(textFields[x]).style.backgroundColor = foutKleur;
        }
        else
            document.getElementById(textFields[x]).style.backgroundColor = '#FFF';
    }
    // telefoonvelden
    var phoneFields = ['cr_gsm', 'ca_gsm'];
    for (x=0 ; x<phoneFields.length ; x++)
    {
        if ( document.getElementById(phoneFields[x]).value.length < 8)
        {
            no_errors = false;
            document.getElementById(phoneFields[x]).style.backgroundColor = foutKleur;
        }
        else
            document.getElementById(phoneFields[x]).style.backgroundColor = '#FFF';
    }
    
    // doelgroep
    if ( !document.getElementById('doelgroep_kinderen').checked && 
         !document.getElementById('doelgroep_tieners').checked && 
         !document.getElementById('doelgroep_senioren').checked && 
         !document.getElementById('doelgroep_volwassenen').checked) 
    {
        no_errors = false;
        document.getElementById('doelgroeptekst').style.color = foutKleur;
    }
    else
        document.getElementById('doelgroeptekst').style.color = '#000';
    
    // doelgroep samenstelling
    /* check disabled
    if (!checkSamenstelling())
    {
        no_errors = false;
        document.getElementById('samenstellingtekst').style.color = foutKleur;
        document.getElementById('samenstellingbericht').style.display = 'block';
    }
    else
    {
        document.getElementById('samenstellingtekst').style.color = '#000';
        document.getElementById('samenstellingbericht').style.display = 'none';
    }
    
    if (samenstelling == 'alleen kinderen')
    {
        var aantal_begeleiders = parseInt(document.getElementById('ss_begeleiders').value);
        if ( isNaN(aantal_begeleiders) || aantal_begeleiders <= 0)
        {
            no_errors = false;
            document.getElementById('ss_begeleiders').style.backgroundColor = foutKleur;
        }
        else
            document.getElementById('ss_begeleiders').style.backgroundColor = '#FFF';
    }
    */
    
    // begeleiders
    if (samenstelling == 'alleen kinderen')
    {
        var containerDiv = document.getElementById('begeleiderslijst');
        if ( containerDiv )
        {
            var inputs = containerDiv.getElementsByTagName('input');
            for ( var y = 0 ; y < containerDiv.childNodes.length ; y++ )
            {
                if (inputs[y])
                {
                    if (inputs[y].value == '')
                    {
                        no_errors = false;
                        inputs[y].style.backgroundColor = foutKleur;
                    }
                    else
                        inputs[y].style.backgroundColor = '#FFF';
                }
            }
        }
    }
    
    // andersvaliden
    var andersvaliden = '';
    var selection = document.forms.reserveerform.andersvaliden;
    for (x=0 ; x<selection.length ; x++)
        if ( selection[x].checked )
            andersvaliden = selection[x].value;
    if (andersvaliden == 'Y')
    {
        if (document.getElementById('andersvalidenaantal').value == '')
        {
            no_errors = false;
            document.getElementById('andersvalidenaantal').style.backgroundColor = foutKleur;
        }
        else
            document.getElementById('andersvalidenaantal').style.backgroundColor = '#FFF';

        if (document.getElementById('andersvalidenleeftijd').value == '')
        {
            no_errors = false;
            document.getElementById('andersvalidenleeftijd').style.backgroundColor = foutKleur;
        }
        else
            document.getElementById('andersvalidenleeftijd').style.backgroundColor = '#FFF';
    }
    else
    {
        document.getElementById('andersvalidenaantal').style.backgroundColor = '#FFF';
        document.getElementById('andersvalidenleeftijd').style.backgroundColor = '#FFF';
    }
    
    if (!checkStartDatum())
    {
        no_errors = false;
        document.getElementById('startdatumtekst').style.color = foutKleur;
    }
    else
        document.getElementById('startdatumtekst').style.color = '#000';
    
    if ( $('blokkering').innerHTML != '' )
    {
        no_errors = false;
        document.getElementById('startdatumtekst').style.color = foutKleur;
    }
    else
        document.getElementById('startdatumtekst').style.color = '#000';
    
    if (!no_errors)
        document.getElementById('formvalidatiewarning').style.display = 'block';
    else
        document.getElementById('formvalidatiewarning').style.display = 'none';

    if (no_errors)
    {
        var fields = ['naam', 'functie', 'gsm'];
        for (x=0 ; x<fields.length; x++)
            document.getElementById('ca_' + fields[x]).disabled = false;
    }

    return no_errors;
}

function controleer(aktie)
{
    if (aktie == 'doorgaan')
    {
        document.getElementById('frm').action = '/data/php/reserveer.php';
        document.getElementById('frm').submit();
    }
    else if (aktie == 'aanpassen')
    {
        document.getElementById('frm').action = '/reserveer';
        document.getElementById('frm').submit();
    }
    else if (aktie == 'telcheck')
    {
        document.getElementById('telcheckdiv').style.display = 'none';
        document.getElementById('doorgaandiv').style.display = 'block';
    }
}

function maakBegeleidersVelden()
{
    var aantal_rangers = document.getElementById('aantalrangers').innerHTML;
    var containerDiv = document.getElementById('begeleiderslijst');
    if (containerDiv && !isNaN(aantal_rangers))
    {
        var prevBegeleiders = {};
        var inputs = containerDiv.getElementsByTagName('input');
        for ( var y = 0 ; y < containerDiv.childNodes.length ; y++ )
        {
            if (inputs[y])
            {
                var selectId = 'begeleider_functie_' + inputs[y].id.replace(/begeleider_naam_/, '');
                prevBegeleiders[y] = {'naam': inputs[y].value, 'functie': document.getElementById(selectId).value, 'bg': inputs[y].style.backgroundColor };
            }
        }
        
        var begeleiders_per_ranger = 2;

        var aanvrager = '';
        var selection = document.forms.reserveerform.aanvrager;
        for (x=0 ; x<selection.length ; x++)
            if ( selection[x].checked )
                aanvrager = selection[x].value;
        if ( aanvrager == 'school' )
            begeleiders_per_ranger = 1;
            
        var aantal_verplichte_begeleiders = aantal_rangers * begeleiders_per_ranger;

        while (containerDiv.hasChildNodes())
            containerDiv.removeChild(containerDiv.firstChild);
            
        for ( x = 0 ; x < aantal_verplichte_begeleiders ; x++ )
        {
            var div = document.createElement('div');
            div.appendChild(document.createTextNode('Naam : '));
            
            var input = document.createElement('input');
            input.name = input.id = 'begeleider_naam_' + (x+1);
            input.style.width = '150px';
            if ( begeleiders[x + 1] )
                input.value = begeleiders[x + 1].naam;
            if ( prevBegeleiders[x] )
            {
                if ( prevBegeleiders[x].naam != '')
                    input.value = prevBegeleiders[x].naam;
                input.style.backgroundColor = prevBegeleiders[x].bg;
            }
            div.appendChild(input);
            div.appendChild(document.createTextNode(' '));
            
            var functies = { 'ouder': 'Ouder', 'leerkracht': 'Leerkracht', 'jeugdleider': 'Jeugdleider' };
            var select = document.createElement('select');
            select.name = select.id = 'begeleider_functie_' + (x+1);
            for ( var key in functies )
            {
                var option = document.createElement('option');
                option.value = key;
                if ( prevBegeleiders[x] && prevBegeleiders[x].functie == key )
                    option.selected = 'selected';
                else if ( begeleiders[x + 1] && begeleiders[x + 1].functie == key )
                    option.selected = 'selected';
                option.appendChild(document.createTextNode(functies[key]));
                select.appendChild(option);
            }
            div.appendChild(select);
            containerDiv.appendChild(div);
        }
    }
}



