function updatePrice(){
    gear_id = 'undefined';
    if($('input[name=rent_gear]:checked').val() == 1)
        gear_id = $('input[name=gear_id]:checked').val();
    $.post('getdata.php', {type: 'total', event_id: $('#event_id').val(), package_id: $('#package_id').val(), gear_id: gear_id}, function(data){
        $('#total').val('€' + data.total);
    }, 'json');
}

function getPackagePrice(){
    $.post('getdata.php', {type: 'price', event_id: $('#event_id').val(), package_id: $('#package_id').val()}, function(data){
        $('#price').val('€' + data.price);
    }, 'json');
    
    updatePrice();
}

function updateEvent(event_id){
    $.post('getdata.php', {type: 'header', event_id: event_id}, function(data){
        $('#header').attr('src', data);
    }, 'html');
    $.post('getdata.php', {type: 'event_text', event_id: event_id}, function(data){
        $('#event_text').hide();
        $('#event_text').html(data);
        $('#event_text').show();
        
        $('#package_id').change(function(){
            getPackagePrice();
        });
        
        getPackagePrice();
    }, 'html');
    $.post('getdata.php', {type: 'gear', event_id: event_id, gear_id: $('input[name=gear_id]:checked').val()}, function(data){
        $('#gear').hide();
        $('#gear').html(data);
        $('#gear').hide();
        $('#gear_remark').hide();
        $('input[name=gear_id]').click(function(){
            updatePrice();
        });
        if($('input[name=rent_gear]:checked').val() == 1){
            $('#gear').show();
            $('#gear_remark').show();
        }
    }, 'html');
    $.post('getdata.php', {type: 'checks', event_id: event_id}, function(data){
        $('#checks').hide();
        $('#checks').html(data);
        $('#checks').show();
    }, 'html');
    
    updatePrice();
}

function showGear(show){
    if(show){
        $('#gear').show();
        $('#gear_remark').show();
        $('#payment').html(texts[3]);
    }
    else{
        $('#gear').hide();
        $('#gear_remark').hide();
        $('#payment').html(texts[2]);
    }
    
    updatePrice();
}

function isValidEmailAddress(emailAddress){
    var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
    return pattern.test(emailAddress);
}

function isValidDateFormat(thisDate){
    var pattern = new RegExp(/^[0-9]{4}-[0-1]{1}[0-9]{1}-[0-3]{1}[0-9]{1}$/i);
    return pattern.test(thisDate);
}

function checkAndSubmitForm(){
    var complete = true;
    
    $('input').removeClass('error');
    $('select').removeClass('error');
    $('.error-message').remove();
    
    if($('#package_id').val() == null){
        complete = false;
        if($('#package_id').children('option').length < 1){
            $('#event_id').addClass('error');
            $('#event_id').after('<span class="error-message"><br />Er is geen arrangement meer vrij voor dit evenement. Selecteer een ander evenement a.u.b.</span>');
        }
        else{
            $('#package_id').addClass('error');
            $('#package_id').after('<span class="error-message"><br />Selecteer een arrangement a.u.b.</span>');
        }
    }
    if($('#firstname').val() == ''){
        complete = false;
        $('#firstname').addClass('error');
        $('#firstname').after('<span class="error-message"><br />Vul uw voornaam in a.u.b.</span>');
    }
    if($('#lastname').val() == ''){
        complete = false;
        $('#lastname').addClass('error');
        $('#lastname').after('<span class="error-message"><br />Vul uw achternaam in a.u.b.</span>');
    }
    if(!isValidDateFormat($('#date_of_birth').val())){
        complete = false;
        $('#date_of_birth').addClass('error');
        $('#date_of_birth').after('<span class="error-message"><br />Vul uw geboortedatum in a.u.b. (bijv. 1970-01-31)</span>');
    }
    if($('#place_of_birth').val() == ''){
        complete = false;
        $('#place_of_birth').addClass('error');
        $('#place_of_birth').after('<span class="error-message"><br />Vul uw geboorteplaats in a.u.b.</span>');
    }
    if($('#nationality').val() == ''){
        complete = false;
        $('#nationality').addClass('error');
        $('#nationality').after('<span class="error-message"><br />Vul uw nationaliteit in a.u.b.</span>');
    }
    if(!isValidEmailAddress($('#email_address').val())){
        complete = false;
        $('#email_address').addClass('error');
        $('#email_address').after('<span class="error-message"><br />Vul een geldig e-mailadres in a.u.b.</span>');
    }
    if($('#gsm').val() == ''){
        complete = false;
        $('#gsm').addClass('error');
        $('#gsm').after('<span class="error-message"><br />Vul uw gsm-nummer in a.u.b.</span>');
    }
    if(($('input[name=rent_gear]:checked').val() == 1) && !($('input[name=gear_id]:checked').val())){
        complete = false;
        $('#gear').prepend('<span class="error-message"><br />Kies de gewenste uitrusting a.u.b.</span>');
    }
    $('input[type=checkbox]').each(function(){
        if(!($(this).attr('checked'))){
            complete = false;
            $(this).before('<span class="error-message"><br />Accepteer deze voorwaarden a.u.b.<br /></span>');
        }
    });
    
    if(complete){
        $('form').submit();
    }
}
