function is_numeric(sText) {
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;

 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
   
}

function is_text(sText) {
   var ValidCharsT = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVW.";
   var IsText=true;
   var CharT;

 
   for (i = 0; i < sText.length && IsText == true; i++) 
      { 
      CharT = sText.charAt(i); 
      if (ValidCharsT.indexOf(CharT) == -1) 
         {
         IsText = false;
         }
      }
   return IsText;
   
}

function echeck(str) {
    var at="@";
    var dot=".";
    var lat=str.indexOf(at);
    var lstr=str.length;
    var ldot=str.indexOf(dot);
    if (str.indexOf(at)==-1){
        return false;
    }

    if(str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
        return false;
    }

    if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
        return false;
    }

    if (str.indexOf(at,(lat+1))!=-1){
        return false;
    }

     if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
        return false;
     }
    
     if (str.indexOf(dot,(lat+2))==-1){
        return false;
     }

     if (str.indexOf(" ")!=-1){
        return false;
     }

    return true;
}

function toggleUserError(field) {
    document.getElementById('userdetails_error').style.display = 'block';
    document.getElementById(field).style.borderColor = '#ff0000';
}

function toggleUserErrorOff(field) {
    document.getElementById(field).style.borderColor = '#999999';
}

function checkStep1() {
    var error = 0;
    // check for correct from checker
    if(document.getElementById('username')) {
        getAccountInfo();
    } else {
        // set vars
        var firstname = document.getElementById('firstname');
        var lastname  = document.getElementById('lastname');
        var company = document.getElementById('company');
        var street = document.getElementById('street');
        var housenumber = document.getElementById('housenumber');
        var zipcode = document.getElementById('zipcode');
        var city = document.getElementById('city');
        //var state = document.getElementById('state');
        var country = document.getElementById('country');
        var phone = document.getElementById('phone');
        var mobile = document.getElementById('mobile');
        var knowfrom = document.getElementById('knowfrom');
        var newsletter = document.getElementById('newsletter');
        
        // disable red errors
        document.getElementById('userdetails_error').style.display = 'none';
        toggleUserErrorOff('firstname');
        toggleUserErrorOff('lastname');
        toggleUserErrorOff('company');
        toggleUserErrorOff('street');
        toggleUserErrorOff('housenumber');
        toggleUserErrorOff('zipcode');
        toggleUserErrorOff('city');
        //toggleUserErrorOff('state');
        toggleUserErrorOff('country');
        toggleUserErrorOff('phone');
        toggleUserErrorOff('mobile');
        toggleUserErrorOff('knowfrom');
        
        // check if fields are empty y/n
        if(firstname.value == '' || firstname.value == null) { error++;toggleUserError('firstname'); }
        if(lastname.value == '' || lastname.value == null) { error++;toggleUserError('lastname'); }
        //    if(company.value == '' || company.value == null) { error++;toggleUserError('company'); }
        if(street.value == '' || street.value == null) { error++;toggleUserError('street'); }
        if(housenumber.value == '' || housenumber.value == null) { error++;toggleUserError('housenumber'); }
        if(zipcode.value == '' || zipcode.value == null) { error++;toggleUserError('zipcode'); }
        if(city.value == '' || city.value == null) { error++;toggleUserError('city'); }
        //if(state.value == '' || state.value == null) { error++;toggleUserError('state'); }
        if(country.value == '' || country.value == null) { error++;toggleUserError('country'); }
        if(phone.value == '' || phone.value == null) {
            if(mobile.value == '' || mobile.value == null) {
                error++;toggleUserError('mobile');
                error++;toggleUserError('phone');
            }
        }
        
        // if everything is fine we proceed to step 2
        if(error == 0) {
            document.forms[0].submit();
        }
    }
}

function getAccountInfo() {
    try {
        xmlhttp = window.XMLHttpRequest?new XMLHttpRequest():new ActiveXObject("Microsoft.XMLHTTP");
    }
    catch(e) {
        alert ( 'Uw  browser wordt niet ondersteund. Download Mozilla Firefox 1.5+ of Microsoft Internet Explorer 6+' );
    }
    var username = document.getElementById('username').value;
    var emailaddress = document.getElementById('email').value;
    xmlhttp.onreadystatechange = displayAccountInfo;
    xmlhttp.open("GET", "actions/checkAccount.php?username=" + username + "&email=" + emailaddress);
    xmlhttp.send(null);
}

