function formulierErr(xhr, reason, ex) {
    alert(xhr.statusText);
    alert(reason);
}

function formulierVerstuur(unique, id, code, taal, type, veldenLijst, verplichteVeldenLijst, succesURL, wijzigID) {
    if (type == 'verwijderen') {
        if (!confirm('Zeker weten verwijderen?')) {
            return false;
        }
    }

    var params = {
        'formulierVerwerken': 1,
        'formulier': id,
        'taal': taal,
        'type': type,
        'succesURL': succesURL,
        'wijzigID': wijzigID
    };
    
    var veldenlijstparam = '';
    
    for (x = 0; x < veldenLijst.length; x++) {
        var veldtype = $('#' + unique + ' #' + code + '_' + veldenLijst[x] + '_veldtype').val();
        var waarde = '';

        if (veldtype == 'datum') {
            waarde = $('#' + unique + ' #' + code + '_' + veldenLijst[x] + 'a').val() + '/' + $('#' + unique + ' #' + code + '_' + veldenLijst[x] + 'b').val() + '/' + $('#' + unique + ' #' + code + '_' + veldenLijst[x] + 'c').val();
        } else if (veldtype == 'postcode') {
            waarde = $('#' + unique + ' #' + code + '_' + veldenLijst[x] + 'a').val() + ' ' + $('#' + unique + ' #' + code + '_' + veldenLijst[x] + 'b').val();
        } else if (veldtype == 'htmlarea') {
            for ( instance in CKEDITOR.instances ) {
                CKEDITOR.instances[instance].updateElement();
            }         
        
            waarde = $('#' + unique + ' #' + code + '_' + veldenLijst[x]).val();
        } else if (veldtype == 'wachtwoord') {
            waarde = $('#' + unique + ' #' + code + '_' + veldenLijst[x] + 'a').val();
        } else if (veldtype == 'prijs') {
            waarde = $('#' + unique + ' #' + code + '_' + veldenLijst[x] + 'a').val() + '.' + $('#' + unique + ' #' + code + '_' + veldenLijst[x] + 'b').val();
        } else if (veldtype == 'radio') {
          $('#formulier_rij_' + veldenLijst[x] + ' input').each(function() {

            if($(this).attr('checked') == true) {
              waarde += $(this).val() + ';';
            }
          });
          
          waarde = waarde.slice(0, waarde.length - 1);          
        } else if (veldtype == 'checkboxes') {
          $('#formulier_rij_' + veldenLijst[x] + ' input').each(function() {

            if($(this).attr('checked') == true) {
              waarde += $(this).val() + ';';
            }
          });
          
          waarde = waarde.slice(0, waarde.length - 1);
        } else {
          waarde = $('#' + unique + ' #' + code + '_' + veldenLijst[x]).val();
        }

        params['veld' + veldenLijst[x]] = waarde;
        
        veldenlijstparam += veldenLijst[x] + ',';
    }
    
    params['velden'] = veldenlijstparam;

    var veldenlijstverplichtparam = '';    

    for (x = 0; x < verplichteVeldenLijst.length; x++) {
      veldenlijstverplichtparam += verplichteVeldenLijst[x] + ',';
    }
    
    params['velden_verplicht'] = veldenlijstverplichtparam;    
    
    $.ajax({
        type: "POST",
        url: webadres + "php/verwerk/formulier/verwerken.php",
        data: params,
        dataType: "xml",
        success: function (xml) { formulierControlerenResultaat(xml, unique, id, code, type, veldenLijst, succesURL, wijzigID); },
        error: formulierErr
    });    

    return false;
}

