function OpenStep(p_intStep) {
    var l_objStepDetail = document.getElementById('StepDetail' + p_intStep);
    if(document.getElementById('Step' + p_intStep).style.display != 'none') {
        if(document.getElementById('TopStep' + p_intStep)) {
            document.getElementById('TopStep' + p_intStep).className='StepTitleActive';
        }
        if(l_objStepDetail) {
            if(l_objStepDetail.className=='StepDetailOpen'){
                l_objStepDetail.className='StepDetail';
            } else {
                l_objStepDetail.className='StepDetailOpen';
            }
        }
    }
}

function OpenSubStep(p_intStep) {
    var l_objStepDetail = document.getElementById('StepDetail' + p_intStep);
    if(l_objStepDetail.className=='StepDetailOpen'){
        l_objStepDetail.className='StepDetail';
    } else {
        l_objStepDetail.className='StepDetailOpen';
    }
}

function DisplayStep(p_intStep) {
    var l_objStep = document.getElementById('Step' + p_intStep);
    if(l_objStep.style.display==''){
       l_objStep.style.display = 'block'; 
    }
}
function IsValidEmail(p_strValue) {
    return p_strValue.match(/\b(^(\S+@).+((\.com)|(\.net)|(\.edu)|(\.mil)|(\.gov)|(\.org)|(\..{2,2}))$)\b/gi);
}