function displayAccountInfo() {
    if ((xmlhttp.readyState == 4) && (xmlhttp.status == 200)) {
        // set fields
        var usernamefield = document.getElementById('username');
        var emailfield = document.getElementById('email');
        var password1 = document.getElementById('password1');
        var password2 = document.getElementById('password2');
        var passwordempty = document.getElementById('password_empty');
        var usernameempty = document.getElementById('username_empty');
        var emailempty = document.getElementById('email_empty');
        var uerror = document.getElementById('username_error');
        var perror = document.getElementById('password_error');
        var eerror = document.getElementById('email_error');
        var eerror2 = document.getElementById('email_error2');
        var error = 0;
        
        uerror.style.display = 'none';
        perror.style.display = 'none';
        eerror.style.display = 'none';
        eerror2.style.display = 'none';
        passwordempty.style.display = 'none';
        usernameempty.style.display = 'none';
        emailempty.style.display = 'none';
        
        
        // check passwords
        if((password1.value == '' || password1.value == null) && (password2.value == '' || password2.value == null)) {
            password1.style.borderColor = '#FF0000';
            password2.style.borderColor = '#FF0000';
            passwordempty.style.display = 'block';
            error++;
        } else {
            if(password1.value == password2.value) {
                password1.style.borderColor = '#00FF00';
                password2.style.borderColor = '#00FF00';
                perror.style.display = 'none';
            } else {
                password1.style.borderColor = '#FF0000';
                password2.style.borderColor = '#FF0000';
                perror.style.display = 'block';
                error++;
            }
        }    
    
        // username check
        var response = xmlhttp.responseText.split('/');
        
        // validate username field
        if(usernamefield.value == '' || usernamefield.value == null) {
            usernamefield.style.borderColor = '#FF0000';
            usernameempty.style.display = 'block';
            error++;
        } else {
            if(response[0] == 'noerror' && usernamefield.value !== '') {
                usernamefield.style.borderColor = '#00FF00';
                uerror.style.display = 'none';
            } else {
                usernamefield.style.borderColor = '#FF0000';
                uerror.style.display = 'block';
                error++;
            }
        }
        
        // validate email field
        if(emailfield.value == '' || emailfield.value == null) {
            emailfield.style.borderColor = '#FF0000';
            emailempty.style.display = 'block';
            error++;
        } else {
            if(echeck(emailfield.value) == false) {
                emailfield.style.borderColor = '#FF0000';
                eerror2.style.display = 'block';
                error++;
            } else {
                if(response[1] == 'noerror') {
                    emailfield.style.borderColor = '#00FF00';
                    eerror.style.display = 'none';
                } else {
                    emailfield.style.borderColor = '#FF0000';
                    eerror.style.display = 'block';
                    error++;
                }
            }
        }
        
        // set vars
        var firstname = document.getElementById('firstname');
        var lastname  = document.getElementById('lastname');
        var company = document.getElementById('company');
        var street = document.getElementById('street');
        var housenumber = document.getElementById('housenumber');
        var zipcode = document.getElementById('zipcode');
        var city = document.getElementById('city');
        //var state = document.getElementById('state');
        var country = document.getElementById('country');
        var phone = document.getElementById('phone');
        var mobile = document.getElementById('mobile');
        var knowfrom = document.getElementById('knowfrom');
        var newsletter = document.getElementById('newsletter');
        
        // disable red errors
        document.getElementById('userdetails_error').style.display = 'none';
        toggleUserErrorOff('firstname');
        toggleUserErrorOff('lastname');
        toggleUserErrorOff('company');
        toggleUserErrorOff('street');
        toggleUserErrorOff('housenumber');
        toggleUserErrorOff('zipcode');
        toggleUserErrorOff('city');
        //toggleUserErrorOff('state');
        toggleUserErrorOff('country');
        toggleUserErrorOff('phone');
        toggleUserErrorOff('mobile');
        toggleUserErrorOff('knowfrom');
        
        //var zip_cijfers = zipcode.value.substr(0,4);
//        var zip_letters = zipcode.value.substr(4,6);
        //if(!is_text(zip_letters) || !is_numeric(zip_cijfers) || zipcode.value.length !== 6) {
//            toggleUserError('zipcode');
//            alert('Let op: de postcode moet uit 4 cijfers en 2 nummers bestaan, zonder spaties.');
//            error++;
//        }
        
        // check if fields are empty y/n
        if(zipcode.value == '' || zipcode.value == null || zipcode.value.length < 6) { error++;toggleUserError('zipcode'); }
        if(firstname.value == '' || firstname.value == null) { error++;toggleUserError('firstname'); }
        if(lastname.value == '' || lastname.value == null) { error++;toggleUserError('lastname'); }
        //    if(company.value == '' || company.value == null) { error++;toggleUserError('company'); }
        if(street.value == '' || street.value == null) { error++;toggleUserError('street'); }
        if(housenumber.value == '' || housenumber.value == null) { error++;toggleUserError('housenumber'); }
        if(city.value == '' || city.value == null) { error++;toggleUserError('city'); }
        //if(state.value == '' || state.value == null) { error++;toggleUserError('state'); }
        if(country.value == '' || country.value == null) { error++;toggleUserError('country'); }
        if(phone.value == '' || phone.value == null || !is_numeric(phone.value)) {
            if(mobile.value == '' || mobile.value == null || !is_numeric(mobile.value)) {
                error++;toggleUserError('mobile');
                error++;toggleUserError('phone');
            }
        }
        
        // if everything is fine we proceed to step 2
        if(error == 0) {
            document.forms[0].submit();
        }
    }
}