function formulierControlerenResultaat(xml, unique, id, code, type, veldenLijst, succesURL, wijzigID) {
    var resultaat = $(xml).find("status").attr("code");

    if (resultaat == 100) {
        var locatie = $(xml).find("status").attr("url");
        
        if (locatie) {
            window.location = locatie;
        } else {
            $('.formulier' + id + ' .veldenLijst').fadeOut();
            $('.formulier' + id + 'Resultaten').hide().html('');
    
            $(xml).find("status").each(function () {
                melding = $(this).attr('omschrijving');
                meldingHTML = '<div class="toolTip tpGreen clearfix"><p>' + melding + '</p><a class="close" title="Close"></a></div>';
    
                $('.formulier' + id + 'Resultaten').append(meldingHTML);
            });
    
            $('.formulier' + id + 'Resultaten .toolTip .close').click(function () {
                $(this.parentNode).fadeOut(function () {
                    $(this).remove();
                });
            });
    
            //$('.formulier' + id + 'Resultaten').fadeIn();
            $('html, body').animate({scrollTop:0}, 'normal', function() {
              $('.formulier' + id + 'Resultaten:hidden').fadeIn();
            });    
        }
    } else {
        $('.formulier' + id + 'Resultaten').hide().html('');

        $(xml).find("fout").each(function () {
            fout = $(this).attr('omschrijving');
            foutHTML = '<div class="toolTip tpRed clearfix"><p>' + fout + '</p><a class="close" title="Close"></a></div>';

            $('.formulier' + id + 'Resultaten').append(foutHTML);
        });

        $('.formulier' + id + 'Resultaten .toolTip .close').click(function () {
            $(this.parentNode).fadeOut(function () {
                $(this).remove();
            });
        });

        
        //$('.formulierResultaten').scrollTo();
        $('html, body').animate({scrollTop:0}, 'normal', function() {
          $('.formulier' + id + 'Resultaten:hidden').fadeIn();
        });    
    }
}

function formulierVerkennenVolgordeOpslaan(id, code) {
    var volgordeContent = $("#" + code + "Verkennen tbody").html();
    
    var params = {
        'formulierVolgorde': 1,
        'formulier': id,
        'content': volgordeContent
    };
    
    $.ajax({
        type: "POST",
        url: webadres + "php/verwerk/formulier/volgorde.php",
        data: params,
        dataType: "xml",
        success: function(xml) { formulierVerkennenVolgordeOpslaanResultaat(xml, id, code); },
        error: formulierErr
    }); 
}

function formulierVerkennenVolgordeOpslaanResultaat(xml, id, code) {
    var resultaat = $(xml).find("status").attr("code");

    if (resultaat == 100) {
        $('#' + code + 'VerkennenResultaten').hide().html('');

        melding = $(xml).find("status").attr("melding");
        meldingHTML = '<div class="toolTip tpGreen clearfix"><p><img src="' + webadres + 'img/v2/icons/light-bulb-off.png" alt="Tip!" />' + melding + '</p><a class="close" title="Close"></a></div>';

        $('#' + code + 'VerkennenResultaten').append(meldingHTML);


        $('#' + code + 'VerkennenResultaten .toolTip .close').click(function () {
            $(this.parentNode).fadeOut(function () {
                $(this).remove();
            });
        });

        $('#' + code + 'VerkennenResultaten').fadeIn();          
    } else {
        $('#' + code + 'VerkennenResultaten').hide().html('');

        $(xml).find("fout").each(function () {
            var fout = $(this).attr('omschrijving');
            foutHTML = '<div class="toolTip tpRed clearfix"><p><img src="' + webadres + 'img/v2/icons/light-bulb-off.png" alt="Tip!" />' + fout + '</p><a class="close" title="Close"></a></div>';

            $('#' + code + 'VerkennenResultaten').append(foutHTML);
        });

        $('#' + code + 'VerkennenResultaten .toolTip .close').click(function () {
            $(this.parentNode).fadeOut(function () {
                $(this).remove();
            });
        });

        $('#' + code + 'VerkennenResultaten').fadeIn();
    }
}

function randomPassword(length) {
  chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
  pass = "";
  for(x=0;x<length;x++)
  {
    i = Math.floor(Math.random() * 62);
    pass += chars.charAt(i);
  }
  return pass;
}

function randomWachtwoordInvullen(veld) {
    var wachtwoord = randomPassword(8);
    
    $('#' + veld + 'a').val(wachtwoord);
    $('#' + veld + 'b').val(wachtwoord);
}
