function checkout(form_id) {

//alert("you pressed me! "+form_id);
//$(form_id).submit();
alert(validateEmail($(form_id)['order[email]'].value));

}

function validateEmail(emailAddress){
var emailRegEx = /^(([a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*)|("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i;
//str = $('aanmeldformulier')['order[email]'].value;

return Boolean(emailAddress.match(emailRegEx));
}
function colorBorder(name_id,bol) {
  $(name_id).style.border = (bol) ? "1px solid rgb(204, 204, 204)" : "1px solid red";
  return Boolean(bol);
}

function postcodeCheck(postcode) {
   var NL_postcode_RegEx = /^[0-9]{4}(\ )?[a-z|A-Z]{2}$/;
   return Boolean(postcode.match(NL_postcode_RegEx));
}
function phoneCheck(number) {
  // Phone checker is an error!!!!
  // check if there's a valid phone number or empty
  //var phoneNumber_RegEx = /^(([\+]?[0-9]{4,15})|([\+]?\([0-9]*\)[0-9]*{4,15}))$/;
  //return Boolean(number.match(phoneNumber_RegEx));
}
function validateForm(form_id,stringpath) {
   switch(form_id)  {
      case 'aanmeldformulier':
if(validateAanmeldformulier()) {
      $(form_id).action = stringpath;
      $(form_id).method = "post";
      $(form_id).submit();
}
      break;
      case 'contactformulier':
      break;
      default:
      null;
   }
}

function validateAanmeldformulier() {
//  alert('checking');
  var form_id = 'aanmeldformulier';
  var obj = [];
  var errorMsg = [];
  var check = true;


// email
     var bEmail = colorBorder('personal_email',validateEmail($(form_id)['personal[email]'].value));
     //errorMsg.push('Voer het juiste email adres op'+"\n");
     check *= bCheckerMessage(errorMsg,"Voer het juiste e-mail op", [bEmail]);
// persoonlijk gegevens
     var bP1 = colorBorder('personal_company',($(form_id)['personal[company]'].value.length > 2));
     var bP2 = colorBorder('personal_name',($(form_id)['personal[name]'].value.length > 2));
     var bP3 = colorBorder('personal_lastname',($(form_id)['personal[lastname]'].value.length > 2));
     var bP4 = colorBorder('personal_address',($(form_id)['personal[address]'].value.length > 2));
     var bP5 = colorBorder('personal_postalcode', postcodeCheck($(form_id)['personal[postalcode]'].value));
     var bP6 = colorBorder('personal_place',($(form_id)['personal[place]'].value.length > 2));
     //var bP7 = colorBorder('personal_mobile',($(form_id)['personal[mobile]'].value.length > 2));
     //var bP8 = colorBorder('personal_telephone',($(form_id)['personal[telephone]'].value.length > 2));
     var bP9 = colorBorder('personal_gender',($(form_id)['personal[gender]'].value.length > 2));
     var bP10 = colorBorder('personal_birthdate',($(form_id)['personal[birthdate]'].value.length > 2));
     //errorMsg.push('Controleer uw persoonlijk gegevens: '+check+"\n");
     
     check *= bCheckerMessage(errorMsg,"Controleer uw persoonlijk gegevens", [bP1,bP2,bP3,bP4,bP5,bP6,bP9,bP10]);
// use_invoice == true;
if(!$('invoice_use_invoice').checked) {

// factuur adres
     var bF1 = colorBorder('invoice_company',($(form_id)['invoice[company]'].value.length > 2));
     var bF2 = colorBorder('invoice_name',($(form_id)['invoice[name]'].value.length > 2));
     var bF3 = colorBorder('invoice_lastname',($(form_id)['invoice[lastname]'].value.length > 2));
     var bF4 = colorBorder('invoice_address',($(form_id)['invoice[address]'].value.length > 2));
     var bF5 = colorBorder('invoice_postalcode', postcodeCheck($(form_id)['invoice[postalcode]'].value));
     var bF6 = colorBorder('invoice_place',($(form_id)['invoice[place]'].value.length > 2));
     //errorMsg.push('Controleer uw factuur adres'+"\n");
     check *= bCheckerMessage(errorMsg,"Controleer uw factuur adres", [bF1,bF2,bF3,bF4,bF5,bF6]);
} else {
// factuur adres
     // copy data personal to invoice
     invoice_issameas_personal(true);
     //errorMsg.push('factuur adres: '+check+"\n");

} /* /END invoice_use_invoice */
// overig gegevens
     var bO1 = colorBorder('other_ondernemersinds',($(form_id)['other[ondernemersinds]'].value.length > 2));
     //var bO2 = colorBorder('other_branche',($(form_id)['other[branche]'].value.length > 2));
     //var bO3 = colorBorder('other_function',($(form_id)['other[function]'].value.length > 2));
     //var bO4 = colorBorder('other_comments',($(form_id)['other[comments]'].value.length > 2));
     var bO5 = ($(form_id)['other[aanmelddatum]'].value != 0);
     //errorMsg.push('overig: '+check+"\n");
     //var bO6 = $('other_verzekeringafsluiten').checked;
     check *= bCheckerMessage(errorMsg,"Controleer overige gegevens", [bO1,bO5]);
     check *= bCheckerMessage(errorMsg,"Kies een aanmelddatum", [bO5]);

// akkoord algemene voorwaarden
     var bAlgemeneVoorwaarden = ($('other_akkoordalgemenevoorwaarden').checked);
     //errorMsg.push('algemene voorwaarden: '+check+"\n");
     check *= bCheckerMessage(errorMsg,"U dient akkoord te gaan met de Algemene Voorwaarden", [bAlgemeneVoorwaarden]);

if(!check) alert('CHECK: Het formulier bevat nog fouten');
     showFormErrors(errorMsg);
obj.check = check;
return check;
}
function invoice_issameas_personal(b) {
   var form_id = 'aanmeldformulier';
   if(Boolean(b)) {
     $(form_id)['invoice[company]'].value = $(form_id)['personal[company]'].value;
     $(form_id)['invoice[name]'].value = $(form_id)['personal[name]'].value;
     $(form_id)['invoice[lastname]'].value = $(form_id)['personal[lastname]'].value;
     $(form_id)['invoice[address]'].value = $(form_id)['personal[address]'].value;
     $(form_id)['invoice[postalcode]'].value = $(form_id)['personal[postalcode]'].value;
     $(form_id)['invoice[place]'].value = $(form_id)['personal[place]'].value;
   }
}

function bCheckerMessage(arrayErrorMessage,txtErrorMessage,aChecks) {
  var check = true;
  var i = 0;
  var l = aChecks.length;

  for(i;i<l;i++) {
    check *= aChecks[i];
  }
  if(!check) {arrayErrorMessage.push(txtErrorMessage);}
  return check;
}

function showFormErrors (aErrors) {
   output = "";
   var i = 0;
   var l = aErrors.length;
   // show only if there is more then 1 error
   if(l >0) {
     output += '<ol>'+"\n";
     for (i;i<l;i++) {   
        output += '<li>'+aErrors[i]+'</li>'+"\n";
     }
     output += '</ol>';
   }
   $('showFormErrors').innerHTML = output;
}

function testAanmeldformulier () {
   var form_id = 'aanmeldformulier';
// email
     $(form_id)['personal[email]'].value = 'harianto.i+BOT@gmail.com';
     //alert('email: '+check);
// persoonlijk gegevens
     $(form_id)['personal[company]'].value = 'Mijn bedrijf';
     $(form_id)['personal[name]'].value = 'Harianto';
     $(form_id)['personal[lastname]'].value = 'van Insulinde';
     $(form_id)['personal[address]'].value = 'Straat 17';
     $(form_id)['personal[postalcode]'].value = '2284 GW';
     $(form_id)['personal[place]'].value = 'Rijswijk zh';
     $(form_id)['personal[mobile]'].value = '0624678838';
     $(form_id)['personal[telephone]'].value = '0701234567';
     $(form_id)['personal[gender]'].value = 'Man';
     $(form_id)['personal[birthdate]'].value = '17-12-1981';

// use_invoice == true;
if(!$('invoice_use_invoice').checked) {

// factuur adres
     $(form_id)['invoice[company]'].value = 'Test';
     $(form_id)['invoice[name]'].value = 'Test';
     $(form_id)['invoice[lastname]'].value = 'Test';
     $(form_id)['invoice[address]'].value = 'Test';
     $(form_id)['invoice[postalcode]'].value = '2284 GW';
     $(form_id)['invoice[place]'].value = 'Test';

} /* /END invoice_use_invoice */
// overig gegevens
     $(form_id)['other[ondernemersinds]'].value = 'Datum';
     $(form_id)['other[branche]'].value = 'Branche Test';
     $(form_id)['other[function]'].value = 'Functie Test';
     $(form_id)['other[comments]'].value = 'Comments Test';
     $(form_id)['other[aanmelddatum]'].value = '1';
     //$(form_id)['other[verzekeringafsluiten]'].value = 1;

// akkoord algemene voorwaarden
     //$(form_id)['other[akkoordalgemenevoorwaarden]'].value = 1;
}
