function submitForm(name) {
    document.forms[name].submit();
}

function accepteerAanmelding() {
    $('accepteerwaarde').value = 'accepteren';
    submitForm('acceptatieaanmelding');
}

function verwijderAanmelding() {
    $('accepteerwaarde').value = 'verwijderen';
    submitForm('acceptatieaanmelding');
}

function verstuurAanmelding() {
    // de bedrijfsgegevens controleren
    if ( !emptyCheck ( 'bedrijfsnaam', 'bedrijfs naam') ) return false;
    if ( !emptyCheck ( 'bedrijfsadres', 'bedrijfs adres') ) return false;
    if ( !emptyCheck ( 'bedrijfspostcode', 'bedrijfs postcode') ) return false;
    if ( !emptyCheck ( 'bedrijfsplaats', 'bedrijfs plaats') ) return false;
    if ( !emptyCheck ( 'bedrijfstelefoon', 'bedrijfs telefoon') ) return false;
    if ( !emptyCheck ( 'website', 'website') ) return false;
    if ( !emptyCheck ( 'omschrijving', 'Millennium bijdrage') ) return false;

    // de persoonsgegevensgegevens controleren
    if ( !emptyCheck ( 'voornaam', 'voornaam/tussenvoegsel') ) return false;
    if ( !emptyCheck ( 'achternaam', 'achternaam') ) return false;
    if ( !emptyCheck ( 'email', 'email') ) return false;
    
    // de gebruikersnaam controleren
    if ( !emptyCheck ( 'gebruikersnaam', 'gebruikersnaam') ) return false;

    submitForm('aanmelden');
}

function showLedenLijst() {
    $('ledenlijstmap').hide();
    $('ledenlijsttabel').show();
}
function showLedenLijstAgain( href, prefix ) {
    var zoekterm = $('zoekterm').value;
    zoekterm = zoekterm.stripScripts();
    zoekterm = zoekterm.strip();
    if (zoekterm.length == 0) {
        zoekterm = 'falsee';
    }
    var link = "/"+href+"&"+prefix+"[actie]=zoeken&"+prefix+"[term]="+zoekterm;
    location.href=link;
}

function showLedenMap() {
    $('ledenlijsttabel').hide();
    $('ledenlijstmap').show();
}

function wijzigLidGegevens () {
    submitForm('wijziglidgegevens');
}

function wijzigContactGegevens ( mode ) {
    submitForm('wijzigcontactgegevens');
}

function afmeldenLid() {
    if ($('afmeldcheck').checked == true) {
        submitForm('afmeldlid');
    } else {
        alert ( "Om u af te melden, dient u het vinkje te zetten bij \"Ik wil mijn bedrijf afmelden.\" ");
    }
}
//------ check Unique Mail Adres via Ajax request --------
function checkUniqueEmail(email) {
    var url = 'typo3conf/ext/ledenadministratie/ajax.php';
    var params = 'email='+email;
    this.checktest = false;
    
    new Ajax.Request(
        url,
        {
            method: 'post',
            asynchronous: false,
            postBody: params,
            onComplete: updateEmailUnique
        }
    );
    return this.checktest;
}

function updateEmailUnique(request) {
    // inject HTML
    if (request.responseText == 'true') {
        this.checktest = true;
        return true;
    } else {
        alert( "Email is niet uniek, er is al een contact met mail " + request.responseText);
        $('email').focus();
        return false;
    }
}
//------ check Unique Gebruikersnaam via Ajax request --------
function checkUniqueGebruikersnaam ( gebruikersnaam, gebruikersnaamcopy ) {
    if ( gebruikersnaam == gebruikersnaamcopy )
    {
        return true;
    }
    var url = 'typo3conf/ext/ledenadministratie/ajax.php';
    var params = 'gebruikersnaam='+gebruikersnaam+'&ori='+gebruikersnaamcopy ;
    this.checktest = false;
    
    new Ajax.Request(
        url,
        {
            method: 'post',
            asynchronous: false,
            postBody: params,
            onComplete: updateGebruikersnaamUnique
        }
    );
    return this.checktest;
}