function checkLogin() 
{
    try {
        xmlhttp = window.XMLHttpRequest?new XMLHttpRequest():new ActiveXObject("Microsoft.XMLHTTP");
    }
    catch(e) {
        alert ( 'Uw browser wordt niet ondersteund. Download Mozilla Firefox 1.5+ of Microsoft Internet Explorer 6+' );
    }
    var username = document.getElementById('login_username').value;
    var password = document.getElementById('login_password').value;
    xmlhttp.onreadystatechange = handleLogin;
    xmlhttp.open("GET", "actions/checkLogin.php?username=" + username + "&password=" + password);
    xmlhttp.send(null);
}

function handleLogin() 
{
    if(xmlhttp.readyState == 4 && xmlhttp.status == 200) 
    {
        var userinfo = xmlhttp.responseText.split('|');
        if(userinfo[0] == 'success') 
        {
            // display login info
            document.getElementById('login').style.display = 'none';
            document.getElementById('account').style.display = 'block';
            
            // fill the account div
            document.getElementById('account_user').innerHTML = userinfo[1];
            document.getElementById('account_realname').innerHTML = userinfo[2] + " " + userinfo[3];
            
            // fill the form with current account info
            document.getElementById('firstname').value = userinfo[2];
            document.getElementById('lastname').value = userinfo[3];
            document.getElementById('company').value = userinfo[4];
            document.getElementById('address').value = userinfo[5];
            document.getElementById('zipcode').value = userinfo[6];
            document.getElementById('city').value = userinfo[7];
            //document.getElementById('state').value = userinfo[8];
            document.getElementById('phone').value = userinfo[9];
            document.getElementById('mobile').value = userinfo[10];
            if(userinfo[11] == '1') {
                document.getElementById('newsletter').checked = true;
            }
            document.getElementById('knowfrom').value = userinfo[12];
            
            // show the whole form
            document.getElementById('step1form').style.display = 'block';
            
            // hide login/new account options
            document.getElementById('reminder').style.display = 'none';
            
            // set logged in to yes
            document.getElementById('loggedin').value = 'yes';
        } else {
            alert('U heeft een ongeldige gebruikersnaam en/of wachtwoord ingevuld.');
        }
    }
}

function togglePayment(val)
{
    /*
	if(val == 'creditcard')
    {
        document.getElementById('overboeking_payment').style.display = 'none';
        document.getElementById('machtiging_payment').style.display = 'none';
        document.getElementById('creditcard_payment').style.display = 'block';
        document.getElementById('ideal_payment').style.display = 'none';
    }
    
    if(val == 'overboeking')
    {
        document.getElementById('creditcard_payment').style.display = 'none';
        document.getElementById('machtiging_payment').style.display = 'none';
        document.getElementById('overboeking_payment').style.display = 'block';
        document.getElementById('ideal_payment').style.display = 'none';
    }
    
    if(val == 'machtiging') {
        document.getElementById('creditcard_payment').style.display = 'none';
        document.getElementById('overboeking_payment').style.display = 'none';
        document.getElementById('machtiging_payment').style.display = 'block';
        document.getElementById('ideal_payment').style.display = 'none';
    }
    
    if(val !== 'creditcard' && val !== 'overboeking' && val !== 'machtiging')
    {
        document.getElementById('creditcard_payment').style.display = 'none';
        document.getElementById('overboeking_payment').style.display = 'none';
        document.getElementById('machtiging_payment').style.display = 'none';
        document.getElementById('ideal_payment').style.display = 'none';
    }
    
    if(val !== 'creditcard' && val !== 'overboeking' && val !== 'machting' && val == 'ideal') {
        document.getElementById('creditcard_payment').style.display = 'none';
        document.getElementById('overboeking_payment').style.display = 'none';
        document.getElementById('machtiging_payment').style.display = 'none';
        document.getElementById('ideal_payment').style.display = 'block';
    }
	*/
}