function IsValidDate(p_strDate) {
    var l_objRegExp=/^(?:(?:31(\/|-|\.)(?:0?[13578]|1[02]))\1|(?:(?:29|30)(\/|-|\.)(?:0?[1,3-9]|1[0-2])\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:29(\/|-|\.)0?2\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\d|2[0-8])(\/|-|\.)(?:(?:0?[1-9])|(?:1[0-2]))\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$/
    if(l_objRegExp.test(p_strDate)) {
        return true;
    } else {
        return false ;
    }
}

function IsValidSofi(p_strSofi) {
    var ret = true;
    var sum = 0;
    for(var i=0; i < 8; i++){
        sum += (9-i) * parseInt(p_strSofi.charAt(i));
    }
    sum -= parseInt(p_strSofi.charAt(8));
    if(!((sum % 11) == 0)){
      ret = false; 
    }
    return ret;
} 

function CheckDouble(p_objThis) {
    if(p_objThis.value.length==1) {
        p_objThis.value = '0' + p_objThis.value; 
    }
}

function Step0() {
    OpenStep(0);
    DisplayStep(1);
    OpenStep(1);
}

function Step1(p_blnOnlyCheck) {
    if(document.getElementById('Voornamen').value=='') {
        document.getElementById('Voornamen').focus();
        alert('Voornamen zijn verplicht');
        return false;
    }
    if(document.getElementById('Roepnaam').value=='') {
        document.getElementById('Roepnaam').focus();
        alert('Roepnaam is verplicht');
        return false;
    }
    
    if(document.getElementById('Achternaam').value=='') {
        document.getElementById('Achternaam').focus();
        alert('Achternaam is verplicht');
        return false;
    }
    
    if(!IsValidDate(document.getElementById('GeboortedatumDag').value + '/' + document.getElementById('GeboortedatumMaand').value + '/' + document.getElementById('GeboortedatumJaar').value)) {
        document.getElementById('GeboortedatumDag').focus();
        alert('Geboortedatum is verplicht of datum is niet correct');
        return false;
    } else {
        if(document.getElementById('GeboortedatumJaar').value.length<4) {
            document.getElementById('GeboortedatumDag').focus();
            alert('Geboortedatum is verplicht of datum is niet correct');
            return false;
        }
    }
    
    if(document.getElementById('BSN-nummer').value=='') {
        document.getElementById('BSN-nummer').focus();
        alert('Burger service nummer is verplicht');
        return false;
    } else {
        if(!IsValidSofi(document.getElementById('BSN-nummer').value)) {
            document.getElementById('BSN-nummer').focus();
            alert('BSN-nummer is niet correct');
            return false;
        }
    } 
//    if(!p_blnOnlyCheck){
//        OpenStep(1);
//        DisplayStep(2);
//        OpenStep(2);
//    }
    //return true;
    //}

    //function Step2(p_blnOnlyCheck) {
    if(document.getElementById('Postcode').value=='') {
        document.getElementById('Postcode').focus();
        alert('Postcode is verplicht');
        return false;
    }
    if(document.getElementById('Straat').value=='') {
        document.getElementById('Straat').focus();
        alert('Straat is verplicht');
        return false;
    }
    if(document.getElementById('Huisnummer').value=='') {
        document.getElementById('Huisnummer').focus();
        alert('Huisnummer is verplicht');
        return false;
    }
    if(document.getElementById('Woonplaats').value=='') {
        document.getElementById('Woonplaats').focus();
        alert('Woonplaats is verplicht');
        return false;
    }
    if(document.getElementById('E-mail').value=='') {
        document.getElementById('E-mail').focus();
        alert('E-mail is verplicht');
        return false;
    } else {
        if(!IsValidEmail(document.getElementById('E-mail').value)) {
            document.getElementById('E-mail').focus();
            alert('E-mail is niet correct');
            return false;
        }
    }
    var l_datBirthDate = new Date(document.getElementById('GeboortedatumJaar').value, parseInt(document.getElementById("GeboortedatumMaand").value)-1, document.getElementById("GeboortedatumDag").value);
    var l_datToday = new Date();
    var l_datBirthDateMin18 = new Date(l_datToday.getFullYear()-18, l_datToday.getMonth(), l_datToday.getDate());
    if(l_datBirthDate > l_datBirthDateMin18) {
        DisplayStep(21);
        if(document.getElementById('Voornamenvertegenwoordiger').value=='') {
            document.getElementById('Voornamenvertegenwoordiger').focus();
            alert('Voornamen zijn verplicht');
            return false;
        }
        if(document.getElementById('Achternaamvertegenwoordiger').value=='') {
            document.getElementById('Achternaamvertegenwoordiger').focus();
            alert('Achternaam is verplicht');
            return false;
        }
        if(document.getElementById('Postcodevertegenwoordiger').value=='') {
            document.getElementById('Postcodevertegenwoordiger').focus();
            alert('Postcode is verplicht');
            return false;
        }
        if(document.getElementById('Straatvertegenwoordiger').value=='') {
            document.getElementById('Straatvertegenwoordiger').focus();
            alert('Straat is verplicht');
            return false;
        }
        if(document.getElementById('Huisnummervertegenwoordiger').value=='') {
            document.getElementById('Huisnummervertegenwoordiger').focus();
            alert('Huisnummer is verplicht');
            return false;
        }
        if(document.getElementById('Woonplaatsvertegenwoordiger').value=='') {
            document.getElementById('Woonplaatsvertegenwoordiger').focus();
            alert('Woonplaats is verplicht');
            return false;
        }
    }
    if(!p_blnOnlyCheck){
        OpenStep(1);
        DisplayStep(2);
        OpenStep(2);
    }
//    if(!p_blnOnlyCheck){ 
//        OpenStep(2);
//        DisplayStep(3);
//        OpenStep(3);
//    }
    return true;
}

function Step3(p_blnOnlyCheck) {
    
    if(!p_blnOnlyCheck){
        OpenStep(3);
        DisplayStep(6);
        OpenStep(6);
    }
    return true;
}

function Step4(p_blnOnlyCheck) {
//    if(!(document.getElementById('EinddatumDag').value=='' || document.getElementById('EinddatumDag').value=='dd')){
//        if(!IsValidDate(document.getElementById('EinddatumDag').value + '/' + document.getElementById('EinddatumMaand').value + '/' + document.getElementById('EinddatumJaar').value)) {
//            document.getElementById('EinddatumDag').focus();
//            alert('Einddatum is niet correct');
//            return false;
//        } else {
//            if(document.getElementById('EinddatumJaar').value.length<4) {
//                document.getElementById('EinddatumDag').focus();
//                alert('Geboortedatum is verplicht of datum is niet correct');
//                return false;
//            }
//        }
//    }
    if(!p_blnOnlyCheck){
        OpenStep(4);
        DisplayStep(6);
        OpenStep(6);
    }
    return true;
}

function Step5(p_blnOnlyCheck) {
    if(!p_blnOnlyCheck){
        OpenStep(5);
        DisplayStep(6);
        OpenStep(6);
    }
}
function Step6() {
    var l_blnNoError = true;
    l_blnNoError = Step1(true);
    //l_blnNoError = Step2(true);
    //l_blnNoError = !Step3(true);
    //l_blnNoError = Step4(true);
    if(!(document.getElementById('DatumDiplomaDag1').value=='' || document.getElementById('DatumDiplomaDag1').value=='dd')){
        if(!IsValidDate(document.getElementById('DatumDiplomaDag1').value + '/' + document.getElementById('DatumDiplomaMaand1').value + '/' + document.getElementById('DatumDiplomaJaar1').value)) {
            document.getElementById('DatumDiplomaDag1').focus();
            alert('Einddatum is niet correct');
            return false;
        } else {
            if(document.getElementById('DatumDiplomaJaar1').value.length<4) {
                document.getElementById('DatumDiplomaDag1').focus();
                alert('Geboortedatum is verplicht of datum is niet correct');
                return false;
            }
        }
    }
    if(!(document.getElementById('DatumDiplomaDag2').value=='' || document.getElementById('DatumDiplomaDag2').value=='dd')){
        if(!IsValidDate(document.getElementById('DatumDiplomaDag2').value + '/' + document.getElementById('DatumDiplomaMaand2').value + '/' + document.getElementById('DatumDiplomaJaar2').value)) {
            document.getElementById('DatumDiplomaDag2').focus();
            alert('Einddatum is niet correct');
            return false;
        } else {
            if(document.getElementById('DatumDiplomaJaar2').value.length<4) {
                document.getElementById('DatumDiplomaDag2').focus();
                alert('Geboortedatum is verplicht of datum is niet correct');
                return false;
            }
        }
    }
    if(!(document.getElementById('DatumDiplomaDag3').value=='' || document.getElementById('DatumDiplomaDag3').value=='dd')){
        if(!IsValidDate(document.getElementById('DatumDiplomaDag3').value + '/' + document.getElementById('DatumDiplomaMaand3').value + '/' + document.getElementById('DatumDiplomaJaar3').value)) {
            document.getElementById('DatumDiplomaDag3').focus();
            alert('Einddatum is niet correct');
            return false;
        } else {
            if(document.getElementById('DatumDiplomaJaar3').value.length<4) {
                document.getElementById('DatumDiplomaDag3').focus();
                alert('Geboortedatum is verplicht of datum is niet correct');
                return false;
            }
        }
    }
    if(l_blnNoError) {
        document.getElementById('aspnetForm').submit();
    }
}

 function FillStep2Postcode() {
    var l_strHuisnummer = document.getElementById('Huisnummer').value;
    var l_strPostcode = document.getElementById('Postcode').value.substring(0,4);
    var l_strLetters = document.getElementById('Postcode').value.substring(4,6);
    sendRequest('/Ajax/Postcode.aspx', HandleStep2Postcode, 'Postcode='+l_strPostcode+'&Letters='+l_strLetters+'&Nummer='+ l_strHuisnummer);
}

function HandleStep2Postcode(p_objResponse) {
    if(p_objResponse.responseText!='') {
        var l_objPostcode = eval("(" + p_objResponse.responseText + ")");
        document.getElementById('Straat').value = l_objPostcode.Straat;
        document.getElementById('Woonplaats').value = l_objPostcode.Stad;
    }
}
 function FillStep21Postcode() {
    var l_strHuisnummer = document.getElementById('Huisnummervertegenwoordiger').value;
    var l_strPostcode = document.getElementById('Postcodevertegenwoordiger').value.substring(0,4);
    var l_strLetters = document.getElementById('Postcodevertegenwoordiger').value.substring(4,6);
    sendRequest('/Ajax/Postcode.aspx', HandleStep21Postcode, 'Postcode='+l_strPostcode+'&Letters='+l_strLetters+'&Nummer='+ l_strHuisnummer);
}
function HandleStep21Postcode(p_objResponse) {
    if(p_objResponse.responseText!='') {
        var l_objPostcode = eval("(" + p_objResponse.responseText + ")");
        document.getElementById('Straatvertegenwoordiger').value = l_objPostcode.Straat;
        document.getElementById('Woonplaatsvertegenwoordiger').value = l_objPostcode.Stad;
    }
}


function FillStep5Postcode() {
    var l_strHuisnummer = document.getElementById('WerkgeverHuisnummer').value;
    var l_strPostcode = document.getElementById('WerkgeverPostcode').value.substring(0,4);
    var l_strLetters = document.getElementById('WerkgeverPostcode').value.substring(4,6);
    sendRequest('/Ajax/Postcode.aspx', HandleStep5Postcode, 'Postcode='+l_strPostcode+'&Letters='+l_strLetters+'&Nummer='+ l_strHuisnummer);
}

function HandleStep5Postcode(p_objResponse) {
    if(p_objResponse.responseText!='') {
        var l_objPostcode = eval("(" + p_objResponse.responseText + ")");
        document.getElementById('WerkgeverStraat').value = l_objPostcode.Straat;
        document.getElementById('WerkgeverWoonplaats').value = l_objPostcode.Stad;
    }
}