function updateGebruikersnaamUnique(request) {
    // inject HTML
    if (request.responseText == 'true') {
        this.checktest = true;
        return true;
    } else {
        alert( "Gebruikersnaam is niet uniek, er is al een contact met de gebruikersnaam " + request.responseText);
        $('gebruikersnaam').focus();
        return false;
    }
}
//------ check on empty --------------------------------
function emptyCheck ( id, description ) {
    var field = $(id).value;
    if (field.length == 0) {
        alert ( "U heeft geen "+ description+" ingevuld." );
        $(id).focus();
        return false;
    }
    return true;
}
//------ check on filesize -----------------------------
function checkFileSize ( id ) {
    try
    {   
        var size = id.files[0].fileSize; // FF
    } catch (e)
    {
        try
        {
            objFSO = new ActiveXObject("Scripting.FileSystemObject");  // IE
            var path = id.value;
            var file = objFSO.getFile(path);
            var size = file.size ; // This size will be in Bytes    }
        } catch (e)
            {
                alert ( "Bij het laden van grote files is het onzeker of de veranderingen in het formulier plaatsvinden" );
                return true;
            }
    }
    if ( size >= 2*1024*1024 ) {
        alert ( "Maximum upload size is 2MB" );
        $(id).focus();
        return false;
    }
    return true;
}
//------ check postcode --------------------------------
function postcodeCheck(postcode) {
    postcode = postcode.value;
    postcode = postcode.toUpperCase();
    var re = /^(\d{4})\s?([A-Z]{2})$/;

    if ( postcode.length == 0 )
    {
        alert ( "U heeft geen postcode ingevuld." );
        return false;
    }
    if (!postcode.match(re)) {
        alert ( "U heeft geen geldige postcode ingevuld." );
        return false;
    }
    return true;
}
//------ check datum data ---------------------------------
function datumCheck(datum, condition) {
    if ( condition == 'A' ) return isDate(datum.value); // allways 
    if ( $('registratiebftj').value == 'J' ) return isDate(datum.value); // depending
    return true; 
} 
function isDate(dateStr) {
    var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
    var matchArray = dateStr.match(datePat); // is the format ok?

    if (matchArray == null) {   
        alert("De ingegeven datum waarde '"+dateStr+ "' is incorrect");
        return false;
    }

    day = matchArray[1]; // parse date into variables
    month = matchArray[3];
    year = matchArray[5];

    if (month < 1 || month > 12) { // check month range
        alert("Maand moet tussen 1 en 12.");
        return false;
    }

    if (day < 1 || day > 31) {
        alert("Dag moet tussen 1 en 31.");
        return false;
    }

    if ((month==4 || month==6 || month==9 || month==11) && day==31) {
        alert("Maand "+month+" heeft geen 31 dagen!");
        return false;
    }
    
    if (month == 2) { // check for february 29th    
        var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
        if (day > 29 || (day==29 && !isleap)) {
        alert("Februari " + year + " heeft geen " + day + " dagen!");
        return false;
        }
    }   
    return true; // date is valid
}
//---------------------------------------------------------
function telefoonCheck ( telefoon, extra ) {
    return isTel(telefoon.value, extra );
}
function isTel ( telStr, extra ) {
    var telPat = /^0\d{9}$/;
    var mobPat = /^06\d{8}$/;
    if ( extra == 'telefoon' ) {
        var matchArray = telStr.match(telPat);
    } else {
        var matchArray = telStr.match(mobPat);
    }
    
    if (matchArray == null)  {  
        alert ( "De ingegeven "+extra+" waarde '"+telStr+ "' is incorrect");
        return false;
    }
    return true; // telefoonnummer is valid
}   
//---------------------------------------------------------
function emailCheck ( email, old_email ) {
    return isEmail(email.value, old_email );
}
function isEmail ( emailStr, old ) {
    var emailPat  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    var matchArray = emailStr.match(emailPat);
    
    if (matchArray == null)  {  
        alert ( "De ingegeven email waarde '"+emailStr+ "' is incorrect");
        return false;
    }
    if ( emailStr == old ) {
      return true;    // email has not changed
    }   
    return checkUniqueEmail(emailStr); // email is valid
}   
//---------------------------------------------------------
function gebruikersnaamCheck ( naam, original ) {
    return isGebruikersnaam(naam.value,original );
}
function isGebruikersnaam ( naamStr,original ) {
    var naamPat  = /^([a-zA-Z0-9])+$/;
    var matchArray = naamStr.match(naamPat);
    
    if (matchArray == null)  {  
        alert ( "De ingegeven gebruikersnaam waarde '"+naamStr+ "' is incorrect");
        return false;
    }
    return checkUniqueGebruikersnaam(naamStr,original); // gebruikersnaam is valid
}   
//---------------------------------------------------------
function wachtwoordCheck ( wachtwoord ) {
    return isWachtwoord(wachtwoord.value );
}
function isWachtwoord ( wachtwoordStr ) {
    var wachtwoordPat  = /^([a-zA-Z0-9])+$/;
    var matchArray = wachtwoordStr.match(wachtwoordPat);
    
    if ( wachtwoordStr.length < 6 )
    {
        alert ( "Wachtwoord is minimaal 6 tekens." );
        return false;
    }
    if ( wachtwoordStr.length > 10 )
    {
        alert ( "Wachtwoord is maximaal 10 tekens." );
        return false;
    }
    if (matchArray == null)  {  
        alert ( "De ingegeven wachtwoord waarde '"+naamStr+ "' is incorrect");
        return false;
    }
    return true; // wachtwoord is valid
}   
//---------------------------------------------------------
function websiteCheck ( website ) {
    return isWebsite(website.value );
}
function isWebsite ( websiteStr ) {
    var websitePat  = /^([a-zA-Z0-9_\.\-])+$/;
    var matchArray = websiteStr.match(websitePat);
    
    if (matchArray == null)  {  
        alert ( "De ingegeven website waarde '"+websiteStr+ "' is incorrect");
        return false;
    }
    return true; // website is valid
}   
//---------------------------------------------------------