function checkPayment()
{
    var paymenttype = document.getElementById('payment_method').value;
    //var cardNr = document.getElementById('card_number').value;
//    var cardHolder = document.getElementById('card_holder').value;
//    var cardExpireDateMonth = document.getElementById('card_expiredatemonth').value;
//    var cardExpireDateYear = document.getElementById('card_expiredateyear').value;
//    var cardSecurityCode = document.getElementById('card_securitycode').value;
    var error = new Array();
        
    if(paymenttype == 'creditcard') {
        /*if(cardNr.length !== 16 || is_numeric(cardNr) == false)
        {
            error[0] = '<li>Voer aub uw kaartnummer in zonder spaties, streepjes en/of andere scheidingstekens.</li>';
        }
        
        if(cardHolder == '')
        {
            error[1] = '<li>Voer aub een kaarhouder in.</li>';
        }
        
        if(cardExpireDateMonth.length !== 2 || is_numeric(cardExpireDateMonth) == false)
        {
            error[2] = '<li>De maand van uw vervaldatum is ongeldig.</li>';
        }
        
        if(cardExpireDateYear.length !== 4 || is_numeric(cardExpireDateYear) == false || cardExpireDateYear < 2006)
        {
            error[3] = '<li>Het jaar van uw vervaldatum is ongeldig.</li>';
        }
        
        if(cardSecurityCode.length !== 3 || is_numeric(cardSecurityCode) == false)
        {
            error[4] = '<li>Uw veiligheidscode is ongeldig.</li>';
        }
        
        if(error.length < 5)
        {
            
        } else {
            var x;
            var errortext = '<ul>';
                    
            for(x in error)
            {
                errortext = errortext + error[x];
            }
            
            errortext = errortext + '</ul>';
            
            document.getElementById('creditcard_error').innerHTML = errortext;
            
        }*/
        document.forms[0].submit();
    }
    
    if(paymenttype == 'overboeking') {
        document.forms[0].submit();
    }
    
    if(paymenttype == 'nogo') {
        alert('Selecteer aub een betaalwijze.');
    }
}

function validatePayment() {
    var paymentmethod = document.getElementById('payment_method').value;
    var error = 0;
    var errormsg = '';
    document.getElementById('paymenterrors').innerHTML = '';
    
    switch(paymentmethod) {
    
        case 'creditcard':
            //var holder = document.getElementById('card_holder').value;
//            var number = document.getElementById('card_number').value;
//            var securitycode = document.getElementById('card_securitycode').value;
//            var expiredatemonth = document.getElementById('card_expiredatemonth').value;
//            var expiredateyear = document.getElementById('card_expiredateyear').value;
//            
//            if(holder == '' || number == '' || securitycode == '' || expiredatemonth == '' || expiredateyear == '')  {error++;errormsg = "Vul aub alle velden in!<br />"; }
//            
//            if(holder.length < 4) { error++;errormsg += "Vul een naam in die langer is dan 3 tekens.<br />"; }
//            if(number.length !== 16) { error++;errormsg += "Uw creditcardnummer moet 16 tekens zijn - zonder spaties of streepjes.<br />"; }
//            if(securitycode.length < 3) { error++;errormsg += "Vul aub uw veiligheidscode in<br />"; }
//            if(expiredatemonth.length < 2) { error++;errormsg += "Vul 2 cijfers in als maand: 01 02 03 10, 12 etc.<br />" }
//            if(expiredateyear.length < 4) { error++;errormsg += "Vul 4 cijfers in als jaar: 2009, 2011 etc.<br />" }
            break;
            
        case 'machtiging':
            //var accountnumber = document.getElementById('bt_accountnumber').value;
            //var accountname = document.getElementById('bt_accountname').value;
            //var accountlocation = document.getElementById('bt_accountlocation').value;
            
            //if(accountnumber == '' || accountname == '' || accountlocation == '') { error++;errormsg = "Vul aub alle velden in."; }
            break;
    
    }
    
    document.getElementById('paymenterrors').innerHTML = errormsg;  
    
    if(error == 0) {
        document.forms[0].submit();
    } else {
        alert('Niet alle velden zijn correct ingevuld. Kijk naar de melding in de rode letters hieronder om te bekijken wat er verkeerd is ingevuld.');
    }
}

function checkLogin() {
    var username = document.getElementById('login_username').value;
    var password = document.getElementById('login_password').value;
    var error = 0;
    
    if(username.length == 0) error++;
    if(password.length == 0) error++;
    
    if(error > 0) {
        alert('Vul aub een gebruikersnaam en wachtwoord in');
    } else {
        document.forms[0].submit();
    }
}