$(function() {
    // selecteer eerste veld
    $('#fCalc input:first').focus();
    // verklein divs naar window-size (maar minstens 474)
    //$('#tabs > div').height(Math.max(474, $(window).height() - 400));
    $('i#configuratieBewaard').hide();
    changeForm();
});

function showTab(hash, autoScroll) {
    $('.tabblad').hide();
    $('#tab'+hash).show();
    $('#tabrij a').removeClass('tabSelected');
    $('#tabrij a[rel="'+hash+'"]').addClass('tabSelected');
    if (autoScroll) $(window).scrollTop(259);
}

function slideBox() {
    var div = $('#slidingBox');
    if (div.css('position') == 'fixed' && $(window).scrollTop() < 453) {
        div.css('position', 'absolute')
           .css('left', '740px')
           .css('top', '463px');
    } else if (div.css('position') == 'absolute' && $(window).scrollTop() > 453) {
        div.css('position', 'fixed')
           .css('left', ($('#container').offset().left + 740)+'px')
           .css('top', '10px');
    }
}

var expanded = true;
function toggleExpand() {
    // toon of verberg <p>s en <table>s (niet .calc)
    $('.tabblad').not('.tabblad:last').find('p, table').not('.calc').toggle(!expanded);
    // toggle persistente var
    expanded = !expanded;
    // verander expand-button
    $('#tabs #expandButton').toggleClass('notExpanded', !expanded)
                            .attr('title', expanded ? 'Verberg teksten' : 'Toon teksten');
}

function changeForm() {
    // update prijs op basis van formulier
    updatePrijs();
    $('#ralTabel td').css({'height' : '14px', 'cursor' : 'pointer'})
    // formuliergedeeltes weergeven, verbergen, enablen of disablen
    $('#montage_inclusief').toggle(document.fCalc.montage[1].checked);
    document.fCalc.demontage.disabled = document.fCalc.situatie[0].checked;
    document.fCalc.afvoer.disabled = document.fCalc.situatie[0].checked || !document.fCalc.demontage.checked;
    document.fCalc.bedrijfsnaam.disabled = document.fCalc.bedrijf[0].checked;
    document.fCalc.btwnr.disabled = document.fCalc.bedrijf[0].checked;
    document.fCalc.land_anders.disabled = document.fCalc.land[0].checked;
    // merk-specifieke reacties
    if (typeof changeFormMerk == 'function') changeFormMerk();
}

// update spec-object na veranderen formuliervelden
function updatePrijs() {
    // stuur formulier-data naar prijsCalc.php
	$.post('../scripts/prijsCalc.php', $('#fCalc').serialize(), function(response) {
        // verberg sowieso eerst alle fouten in configuratie-tabs
        $('.foutmelding').not('#tabPrijsopgave .foutmelding').html('').hide();
        $('#fCalc :input').not('#tabPrijsopgave :input').removeClass('fout');
        if (typeof response.materiaal == 'undefined') {
            // fouten in spec!
            $.each(response, function(key, val) {
                meldFout(key, val);
            });
            // prijzen verwijderen
            $('#prijsMateriaal, #prijsControlemeting, #prijsMontage, #prijsTotaal').html('-');
        } else {
            // update prijzen
            $('#prijsMateriaal').html(response.materiaal);
            $('#prijsControlemeting').html(response.controlemeting);
            $('#prijsMontage').html(response.montage);
            $('#prijsTotaal').html(response.totaal);
        }
        // offerteaanvraag-tab aanpassen
        $('#foutGevonden').toggle(!response.materiaal);
        document.fCalc.opslaan.disabled = document.fCalc.verzend.disabled = !response.materiaal;
    }, 'json');
}

function bewaarConfiguratie(merk) {
    // roep script aan dat actieve conf naar permanente plek in sessie verhuisd
    $.get('../prijs-berekenen/opgeslagen-configuraties/bewaarConfiguratie.php?merk='+merk, function(response) {
        // update het aantal opgeslagen configuraties
        $('i#configuratieBewaard').show().animate({ opacity: 1 }, 3000).fadeOut('slow');
        $("a[rel*='opgeslagenConfiguraties']").html('Opgeslagen configuraties ('+response+')');
		$('#basket').show();
    });
}

function checkOfferteaanvraag() {
    // eerst alle fouten weer verbergen
    $('#tabPrijsopgave .foutmelding').html('').hide();
    $('#tabPrijsopgave :input').removeClass('fout');
    // controleer velden
    if (document.fCalc.achternaam.value.length < 1) { meldFout('achternaam', 'U dient een achternaam op te geven.', 'Persoonsgegevens'); }
    if (document.fCalc.bedrijf[1].checked && document.fCalc.bedrijfsnaam.value.length < 1) { meldFout('bedrijfsnaam', 'U dient een bedrijfsnaam op te geven.', 'Bedrijfsgegevens'); }
    if (document.fCalc.email.value.length < 1) { meldFout('email', 'U dient een e-mailadres op te geven.', 'Contactgegevens'); }
    if (document.fCalc.adres.value.length < 1) { meldFout('adres', 'U dient een adres op te geven.', 'Contactgegevens'); }
    if (document.fCalc.postcode.value.length < 1) { meldFout('postcode', 'U dient een postcode op te geven.', 'Contactgegevens'); }
    if (document.fCalc.plaats.value.length < 1) { meldFout('plaats', 'U dient een plaats op te geven.', 'Contactgegevens'); }
    if (!isInteger(document.fCalc.aantal.value)) { meldFout('aantal', 'U dient een geldig aantal garagedeuren op te geven.', 'Overige'); }
    // zijn er fouten gevonden?
    if ($('.fout').length == 0) {
        // geen inputs met class 'fout' gevonden
        document.fCalc.verzend.disabled = true;
        document.fCalc.verzend.value = 'Een moment geduld a.u.b...';
        document.fCalc.submit();
    }
}